同步复位和异步复位的区别
- 格式: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级电路图如下:
通过比较显然异步复位消耗的逻辑资源要少些,因此通
常的设计中都采用异步复位的方式,需要进一步的学习的话,可以再研究下其它的资料。