- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IC设计中同步复位与 异步复位的区别
异步复位是不受时钟影响的,在一个芯片系统初始化(或者说上电)的时候需要这么一个全 局的信号来对整个芯片进行整体的复位, 到一个初始的确定状态。而同步复位需要在时钟沿
来临的时候才会对整个系统进行复位。 请注意,如果芯片是有多个时钟的系统, 那么如何保
证不同时钟域的电路能够 同时”复位将会是一个重要的问题, 此外,如果你的时钟是一个低
频时钟,那么在这个系统(包括其他芯片)上电时如何保证能和其他芯片同时复位?硬件全 局异步复位是必要的,请注意这里加上了 全局”这是因为异步复位既然要对整个芯片 同
时”复位,那么布线延时绝不能不考虑,使用 FPGA设计时芯片的异步复位必须要走全局网
络。再提醒一点,芯片中最好不要出现多个异步复位。一个关键原因是对于 FPGA而言,
多个异步复位信号难以实现前面要求的 全局网络”
异步复位最大的优点是,数据通路就可以不依赖于时钟而确保清洁可控。 然而,异步复位
也有其固有的缺陷。异步复位设计的 DFT (可测性设计)与STA (静态时序分析)的复杂性要 高于同步复位设计;但异步复位中最严重的问题是,如果异步复位信号在触发器时钟有效沿 附近释放”复位信号从有效变为无效)的话,可能会导致触发器输出的亚稳态。
同步复位和异步复位的比较(转载)
无论同步还是异步复位,在对触发器时序进行分析的时候,都要考虑复位端与时钟的相位关系。
对于同步复位,复位信号可以理解为一个普通的数据信号,它只有在时钟的跳变沿才会其作用,一般只要复位信号持续时间大于一个时钟
周期,就可以保证正确复位。
对于异步复位,复位可以在任何时候发生,表面上看跟时钟没有关系,但真实情况是异步复位也需考虑时钟跳变沿,因为时钟沿变化和异
步复位都可以引起 Q端数据变化,如果异步复位信号跟时钟在一定时间间隔内发生变化, Q值将无法确定,即亚稳态现象。这个时候既是异步复位
信号持续时间再长都没有办法,因为不定态已经传递下去。
一下资料来自网络-冰凌霄注
1.
一、特点:
同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。用 Verilog描述
如下:
always @ (posedge elk) begin
if (!Rst_n)
end
Verilog描述如下:
Verilog描述如下:
always @ (posedge elk or negedge Rst_n) begin
if (!Rst_n)
end
各自的优缺点:
a、有利于仿真器的仿真。
b、可以使所设计的系统成为 100%的同步时序电路,这便大大有利于时序分析,而且综合出来的 fmax —般较高。
c、因为他只有在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的毛刺。他的缺点也有不少,主要有以下几条:
a、 复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。同时还要考虑,诸如: elk skew,组合逻辑路径延时,复
位延时等因素。
b、 由于大多数的逻辑器件的目标库内的 DFF都只有异步复位端口,所以,倘若采用同步复位的话,综合器就会在寄存器的数据输入端口
插入组合逻辑,这样就会耗费较多的逻辑资源。
2、对于异步复位来说,他的优点也有三条,都是相对应的
a、大多数目标器件库的 dff都有异步复位端口,因此采用异步复位可以节省资源。
b、设计相对简单。
e、异步复位信号识别方便,而且可以很方便的使用 FPGA的全局复位端口 GSR。
缺点:
a、在复位信号释放(release)的时候容易出现问题。具体就是说:倘若复位释放时恰恰在时钟有效沿附近,就很容易使寄存器输出出现
亚稳态,从而导致亚稳态。
b、复位信号容易受到毛刺的影响。
三、总结:
所以说,一般都推荐使用异步复位,同步释放的方式,而且复位信号低电平有效。这样就可以两全其美了。
2:推荐的复位方式
所谓推荐的复位方式就是上文中所说的: 异步复位,同步释放”。这就结合了双方面的优点,很好的克服了异步复位的缺点(因为异步复位
的问题主要出现在复位信号释放的时候,具体原因可见上文) 。
其实做起来也并不难,我推荐一种我经常使用的方式吧:那就是在异步复位键后加上一个所谓的 “reset synchronizer这样就可以使异步复
位信号同步化,然后,再用经过处理的复位信号去作用系统,就可以保证比较稳定了。 reset sychronizer 的Verilog代码如下:
module Reset_S yn chr oni zer
(output reg rst_ n,
in put clk, asyn crst_ n);
reg rff1;
always @ (posedge clk , n egedge asyn cr
文档评论(0)