完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
大家好,刚刚学习verilog有两个问题想请教以下
1. 为什么在verilog中的进位是从9进位,但是实际是10有效呢? 比如一个秒表中的进位程序如下 always_ff @(posedge clk) begin if (reset) begin count1 <= '0; count2 <= '0; count3 <= '0; count4 <= '0; end else if(enable) begin if (count1 == 4'b1001) begin count1 <= '0; if (count2 == 4'b1001) begin count2 <= '0; if (count3 == 4'b1001) begin count3 <= '0; if (count4 == 4'b1001) begin count4 <= '0; end else count4 <= count4 + 1'b1; end else count3 <= count3 + 1'b1; end else count2 <= count2 + 1'b1; end else count1 <= count1 + 1'b1; end end endmodule 程序比较简单,但是为什么进位时的判定条件是 if (count1 == 4'b1001) 而不是if (count1 == 4'b1010) 呢? 从C的角度看,应该是等于10才归零才进位呀? 2.为什么这个程序会陷入死循环? pos和an一直等于0,不管我按了reset没有。。 always_ff @(posedge clk) if (reset) begin pos <= '0; // set all bits to 0 an <= '0; // set all bits to 0 end |
|
相关推荐
2个回答
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1413 浏览 1 评论
1208 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1419 浏览 0 评论
913 浏览 0 评论
2223 浏览 0 评论
1424 浏览 34 评论
5610 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:06 , Processed in 0.526911 second(s), Total 75, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号