同步复位和异步复位比较

同步复位和异步复位比较

ID:18785808

大小:51.50 KB

页数:6页

时间:2018-09-23

同步复位和异步复位比较_第1页
同步复位和异步复位比较_第2页
同步复位和异步复位比较_第3页
同步复位和异步复位比较_第4页
同步复位和异步复位比较_第5页
资源描述:

《同步复位和异步复位比较》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、同步复位sync异步复位async特点复位信号只有在时钟上升沿到来时才能有效。无论时钟沿是否到来,只要复位信号有效,就进行复位。Verilog描述always@(posedgeCLK)always@(posedgeCLK,negedgeRst_n)优点1)利于仿真器仿真。2)因为只有在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的毛刺。3)可以使所设计的系统成为100%的同步时序电路,有利于时序分析。1)设计相对简单。2)因为大多数目标器件库的dff都有异步复位端口,因此采用异步复位可以节省资源。3)异步复位信号识别方便,而

2、且可以很方便的使用FPGA的全局复位端口GSR。缺点1)复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。同时还要考虑,诸如:clkskew,组合逻辑路径延时,复位延时等因素。2)由于大多数的逻辑器件的目标库内的DFF都只有异步复位端口,所以,倘若采用同步复位的话,综合器就会在寄存器的数据输入端口插入组合逻辑,这样就会耗费较多的逻辑资源。1)复位信号容易受到毛刺的影响。2)在复位信号释放(release)的时候容易出现问题。具体就是说:若复位释放刚好在时钟有效沿附近时,很容易使寄存器输出出现亚稳态,从而导致亚稳

3、态。总结推荐使用异步复位,同步释放的方式,而且复位信号低电平有效。2:推荐的复位方式所谓推荐的复位方式就是上文中所说的:“异步复位,同步释放”。这就结合了双方面的优点,很好的克服了异步复位的缺点(因为异步复位的问题主要出现在复位信号释放的时候,具体原因可见上文)。其实做起来也并不难,我推荐一种我经常使用的方式吧:那就是在异步复位键后加上一个所谓的“resetsynchronizer”,这样就可以使异步复位信号同步化,然后,再用经过处理的复位信号去作用系统,就可以保证比较稳定了。resetsychronizer的Verilog代码如

4、下:moduleReset_Synchronizer(outputregrst_n,inputclk,asyncrst_n);regrff1;always@(posedgeclk,negedgeasyncrst_n)beginif(!asyncrst_n){rst_n,rff1}<=2'b0;else{rst_n,rff1}<={rff1,1'b1};endendmodule大家可以看到,这就是一个dff,异步复位信号直接接在它的异步复位端口上(低电平有效),然后数据输入端rff1一直为高电平‘1’。倘若异步复位信号有效的话,触发

5、器就会复位,输出为低,从而复位后继系统。但是,又由于这属于时钟沿触发,当复位信号释放时,触发器的输出要延迟一个时钟周期才能恢复成‘1’,因此使得复位信号的释放与时钟沿同步化。此外,还有一种方法更为直接,就是直接在异步复位信号后加一个D触发器,然后用D触发器的输出作为后级系统的复位信号,也能达到相同的效果。这里就不多说了。3:多时钟系统中复位的处理方法这是一个很实际的问题,因为在较大型的系统中,一个时钟驱动信号显然不能满足要求,一定会根据系统的要求用多个同源时钟(当然也可以是非同源了)去驱动系统的不同部分。那么在这样的多时钟系统中,

6、复位键怎么设置?它的稳定与否直接关系到了整个系统的稳定性,因此要格外注意(在我看来,复位信号在同步时序系统中的地位和时钟信号一样重要)。下面就说一下具体的处理方法,当然所遵循的原则就仍应该是上文的“异步复位,同步释放”:1.non-coordinatedresetremoval:顾名思义,就是同一个系统中的多个同源时钟域的复位信号,由彼此独立的“resetsynchronizer”驱动。当异步复位信号有效时,各时钟域同时复位,但是复位释放的时间由各自的驱动时钟决定,也是就说:时钟快的先释放,时钟慢的后释放,但是各复位信号之间没有先

7、后关系。2.sequencecoordinatedresetremoval:这是相对于上述方式来说的,也就是说各时钟域的复位信号彼此相关,各个部分系统虽然也同时复位,但是却分级释放。而分级的顺序可由各个“resetsynchronizer”的级联方式决定。可以先复位前级,再复位后级,也可以反过来。反正方式很灵活,需要根据实际需要而定。由于图片上传问题,我只能用程序表示了,例子:三级复位系统,系统中的时钟分别为1M,2M,11M:第一级Reset_Sychronizer程序:moduleReset_Synchronizer(outp

8、utregrst_n,inputclk,asyncrst_n);regrff1;always@(posedgeclk,negedgeasyncrst_n)beginif(!asyncrst_n){rst_n,rff1}<=2'b0;else{rst

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。