常量:
在Verilog HDL中,整型常量即整常数有以下四种进制表示形式:
1) 二进制整数(b或B)
2) 十进制整数(d或D)
3) 十六进制整数(h或H)
4) 八进制整数(o或O)
8'b10101100 //位宽为8的数的二进制表示, 'b表示二进制
8'ha2 //位宽为8的数的十六进制,'h表示十六进制。
x和z值:x代表不定值,z代表高阻值。一个x可以用来定义十六进制数的四位二进制数的状态,八进制数的三位,二进制数的一位。z的表示方式同x类似。z还有一种表达方式是可以写作?。在使用case表达式时建议使用这种写法,以提高程序的可读性。见下例:
4'b10x0 //位宽为4的二进制数从低位数起第二位为不定值
4'b101z //位宽为4的二进制数从低位数起第一位为高阻值
12'dz //位宽为12的十进制数其值为高阻值(第一种表达方式)
12'd? //位宽为12的十进制数其值为高阻值(第二种表达方式)
8'h4x //位宽为8的十六进制数其低四位值为不定值
赋值:
非阻塞(Non_Blocking)赋值方式( 如 b <= a; )
always @( posedge clk )
begin
b<=a;
c<=b;
end//此处clk来一个上升沿此时b=a;再来一个上升沿c=b
阻塞赋值方式
always @(posedge clk)
begin
b=a;
c=b;
end clk来了一个上升沿,b=a,c=b
always语句
reg[7:0] counter;
reg tick;
always @(posedge areg)
begin
tick = ~tick;
counter = counter + 1;
end
always是要等到areg的上升沿才做里面的事情
一个模块中可以有多个always块,它们都是并行运行的
用户236480 2012-5-11 10:05