条件语句,循环语句,块语句
0赞条件语句:
条件语句必须在过程快语句中使用。即在initial和always语句中执行。
系统对表达式的值进行判断,若为0,x,z按“假”处理;若为1按真处理。
简写方式:
if (expression)等同于if (expression == 1)
if (!expression)等同于if (expression != 1)
case语句:
case语句通常用于微处理器的指令译码。
每一个case分项的分支表达式的值必须互不相同,否则就会出现问题;
case语句的所有表达式值的位宽必须相等,一个经常犯的错误是用'bx,'bz来替代n'bx,n'bz,这样写是不对的,因为信号x,z的默认宽度是机器的字节宽度,通常是32位
首先计算表达式的值,然后顺序将它和各个候选项进行比较
case语句也可以嵌套使用

casez语句用来处理不考虑高阻值z的比较过程,casex语句则将高阻值z和不定值x都视为不必关心的情况。

在always块内,如果在给定的条件下变量没有赋值,这个变量将爆出原值,也就是说会生成一个锁存器。

如果用到if语句,最好写上else;如果用case语句,最好写上default项;这样使设计者更加明确设计目标,同时增强了Verilog程序的可读性。
循环语句:
forever语句
foreve循环语句常用于产生周期性的波形,用来作为仿真的测试信号,它与always语句不同之处在于不能独立卸载程序中,而必须写在initial块中。
repeat语句
repeat(表达式)语句
repeat(表达式)begin 多条语句;end
while语句
用while循环语句对rega这个8位二进制中的值为1的为进行计数
begin:countls
reg [7:0] tempreg;
count = 0;
tempreg = rega;
while(tempreg) // 指的是数组的第0位
begin
if(tempreg[0]) count = count + 1;
tempreg = tempreg >> 1;
end
end
