自適應(yīng)時(shí)鐘技術(shù)在芯片設(shè)計(jì)與驗(yàn)證中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
隨著半導(dǎo)體工藝的迅速發(fā)展,嵌入式處理器和DSP的設(shè)計(jì)越來越復(fù)雜,其開發(fā)調(diào)試工作也日趨重要,因此處理器平臺(tái)提供強(qiáng)大的調(diào)試系統(tǒng)已成為設(shè)計(jì)中必不可少的一部分。
嵌入式處理器調(diào)試系統(tǒng)使用硬件仿真器將調(diào)試軟件與目標(biāo)芯片接連起來。仿真器與PC機(jī)之間通過標(biāo)準(zhǔn)的計(jì)算機(jī)通信接口(以太網(wǎng)、USB、串口等)進(jìn)行通信;仿真器與目標(biāo)芯片之間通過符合IEEEll49.1標(biāo)準(zhǔn)的JTAG(Joint Test AcTIon Group)信號(hào)進(jìn)行數(shù)據(jù)傳輸。隨著處理器和仿真器主頻的不斷提升,傳統(tǒng)的JTAG接口設(shè)計(jì)以其缺乏對(duì)JTAG信號(hào)傳輸進(jìn)行必要的時(shí)序匹配,而無法確保仿真器和目標(biāo)芯片對(duì)JTAG信號(hào)進(jìn)行穩(wěn)定可靠的接收,因此不能滿足高性能嵌入式系統(tǒng)的要求。
在此,提出一種雙向同步自適應(yīng)時(shí)鐘技術(shù),在仿真器與目標(biāo)處理器之間穩(wěn)定可靠地實(shí)現(xiàn)了跨時(shí)鐘域JTAG信號(hào)的雙向時(shí)序匹配,并在此基礎(chǔ)上設(shè)計(jì)了一種TCK時(shí)鐘信號(hào)產(chǎn)生算法,從而解決了調(diào)試系統(tǒng)軟/硬件協(xié)同驗(yàn)證中JTAG信號(hào)交互時(shí)的時(shí)序匹配問題。
1 自適應(yīng)時(shí)鐘技術(shù)
1.1 基本概念
自適應(yīng)時(shí)鐘(Adaptive Clocking)是一種信號(hào)同步技術(shù),其基本原理來源于異步電路設(shè)計(jì)中的自動(dòng)調(diào)時(shí)(SelfTimed)技術(shù),即采用類似應(yīng)答機(jī)制來實(shí)現(xiàn)兩個(gè)不同時(shí)鐘域系統(tǒng)間信號(hào)的可靠傳輸,如圖l所示。
圖l中的發(fā)送與接收系統(tǒng)均工作在各自獨(dú)立的時(shí)鐘域下,并對(duì)異步輸入信號(hào)進(jìn)行采樣同步。發(fā)送系統(tǒng)(Transmit System)以時(shí)鐘clk_t為基準(zhǔn),向接收系統(tǒng)(Receive SySTem)發(fā)送數(shù)據(jù)data_t。接收系統(tǒng)將信號(hào)clk_t采樣同步后產(chǎn)生clk_r,并作為應(yīng)答信號(hào)反饋給發(fā)送系統(tǒng),發(fā)送系統(tǒng)接收到clk_r信號(hào),就認(rèn)為接收系統(tǒng)已經(jīng)完成了數(shù)據(jù)接收或處理,可以繼續(xù)發(fā)送新的時(shí)鐘和數(shù)據(jù)。此外,如果接收系統(tǒng)也需要向發(fā)送系統(tǒng)傳送數(shù)據(jù)data_r,則以clk_r為基準(zhǔn),便于發(fā)送系統(tǒng)采用同樣的機(jī)制接收。
自適應(yīng)時(shí)鐘機(jī)制通常采用多級(jí)同步器實(shí)現(xiàn),一般由幾個(gè)D觸發(fā)器構(gòu)成,如圖2所示。同步器將時(shí)鐘信號(hào)TCK同步到內(nèi)核時(shí)鐘域。同步器的級(jí)數(shù)Ns通常與具體的器件相關(guān),一般取值為3或者4。TCK_RET來自最后一級(jí)D觸發(fā)器的輸出,作為TCK的“應(yīng)答”信號(hào),反饋給調(diào)試系統(tǒng)。
TCK信號(hào)頻率的理論最大值可以根據(jù)內(nèi)核時(shí)鐘頻率和Ns的值,由下式簡(jiǎn)單計(jì)算得到:
自適應(yīng)時(shí)鐘協(xié)議是一種通過目標(biāo)系統(tǒng)來控制TCK速率的機(jī)制,這種機(jī)制的優(yōu)點(diǎn)在于它能夠把所有的信號(hào)傳輸延遲(包括JTAG電纜引入的延時(shí))都考慮在內(nèi),從而避免了由于傳輸延遲帶來的接收數(shù)據(jù)損壞,有效提高系統(tǒng)性能。
自適應(yīng)時(shí)鐘的另一個(gè)優(yōu)點(diǎn)是可以使仿真器工作在最優(yōu)的TCK時(shí)鐘頻率下。如果仿真器支持可變的TCK頻率,但沒有使用自適應(yīng)時(shí)鐘技術(shù),用戶就必須通過實(shí)驗(yàn)來設(shè)置TCK的最高工作頻率和穩(wěn)定工作頻率。
自適應(yīng)時(shí)鐘的第三個(gè)優(yōu)點(diǎn)是如果芯片內(nèi)核時(shí)鐘也是可變的,那么TCK_RET信號(hào)也會(huì)在工作時(shí)隨之變化,從而保證傳輸數(shù)據(jù)能夠隨時(shí)被仿真器正確同步并采樣。
1.2 研究背景
目前自適應(yīng)時(shí)鐘技術(shù)主要用于嵌入式處理器芯片的在線仿真器(In-Circuit Emulator,ICE),簡(jiǎn)稱仿真器。仿真器可以為開發(fā)人員提供嵌入式處理器的實(shí)時(shí)調(diào)試和性能微調(diào)功能,該系統(tǒng)通過符合IEEE1149.1標(biāo)準(zhǔn)的JTAG接口與芯片內(nèi)部邏輯進(jìn)行數(shù)據(jù)交換。
ARM公司最先在其嵌入式處理器的仿真器EmbeddedICE-RT中采用了自適應(yīng)時(shí)鐘技術(shù)。最近,TI公司也在其0MAP系列嵌入式處理器的仿真器Blackhawk JTAG Emulator中采用了自適應(yīng)時(shí)鐘技術(shù)。它們的自適應(yīng)時(shí)鐘都基于觸發(fā)器-反相器法,如圖2所示。在采樣TCK_RET信號(hào)時(shí),使用一個(gè)雙邊沿D觸發(fā)器(D-type Flip-Flop,DFF),這樣可以避免最終產(chǎn)生的TCK時(shí)頻率被降低一半。
觸發(fā)器-反向器法自適應(yīng)時(shí)鐘技術(shù)僅對(duì)TCK信號(hào)進(jìn)行同步,并沒有對(duì)TCK_RET信號(hào)同步,因此TCK信號(hào)容易產(chǎn)生不定態(tài)輸出,從而導(dǎo)致整個(gè)系統(tǒng)失效。此外,TCK信號(hào)的產(chǎn)生模式?jīng)]法由仿真器控制,因而靈活性差,適用范圍窄,并且在沒有JTAG信號(hào)傳輸時(shí)TCK信號(hào)無法關(guān)斷,這不僅增加了系統(tǒng)功耗,而且也增加了板級(jí)JTAG信號(hào)間的干擾。
筆者參與了國(guó)內(nèi)一款高性能DSP芯片的研發(fā)工作,同時(shí)還負(fù)責(zé)該芯片的調(diào)試系統(tǒng)設(shè)計(jì),基于自適應(yīng)時(shí)鐘的基本原理,提出了雙向同步自適應(yīng)時(shí)鐘技術(shù)。該時(shí)鐘技術(shù)具有如下優(yōu)點(diǎn):
(1)對(duì)TCK和TCK_RET分別進(jìn)行同步,確保JTAG信號(hào)雙向通信的可靠性和穩(wěn)定性;
(2)TCK信號(hào)由硬件算法產(chǎn)生,可以根據(jù)應(yīng)用需要靈活調(diào)整信號(hào)特征,從而解決了芯片設(shè)計(jì)中軟/硬件協(xié)同驗(yàn)證的時(shí)序匹配問題;
(3)在沒有JTAG通信的間隙能夠主動(dòng)關(guān)閉TCK信號(hào),降低系統(tǒng)功耗,減小板級(jí)的信號(hào)干擾;
(4)由于仿真器時(shí)鐘域和處理器時(shí)鐘域之間的異步關(guān)系,產(chǎn)生TCK時(shí)鐘信號(hào)時(shí)會(huì)引入抖動(dòng)(Jitter)。該抖動(dòng)對(duì)系統(tǒng)是有益的,它會(huì)對(duì)TCK信號(hào)引入擴(kuò)頻調(diào)節(jié),從而降低電磁干擾(Electro Magnetic Interference,EMl),提高系統(tǒng)的電磁兼容性(Electro Magnetic Compatibmty,EMC)。
2 雙向同步自適應(yīng)時(shí)鐘技術(shù)
隨著嵌入式處理器性能的增強(qiáng),仿真器需要處理的在線調(diào)試功能也隨之增強(qiáng),因此仿真器本身也需要工作在比較高的時(shí)鐘頻率下,從而能夠在有限的時(shí)間內(nèi)處理足夠多的調(diào)試信息。通常使用JTAG時(shí)鐘信號(hào)TCK的頻率相對(duì)比較低,在1~20 MHz之間,已經(jīng)遠(yuǎn)遠(yuǎn)無法滿足仿真器的工作需要。雙向同步自適應(yīng)時(shí)鐘機(jī)制能夠保證仿真器和處理器都工作在各自的高頻時(shí)鐘下,同時(shí)還能夠?qū)崿F(xiàn)可靠的JTAG信號(hào)傳輸。
2.1 原理
雙向自適應(yīng)時(shí)鐘技術(shù)的原理如圖3所示。
仿真器工作在JTAG clock時(shí)鐘域,其頻率為fJTAG;所有由仿真器發(fā)送給處理器內(nèi)核的JTAG信號(hào)都由該時(shí)鐘域的邏輯產(chǎn)生,并與TCK對(duì)齊,TCK的頻率為fTCK。處理器內(nèi)核工作在Core clock時(shí)鐘域,其頻率為fCore;JTAG clock,TCK和Core clock這三組時(shí)鐘信號(hào)之間通常滿足下述基本關(guān)系:
由于TCK和TCK_RET信號(hào)在兩個(gè)異步時(shí)鐘域之間傳輸,為了消除跨時(shí)鐘域信號(hào)傳輸可能帶來的不定態(tài)導(dǎo)致系統(tǒng)失效,處理器內(nèi)核和仿真器都需要分別對(duì)這兩個(gè)信號(hào)進(jìn)行同步和采樣,即雙向同步。同步器采用2級(jí)D觸發(fā)器級(jí)聯(lián)構(gòu)成,這種結(jié)構(gòu)可以保證系統(tǒng)在108s(大約3年)內(nèi)失效的次數(shù)少于1次,從而解決絕大部分跨時(shí)鐘域信號(hào)的不定態(tài)問題。如果在特殊情況下需要進(jìn)一步提高系統(tǒng)的穩(wěn)定性,可以繼續(xù)增加D觸發(fā)器的級(jí)聯(lián)數(shù)目,但是這樣做會(huì)增加系統(tǒng)的延遲,因此需要在性能和穩(wěn)定性之間進(jìn)行權(quán)衡。
TCK信號(hào)經(jīng)過Core clock時(shí)鐘同步之后產(chǎn)生TCK_RET信號(hào),反饋給仿真器,從而實(shí)現(xiàn)自適應(yīng)時(shí)鐘技術(shù)。同時(shí),由處理器內(nèi)核向仿真器發(fā)送的JTAG信號(hào)(例如TDO)與TCK_RET信號(hào)對(duì)齊。TCK_R和TCK_F可作為Core clock時(shí)鐘域的門控信號(hào),分別在TCK的上升沿或者下降沿使能處理器內(nèi)核對(duì)JTAG信號(hào)進(jìn)行采樣或處理。
TCK_RET信號(hào)被JTAG clock時(shí)鐘同步。TCK_RET_R表示采樣到TCK_RET的上升沿,TCK_RET_F表示采樣到TCK_RET的下降沿。這兩個(gè)信號(hào)送給TCK時(shí)鐘產(chǎn)生邏輯,用來根據(jù)當(dāng)前TCKRET信號(hào)的接收情況產(chǎn)生下一個(gè)TCK信號(hào)及相關(guān)的JTAG控制和數(shù)據(jù)信號(hào)。
2.2 性能分析
雙向同步技術(shù)引入了兩個(gè)同步器,分別用來確保TCK和TCK_RET信號(hào)能夠被異步時(shí)鐘正確采樣,因此各自增加了一定的系統(tǒng)延遲。同步TCK信號(hào)引入的延遲為:
要保證圖3中Core clock時(shí)鐘域邏輯電路能夠在TCK_RET信號(hào)上升沿采樣到穩(wěn)定的數(shù)據(jù),JTAG信號(hào)必須滿足圖4中的關(guān)系。
在DSP設(shè)計(jì)中,fCore=500 MHz,fJTAG=100 MHz,并假設(shè)m=1,代入式(9)計(jì)算可得TCK信號(hào)的最高頻率大約為10.9 MHz。
2.3 多芯片級(jí)聯(lián)結(jié)構(gòu)
雙向同步自適應(yīng)時(shí)鐘技術(shù)完全支持IEEEll49.1協(xié)議中定義的各種多芯片間JTAG信號(hào)板級(jí)互聯(lián)結(jié)構(gòu)。多芯片級(jí)聯(lián)情況下,通過式(9)或式(13),根據(jù)每一塊芯片的工作主頻都能計(jì)算得到一個(gè)對(duì)應(yīng)的TCK頻率值。整個(gè)級(jí)聯(lián)系統(tǒng)最終使用的JTAG時(shí)鐘信號(hào)TCK的最高工作頻率不能超過所有TCK頻率值中最小的那個(gè)。如圖5所示。
采用并行互聯(lián)結(jié)構(gòu)的JTAG鏈路,多芯片自適應(yīng)時(shí)鐘連接方式與單芯片連接方式一致,每塊芯片都提供一路被自身時(shí)鐘域所同步的自適應(yīng)時(shí)鐘TCK_RET,如圖5(a)所示。
對(duì)于采用串行菊花鏈結(jié)構(gòu)的JTAG鏈路,自適應(yīng)時(shí)鐘TCK_RET僅來自于鏈路上最接近TDO輸出端一側(cè)的那塊芯片,其他芯片不提供自適應(yīng)時(shí)鐘,如圖5(b)所示。
對(duì)于串/并混合連接的多芯片JTAG鏈路,自適應(yīng)時(shí)鐘的連接是上述兩種連接方式的混合,如圖5(c)所示。
多芯片系統(tǒng)的JTAG連接方式一般都采用串行菊花鏈結(jié)構(gòu),從而確保其JTAG鏈路與仿真器接口與單芯片情況下一致,并能夠簡(jiǎn)化系統(tǒng)設(shè)計(jì)。
3 自適應(yīng)時(shí)鐘技術(shù)在芯片驗(yàn)證中的應(yīng)用
隨著嵌入式處理器設(shè)計(jì)的規(guī)模越來越大,復(fù)雜度越來越高,功能驗(yàn)證已經(jīng)成為設(shè)計(jì)過程中的首要瓶頸。為了提高驗(yàn)證速度,通常采用專門的硬件加速器,筆者參與的高性能DSP設(shè)計(jì)項(xiàng)目采用了Cadence公司XtremeⅢ硬件加速器,以加速設(shè)計(jì)功能的驗(yàn)證。XtremeⅢ是基于FPGA的硬件模擬器,它是專門為運(yùn)行模擬(Simulation)而特別設(shè)計(jì)的計(jì)算機(jī)。硬件模擬器只能驗(yàn)證邏輯功能,而不能驗(yàn)證時(shí)序性質(zhì),因?yàn)閬碜訤PGA網(wǎng)絡(luò)或者處理器的時(shí)延與系統(tǒng)設(shè)計(jì)過程中的時(shí)延無關(guān)。使用硬件模擬器時(shí),主要瓶頸是硬件模擬器與主機(jī)之間的交互(又稱系統(tǒng)調(diào)用)。因此,在軟/硬件協(xié)同驗(yàn)證中。真實(shí)的硬件系統(tǒng)在與基于硬件模擬器的系統(tǒng)發(fā)生信號(hào)交互時(shí),時(shí)序匹配成為最大的難題。
圖6說明了硬件模擬器的時(shí)鐘與真實(shí)硬件系統(tǒng)時(shí)鐘間的差別。真實(shí)硬件系統(tǒng)產(chǎn)生的是絕對(duì)時(shí)鐘信號(hào),它的周期是一個(gè)固定值T,如圖6(a)所示。硬件模擬器與軟件模擬器類似,只有相對(duì)時(shí)鐘概念。它在被模擬系統(tǒng)的時(shí)鐘上升沿和下降沿處分別計(jì)算系統(tǒng)中所有的事件,如圖6(b)所示。對(duì)于特定的設(shè)計(jì),無系統(tǒng)調(diào)用時(shí),虛擬時(shí)鐘信號(hào)周期Ts=TR+TF基本上是常值,其中,TR為上升沿計(jì)算所有事件所需的時(shí)間;TF為下降沿計(jì)算所有事件所需的時(shí)間會(huì)產(chǎn)生;當(dāng)發(fā)生系統(tǒng)調(diào)用時(shí)(比如仿真時(shí)的系統(tǒng)函數(shù)調(diào)用等),額外的延時(shí)△t(△t=△t1+△t2),使得當(dāng)前周期增大為Ts+△t。因此硬件模擬器中的時(shí)鐘信號(hào)周期是無規(guī)律變化的,而且受系統(tǒng)調(diào)用頻度以及系統(tǒng)調(diào)用復(fù)雜度(即△t的大小)的影響。
嵌入式處理器的調(diào)試系統(tǒng)需要采用系統(tǒng)級(jí)的軟/硬件協(xié)同驗(yàn)證,包括軟件開發(fā)和調(diào)試環(huán)境、仿真器系統(tǒng)、處理器系統(tǒng)三部分。在該DSP設(shè)計(jì)項(xiàng)目中,軟件環(huán)境(運(yùn)行在PC機(jī)上)和仿真器系統(tǒng)(基于FPGA開發(fā)板)都采用真實(shí)系統(tǒng),而DSP則在XtremeⅢ模擬器中實(shí)現(xiàn)。仿真器與DSP之間通過JTAG信號(hào)進(jìn)行通信。仿真器采用圖3所示的雙向同步自適應(yīng)時(shí)鐘技術(shù),仿真器發(fā)送給DSP的TCK信號(hào)特征與圖6(a)相同,而DSP反饋給仿真器的同步時(shí)鐘TCK_RET信號(hào)特征與圖6(b)相同。因此,在TCK Generator中設(shè)計(jì)圖7所示的算法,從而完全解決了真實(shí)硬件系統(tǒng)與硬件模擬器之間的JTAG信號(hào)傳輸時(shí)序匹配問題。實(shí)驗(yàn)中,設(shè)定TCK的工作頻率為40 kHz。未采用雙向自適應(yīng)同步時(shí)鐘技術(shù)時(shí),仿真器與xtremeⅢ硬件模擬器之間的JTAG信號(hào)傳輸經(jīng)常發(fā)生TCK_RET時(shí)鐘沿丟失(等效時(shí)鐘頻率約為20 kHz),導(dǎo)致仿真器無法正確采樣TDO數(shù)據(jù),如圖8(a)所示。采用雙向自適應(yīng)時(shí)鐘后,盡管整個(gè)驗(yàn)證系統(tǒng)中TCK時(shí)鐘信號(hào)的實(shí)際工作頻率約為20 kHz,但持續(xù)不間斷工作72 h以上未發(fā)現(xiàn)JTAG信號(hào)傳輸錯(cuò)誤,從而證明系統(tǒng)能夠正常工作,如圖8(b)所示。
4 結(jié)語
為解決高性能嵌入式處理器或DSP與仿真器之間JTAG信號(hào)傳輸穩(wěn)定性問題,提出了一種雙向同步自適應(yīng)時(shí)鐘技術(shù)。該技術(shù)在同步電路中引入了異步電路的應(yīng)答機(jī)制,巧妙解決了由于嵌入式處理器或DSP(尤其是針對(duì)低功耗設(shè)計(jì)的處理器,它的工作主頻會(huì)隨著負(fù)載變化而變化)本身主頻變化導(dǎo)致的JTAG信號(hào)傳輸失效。此外,該技術(shù)還為軟、硬件協(xié)同驗(yàn)證中真實(shí)系統(tǒng)與硬件模擬器之間信號(hào)傳輸提供了可靠的解決方案。在隨后的工作中,將繼續(xù)研究自適應(yīng)時(shí)鐘技術(shù)在各種系統(tǒng)跨時(shí)鐘域信號(hào)傳輸中的應(yīng)用。從而進(jìn)一步拓展該技術(shù)的適用范圍。