你很多地方没理解清楚,首先触发器是根据系统时钟来工作的,系统时钟的上升沿检测到en_din的上升沿时,din_1被打一拍,你想实现的功能应该是这样的。首先你要用时钟支检测en_din上升沿,这个写法有很多种,可以用打拍实现,也可以用其它的办法。养成良好的编码习惯,VERILOG是硬件语言,不要用C的想法去理解,规范的写法:
parameter U_DLY =1
always@(posegde clk_sys or negedge rst)
begin
if(rst_n ==1'b0)
begin
din_1_1dly <= 1'b0;
end
else
begin
din_1_1dly <= # U_DLY din_1; //延时一拍
end
end
always@(posegde clk_sys or negedge rst)
begin
if(rst_n ==1'b0)
begin
din_1 <= 8'b0
end
else if(en_din1 == 1'b1 && en_din1_1dly == 1'b0) //检测上升沿
begin
din_1 <= #U_DLY din;
end
end