原创 《ASIC中异步时序设计》学习笔记

2010-5-21 23:52 3241 9 9 分类: FPGA/CPLD

1.“结绳法”


 


<?xml:namespace prefix = v />


点击看大图


    “结绳法”关键是将信号结绳以后,使其保持了足够长的时间,以便另一个时钟可以正确地采样。


点击看大图



    其中,Pluse2Toggle模块负责将两个脉冲信号“结绳”,即将单脉冲信号延长;Synchronizer模块即用双锁存器法将得到的信号过渡到另一个时钟域;Toggle2Pluse模块是Pluse2Toggle功能相对,即将延长的脉冲信号还原为单脉冲,这里用到了异或门。整体的设计思想即用Pluse2Toggle将信号延长,用Synchronizer过渡,用Toggle2Pluse还原,以保证另一个时钟域可以正确采到,而接收方用相反的流程送回响应信号。    “结绳法”可以解决快时钟域向慢时钟域过渡的问题,且其适用的范围很广。但是结绳法实现较为复杂,特别是其效率不高,在对设计性能要求较高的场合应该慎用。


2.异步FIFO




    点击看大图


点击看大图


如上图所示,异步比较法的关键是用异步比较的结果信号的下降沿作为最终比较结果的复位信号,而其上升沿则用传统的双锁存器法进行同步。最终得到的信号的上升沿与下降沿都是属于同一个时钟域。与传统的先将地址信号同步然后进行同步比较相比,异步比较法效率更高,实现也更简单。


 总结



  •     由于寄存器存在亚稳态问题,所以在进行异步传输的时候,应注意对传输数据以及控制信号进行同步处理。
  •     在模块划分时,尽量将各个模块划分为同步时序模块,而用单一的同步模块(synchronizer)来完成跨时钟域的同步,以便使设计尽量简单。
  •     在同步模块(synchronizer)中应注意信号的命名,一般如该信号属于xclk时钟域,则在信号名后标明_xclk,以便有效区分不同时钟域的信号。
  •     根据设计的特点选择同步的策略。本文介绍了几种同步的策略,各有特点且实现难易不同,读者在实际的应用中,应注意根据自身设计的特点选择适当的同步策略。如只有少数信号跨时钟域,一般用双锁存器法即可;而如果有大量数据需要高速跨时钟域传输,一般采用异步FIFO;而对于快时钟域向慢时钟域过渡的情况,可以考虑使用结绳法。

2009.4.12 记

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条