数字电子技术实验04-闰年计算器

1582 年以来的置闰规则:

  • 普通闰年:公历年份是 4 的倍数,且不是 100 的倍数的,为闰年(如 2004年、2020 年等就是闰年)。
  • 世纪闰年:公历年份是整百数的,必须是 400 的倍数才是闰年(如 1900年不是闰年,2000 年是闰年)。

实验目的

学习行为级设计方法,理解自己进行组合逻辑设计与在 Verilog 中设计之间的区别。

实验内容

  1. 采用行为级设计一个闰年计算器,
    输入信号:16 个 SW 拨码开关。
    输出信号:16 个 LED 灯与 SW 相对应;
    4 个七段数码管显示 SW 的年份数据;
    如果为闰年,七段数码管的小数点亮;否则,小数点不亮。
  2. 采用课件 ppt 上的例题公式,重新做上面的题目。

实验方案

实验分析(assistDesign.sv/Dec7Seg.sv/Basys3_Master.xdc 与实验 2 一致,故略)

实验一(mainDesign1.sv)

module mainDesign1(
    input  logic CLK100MHZ,
    input  logic [15:0] SW,
    output logic [6:0] a2g,
    output logic [3:0] AN,
    output logic [15:0] LED,
    output logic DP
);
    logic [15:0] x;
    assign LED = SW;
    assign x = SW;
    int y;
    
    assign y = 'd1000*x[15:12]+'d100*x[11:8]+'d10*x[7:4]+'d1*x[3:0];
    assign DP = !(((y%'d4=='d0&&y%'d100!='d0)||(y%'d400=='d0))&&(y>='d1582));

    assistDesign1 X71(.x(x),
             .clk(CLK100MHZ),
             .a2g(a2g),
             .AN(AN),
             .dp(DP));

endmodule
  1. 16 位二进制 x(SW 输入信号)→整型数 y(实际对应年份)
  2. DP=!置闰(小数点高电平熄灭低电平点亮)
  3. 置闰=(四年一闰&&百年不闰||四百年又闰)&&(1582 年之后置闰)

实验二(mainDesign2.sv)

module mainDesign2(
    input  logic CLK100MHZ,
    input  logic [15:0] SW,
    output logic [6:0] a2g,
    output logic [3:0] AN,
    output logic [15:0] LED,
    output logic DP
);
    logic [15:0] x;
    logic D4;
    logic D100;
    logic D400;

    assign D4=((!SW[4])&&(!SW[1])&&(!SW[0]))||((SW[4])&&(SW[1])&&(!SW[0]));
    assign D100=(!SW[7])&&(!SW[6])&&(!SW[5])&&(!SW[4])&&(!SW[3])&&(!SW[2])&&(!SW[1])&&(!SW[0]);
    assign D400=D100&&(((!SW[12])&&(!SW[9])&&(!SW[8]))||((SW[12])&&(SW[9])&&(!SW[8])));
    assign DP=!((D4&&!D100)||D400);
    assign LED = SW;
    assign x = SW;

    assistDesign2 X72(.x(x),
             .clk(CLK100MHZ),
             .a2g(a2g),
             .AN(AN),
             .dp(DP));

endmodule

总结与思考

  1. 在行为级设计此项目时需要注意拨码开关所表示的为十六进制数,需要添加一个整型变量以将其转换为十进制数
  2. 组合逻辑分析能够化简电路从而提高工作效率,但是需要注意在化简时的准确性
  3. 收获:学习了行为级设计方法,理解了自己进行组合逻辑设计与 Verilog 中设计之间的区别
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇