dff with reset
同步复位,也可见《数字积木》一书P85
Create 8 D flip-flops with active high synchronous reset. The flip-flops must be reset to 0x34 rather than zero. All DFFs should be triggered by the negative edge of clk.
1 module top_module ( 2 input clk, 3 input reset, 4 input [7:0] d, 5 output [7:0] q 6 ); 7 /*always @(posedge clk) 8 begin 9 if(reset) 10 q<=8'd0; //应该是这个地方写错了,换成8'h0x34 11 else 12 q<=d; 13 end*/ 14 always @(posedge clk) begin 15 if(!reset) 16 q <= d; 17 else 18 q <=8'd0; //这两个方法都没有运行成功,也不知道是因为什么 19 end 20 endmodule
使用posedge areset时,只能使用if(areset)首先进行判断而不能用if(!areset),否则会报错。
异步Asynchronous:清零端与时钟无关,复位取决于clr(rst)的上升沿,always @(posedge clk or negedge rst)
同步Synchronous:复位的动作与时钟同步,复位取决于时钟的上升沿并且clr在高位,always @(posedege clk)
1 module top_module ( 2 input clk, 3 input reset, 4 input [7:0] d, 5 output [7:0] q 6 ); 7 always @(negedge clk) begin 8 if(!reset) 9 q <= d; 10 else 11 q <= 8'h0x34; //这个是可以运行的 12 end 13 endmodule
1 module top_module ( 2 input clk, 3 input reset, 4 input [7:0] d, 5 output [7:0] q 6 ); 7 always @(negedge clk) begin 8 if(reset) 9 q <= 8'h0x34; 10 else 11 q <= d;//这个是可以运行的 12 end 13 endmodule

浙公网安备 33010602011771号