当前位置:文档之家› 同步复位和异步复位的区别

同步复位和异步复位的区别

针对数字系统的设计,我们经常会遇到复位电路的设计,对初学者来说不知道同步复位与异步复位的区别与联系,今天我对这个问题简要的阐述下,希望对初学者有一定的参考意义,若有不正确的地方愿大家明示。

同步复位原理:同步复位只有在时钟沿到来时复位信号才起作用,则复位信号持续的时间应该超过一个时钟周期才能保证系统复位。

异步复位原理:异步复位只要有复位信号系统马上复位,因此异步复位抗干扰能力差,有些噪声也能使系统复位,因此有时候显得不够稳定,要想设计一个好的复位最好使用异步复位同步释放。

同步复位与异步复位的优劣:异步复位消耗的PFGA逻辑资源相对来说要少些,因此触发器自身带有清零端口不需要额外的门电路,这是其自身的优势,通常在要求不高的情况下直接使用异步复位就OK。

下面我用verilog来演示下同步复位与异步复位。

同步复位的verilog程序如下:
module D_FF
(
//Input ports
SYSCLK,
RST_B,
A,
//Output ports
B
);
//========================================= //Input and output declaration
//========================================= input SYSCLK;
input RST_B;
input A;
output B;
//========================================= //Wire and reg declaration
//=========================================
wire SYSCLK;
wire RST_B;
wire A;
reg B;
//========================================= //Logic
//========================================= always@(posedge SYSCLK)
begin
if(!RST_B)
B<=1'b0;
else
B<=A;
end
endmodule
综合后的RTL级电路图如下:
异步复位的verilog程序如下:
module D_FF
(
//Input ports
SYSCLK,
RST_B,
A,
//Output ports
B
);
//========================================= //Input and output declaration
//========================================= input SYSCLK;
input RST_B;
input A;
output B;
//========================================= //Wire and reg declaration
//=========================================
wire SYSCLK;
wire RST_B;
wire A;
reg B;
//========================================= //Logic
//========================================= always@(posedge SYSCLK or negedge RST_B)
begin
if(!RST_B)
B<=1'b0;
else
B<=A;
end
endmodule
综合后的RTL级电路图如下:
通过比较显然异步复位消耗的逻辑资源要少些,因此通常的设计中都采用异步复位的方式,需要进一步的学习的话,可以再研究下其它的资料。

相关主题