用Verilog HDL设计一个闰年计算器,计算的时间范围是1900年-2100年,年份的输入用开关采用BCD码的方式,输出为一个发光二极管,发光二极管亮为闰年

灿若黎明 2020-05-25 02:31:58
虽然这段代码可以运行,但是功能不对 ,2100它判断为闰年,其实不是闰年,但是找不到语句的问题,有没有大佬指点一下哪里有问题
...全文
515 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
老皮芽子 2020-05-26
  • 打赏
  • 举报
回复
费劲,也不知道贴代码,贴个图好麻烦
灿若黎明 2020-05-26
  • 打赏
  • 举报
回复
引用 6 楼 qq_708907433的回复:
还忘记了z 的位宽只有4位少了,需要16位 output [15:0] z
好的 非常感谢
灿若黎明 2020-05-26
  • 打赏
  • 举报
回复
不知道我这样写对不对,而且2100它也判断为闰年,应该有问题,我不知道怎么改,求教
老皮芽子 2020-05-26
  • 打赏
  • 举报
回复
还忘记了z 的位宽只有4位少了,需要16位 output [15:0] z
老皮芽子 2020-05-26
  • 打赏
  • 举报
回复
你说的正确
灿若黎明 2020-05-26
  • 打赏
  • 举报
回复
引用 3 楼 qq_708907433的回复:
z=a*1000+b*100+c*10+d ; 就是把ABCD 4个十进制数转换成16进制数。ABCD不用专门转换。
a,b,c,d都是四位二进制 0001 1001 0000 0000 表示1900 ,然后判断1900是不是闰年,我是这个意思,和您的一样吗?
老皮芽子 2020-05-26
  • 打赏
  • 举报
回复
z=a*1000+b*100+c*10+d ; 就是把ABCD 4个十进制数转换成16进制数。ABCD不用专门转换。
灿若黎明 2020-05-26
  • 打赏
  • 举报
回复
引用 1 楼 qq_708907433的回复:
费劲,也不知道贴代码,贴个图好麻烦
您好 谢谢您的回答。我的输入是BCD码,想调用trans实现BCD转成十进制,在做闰年判断 如果删除调用,BCD不能转十进制吧?

6,125

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧