完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我设置一个初值为0的计数器counter[23:0],一个输入信号B[23:0]。设置一个初始值为0的falg寄存器。
verilog代码如下: if(counter==B-1) begin counter<=0; flag<=1; end else begin counter<=counter+1; flag<=0; end 当B=0时,我的仿真结果中发现,flag信号并没有置位。我想问一下,在FPGA中,当B=0时,B-1是24'hFFFFFF吗?如果是的话,当counter计数到24'hFFFFFF时条件已经满足了,为什么我的flag信号没有置位呢?还是说verilog在计算时,可以判断正负? 希望哪位大神可以帮忙解决问题,谢谢。 |
|
相关推荐
3个回答
|
|
我后面设置了一个wire型的M【23:0】,
且assign M=B-1; 然后将代码变成: if(counter==M) begin counter<=0; flag<=1; end else begin counter<=counter+1; flag<=0; end B=0的情况下,得出的仿真结果中,M=24‘HFFFFFF; 而flag信号在counter计数到24‘hFFFFFF时正确置位了。 |
|
|
|
我自己找到问题了,我发现判断B-1时,由于没有给1设置位宽,它自己当成32bit做减法了,改成B-1‘b1就好了。’
|
|
|
|
自问自答66666,加油
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1446 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1061 浏览 0 评论
2525 浏览 1 评论
2217 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2486 浏览 0 评论
1956 浏览 54 评论
6032 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 23:23 , Processed in 0.518085 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号