异步复位,同步释放

Posted 晓鹏的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异步复位,同步释放相关的知识,希望对你有一定的参考价值。

平时接触到的复位有三种,分别是同步复位、异步复位还有异步复位同步释放

·1、同步复位

同步复位里,复位做为使能信号,就不存在因为不满足建立时间而产生的亚稳态,但是如果复位信号有效

周期小于一个时钟周期的话,会出现复位信号采样不到的问题。

always @(posedge clk )
begin
    if(!rst_n)
        a <= 1\'d0;
    else
        a <= b;
end

 

2、异步复位

 异步复位比同步复位节省资源,但是如果异步复位结束之后,紧跟着一个时钟上升沿,这时候会产生亚稳态

现象

 

always @(posedge clk or negedge rst_n)
begin
    if(!rst_n)
        a <= 1\'d0;
    else
        a <= b;
end

3、异步复位同步释放

异步复位同步释放:这里我参考CB的书上的定义

reg            sys_rst_n            ;

always @(posedge clk)
begin
    sys_rst_n <= rst_n;
end
            

always @(posedge clk or negedge sys_rst_n)
begin
    if(!rst_n)
        a <= 1\'d0;
    else
        a <= b;
end

第一个always块实现了外部时钟的同步化,第二always块将同步的sys_rst_n做为D触发器的复位端。

以上是关于异步复位,同步释放的主要内容,如果未能解决你的问题,请参考以下文章

异步复位,同步释放

什么是异步复位同步释放

异步复位同步释放

verilog|关于异步复位,同步释放的几个思考

FPGA中的复位

总结:使用pll来进行“异步复位,同步释放”