逻辑电路的任何一个寄存器、存储器结构和其他逻辑单元都必须要附加复位逻辑电路,以保证电路能够从错误状态中恢复,可靠地工作。对于综合实现的真实电路,通过复位使电路进入初始状态或者其他预知状态
通常来说,时序电路是一个双稳态电路,上电之后必须要有一个初始态,才可以正常运行。组合逻辑电路,没有存储功能,不需要复位信号
一、同步复位和异步复位
1、同步复位
来看一个简单的同步复位的D触发器,Verilog代码如下:
module top_module (
input clk,
input reset, // Synchronous reset
input [7:0] d,
output [7:0] q
);
always@(posedge clk)
if (reset == 1'b1) q<=7'h00;
else q<=d;
endmodule
同步复位的优点:
1). 抗干扰性高,可以剔除复位信号中周期短于时钟周期的毛刺,增强电路的稳定性;
2). 有利于静态时序分析工具的分析;
3). 有利于基于周期的仿真工具的仿真。
同步复位缺点:
1). 大多数逻辑器件的目标库内的DFF都只有异步复位端口,适用同步复位时,综合器就会在寄存器的数据输入端插入组合逻辑,占用更多的逻辑资源;
2). 同步复位依赖于时钟,如果电路中的时钟信号出现问题,无法完成复位。
3). 对复位信号的脉冲宽度有要求,必须大于指定的时钟周期,由于线路上的延迟,可能需要多个时钟周期的复位脉冲宽度,且很难保证复位信号到达各个寄存器的时序;
![23263ba78794c0a11452fe34a3c7fa5e.png](https://i-blog.csdnimg.cn/blog_migrate/b7b02bbfcc477404db311280ff1d5c4b.jpeg)
2、异步复位<