完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在一本教材上看到下面一个计数的例子,但总感觉while(tmp_var)没法循环,不知有没有高人,可否帮小弟一把,多谢了!
例:计算一个变量中含有值为1的个数。 module demo_count(var,count); parameter varsize=8,cntsize=4; input [varsize:0] var; output[cntsize:0] count; reg[cntsize:0] count; reg[varsize:0] tmp_var; [email=always@(var]always@(var[/email]) begin count=0; tmp_var=var; //假如我var里面的值是101010010 while(tmp_var) //tmp_var的值不为0 begin if(tmp_var[0]) //如果tmp_var[0]为1开始循环,但是这样没法循环了。 count=count+1; tmp_var=tmp_var<<1; end end endmodule 另外我输入1-1111-1111到var中,但是用modulesim仿真,发现count始终是0001,而tmp_var始终是0-0000-0000,不知是怎么回事?求大家帮一手解释一下。 |
|
相关推荐 |
|
求FPGA 驱动控制ltc2271 或者 ltc2180 或者 ltc2190或者 ltc2202 的代码
1016 浏览 0 评论
369 浏览 0 评论
求助:遇见诡异问题,FPGA模块A输出端口连接模块B输入后,模块A不能正常工作的
1184 浏览 1 评论
422 浏览 0 评论
1133 浏览 1 评论
4018 浏览 91 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-7 22:24 , Processed in 0.723037 second(s), Total 35, Slave 28 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号