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

  • 格式:pdf
  • 大小:83.63 KB
  • 文档页数:6

针对数字系统的设计,我们经常会遇到复位电路的设

计,对初学者来说不知道同步复位与异步复位的区别与联

系,今天我对这个问题简要的阐述下,希望对初学者有一定的参考意义,若有不正确的地方愿大家明示。

同步复位原理:同步复位只有在时钟沿到来时复位信

号才起作用,则复位信号持续的时间应该超过一个时钟周期

才能保证系统复位。异步复位原理:异步复位只要有复位信号系统马上复

位,因此异步复位抗干扰能力差,有些噪声也能使系统复位,因此有时候显得不够稳定,要想设计一个好的复位最好使用

异步复位同步释放。

同步复位与异步复位的优劣:异步复位消耗的PFGA逻

辑资源相对来说要少些,因此触发器自身带有清零端口不需要额外的门电路,这是其自身的优势,通常在要求不高的情

况下直接使用异步复位就OK。

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

同步复位的verilog程序如下:moduleD_FF

(//Inputports

SYSCLK,

RST_B,A,

//Outputports

B

);

//=========================================//Inputandoutputdeclaration

//=========================================

inputSYSCLK;inputRST_B;

inputA;

outputB;

//=========================================

//Wireandregdeclaration//=========================================wireSYSCLK;

wireRST_B;

wireA;

regB;

//=========================================

//Logic//=========================================

always@(posedgeSYSCLK)begin

if(!RST_B)

B<=1'b0;else

B<=A;end

endmodule综合后的RTL级电路图如下:

异步复位的verilog程序如下:

moduleD_FF(

//Inputports

SYSCLK,RST_B,

A,

//Outputports

B);

//=========================================

//Inputandoutputdeclaration

//=========================================inputSYSCLK;

inputRST_B;inputA;

outputB;

//=========================================//Wireandregdeclaration

//=========================================

wireSYSCLK;

wireRST_B;wireA;

regB;

//=========================================//Logic

//=========================================

always@(posedgeSYSCLKornegedgeRST_B)begin

if(!RST_B)B<=1'b0;

elseB<=A;

end

endmodule

综合后的RTL级电路图如下:

通过比较显然异步复位消耗的逻辑资源要少些,因此通

常的设计中都采用异步复位的方式,需要进一步的学习的话,可以再研究下其它的资料。