- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
同步复位与异步复位
同步复位与异步复位
一、概念:
同步复位:就是指复位信号只有在时钟上升沿到来时,才能有效,否则无法完成
对系统的复位工作。用 verilog 描述如下:
always @ (posedge clk)
begin
if (!Rst_n)
...
end
异步复位:它是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。
用 Verilog 描述如下:
always @ (posedge clk or negedge Rst_n)
begin
if (!Rst_n)
...
end
二、各自的优缺点:
1. 同步复位的优点大概有 3 条:
a. 有利于仿真器的仿真。
b. 可以使所设计的系统成为的同步时序电路,这便大大有利于时序分析,而
且综合出来的一般较高。
c. 因为他只有在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的
毛刺。
缺点:
a. 复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位
任务。同时还要考虑,诸如:clk skew 组合逻辑路径延时,复位延时等因素。
b. 由于大多数的逻辑器件的目标库内的DFF 都只有异步复位端口,所以,倘
若采用同步复位的话,综合器就会在寄存器的数据输入端口插入组合逻辑,这样
就会耗费较多的逻辑资源。
2. 异步复位优点也有三条,都是相对应的
a. 大多数目标器件库的都有异步复位端口,因此采用异步复位可以节省资
源。
b. 设计相对简单。
c. 异步复位信号识别方便,而且可以很方便的使用 FPGA 的全局复位端口
GSR。
缺点:
a. 在复位信号释放 (release)的时候容易出现问题。具体就是说:倘若复位
释放时恰恰在时钟有效沿附近,就很容易使寄存器输出出现亚稳态,从而导致亚
稳态。
b. 复位信号容易受到毛刺的影响。
三、总结及推荐复位方式:
也就是上文中所说的: “异步复位,同步释放”。这就结合了双方面的优点,很
好的克服了异步复位的缺点(因为异步复位的问题主要出现在复位信号释放的时
候,具体原因可见上文)。
具体实现并不难,这里列出一种方式:那就是在异步复位键后加上一个所谓的
“reset synchronizer”,这样就可以使异步复位信号同步化,然后,再用经过
处理的复位信号去作用系统,就可以保证比较稳定了。reset sychronizer 的代
码如下:
module Reset_Synchronizer(
output reg rst_n,
input clk, asyncrst_n);
reg rff1;
always @ (posedge clk , negedge asyncrst_n)
begin
if (!asyncrst_n)
{rst_n,rff1} = 2b0;
else
{rst_n,rff1} = {rff1,1b1};
end
endmodule
大家可以看到,这就是一个 dff,异步复位信号直接接在它的异步复位端口上(低
电平有效),然后数据输入端rff1 一直为高电平1。倘若异步复位信号有效的
话,触发器就会复位,输出为低,从而复位后继系统。但是,又由于这属于时钟
沿触发,当复位信号释放时,触发器的输出要延迟一个时钟周期才能恢复成1’,
因此使得复位信号的释放与时钟沿同步化。此外,还有一种方法更为直接,就是
直接在异步复位信号后加一个触发器,然后用 D 触发器的输出作为后级系统的复
位信号,也能达到相同的效果。
1.同步复位(Synchronous Reset)
来看一个简单的同步复位的 D 触发器,Verilog 代码如下:
module d_ff (clk,rst_n,datain,dataout);
input clk;
input rst_n;
input datain;
ouput dataout;
reg dataout;
always @ (posedge clk)
begin
if (!rst_n)
dataout = 1b0;
else
dataout = datain;
end
endmodule
综合后的 RTL 图表如下:
Altera 的MAXII 系列的 CPLD 中,register 没有同步复位资源,所以同步复位信
号需要通过额外的逻辑电路实现,上面的例子,QuartusII 软件自带的综合工具
使用选择器实现
文档评论(0)