<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 自適應(yīng)時鐘技術(shù)在芯片設(shè)計與驗證中的應(yīng)用

          自適應(yīng)時鐘技術(shù)在芯片設(shè)計與驗證中的應(yīng)用

          作者: 時間:2012-02-16 來源:網(wǎng)絡(luò) 收藏

          0 引言

          本文引用地址:http://www.ex-cimer.com/article/149660.htm

          隨著半導(dǎo)體工藝的迅速發(fā)展,嵌入式處理器和DSP的越來越復(fù)雜,其開發(fā)調(diào)試工作也日趨重要,因此處理器平臺提供強大的調(diào)試系統(tǒng)已成為中必不可少的一部分。

          嵌入式處理器調(diào)試系統(tǒng)使用硬件仿真器將調(diào)試軟件與目標(biāo)接連起來。仿真器與PC機(jī)之間通過標(biāo)準(zhǔn)的計算機(jī)通信接口(以太網(wǎng)、USB、串口等)進(jìn)行通信;仿真器與目標(biāo)之間通過符合IEEEll49.1標(biāo)準(zhǔn)的JTAG(Joint Test AcTIon Group)信號進(jìn)行數(shù)據(jù)傳輸。隨著處理器和仿真器主頻的不斷提升,傳統(tǒng)的JTAG接口以其缺乏對JTAG信號傳輸進(jìn)行必要的時序匹配,而無法確保仿真器和目標(biāo)對JTAG信號進(jìn)行穩(wěn)定可靠的接收,因此不能滿足高性能嵌入式系統(tǒng)的要求。

          在此,提出一種雙向同步自,在仿真器與目標(biāo)處理器之間穩(wěn)定可靠地實現(xiàn)了跨域JTAG信號的雙向時序匹配,并在此基礎(chǔ)上設(shè)計了一種TCK信號產(chǎn)生算法,從而解決了調(diào)試系統(tǒng)軟/硬件協(xié)同中JTAG信號交互時的時序匹配問題。

          1 自時鐘

          1.1 基本概念

          時鐘(Adaptive Clocking)是一種信號同步,其基本原理來源于異步電路設(shè)計中的自動調(diào)時(SelfTimed)技術(shù),即采用類似應(yīng)答機(jī)制來實現(xiàn)兩個不同時鐘域系統(tǒng)間信號的可靠傳輸,如圖l所示。

          圖l中的發(fā)送與接收系統(tǒng)均工作在各自獨立的時鐘域下,并對異步輸入信號進(jìn)行采樣同步。發(fā)送系統(tǒng)(Transmit System)以時鐘clk_t為基準(zhǔn),向接收系統(tǒng)(Receive SySTem)發(fā)送數(shù)據(jù)data_t。接收系統(tǒng)將信號clk_t采樣同步后產(chǎn)生clk_r,并作為應(yīng)答信號反饋給發(fā)送系統(tǒng),發(fā)送系統(tǒng)接收到clk_r信號,就認(rèn)為接收系統(tǒng)已經(jīng)完成了數(shù)據(jù)接收或處理,可以繼續(xù)發(fā)送新的時鐘和數(shù)據(jù)。此外,如果接收系統(tǒng)也需要向發(fā)送系統(tǒng)傳送數(shù)據(jù)data_r,則以clk_r為基準(zhǔn),便于發(fā)送系統(tǒng)采用同樣的機(jī)制接收。

          自適應(yīng)時鐘機(jī)制通常采用多級同步器實現(xiàn),一般由幾個D觸發(fā)器構(gòu)成,如圖2所示。同步器將時鐘信號TCK同步到內(nèi)核時鐘域。同步器的級數(shù)Ns通常與具體的器件相關(guān),一般取值為3或者4。TCK_RET來自最后一級D觸發(fā)器的輸出,作為TCK的“應(yīng)答”信號,反饋給調(diào)試系統(tǒng)。

          TCK信號頻率的理論最大值可以根據(jù)內(nèi)核時鐘頻率和Ns的值,由下式簡單計算得到:

          自適應(yīng)時鐘協(xié)議是一種通過目標(biāo)系統(tǒng)來控制TCK速率的機(jī)制,這種機(jī)制的優(yōu)點在于它能夠把所有的信號傳輸延遲(包括JTAG電纜引入的延時)都考慮在內(nèi),從而避免了由于傳輸延遲帶來的接收數(shù)據(jù)損壞,有效提高系統(tǒng)性能。

          自適應(yīng)時鐘的另一個優(yōu)點是可以使仿真器工作在最優(yōu)的TCK時鐘頻率下。如果仿真器支持可變的TCK頻率,但沒有使用自適應(yīng)時鐘技術(shù),用戶就必須通過實驗來設(shè)置TCK的最高工作頻率和穩(wěn)定工作頻率。

          自適應(yīng)時鐘的第三個優(yōu)點是如果芯片內(nèi)核時鐘也是可變的,那么TCK_RET信號也會在工作時隨之變化,從而保證傳輸數(shù)據(jù)能夠隨時被仿真器正確同步并采樣。

          1.2 研究背景

          目前自適應(yīng)時鐘技術(shù)主要用于嵌入式處理器芯片的在線仿真器(In-Circuit Emulator,ICE),簡稱仿真器。仿真器可以為開發(fā)人員提供嵌入式處理器的實時調(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ù)。最近,TI公司也在其0MAP系列嵌入式處理器的仿真器Blackhawk JTAG Emulator中采用了自適應(yīng)時鐘技術(shù)。它們的自適應(yīng)時鐘都基于觸發(fā)器-反相器法,如圖2所示。在采樣TCK_RET信號時,使用一個雙邊沿D觸發(fā)器(D-type Flip-Flop,DFF),這樣可以避免最終產(chǎn)生的TCK時頻率被降低一半。

          觸發(fā)器-反向器法自適應(yīng)時鐘技術(shù)僅對TCK信號進(jìn)行同步,并沒有對TCK_RET信號同步,因此TCK信號容易產(chǎn)生不定態(tài)輸出,從而導(dǎo)致整個系統(tǒng)失效。此外,TCK信號的產(chǎn)生模式?jīng)]法由仿真器控制,因而靈活性差,適用范圍窄,并且在沒有JTAG信號傳輸時TCK信號無法關(guān)斷,這不僅增加了系統(tǒng)功耗,而且也增加了板級JTAG信號間的干擾。

          筆者參與了國內(nèi)一款高性能DSP芯片的研發(fā)工作,同時還負(fù)責(zé)該芯片的調(diào)試系統(tǒng)設(shè)計,基于自適應(yīng)時鐘的基本原理,提出了雙向同步自適應(yīng)時鐘技術(shù)。該時鐘技術(shù)具有如下優(yōu)點:

          (1)對TCK和TCK_RET分別進(jìn)行同步,確保JTAG信號雙向通信的可靠性和穩(wěn)定性;

          (2)TCK信號由硬件算法產(chǎn)生,可以根據(jù)需要靈活調(diào)整信號特征,從而解決了芯片設(shè)計中軟/硬件協(xié)同的時序匹配問題;

          (3)在沒有JTAG通信的間隙能夠主動關(guān)閉TCK信號,降低系統(tǒng)功耗,減小板級的信號干擾;

          (4)由于仿真器時鐘域和處理器時鐘域之間的異步關(guān)系,產(chǎn)生TCK時鐘信號時會引入抖動(Jitter)。該抖動對系統(tǒng)是有益的,它會對TCK信號引入擴(kuò)頻調(diào)節(jié),從而降低電磁干擾(Electro Magnetic Interference,EMl),提高系統(tǒng)的電磁兼容性(Electro Magnetic Compatibmty,EMC)。

          2 雙向同步自適應(yīng)時鐘技術(shù)

          隨著嵌入式處理器性能的增強,仿真器需要處理的在線調(diào)試功能也隨之增強,因此仿真器本身也需要工作在比較高的時鐘頻率下,從而能夠在有限的時間內(nèi)處理足夠多的調(diào)試信息。通常使用JTAG時鐘信號TCK的頻率相對比較低,在1~20 MHz之間,已經(jīng)遠(yuǎn)遠(yuǎn)無法滿足仿真器的工作需要。雙向同步自適應(yīng)時鐘機(jī)制能夠保證仿真器和處理器都工作在各自的高頻時鐘下,同時還能夠?qū)崿F(xiàn)可靠的JTAG信號傳輸。

          2.1 原理

          雙向自適應(yīng)時鐘技術(shù)的原理如圖3所示。

          仿真器工作在JTAG clock時鐘域,其頻率為fJTAG;所有由仿真器發(fā)送給處理器內(nèi)核的JTAG信號都由該時鐘域的邏輯產(chǎn)生,并與TCK對齊,TCK的頻率為fTCK。處理器內(nèi)核工作在Core clock時鐘域,其頻率為fCore;JTAG clock,TCK和Core clock這三組時鐘信號之間通常滿足下述基本關(guān)系:

          由于TCK和TCK_RET信號在兩個異步時鐘域之間傳輸,為了消除跨時鐘域信號傳輸可能帶來的不定態(tài)導(dǎo)致系統(tǒng)失效,處理器內(nèi)核和仿真器都需要分別對這兩個信號進(jìn)行同步和采樣,即雙向同步。同步器采用2級D觸發(fā)器級聯(lián)構(gòu)成,這種結(jié)構(gòu)可以保證系統(tǒng)在108s(大約3年)內(nèi)失效的次數(shù)少于1次,從而解決絕大部分跨時鐘域信號的不定態(tài)問題。如果在特殊情況下需要進(jìn)一步提高系統(tǒng)的穩(wěn)定性,可以繼續(xù)增加D觸發(fā)器的級聯(lián)數(shù)目,但是這樣做會增加系統(tǒng)的延遲,因此需要在性能和穩(wěn)定性之間進(jìn)行權(quán)衡。

          TCK信號經(jīng)過Core clock時鐘同步之后產(chǎn)生TCK_RET信號,反饋給仿真器,從而實現(xiàn)自適應(yīng)時鐘技術(shù)。同時,由處理器內(nèi)核向仿真器發(fā)送的JTAG信號(例如TDO)與TCK_RET信號對齊。TCK_R和TCK_F可作為Core clock時鐘域的門控信號,分別在TCK的上升沿或者下降沿使能處理器內(nèi)核對JTAG信號進(jìn)行采樣或處理。

          TCK_RET信號被JTAG clock時鐘同步。TCK_RET_R表示采樣到TCK_RET的上升沿,TCK_RET_F表示采樣到TCK_RET的下降沿。這兩個信號送給TCK時鐘產(chǎn)生邏輯,用來根據(jù)當(dāng)前TCKRET信號的接收情況產(chǎn)生下一個TCK信號及相關(guān)的JTAG控制和數(shù)據(jù)信號。

          2.2 性能分析

          雙向同步技術(shù)引入了兩個同步器,分別用來確保TCK和TCK_RET信號能夠被異步時鐘正確采樣,因此各自增加了一定的系統(tǒng)延遲。同步TCK信號引入的延遲為:

          要保證圖3中Core clock時鐘域邏輯電路能夠在TCK_RET信號上升沿采樣到穩(wěn)定的數(shù)據(jù),JTAG信號必須滿足圖4中的關(guān)系。

          在DSP設(shè)計中,fCore=500 MHz,fJTAG=100 MHz,并假設(shè)m=1,代入式(9)計算可得TCK信號的最高頻率大約為10.9 MHz。

          2.3 多芯片級聯(lián)結(jié)構(gòu)

          雙向同步自適應(yīng)時鐘技術(shù)完全支持IEEEll49.1協(xié)議中定義的各種多芯片間JTAG信號板級互聯(lián)結(jié)構(gòu)。多芯片級聯(lián)情況下,通過式(9)或式(13),根據(jù)每一塊芯片的工作主頻都能計算得到一個對應(yīng)的TCK頻率值。整個級聯(lián)系統(tǒng)最終使用的JTAG時鐘信號TCK的最高工作頻率不能超過所有TCK頻率值中最小的那個。如圖5所示。

          采用并行互聯(lián)結(jié)構(gòu)的JTAG鏈路,多芯片自適應(yīng)時鐘連接方式與單芯片連接方式一致,每塊芯片都提供一路被自身時鐘域所同步的自適應(yīng)時鐘TCK_RET,如圖5(a)所示。

          對于采用串行菊花鏈結(jié)構(gòu)的JTAG鏈路,自適應(yīng)時鐘TCK_RET僅來自于鏈路上最接近TDO輸出端一側(cè)的那塊芯片,其他芯片不提供自適應(yīng)時鐘,如圖5(b)所示。

          對于串/并混合連接的多芯片JTAG鏈路,自適應(yīng)時鐘的連接是上述兩種連接方式的混合,如圖5(c)所示。

          多芯片系統(tǒng)的JTAG連接方式一般都采用串行菊花鏈結(jié)構(gòu),從而確保其JTAG鏈路與仿真器接口與單芯片情況下一致,并能夠簡化系統(tǒng)設(shè)計。

          3 自適應(yīng)時鐘技術(shù)在芯片中的

          隨著嵌入式處理器設(shè)計的規(guī)模越來越大,復(fù)雜度越來越高,功能驗證已經(jīng)成為設(shè)計過程中的首要瓶頸。為了提高驗證速度,通常采用專門的硬件加速器,筆者參與的高性能DSP設(shè)計項目采用了Cadence公司XtremeⅢ硬件加速器,以加速設(shè)計功能的驗證。XtremeⅢ是基于FPGA的硬件模擬器,它是專門為運行模擬(Simulation)而特別設(shè)計的計算機(jī)。硬件模擬器只能驗證邏輯功能,而不能驗證時序性質(zhì),因為來自FPGA網(wǎng)絡(luò)或者處理器的時延與系統(tǒng)設(shè)計過程中的時延無關(guān)。使用硬件模擬器時,主要瓶頸是硬件模擬器與主機(jī)之間的交互(又稱系統(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)所示。對于特定的設(shè)計,無系統(tǒng)調(diào)用時,虛擬時鐘信號周期Ts=TR+TF基本上是常值,其中,TR為上升沿計算所有事件所需的時間;TF為下降沿計算所有事件所需的時間會產(chǎn)生;當(dāng)發(fā)生系統(tǒng)調(diào)用時(比如仿真時的系統(tǒng)函數(shù)調(diào)用等),額外的延時△t(△t=△t1+△t2),使得當(dāng)前周期增大為Ts+△t。因此硬件模擬器中的時鐘信號周期是無規(guī)律變化的,而且受系統(tǒng)調(diào)用頻度以及系統(tǒng)調(diào)用復(fù)雜度(即△t的大小)的影響。

          嵌入式處理器的調(diào)試系統(tǒng)需要采用系統(tǒng)級的軟/硬件協(xié)同驗證,包括軟件開發(fā)和調(diào)試環(huán)境、仿真器系統(tǒng)、處理器系統(tǒng)三部分。在該DSP設(shè)計項目中,軟件環(huán)境(運行在PC機(jī)上)和仿真器系統(tǒng)(基于FPGA開發(fā)板)都采用真實系統(tǒng),而DSP則在XtremeⅢ模擬器中實現(xiàn)。仿真器與DSP之間通過JTAG信號進(jìn)行通信。仿真器采用圖3所示的雙向同步自適應(yīng)時鐘技術(shù),仿真器發(fā)送給DSP的TCK信號特征與圖6(a)相同,而DSP反饋給仿真器的同步時鐘TCK_RET信號特征與圖6(b)相同。因此,在TCK Generator中設(shè)計圖7所示的算法,從而完全解決了真實硬件系統(tǒng)與硬件模擬器之間的JTAG信號傳輸時序匹配問題。實驗中,設(shè)定TCK的工作頻率為40 kHz。未采用雙向自適應(yīng)同步時鐘技術(shù)時,仿真器與xtremeⅢ硬件模擬器之間的JTAG信號傳輸經(jīng)常發(fā)生TCK_RET時鐘沿丟失(等效時鐘頻率約為20 kHz),導(dǎo)致仿真器無法正確采樣TDO數(shù)據(jù),如圖8(a)所示。采用雙向自適應(yīng)時鐘后,盡管整個驗證系統(tǒng)中TCK時鐘信號的實際工作頻率約為20 kHz,但持續(xù)不間斷工作72 h以上未發(fā)現(xiàn)JTAG信號傳輸錯誤,從而證明系統(tǒng)能夠正常工作,如圖8(b)所示。

          4 結(jié)語

          為解決高性能嵌入式處理器或DSP與仿真器之間JTAG信號傳輸穩(wěn)定性問題,提出了一種雙向同步自適應(yīng)時鐘技術(shù)。該技術(shù)在同步電路中引入了異步電路的應(yīng)答機(jī)制,巧妙解決了由于嵌入式處理器或DSP(尤其是針對低功耗設(shè)計的處理器,它的工作主頻會隨著負(fù)載變化而變化)本身主頻變化導(dǎo)致的JTAG信號傳輸失效。此外,該技術(shù)還為軟、硬件協(xié)同驗證中真實系統(tǒng)與硬件模擬器之間信號傳輸提供了可靠的解決方案。在隨后的工作中,將繼續(xù)研究自適應(yīng)時鐘技術(shù)在各種系統(tǒng)跨時鐘域信號傳輸中的。從而進(jìn)一步拓展該技術(shù)的適用范圍。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();