《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于ZSP500的IDLE模塊子系統級驗證實現

基于ZSP500的IDLE模塊子系統級驗證實現

2009-02-04
作者:袁 艷,申 敏

  摘 要: SoC系統的RTL級驗證分為模塊級、子系統級、系統級三個階段。本文描述了高速數字信號處理器ZSP500的基本結構和子系統級驗證的具體概念,詳細介紹了3G手機芯片中的IDLE模塊的結構,包括工作模式和空閑模式。介紹通過ZSP500編程工具構造SoC子系統級驗證的測試例,利用生成的目標文件對模塊進行子系統級驗證。最后得出基于ZSP500的子系統級驗證效率高并且實現簡單的結論。
  關鍵詞: RTL;ZSP500;TD-SCDMA;IDLE;子系統級驗證

  

  SoC系統驗證是指對基于IP核實現的SoC系統進行功能驗證、靜態時序分析、功耗分析及規則檢查等,以保證正確的系統功能和良好的產品性能。在設計被綜合前,首先要對RTL描述進行邏輯功能驗證,其目的是為了確保驗證過的模塊或芯片具有100%的功能正確性。通常,RTL級功能驗證主要采用自底向上的驗證策略,即在模塊集成到芯片以前盡可能地對每一個IP核或模塊進行驗證,然后再對整個芯片或系統進行驗證,因此RTL級驗證可分為模塊級驗證、子系統級驗證和系統級驗證三個階段。模塊級驗證就是對SoC系統中某個模塊或IP核進行單獨的驗證。當單個模塊被驗證完畢之后,就把它集成到其從屬的子系統中去驗證;子系統級驗證主要側重于模塊間接口的驗證和模塊間交互的驗證;系統級驗證就是對整個系統芯片進行驗證,它通過模擬一個芯片運行的真實環境,測試系統運行的狀況是否與設計規范中的要求相符合。本文主要論述基于ZSP500的子系統級驗證實現。
1 ZSP500介紹
  ZSP500[1]為16bit定點DSP,是LSI Logic家族系列中ZSP G2架構DSP核的最新產品。ZSP500內核以獨有的高效面積、極低功耗、一流代碼密度、實現四MAC的性能等優點成為高帶寬3G頻帶處理和豐富多媒體應用的理想選擇。ZSP500的運行頻率為250MHz,處理能力可達1000MIps。其處理單元主要包括預取單元(PFU)、指令單元(ISU)、管線控制單元(PCU)、地址生成單元(AGU)、協處理器接口(CPI)、算術邏輯單元(ALU)等。結構框圖如圖1所示。

?

?

  如圖1可知,ZSP500具有兩個專有的AGU,可驅動各自專有的裝載/存儲端口,每周內可完成兩次裝載或兩次存儲,或一次裝載一次存儲。每個數據端口寬度為32位,因此每個周期內可完成64bit(4個字)的數據傳輸。另外PFU中還有一個跳轉預測邏輯,能夠提供zero-overhead循環,產生高效的跳轉和調用。使用靜態分組規則決定每個時鐘周期執行的跳轉條數,在程序員邏輯上正確編寫代碼時,保證多條指令并行執行,從而提高了效率。
2 子系統級驗證
  當單個模塊驗證完畢后就可以集成到子系統驗證環境中驗證。因為每個模塊在模塊級驗證中沒有問題,并不能確保它在整個芯片中能正常工作,模塊級驗證只能說明模塊本身的功能是正確的,而它與其他模塊之間的接口以及模塊與模塊之間信號的相互連接是否正常仍然不能確定,所以在子系統級驗證中主要側重于接口的驗證和模塊間交互的驗證[2]。子系統級驗證平臺與模塊級驗證平臺稍有不同,它不只是包含單個被測的模塊,而且包含被測對象所從屬的子系統中的所有模塊,但是驗證模塊仍然可以應用模塊級驗證中使用的總線功能模型。實現時主要構造被測模塊的測試例,而對子系統中的其他模塊進行功能抽象,假定它們都是功能正確的。基于ZSP500的子系統級驗證就是用ZSP500編程工具來構造模塊的測試例,然后生成目標文件,在驗證環境中利用生成的目標文件在系統中運行,得出該模塊的仿真波形,最后對仿真波形進行詳細分析。
3 IDLE模塊簡介
  在TD-SCDMA手機芯片中,為了最大限度地達到省電的目的,設計出了IDLE電路。在空閑模式下,可將除32kHz外的時鐘都關閉(包括PLL1/2),僅留32kHz時鐘維持IDLE模塊電路的工作[3]。本芯片共有兩種運行模式:工作模式和空閑模式。
3.1 工作模式和空閑模式
  在工作模式下,3G手機芯片的PLL1一直打開,用于產生系統時鐘;PLL2可控,當需要48MHz時鐘時才予以打開,ARM時鐘一直有效,其他模塊(包括ZSP1,ZSP2)的時鐘可由ARM、ZSP1、ZSP2控制其關閉。
  在空閑模式下又可分為淺睡眠和深睡眠兩種睡眠方式。在淺睡眠模式下,PLL1保持打開狀態,產生系統時鐘,ARM以及各模塊的時鐘可選擇關閉;在深睡眠模式下,PLL1/2時鐘將被關閉,整個芯片沒有高頻工作時鐘(只保留32kHz時鐘),整個電路只有32kHz時鐘維持IDLE模塊工作。當IDLE電路運行結束并等待5ms之后才打開PLL時鐘電路;在PLL打開0.63ms之后,才將時鐘輸出到系統。
3.2 IDLE模塊結構
  IDLE電路的功能結構如圖2,整個IDLE模塊由三個模塊構成:F_timer主要用于幀計數、幀號計數以及產生幀中斷信號、DHI中斷信號;H值計算電路用于提供退出IDLE時同步幀號和幀計數器值得計算參數H,H電路計算方式分為兩種:一是ARM或ZSP控制啟動H電路計算,二是H電路自動定時更新;IDLE時間計算電路用于控制IDLE持續的時間以及計算退出IDLE時同步的幀號和幀計數器值。

?

3.3 IDLE運行時間的計算
  在IDLE狀態中有四個時間段,分別是X、M0、M1、Y。系統進入IDLE運行的時間計算公式為:Idle time=((H*M)/N+X+Y)/f,其中f是系統時鐘頻率。M是M0與M1的和,是用32kHz時鐘計數的時鐘周期。X時間是用來計算空閑時間的,是不定值,根據每次進入IDLE的實際情況而定。M0時間段是芯片進入IDLE深睡眠時,用來關閉晶振和PLL時鐘的,pllon信號在這段時間內將被拉低。M1時間是用來打開晶振和PLL時鐘的,并且使晶振和PLL時鐘在這段時間內穩定。Y時間段是計算時間,計算退出IDLE時同步的幀號和幀計數器的值。H是系統時鐘與32kHz時鐘之間的比例關系。N是計算H系數所用的32kHz的時鐘個數。
4 基于ZSP500的IDLE模塊子系統級驗證的實現
  基于ZSP500的子系統級驗證,是在ZSP500的平臺上編寫測試例,生成目標文件,在驗證環境中通過運行命令把目標文件和ZSP1、ZSP2同時啟動,把所有的芯片模塊聯系起來運行,得到仿真波形,通過分析仿真波形來驗證模塊的功能是否正確,前提是系統中其他模塊的功能都是正確的。
4.1 IDLE模塊的測試例構造
  TD-SCDMA系統子幀長度為5ms,共6 400個chip[4]。當IDLE模塊的計數精度為1/16chip時,幀計數器從1開始計數,當記到設置的幀長時返回為1繼續計數,同時向ZSP1/2、ARM發出幀中斷信號,同時幀號計數器加1。為了提高效率,在驗證時根據實際需要設置幀長計數器的值。系統進入IDLE模式之后,根據喚醒信號到來的時刻不同產生不同的波形,操作過程如圖3。

?


  下面主要對H計算電路為自動更新模式的情況進行仿真。主要的測試例如下:
movhw?a0,0x0089
movlw?a0,0x002C
mov??r0,0x0cf8? ???????  //設置的幀長寄存器
          ??????? //framlr=0x0cf8,為了提高驗證的
mov??r1,0x0001  ???????? //速度幀長設置較短
std??r0,a0

movhw?a0,0x0089
movlw?a0,REG_IDL_IDM0?????? //配置M0和M1的值,
???????????????????????????? //以設置空閑的時間
mov??r0,0x8000???????????? //以及晶振和PLL的穩定時間
mov??r1,0x0000
std??r0,a0

movhw?a0,0x0089
movlw?a0,REG_IDL_IDM1
mov??r0,0x0100
st??r0,a0

movhw?a0,0x0089
movlw?a0,0x0032      //PLL時鐘使能寄存器,
              //設置為深睡眠狀態
mov??r0,0x0002
st??r0,a0

movhw?a0,0x0089      //配置空閑模式控制寄存器,
              //選擇H值的更新時間和
movlw?a0,REG_IDL_IDCT   //計算時間,注意
              //更新時間一定要大于計算時間,
mov??r0,0x1048       //否則H值沒有計算完畢
              //就自動更新了。選擇H電路計
mov??r1,0x00?????????????? //算模式為“自動更新模式”,
??????????????????????????? //并且選擇芯片工作模式
std??r0,a0???????????????? //為空閑模式

waitInt:
  ldd?r0,a0 ?????????? //查詢IDCT第一位,當該位變為1時,
              //說明H電路獲
??? bitt?r0,1???????????? //得最新的H值,可以通過ICHR
        ?????????? //寄存器查看H的值
????bz?waitInt
??????
???  ?mov %loop0,100
????loop:
??????? mov?r2,0x00
??    agn0 loop

  movhw?a0,0x0089
  movlw?a0,REG_IDL_IDCT? //獲得H值后就可以
      ??????????????? //讓芯片進入IDLE狀態,發出
  mov??r0,0x104d???????? //進入IDLE的命令,
        ??????????? //在下一幀到來時,芯片即進
  mov??r1,0x00?????????? //入IDLE狀態
  std??r0,a0
4.2 IDLE模塊的系統級仿真波形
  Clk:仿真環境提供的時鐘,并不是芯片本身的系統時鐘。芯片內部的clk在IDLE狀態下應該關閉。
  Clk32K:32kHz晶振時鐘
  f_int:幀中斷
  ichr_o:存儲計算出來的H值
  cfsr_o:幀號寄存器
  framlr[15:0]和framlr_i_17bit:設置的幀長
??? framc_o[15:0]和framc_17bit:幀長計數器。從1開始,當它的計數值等于幀長時,f_int產生幀中斷,同時幀號計數器的值加1
??? icst_o:芯片的狀態(1:處于工作狀態,0:處于空閑狀態)
??? pllon:PLL時鐘使能(1:關閉PLL,0:打開PLL)
??? wake:喚醒信號
??? 從圖4~圖6所示的仿真波形來看,IDLE模塊在X時間段有wake信號到來,芯片在X時間段結束后將直接進入M1時間段工作,pllon信號也不會被拉低,芯片沒有進入睡眠狀態。如果在M0時間段有wake信號到來,IDLE模塊將立即結束M0時間段,進入M1時間段工作,pllon信號被拉高,并記錄下M0時間段實際運行的時間,用于退出時的計算。如果在M1或Y時間段有wake信號,IDLE模塊不影響wake信號,按設定工作。具體分析時還應該觀察幀計數器和幀號計數器在喚醒時計數的準確性以及H計算電路的誤差范圍應該在50ns以內,否則不能滿足精度要求。

?


  本文所介紹的子系統級驗證是在利用RVM層次化驗證方法對IP模塊進行了完備驗證之后進行的。基于ZSP500的子系統級驗證方法簡單易于實現,只需要在理解協議的基礎上配置寄存器,就可以把生成的目標文件用來得到仿真波形。然后仔細分析仿真波形就可以驗證模塊在整個系統中是否實現了應有的功能。此方法不需要驗證工程師具有豐富的編寫驗證代碼的經驗,而且實現效率高,大大縮短了SoC系統級驗證的周期。


參考文獻
[1] 史小玲,張毓波.LSI Logic的ZSP可授權DSP內核加速SoC設計[EB/OL].Http://dsp.blueidea.com/news/infolTo1.
asp.
[2] CHISHOLM D,BAILLIE A.SystemC Verification,Simulation & Emulation of Secure Digital IP.(Available at:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1818988).
[3] 重慶重郵信科股份有限公司.C3220芯片用戶手冊.2006.

[4] 李小文.TD-SCDMA第三代移動通信系統、信令及實現[M].北京:人民郵電出版社,2003.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 午夜国产在线视频 | 天天做天天爱天天影视综合 | 久久国产精品免费视频 | 色男人的天堂 | 日本一区二区三区四区不卡 | 日韩欧美一区二区三区不卡视频 | 漂亮保姆8 | 色免费在线 | 久久久国产精品视频 | 青青草91久久国产频道 | 99久久综合狠狠综合久久一区 | 欧美日韩第一页 | 男人的午夜天堂 | 91亚洲成人 | 成人精品视频一区二区三区 | 欧美成人免费看片一区 | 2020阿v天堂网 | 99re在线这里只有精品 | 天天躁日日躁狠狠躁欧美日韩 | 五月天婷婷丁香花 | 黄色小视频网站 | 毛片最新网址 | 激情综合色综合啪啪开心 | 国产高清在线精品一区 | 深爱激情成人 | 日本福利在线观看 | 成年私人影院免费视频网站 | 国产精品欧美在线 | 日本无遮挡 | 福利一区二区三区视频在线观看 | www日韩中文字幕在线看 | 国产成人小视频在线观看 | a级毛片免费观看在线播放 一级毛片视频播放 | 久久亚洲国产成人精品性色 | 国产性大片免费播放网站 | 久久婷婷色 | 美女被啪羞羞视频网站 | 日本亚洲视频 | 国产一级一级毛片 | 红色一级毛片 | 欧美在线观看视频一区 |