异步复位,同步释放从何而来?
复位电路
时序电路是双稳态电路,必须有复位信号。组合逻辑电路,没有存储功能,不需要复位信号。
复位电路实现两个方面的功能:
- 仿真的时候使电路进入初始状态或者其他预知状态;
- 对于综合实现的真实电路,通过复位使电路进入初始状态或者其他预知状态。
同步复位电路
当复位信号发生变化时,并不立即生效,只有当有效时钟沿采样到已变化的复位信号后,才对所有寄存器复位。
优点
- 有利于仿真器的仿真;
- 可以使所设计的系统成为100%的同步时序电路,利于时序分析,综合出来的频率一般比较高;
- 只在时钟有效电平到来时才复位,可以滤除高于时钟频率的毛刺。
缺点
- 复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。同时还要考虑,诸如:clk_skew,组合逻辑延时,复位延时等因素;
Tsyn_rst > Period max + (clk2-clk1) + t1 + t2
- 由于大多数的逻辑器件的目标库内的DFF都只有异步复位端口,所以,倘若采用同步复位的话,综合器就会在寄存器的数据输入端口插入组合逻辑,这样就会浪费较多的逻辑资源。
异步复位
当复位信号到达时,无论时钟触发沿是否有效,都会立即对目标(如寄存器、RAM等)复位。
优点
- 大多数目标器件库的dff都有异步复位端口,采用异步复位可以节省资源;
- 设计相对简单;
- 异步复位信号识别方便,而且可以很方便的使用FPGA的全局复位端口(GSR,Global Set Reset)。
缺点
- 在复位信号释放时容易出现问题。例如,复位释放时恰恰在时钟有效沿附近,就容易是寄存器输出出现亚稳态,从而导致亚稳态;
- 复位信号容易受到毛刺的影响
异步复位,同步释放
异步复位:复位信号在任意时刻到达低电平及复位,不需要和时钟同步
同步释放:复位信号取消的时候,必须跟时钟信号同步
优点
- 只要复位信号有效,电路就处于复位状态;
- 短脉宽复位也不会丢失;
- 复位的撤离是同步信号,有良好的的撤离时序和足够的恢复时间。
RTL
syn_rst
1 | module syn_rst (clk, rst_, cnt1, cnt2); |
asyn_rst
1 | module asyn_rst (clk, rst_, cnt1, cnt2); |
asyn_rst,syn_release
1 | module asyn_rst_syn_release(clk, rst_, cnt1, cnt2); |
Reference:
1.轻松成为设计高手–Verilog HDL 实用精讲