自适应时钟技术在芯片设计与验证中的应用(二)(转)
笔者参与了国内一款高性能DSP芯片的研发工作,同时还负责该芯片的调试系统设计,基于自适应时钟的基本原理,提出了双向同步自适应时钟技术。该时钟技术具有如下优点:
(1)对TCK和TCK_RET分别进行同步,确保JTAG信号双向通信的可靠性和稳定性;
(2)TCK信号由硬件算法产生,可以根据应用需要灵活调整信号特征,从而解决了芯片设计中软/硬件协同验证的时序匹配问题;
(3)在没有JTAG通信的间隙能够主动关闭TCK信号,降低系统功耗,减小板级的信号干扰;
(4)由于仿真器时钟域和处理器时钟域之间的异步关系,产生TCK时钟信号时会引入抖动(Jitter)。该抖动对系统是有益的,它会对TCK信号引入扩频调节,从而降低电磁干扰(Electro Magnetic Interference,EMl),提高系统的电磁兼容性(Electro Magnetic Compatibmty,EMC)。
2 双向同步自适应时钟技术
随着嵌入式处理器性能的增强,仿真器需要处理的在线调试功能也随之增强,因此仿真器本身也需要工作在比较高的时钟频率下,从而能够在有限的时间内处理足够多的调试信息。通常使用JTAG时钟信号TCK的频率相对比较低,在1~20 MHz之间,已经远远无法满足仿真器的工作需要。双向同步自适应时钟机制能够保证仿真器和处理器都工作在各自的高频时钟下,同时还能够实现可靠的JTAG 信号传输。
2.1 原理
双向自适应时钟技术的原理如图3所示。

仿真器工作在JTAG clock时钟域,其频率为fJTAG;所有由仿真器发送给处理器内核的JTAG信号都由该时钟域的逻辑产生,并与TCK对齐,TCK的频率为fTCK。处理器内核工作在Core clock时钟域,其频率为fCore;JTAG clock,TCK和Core clock这三组时钟信号之间通常满足下述基本关系:

由于TCK和TCK_RET信号在两个异步时钟域之间传输,为了消除跨时钟域信号传输可能带来的不定态导致系统失效,处理器内核和仿真器都需要分别对这两个信号进行同步和采样,即双向同步。同步器采用2级D触发器级联构成,这种结构可以保证系统在108s(大约3年)内失效的次数少于1次,从而解决绝大部分跨时钟域信号的不定态问题。如果在特殊情况下需要进一步提高系统的稳定性,可以继续增加D触发器的级联数目,但是这样做会增加系统的延迟,因此需要在性能和稳定性之间进行权衡。
TCK信号经过Core clock时钟同步之后产生TCK_RET信号,反馈给仿真器,从而实现自适应时钟技术。同时,由处理器内核向仿真器发送的JTAG信号(例如TDO)与 TCK_RET信号对齐。TCK_R和TCK_F可作为Core clock时钟域的门控信号,分别在TCK的上升沿或者下降沿使能处理器内核对JTAG信号进行采样或处理。
TCK_RET信号被JTAG clock时钟同步。TCK_RET_R表示采样到TCK_RET的上升沿,TCK_RET_F表示采样到TCK_RET的下降沿。这两个信号送给TCK 时钟产生逻辑,用来根据当前TCKRET信号的接收情况产生下一个TCK信号及相关的JTAG控制和数据信号。
2.2 性能分析
双向同步技术引入了两个同步器,分别用来确保TCK和TCK_RET信号能够被异步时钟正确采样,因此各自增加了一定的系统延迟。同步TCK信号引入的延迟为:

此外,产生TCK信号的逻辑电路还会有一定的额外延迟(延迟大小与采用的算法复杂度相关):

从式(9)可以看到,在m不变的情况下,提高fCore或者fJTAG都能够提升TCK的最高频率。当k>1时,随着k值增加,主要由fJTAG时钟域的逻辑电路决定;当k≤1时,随着k值的减小,主要由fCore时钟域的逻辑电路决定。
要保证图3中Core clock时钟域逻辑电路能够在TCK_RET信号上升沿采样到稳定的数据,JTAG信号必须满足图4中的关系。

同理,对于JTAG clock时钟域的逻辑也一样,因此必须满足下述的关系:
式中:n≥1,一般情况下只需保证n=1即可。将式(4)~式(6) 和式(8)代入上面的不等式,化简后可得式(9),成立的条件为:
在DSP设计中,fCore=500 MHz,fJTAG=100 MHz,并假设m=1,代入式(9)计算可得TCK信号的最高频率大约为10.9 MHz。
