多时钟域下数据传输的同步探讨

2014-04-29 00:44赵文晗
电子世界 2014年19期

【摘要】本文针对多时钟域下的片上网络在跨时钟域传输数据时所遇到的问题进行分析,并探讨其解决的方法。同时对异步时钟的数据同步的几种主要方法(同步器,握手传输,格雷码传输等)进行仿真验证和功能比较。

【关键词】片上网络;多时钟域;数据同步法

1.引言

片上网络是一种新的片上互连结构。使用片上网络作为片上互连结构的微系统芯片称为片上网络系统。由于片上网络本身就是全局异步而局部同步的,片上网络中存在多个时钟域,不同时钟域之间采用的是异步通信。数据在不同时钟域之间传输时,由于时钟频率的不同,势必会出现亚稳态等数据传输错误的问题。

2.亚稳态现象

当触发器或锁存器无法在时序要求的规定时间段内达到一个确定的状态 [1]时就会出现亚稳态,引起整个系统的功能混乱,传输的数据也会出现复写现象甚至直接丢失数据。

亚稳态出现后,也就意味着触发器的输出达到一个稳定的低电平或者高电平状态所需要的时间大于从时钟到输出的时间。触发器的输出在进入亚稳态后的这段时间内将在低电平0和高电平1之间来回一段时间。此时既无法预测何时才能将输出稳定在某一正确的电平上,也无法预测输出电平。这段时间称为判决时间(Resolution Time),这之后输出与输入没有必然的联系,最后输出的是0还是1,结果都是无法预测的。

亚稳态还会严重破坏系统的稳定性。由于输出的信号在稳定前出现的固定的某一电压值,毛刺或振荡可能会导致逻辑上的误判。更严重的是,亚稳态所产生的数据传输失真还会使下一级也产生亚稳态,导致连锁反应,即亚稳态的传播,进而引起整个系统的功能混乱,扩大故障面。

另外,处在亚稳态时,电源干扰,环境噪声,工作温度等细微的扰动都有可能造成更恶劣的状态,这时系统数据传输的延迟增大,状态输出错误。

究其因,亚稳态主要是由于保持时间Thold或建立时间Tset在第一级的触发器中发生冲突所导致的。

对于使用上升沿触发的触发器来说,Thold就是触发器的数据端数据在时钟上升沿到来之后能够继续保持稳定的最小时间[2]。而Tset则是触发器的数据端数据在时钟的上升沿到来之前保持稳定的最小时间。数据的Thold与Tset都是触发器的基本参数。同时触发器还是数字电路设计中最常用的基本时序元件。为确保触发器的正常工作以及操作的可靠性,输入的信号必须在其工作过程中的触发器的Tset之前保持稳定,并且一直持续到触发器的Thold才能发生改变,这就是必须满足的数据建立时间与保持时间的约束。如果这种约束得不到满足(如时序的余量不够),使电路中的输入电平无法上升或下降到所需要的逻辑电平1或0,触发器就会进入到某个不确定的状态——亚稳态[3]。如图1所示:

图1 亚稳态产生示意图

图1中,tres为判决时间,tnet是从第一级触发器输出端到第二级触发器输入端的延时,tw表示的是触发器的输入数据变化可能导致亚稳态发生的窗口。这个窗口由Thold和Tset两部分组成。tco为输出相对于时钟沿的一个延迟时间,th是触发器Thold ,ts表示的是触发器的Tset。

3.多时钟域数据传输的同步方法讨论

当片上网络系统中出现有两个甚至两个以上的非同源时钟时,传输数据的Tset和Thold都很难得到保证。通常是对多时钟域下各个模块之间的接口部分做同步化处理,这样才能更好的避免亚稳态的出现,这就要求同步化所有的非同源时钟。

常用的同步化方案很多,而且各有特点。针对不同的传输数据类型,多时钟域下的数据传输应该采用不同的传递方案,以尽量满足可靠传输的需要。

3.1 同步器

在异步时钟域之间,为避免亚稳态的发生,通常是使用一系列的寄存器链来实现同步,这类寄存器链被称作同步器。其中寄存器到寄存器路径上的时序裕量可以为潜在的亚稳态到达电路的其他部位提供一些判决时间,以便能达到稳定的值。这可防止第一级寄存器中出现的亚稳态在下一级寄存器里传播。

一般来说,同步器的功能是对异步的输入信号进行采样,使其产生的输出信号能够满足系统对建立时间和保持时间的要求,进而抑制住亚稳态对电路的影响。

对于控制信号的多时钟域数据传输来说,比较常用的同步策略是两级触发器同步,即一个信号要进入下一个时钟域之前,先用下一个时钟域的时钟进行两次寄存。这种设计也叫做双跳技术,是其他同步器的基础。在设计时,应注意把这两个寄存器放置的尽可能的靠近,以确保两者之间的时滞最小。从上个时钟域传来的异步数据不需要通过时钟域间的任何组合逻辑,在离开该时钟域后就直接进入到两个时钟域之间的同步器中。这是一个不容忽视的条件。因为数据在通过时钟域之间的组合逻辑时,很有可能会产生各种毛刺等,而这些毛刺很容易被同步器中的寄存器感应到,甚至如果有满足保持时间/建立时间的约束的毛刺,同步器中的寄存器很有可能会把毛刺当做正常传输的数据而进行数据采集,这样在发送给下一个时钟域时会得到一个完全错误的数据。如图2所示。

图2 两级同步器

在图2中,左边所示为异步的输入端,经过两级触发器的采样后,在右边输出与时钟clock2同步。此时经过两级触发器后产生的同步信号已经基本没有亚稳态了[4-6]。

其原因是,经过一个时钟周期后,即使在第一个触发器的输出端存在有亚稳态,但在第二个触发器输入端的输入电平,其尚未稳定的概率非常小,因此在第二个触发器输出端基本不会产生亚稳态。

可见,用两级寄存器采样可有效地减少亚稳态继续传播的概率。但是并不能完全保证第二个触发器输出的电平就是正确的电平。如上文所述,经过判决时间(Resolution Time)后的寄存器输出电平是一个不确定的稳态值,即是说明两级触发器的处理方法不能完全排除错误的采样。这就要求系统对采样错误能够有一定程度的容忍度,比如有些系统本身就对错误的采样不敏感。但是对有些比较敏感的系统,可以使用纠错编码的手段完成错误采样的纠正。

同步器使用的触发器一般是D触发器。使用同步器的目的是采样异步的输入信号,并产生同时满足同步系统Tset和Thold要求的输出信号。

在涉及多时钟域的数据传输问题时,设计的基本思路只能是尽可能的减少亚稳态出现的概率。因为要想完全消除亚稳态是不可能的。

如果同步器的设计无法满足实际的需求,为了给电路从亚稳态中恢复过来提供时间,可适当的增加一些同步寄存器链中的寄存器。一个有效的数据信号在同步器中只需要通过两个时钟周期就可以达到下一个时钟域。在设计时还要考虑同步延迟对跨时钟域的信号时序造成的影响,因同步器降低亚稳态对电路的影响是以牺牲时间为代价的。

使用上述两级同步器法的缺点是一般只应用于同步控制信号,例如单根的数据传输,而且只适合一些不太追求性能的场合。当进行多位的总线数据传输时,每一个数据传输到下一寄存器的时间都无法同步。于是在通过二级寄存器同步后,很有可能出现一些数据与前一个时钟域的时钟同步时,另一些数据则与当前时钟域的时钟同步的情况。这样传输数据时就会造成数据传输失真,并出现时钟的偏移。如使用两级同步器方法从快时钟域向慢时钟域进行传输数据,就会丢失数据。因此这种方法只能用于从慢时钟域向快时钟域传输数据。但如是从慢时钟域向快时钟域传输单根的数据信号,上述方法则是最适用的,电路结构和代码的编写都相对比较简单有效,并且传输的效率高。

3.2 握手传输

握手传输是一种通用且简单的同步策略,是通过握手信号来进行不同时钟域之间的数据传输的一种方法,能有效的实现总线数据的跨时钟域通信。这种方法非常广泛的应用于各类通信系统中,能在避免亚稳态的同时正确的捕获总线数据。

使用握手传输处理跨时钟域下的数据传输时,双方都要先等待对方的信号响应[7-9]之后才能中止或声明各自的握手信号,并且需要分别用脉冲检测的方法对双方的握手信号进行同步。

假设用握手传输的方式从系统X向系统Y传送数据,Req和Ack分别是这两个系统使用的握手信号。但由于这两个系统发送的握手信号,都需要使用另一个系统的时钟来采样,这样两个系统的保持时间和建立时间都无法得到满足,这样就会导致亚稳态的出现。因此这种过于直接的处理跨时钟域数据传输的方法是很容易产生亚稳态的。

这时就需要把两个异步时钟域的握手信号在自己的本地时钟域中先进行同步,该同步通常是使用两级的触发器,这样才能有效的避免亚稳态的出现。做法是,只需对双方的请求信号和应答信号分别进行同步和脉冲检测,就能使每个时钟域都清楚的知道对方处在什么状态。全部的时序是:在第一个时钟域中最多五个时钟周期,再加上下一个时钟域最多六个时钟周期。但是信号经过一个时钟域要花费两个时钟周期的时间,而控制信号的握手检测会耗费双方较多的时间。由此,要完成所有的交互,整个过程将会花费很多的时钟周期,这反而降低了传输的速率。

握手传输弥补了同步器传输的不足,满足了从快时钟域向慢时钟域进行的传输,而且多位数据的传输也可以完成。但是,该方法最大缺点就是延迟。传输数据时用到的控制信号越多,数据传递过程中的延迟就越大。并且此法牺牲了快时钟域的性能,很难实时传输数据,往往传输一次数据就要用到多个时钟周期,这样导致的后果是降低了整个系统的效率。因此,该方法适用于数据的可靠性较高、系统结构比较简单、从快时钟域向慢时钟域进行多位数据的传输、而对传输的性能要求不高等情况。

3.3 格雷码传输

当读写地址指针在异步时钟域间传输时,我们采用格雷码数据传输的方式,把二进制形式的读写地址指针转换为格雷码形式的指针,这样就能够进一步减小亚稳态发生的概率。

格雷码数据传输主要是希望在传输数据递增或递减时,利用格雷码来保证只有一位数据进行翻转。这样再通过同步器进行跨时钟域数据传输时就不会有数据发生错误。格雷码数据传输在处理跨时钟域数据传输时利用了格雷码对同步器传输方法进行了优化。

格雷码数据传输先将二进制的数据均转换为格雷码后再进行跨时钟域数据传输,数据通过多位的触发器、同步器被直接传输至下一个时钟域,在下一个时钟域里再将数据从格雷码还原成原来的二进制,就可以继续使用了。

同步多个异步的输入信号时,据实践可知,同步一个异步信号的几率远远小于出现亚稳态的几率。而格雷码是最小的距离码,在递增或递减时只需要改变相邻码元中的一位。产生的地址指针如果使用格雷码来递增或递减,只需用到一个同步器发挥同步作用,每次也就只需要改变其中一位。因此有着较小的出现亚稳态或数据错误的概率。这样,读/写地址的多时钟域数据传输往往采用格雷码,可以十分有效的减少亚稳态的发生,提高同步的效果。

由于过多的计数器位数会大大增加转化计数值的电路规模,因此格雷码的方法只能应用于位数不是很高的二进制连续递增或递减的计数器的传输。传输速度较高,而且结构简单。同时,该方法也适合从慢时钟域向快时钟域传输数据的情况。

4.多时钟域同步方法的对比仿真验证

此处仿真均使用Multisim 10.0作为仿真软件。

4.1 两级同步器仿真

本文在Multisim 10中进行原理图绘制时,Multisim 10不似PSPICE的仿真那样有专门的时钟发生器8284A。所以使用了信号发生器发送方波以模拟时钟信号。此电路需要三块D触发器芯片,本文选择了74HC74的D触发器芯片。由于74HC74是维持阻塞D触发器,即触发器除了数据输入端,时钟输入端之外,还带有SD—L置1端和RD—L复位置0端。SD—L和RD—L均为低电平有效,且不依赖于时钟输入。因此,要使D触发器正常工作,就要把SD—L和RD—L接高电平。

设计方案如图3所示。

在多时钟域下片上网络的实际应用中,时钟的单位几乎都是以MHz计的,此处为了方便于仿真及结果的显示,采用以Hz为单位的信号进行时钟的仿真。本文先以测试信号200Hz,第一个时钟600Hz,第二个时钟400Hz为基础仿真。

将测试信号data输入第一个触发器,与第一个时钟aclk进行同步,得到同步信号adat。图4即是与第一个时钟同步的波形图。显示了与之同步时的输入输出。

图4 第一个时钟同步波形图

之后,与第一个时钟同步后的信号adat被送入第二级的两个触发器,与第二个时钟bclk进行同步。最后得到同步信号bdat2。图5即是与第二个时钟同步的波形图。显示了同步信号adat,第二个时钟bclk以及最后同步的输出bdat2。

图5 第二个时钟同步波形图

由图5的仿真可看出,adat的脉冲必须比bclk的脉冲宽,否则同步器不会接收到正确的信号,也不能进行正常的仿真。图6即是在上图的数据基础上进行了修改,使adat的脉冲宽度小于bclk的脉冲宽度,由此得到的结果,可以看出,此时的同步是失败的。

图6 adat 脉冲宽度小于bclk 脉冲宽度的同步波形图

对片上网络来说,一般都是以MHz作为其时钟频率单位。因此再对电路赋以高频率的信号进行仿真。测试信号,第一个同步的时钟和第二个时钟分别取2MHz,6MHz,4MHz的值。图7即是在逻辑分析仪里进行的仿真。同时包括了第一次同步和第二次同步的结果。

图7 高频率仿真结果

由图7可知,在高频率下的同步不是很规范,和低频率的相比有时间上的延时。但是总的来说是完成了同步的。

除了有两级同步器这个基本方法外,还有锁定同步器和结绳同步器两种改进的同步方法。

4.2 锁定法仿真

锁定法仿真相对两级触发器仿真更具针对性。锁定法是专门针对从快时钟域向慢时钟域过渡的信号。以测试信号来说,由于两个时钟域之间的频率快慢差异太大,当它从快时钟域传递到慢时钟域时,过快的变化,可能会导致采样无法正常进行。

对于同步锁高电平1的锁定法电路来说,使用了二选一的数据选择器,在慢时钟域采样来自快时钟域的测试信号前锁定测试信号。而给快时钟域输入一个理应是高电平的值,以此检验是否能正确的采样。直至输出稳定的高电平,证明电路稳定,采样能正常进行后,再解除锁定,送入测试信号完成同步。如图8所示。

本文采用74HC157的四路二选一数据选择器。将理应是高电平的一端输入数据选择器的1A端,而需要同步的测试信号输入1B端。而控制选择端则是由高电平和一个开关连接。经试验证明,将开关断开时,数据选择器输出1A端的数据。而闭合开关使之与高电平连通时选择1B端。其余的触发器均选择74HC74的D触发器芯片。同样要将SD—L置1端和RD—L复位置0端接上高电平,以使电路正常运行。

图8 同步锁高电平1电路原理图

图9是此电路的电路图。

本文选择模拟输入200Hz的测试信号data和2KHz的第一个时钟信号以及300Hz的第二个时钟信号。由于刚开始时锁定了测试信号,所以一开始输入的是data0。图10即是此信号与快时钟的同步。显示了同步时的输入输出波形。

图10 锁定信号下的快时钟同步

如图11所示,刚开始data0并没有获得应得的高电平,而是不稳定的波形,直到稳定后才输出正确的波形。

之后,一方面dat1通过了慢时钟的两个触发器得到了输出,另一方面,这个输出又经过两个快时钟的触发器返回,与第一个快时钟输出dat1的相反值进行求或运算。得到那个理应是高电平的值继续送入快时钟中,直到输出应得的高电平。图11是锁定信号时与慢时钟的同步。

图11 锁高信号下的慢时钟同步

可见,一开始得到的输出并不是应得的高电平,直到稳定后才会有高电平输出。

输出稳定的高电平后,即可改变控制选择端——选择输入要同步的测试信号data。如图12所示:

图12 稳定后的快时钟同步

与快时钟同步后的信号dat1继续与慢时钟进行同步。图13即为dat1与慢时钟bclk同步的波形。

图13 稳定后的慢时钟同步

下面对此电路进行高频率下的仿真。测试信号取2MHz,快慢两个时钟分别取20MHz和3MHz。图14是锁定信号,输入data0时的波形图,包括了第一次同步和第二次同步的输入输出波形。

图14 高频率下锁定信号时的仿真结果

而图15则是稳定输出高电平后释放锁定,输入data时的仿真结果。

图15 高频率下释放信号后的仿真结果

如上所述,既然有同步锁高电平1电路,就会有同步锁低电平电路。其原理图(图16)和电路图(图17)的基本原与和同步锁高电平1电路一样,只不过在锁定时,不是通过或门输入高电平,而是用与门输入低电平来进行检验。

此电路的仿真数据均采用同步锁高电平1电路的数据。由于刚开始会出现采样错误,所以此电路同样是先锁定测试信号,即输入理应是低电平的信号data0。

若是data0以及输出都正确的输出了低电平,那么便表示开始了正确的同步。图18是data0信号输入快时钟时的输入输出波形。

图18 锁定信号下的快时钟同步

图19是将上图的输出dat1输入到慢时钟域时得到的输入输出波形,可以看出,稳定后,其输出dat2最终趋于了低电平。

得到稳定的低电平输出后,就可控制数据选择器,选择测试信号输入。

图19 锁定信号下的慢时钟同步

图20是改为测试信号data输入后,通过快时钟aclk的输入输出波形。图21是经过了快时钟同步后的输出dat1通过慢时钟bclk同步时的输入输出波形。

图20 稳定后的快时钟同步

图21 稳定后的慢时钟同步

用与同步锁高电平1电路相同的数据进行高频率下的仿真。即把2MHz、20MHz、3MHz等分别赋值给测试信号——快时钟和慢时钟。图22和图23分别是电路在一开始锁定信号时和释放锁定后的仿真波形。包括了两次同步时的输入输出波形。

图22 高频率下锁定信号时的仿真结果

图23 高频率下释放信号后的仿真结果

同步低电平0电路和同步锁高电平1电路一样,都防止了测试信号从快时钟域过渡至慢时钟域时所出现的错误采样。而锁定测试信号,利用一个已知的高电平或低电平,去检测电路,直至其稳定,才将测试信号送入电路,就可避免不必要的损失。

从二者在高频率下的仿真可见,这两个电路和两级触发器一样都有一些延时。但是它们都很正确的完成了对信号的仿真,且没有使用过多的触发器。

4.3 结绳法仿真

结绳法同样是解决测试信号从快时钟域至慢时钟域时,信号变化过快导致第二个时钟无法正确采样到的问题。但与锁定法不同的是,结绳法是在慢时钟采样信号时,想办法使信号维持更长的时间,以便慢时钟可以正确的采样。

如图24所示,在时钟aclk处,data输入数据选择器的控制端,通过data的脉冲不断选择高电平和低电平,形成新的波形,即被“结绳”,延长了信号,确保下一个时钟能正确采样。之后,送至两个D触发器处,使其自然的被时钟bclk同步。接着利用异或门,把结绳后的脉冲还原,再次送入时钟bclk中被“结绳”,其后,再在时钟aclk中同步,最后还原。根据所得波形判断是否开始了正确的采样。如图25所示。

本文采用200Hz,占空比百分之二十的信号输入,两个快慢时钟分别为1KHz和400Hz。电路绘制时用到了两片74HC157的四路二选一数据选择器和若干片D触发器。电路中还用到了反相门和异或门。图26是信号输入时钟aclk时被“结绳”的波形。

图26 结绳法原理波形图

图27是data,out2,out1和out1输入至时钟bclk结绳后的Q2的波形。就data和out2的对比来看,out2刚开始不规则,规则后,和最开始输入的数据data是一样的,这样便可判断出data已被正确采样。同样的,out1在最开始也是错误的采样。直到out2正常输出后,out1也开始了正确的采样。

图27 结绳法同步及验证同步波形图

同样的,本文也在高频率下对结绳法进行了仿真。其中,测试信号为占空比10%的2MHz信号,快时钟为10MHz,慢时钟则是4MHz的信号。图28就是结绳法的仿真波形,包括输出以及可验证同步是否正确的信号。

图28 高频率下的仿真结果

可见,在高频率下的仿真和低频率一样,因信号变化太快,在刚开始会出现错误采样出来的波形,直到out2的输出和data信号一致后,就开始了正确的同步。但因结绳法使用了过多的触发器,便很易出现错误导致同步失败。

4.4 握手传输仿真

当几个电路不能预知相互的响应时间时,握手传输法能让数字电路间实现有效的通信。

本文就优于全握手(full-handshake)法的部分握手(partial-handshake)法进行仿真。

部分握手法类型使用的是脉冲同步器。脉冲同步器是将需要同步的信号输入数据选择器的选择控制端,使其对第一个时钟下的D触发器的两个输出Q和Q的相反值进行不断的选择。通过这样的不断选择,产生波形,然后送入第一个时钟进行同步。同步的结果继续进入第二个时钟下的同步器同步。由于通过了数据选择器,送入第一个时钟的信号已经不是原来需要同步的信号了。因此,经过第二个同步器的同步后得到的信号要通过一个时钟的延迟,与自身进行异或才能得到正确结果。

图29是脉冲同步法的原理图。

图29 脉冲同步法原理图

脉冲同步法仿真时采用的是74HC157的四路二选一数据选择器,以及需要将SD—L置1端和RD—L复位置0端加上高电平的74HC74D触发器。其中,数据选择器使输入端低电平有效,需要接地。若是将其置高的话,

所有输出将会被强制置低。图30是脉冲同步法的电路图。

本文对测试信号data,第一个时钟aclk,第二个时钟bclk分别用200H(z20%的占空比)、900Hz和500Hz。

图31即是电路所有输入和输出out的波形图。

图31 脉冲同步法输入输出波形图

可以看出,上图的仿真,测试信号之间的距离并不小。倘若测试信号的脉冲之间相互间隔过近,则最后同步出来的输出信号的脉冲也会紧密相连。因此会导致同步器不能正确的检测出每一个脉冲,甚至把很多个脉冲识别成一个较长的脉冲。图32就是改变测试信号频率为2KHz时得出的波形,显然同步失败。

图32 过紧脉冲测试信号导致同步失败

相应的,本文也对脉冲同步法在高频率下的同步进行仿真。使用的数据为2MHz,占空比为百分之十的测试信号,9MHz的快时钟和4MHz的慢时钟。

图33即是脉冲同步法在高频率下的仿真结果。

图33 高频率下的仿真结果

如图33所示,虽然能进行仿真,但是在片上网络的高频率下很容易因为信号过近的脉冲导致同步器错误的识别,最终致使同步失败。

5.多时钟域同步方法的比较探究

通过上述的仿真可以看到,在同步器法中,两级触发器法可避免一些因为触发器或者门电路引发的错误,过于简单的电路结构使它不能应对较为复杂的同步,只能应用于一些较为简单的基础同步。同时,在同步采样时还必须避免被同步信号的脉冲比时钟脉冲小而导致的同步失败。而锁定法有两种,它们的基本原理都是一样的。为了避免慢时钟无法正确接收信号而选择先将信号锁定起来,直到确定慢时钟能正确同步后再选择送入信号。这样既可清晰明了的判断出同步正确与否,又可及时避免同步采样的错误,还节约了资源。而在高频率的仿真时,除了和两级触发器一样有时间上的延迟,其余都能正确的完成同步。

结绳法主要是用来解决脉冲信号的同步问题。此法通过延长脉冲的维持时间来避免时钟无法正确同步采样的问题。但在判断是否开始正确同步时,并没有锁定法那样的直观明确,且电路过于繁琐,实现较为复杂,效率也不高。

锁定法和结绳法都是针对测试信号从快时钟域到慢时钟域时,变化太快造成的错误采样。结绳法相对来说较繁琐,效率不高,使用时要多斟酌。而对握手传输来说,采用的脉冲同步器虽然没有同步器方法中的结绳法这样繁琐,但是它去掉了判断同步正确与否这个很关键的一环。在之后高频率的仿真中也可看到,脉冲同步法很容易出现同步失败的情况。而且握手传输的过程十分繁琐,每传输一次数据就要对所有控制信号进行操作。即使对整个过程进行简化,也仍然存在较大的耗时。倘若需要传输较多的数据,效率会很低。因此握手传输和同步器法一样,比较适合在跨时钟域传输时处理单根的信号,例如控制信号等。

其实,相比于同步器法和握手传输来说,异步FIFO有更大的适用性。不仅可以同步多位的数据还可以同步没有任何关系的源时钟域和目的时钟域之间的数据交换。对异步FIFO同步的研究将另作专题详细阐述。

参考文献

[1]沈立,等.高速数字设计[M].北京:电子工业出版社,2004,96-105.

[2]Packet Communications Reference Architecture V2.0[EB/OL].http://www.ipcc.org,2003.

[3]彭莉,等.异步FIFO的设计与验证[J].计算机工程与应用,2005(3):98-101.

[4]袁伟,等.多时钟域的异步信号的参考解决[J].现代电子技术,2006(16):136-138.

[5]徐翼,等.异步时钟域的亚稳态问题和同步器[J].《微计算机信息,2008(5):271-272.

[6]杜旭,等.ASIC系统中跨时钟域配置模块的设计与实现[J].微电子学与计算机,2004(6):173-177.

[7]袁伟,等.多时钟域的异步信号的参考解决[J].现代电子技术,2006(16):136-142.

[8]谢修祥,等.异步多时钟系统的同步设计技术[J].电子工程师,2005(5):33-37.

[9]黄隶凡,等.FPGA设计中的亚稳态研究[J].微电子学,2011(2):265-268.

作者简介:赵文晗(1990—),硕士研究生,毕业于电子科技大学,现供职于四川省兴文县安检局。