搜索
bottom↓
回复: 3

关于verilog的语法问题,快来看看,超急呀!!!!!!

[复制链接]

出0入0汤圆

发表于 2010-7-10 17:56:10 | 显示全部楼层 |阅读模式
在夏宇闻教授的经典verilog教材中有这样2点,小弟刚学verilog不久,没有完全理解,请大家详细解释下(最好能举例说明),万分感谢!!!!!!
1.原文:“1)  这样可以在块内定义局部变量,即只在块内使用的变量。
          2)  这样可以允许块被其它语句调用,如被disable语句。
          3)  在Verilog语言里,所有的变量都是静态的,即所有的变量都只有一个。因此进入或跳出块并不影响存储在变量内的值。
          基于以上原因,块名就提供了一个在任何仿真时刻确认变量值的方法。 ”

  “基于以上原因,块名就提供了一个在任何仿真时刻确认变量值的方法。”这句话怎么理解呀?

2.原文:“下面举一个while语句的例子,该例子用while循环语句对rega这个八位二进制数中值为1的位进行计数。
begin: count1s
reg[7:0] tempreg;
count=0;
tempreg = rega;
while(tempreg)                   //当tempreg中有不为0的位时,循环执行
begin
if(tempreg[0])  count = count + 1;
tempreg = tempreg>>1;
end
end ”

1).“//当tempreg中有不为0的位时,循环执行”这句注释我是否能理解为可以将“while(tempreg)”改写为“while(tempreg != 8'b00000000)”
2).除了while语句可以用“while(tempreg) ”来表达“当tempreg中有不为0的位时,循环执行”的意思,其他的语句(如if,forever,repeat等)能像while语句这样来表达吗?特别是if语句行吗?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2010-7-10 20:30:24 | 显示全部楼层
块名确定变量值的意思是:如果程序中还有一个变量和tempreg同名,也很容易确定说的是哪个变量,因为使用块中的变量时是这样调用的countls:tempreg,即变量名前带有块名所以仿真时不会因为变量名相同而用错值。
while循环中,我觉得应该理解为当tempreg=8'b11111111时循环执行。
if语句是条件语句,可以像while那样表达,但是只是作为if语句的条件;forever语句是永久循环,不用任何条件,所以不能这样表达;repeat语句是循环语句,但是它带一个表示控制次数的常量或是变量,也不能这样用。

出0入0汤圆

 楼主| 发表于 2010-7-11 09:49:45 | 显示全部楼层
回复【1楼】wxr000
块名确定变量值的意思是:如果程序中还有一个变量和tempreg同名,也很容易确定说的是哪个变量,因为使用块中的变量时是这样调用的countls:tempreg,即变量名前带有块名所以仿真时不会因为变量名相同而用错值。
while循环中,我觉得应该理解为当tempreg=8'b11111111时循环执行。
if语句是条件语句,可以像while那样表达,但是只是作为if语句的条件;forever语句是永久循环,不用任何条件,所以不能这样表达;repeat语句是循环语句,但是它带一个表示控制次数的常量或是变量,也不能这样用。
-----------------------------------------------------------------------

非常感谢!其实我与你这个观点“while循环中,我觉得应该理解为当tempreg=8'b11111111时循环执行。”是相同的,但是在书中它的注释是“while(tempreg)   //当tempreg中有不为0的位时,循环执行 ”,所以我有点拿不准了,请教下各位的意见。呵呵!

出0入0汤圆

 楼主| 发表于 2010-7-12 15:01:02 | 显示全部楼层
经过我的仿真实验证明while(tempreg)与while(tempreg == 8’b11111111)确实意思不一样,while(tempreg)确实表示当tempreg中有不为0的位时,循环执行。而且在if语句中同样适用。这个不同我觉得可以作为写代码的小技巧,欢迎各位拍砖!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 17:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表