Verilog语句简析
Always语句
语法:
always [敏感列表]
语句
always语句用来重复执行语句。用敏感列表来控制语句何时开始执行。如果always后面有多于一条语句,则必须使用begin-end或fork-join。
例程:
always #10 Clk = !Clk;
always @(posedge Clk or negedge Reset)
begin
if (!Reset)
Q <= 0;
else
Q <= D;
end
敏感列表的语法:
@( [ edge ] signal [ or [ edge ] signal ] ... )
@( [ edge ] signal [ , [ edge ] signal ] ... )
@*
edge = posedge | negedge
posedge 上升沿触发
negedge 下降沿触发
@*表示在always语句中所有用到的信号和变量都是敏感信号。
例程:
always @(posedge Clk or negedge Reset)
always @(negedge Reset, Enable)
always @* // same as @(A or B or C or D)
begin
Tmp1 = A & B;
Tmp2 = C & D;
end
Initial语句
仅执行一次语句
语法
initial
语句
例程:
initial
fork
Q = 16'h0000;
#20 Q = 16'hC10A; //延迟20单位时间
#40 Q = 16'hAFE0;
join