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