|
在夏宇闻教授的经典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, 杜汶泽)
|