>
首页 » 技术文章 » ASIC中的异步时序设计

ASIC中的异步时序设计

作者:杜旭 王夏泉  时间:2006-12-04 22:58  来源:电子设计信息网-www.edires.net
摘要:绝大部分ASIC设计工程师在实际工作中都会遇到异步设计的问题。文章针对异步时序产生的问题,介绍了几种同步的策略。特别是结绳法和异步FIFO的异步比较法,都是比较新颖的方法。

关键词:ASIC;异步时序;MTBF;双锁存器法;结绳法;异步FIFO;异步比较

1引言

在一般的ASIC教程中,大家接触的大都是同步时序的设计,即单时钟的设计。但在实际工程中,纯粹单时钟设计的情况很少,特别是在设计模块与外围芯片的通讯中,跨时钟域的情况经常不可避免。作者在实际工作中常遇到一些异步时序设计的问题,由于最初对异步时序产生的问题估计不足,导致在设计后期不得不进行返工。本文介绍的几种同步策略是在实践中学习摸索的结果。当然,这几种同步方法不可能完全覆盖异步时序设计所涉及的问题。由于篇幅所限,本文主要描述同步策略的核心思想,而不涉及具体的实现。

2问题的产生-亚稳态

2.1异步时序的定义
异步时序设计指的是在设计中有两个或两个以上的时钟,且时钟之间是同频不同相或不同频率的关系。而异步时序设计的关键就是把数据或控制信号正确地进行跨时钟域传输。

2.2亚稳态
每一个触发器都有其规定的建立和保持时间参数,在这个时间参数内,输入信号在时钟的上升沿是不允许发生变化的。如果在信号的建立时间中对其进行采样,得到的结果将是不可预知的,即亚稳态。我们还可以从图1来理解亚稳态问题。触发器中包含两个双稳态元件(如S-R锁存器),其特性曲线如图1所示。除了两个稳定的状态(0和1)以外,令人吃惊的是,还有一个状态也满足双稳态元件的方程,这个状态既不是0状态,也不是1状态,也就是我们所说的亚稳态。

图1亚稳态问题

下面从触发器的物理特性方面对亚稳态进行描述。触发器进入亚稳态的时间可以用参数MTBF(mean time between failures)来描述,MTBF即触发器采样失败的时间间隔,其计算公式为:
MTBF=e(tr/τ) /T0f a
式中,tr为分辨时间(从时钟沿开始),τ、T0为触发器参数,f是采样时钟频率,a为异步事件触发的频率。
对于典型的0.25μm工艺ASIC库中的一个触发器,取以下参数:
tr=213ns, τ=0.31ns, T0=9.6as,
f=100MHz, a=10MHz, MTBF=2.01d
即触发器每两天便可能出现一次亚稳态。
由上面的推导可知,一个信号(a—clk)在过渡到另一个时钟域(b—clk)时,如果仅仅用一个触发器将其锁存,那么用b—clk进行采样的结果将可能是亚稳态。这也是信号在跨时钟域时应该注意的问题。

3同步策略1—双锁存器法

为了避免上述亚稳态问题,就应当使参数MTBF尽可能的大,通常采用的方法是双锁存器法,即在一个信号进入另一个时钟域之前,将该信号用两个锁存器连续锁存两次,最后得到的采样结果就可以消除亚稳态问题,如图2所示。

图2双锁存器法解决亚稳态问题

当使用了双锁存器以后,b—dat2的MTBF可由下式得出:
MTBF=e(tr/T)/T0fa×e(tr/τ)/T0f
如果我们仍然使用上一节所提供的参数,则b—dat2的MTBF为9.57×109(years)。由上述结果可以看出,双锁存器法可以消除亚稳态问题。

4同步策略2—结绳法

细心的读者也许会发现,在上面的例子中,如果a—clk的频率比b—clk频率高,可能会出现因为dat变化太快而使b—clk无法采到的问题。即在信号从快时钟域向慢时钟域过渡的时候,如果信号变化太快,慢时钟将可能无法对该信号进行正确采样。所以,在使用双锁存器法的时候,应该使原始信号保持足够长的时间,以便另一个时钟域的锁存器可以正确地对其进行采样。针对上述问题,介绍一种安全的跨时钟域方法:结绳法,如图3所示。因为“结绳法”适合任何时钟域的过渡(clk1和clk2的频率和相位关系可以任意选定),所以没有标明两个时钟坐标。

图3“结绳法”波形示意图

图3中,标明—clk1的信号表示该信号属于clk1时钟域;同理,标明—clk2的信号表示该信号属于clk2时钟域。在两次src—req—clk1之间被src—vld—clk1“结绳”(pulse2toggle),在将src—vld—clk1用双锁存器同步以后,将该信号转换为dst—req—clk2(toggle2pulse)。同理,用dst—vld—clk2将dst—req—clk2“结绳”,dst—vld—clk2表明,在clk2时钟域中,src—dat—clk1已经可以进行正确采样了。最后,将dst—vld—clk2转换为dst—ack—clk1(synchronizerandtoggle-pulse),dst—ack—clk1表明,src—dat—clk1已经被clk2正确采样了,此后,clk1时钟域就可以安全地传输下一个数据了。可以看出,“结绳法”的关键是将信号结绳以后,使其保持足够长的时间,以便另一个时钟可以正确地采样。

图4描述了“结绳法”具体的实现方法。从图中可以看出,结绳法的实现主要包括三个基本单元: Pulse-Toggle, Synchronizer和Toggle-Pulse。

图4“结绳法”实现图

其中,Pulse-Toggle模块负责将两个脉冲信号“结绳”,即将单脉冲信号延长;Synchronizer模块是用双锁存器法将得到的信号过渡到另一个时钟域;Toggle-Pulse模块与Pulse-Toggle的功能相对应,即将延长的脉冲信号还原为单脉冲,这里用到了异或门。整体的设计思想为:用Pulse-Toggle将信号延长;用Synchronizer过渡;用Toggle-Pulse还原,以保证另一个时钟域可以正确采到,而接收方用相反的流程送回响应信号。

结绳法可以解决快时钟域向慢时钟域过渡的问题,且其适用的范围很广。但是,结绳法实现较为复杂,特别是其效率不高,在对设计性能要求较高的场合应该慎用。

5同步策略3—异步FIFO

在有大量的数据需要进行跨时钟域传输且对数据传输速度要求比较高的场合,一般采用异步FIFO。异步FIFO即用一种时钟写入数据,而用另外一种时钟读出数据,其中这两个读写时钟是异步的。不管是何种类型的FIFO,其关键点是产生读、写地址和空、满的标志。好的FIFO设计的基本要求是:写满而不溢出,能读空而不多读。一个异步FIFO一般由以下部分组成:
1.储器:作为数据的存储器;
2.逻辑部分:负责产生写信号和地址;
3.逻辑部分:负责产生读信号和地址;
4.址比较部分:负责产生FIFO空、满的标志。

其中,如何正确地产生FIFO空、满的标志,是异步FIFO设计成败的关键。本文着重介绍一种新颖的地址比较方法。异步FIFO中常用的“格雷码”以及读写逻辑的实现,本节中不再赘述。

图5异步FIFO结构图

一般的异步FIFO都是先将某一个地址与另一个地址同步以后再进行比较,这种方法一般效率不高。本节介绍一种异步比较的方法,如图6所示。

图6异步比较的时钟域

我们注意到,当rptr与wptr进行异步比较时,由于rptr的变化(assert),才产生aempty—n(FIFO空标志),即aempty—n的下降沿是与rptr同属一个时钟域的;同理,由于wptr的变化(assert),使aempty—n无效(de2assert),即aempty—n的上升沿与wptr同属一个时钟域。

现在,我们就可以利用上述理论基础来实现从aempty—n到rempty的过渡。其中,rempty是属于rclk时钟域的。由于aempty—n的下降沿是属于rclk时钟域的,所以我们可以用它来作为rempty的复位信号,而aempty—n的上升沿是属于wclk时钟域的,所以我们用双锁存器法将其过渡到rclk时钟域,最后得到的rempty信号就属于rclk时钟域。同理,可以得到wfull信号。图7是异步比较器的具体实现方法。

图7异步比较实现方案

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

6总结

本文着重介绍了异步时序产生的问题及原因和基本的解决方法; 同时, 还介绍了两种同步的策略。异步时序设计的基本思想可总结如下:
1) 由于寄存器存在亚稳态问题, 所以, 在进行异步传输的时候, 应注意对传输数据以及控制信号进行同步处理。
2) 在模块划分时, 尽量将各个模块划分为同步时序模块, 而用单一的同步模块( synchronizer) 来完成跨时钟域的同步, 以便使设计尽量简单。
3) 在同步模块( synchronizer) 中, 应注意信号的命名。一般来说, 如该信号属于xclk 时钟域, 则在信号名后标明—xclk, 以便有效地区分不同时钟域的信号。
4) 根据设计的特点选择同步的策略。

文中的几种同步策略各有特点且实现难易不同。在实际的应用中, 应注意根据自身设计的特点选择适当的同步策略。如只有少数信号跨时钟域, 一般用双锁存器法即可; 如果有大量数据需要高速跨时钟域传输, 一般采用异步F IFO; 而对于快时钟域向慢时钟域过渡的情况, 则可以考虑使用结绳法。

相关推荐

AMD成立半订制业务部门 抢客制化ASIC市场

AMD  ASIC  2013-05-13

超低噪声混合信号芯片 助力医疗CT性能显著提升

西门子  ASIC  CT  2012-11-15

泰克荣获ARM TechCon软件类“最佳产品奖”

泰克  示波器  ASIC  2011-11-10

博世授予ADI 公司2009-2010年度最佳供应商称号

ADI  ASIC  2011-08-22

基于FPGA的芯片设计及其应用

FPGA  ASIC  2011-06-17

ASIC设计转FPGA时需要注意的几点

FPGA  ASIC  2011-05-23
在线研讨会
焦点