注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

构建数字通信技术理论与实践之间的桥梁

孤云出岫去留一无所系 朗镜悬空静躁两不相干 菜根谭.明.洪应明

 
 
 

日志

 
 

Verilog中的for循环等语法问题  

2016-05-15 22:25:34|  分类: 数字滤波技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
杜勇老师您好 !

您出版的几本书我都拜读过,很敬佩像您这样已经工作了还抽时间写书、钻研技术的精神,今天写信是想就您书中的程序向您请教一下:
程序见(FirParallel.v),
问题一:
第114行:sum = 29'd0;
而第116行:sum = sum+Mout[k];
在同一个always块里多次对sum赋值?verilog的语法有新的变化吗?

问题二:
还是上述这个always块,有些赋值您用的是“=”,而有些用的是“<=”,以前我在书上看到的都是always块用“<=”,组合逻辑用assign和“=”来赋值。请问您这样混合赋值,综合软件最后是不是都自动转化为“=”呢?

问题三:
您的很多源程序里都在always块里使用了for循环,这个用法我以前也没有见过,您能否对这种用法详细解释一下呢?verilog的语法里有对这种用法的介绍吗?

希望得到您的回复!

回复:
1)verilog的语法并没有规定不能在同一个always块里多次对sum赋值呀。114 是指对sum清零,116行附近用for循环求乘法结果的累加值。
2)程序中的复位信号有效时用的“=”进行初始化,时钟信号控制下用的“<=”。这样在综合软件时一般不会有什么问题。但建议在always中尽量都采用<=,这样更符合代码规范。关于=和<=的区别我这里就不讲了,你可参考很多verilog的书。程序中这段代码,将=改为<=不会改变综合结果,你可试试看。
3)for循环语句是verilog提供的一个语法,程序中这样用,显得更为简单,且含义也简单明了。for语句与c语言很相似。
4)其实上面三个问题,你均可在Quartus软件中编写、综合、测试,这样理解起来就更加深刻了。
祝愉快!
杜勇
2016.5.15
  评论这张
 
阅读(61)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017