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.

Dff8p - HDLBits (01xz.net)

 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

 

posted @ 2023-04-25 10:51  江左子固  阅读(130)  评论(0)    收藏  举报