event received_data; //定义一个名为received_data的事件
always @(posedge clk)
begin
if (last_data_packet) //如果这是最后一组数据
begin
->received_data; //触发接受数据事件(received_data)
end
end
always @(received_data) //等待接受数据事件的触发,当事件触发时,把数据存入数据缓存器
begin
data_buf = {data_pkt[0],data_pkt[1],data_pkt[2],data_pkt[3]};
OR事件控制(敏感列表)
多个信号或者事件中发生的任意一个都能够触发语句或语句块的执行。
always @(reset or clk or d) //or 可以用“,”代替,即always @(reset,clk,d)
begin
if (reset) q = 1'b0;
else if (clock) q = d;
end
当输入变量很多时,可以采用@(*)
always @(*)
begin
out1 = a ? b + c : d + e ;
out2 = f ? g + h : p + m ;
end