为什么要进行异步复位同步释放---verilog实现
1、什么是同步复位?
仅在有效的时钟上升沿时对触发器复位,该复位信号经过组合逻辑馈送到触发器的输入端。
always@(posedge clk) begin if(!rst) begin ... end end
2、什么是异步复位?
无论时钟处于什么状态,只要复位信号有效,即对电路进行复位。
always@(posedge clk or negedge rst) begin if(!rst) begin ... end end
3、什么是异步复位同步释放?
复位信号不考虑时钟状态,但是当对电路进行复位时,需在时钟有效沿进行。
4、两种复位方式优缺点?
同步复位:①因为触发器都有异步复位端口,如果进行同步复位,则需要在触发器的输入端前添加组合逻辑电路,会使用较多的逻辑资源。②复位信号必须要大于一个时钟周期,则复位信号才真正有效。
异步复位:异步信号释放时,容易出现亚稳态,即不满足去除时间(removal time)和恢复时间(recovery time),且容易受到毛刺的影响。
5、异步复位同步释放--verilog实现
always @(posedge clk or negedge rst) begin if(!rst) begin rst_1 <= 1'b0; rst_2 <= 1'b0; end else begin rst_1 <= 1'b1; rst_2 <= rst_1; end end assign rst_n = rst_2;//rst_n才是同步后的电路复位信号