《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > 采用MIPS內核的SoC門級時序仿真及功耗估計方法

采用MIPS內核的SoC門級時序仿真及功耗估計方法

2008-07-24
作者:金良哨1,2,,鄭世寶1,,2,王

??? 摘 要: 時序驗證是SoC片上系統(tǒng)設計中的關鍵問題,。本文在嵌入MIPS內核的HDTV解碼SoC芯片設計" title="芯片設計">芯片設計過程中,,采用MIPS的VMC仿真模型對SoC系統(tǒng)進行了基于門級網表文件的軟硬件協同的動態(tài)時序仿真" title="時序仿真">時序仿真。在仿真環(huán)境下,,通過加載MIPS的Boot Loader程序對芯片的功能和時序進行有效的驗證,。在此基礎上,用門級仿真過程中生成的VCD(Value Change Dump)文件對完成物理設計的SoC芯片的功耗進行了有效的估計和分析。
??? 關鍵詞: SoC,;boot loader,;動態(tài)時序仿真;功耗估計

?

??? SoC是目前芯片設計的一個主流方向,。它將經過驗證的IP核整合在一起,形成一個有一定功能的復雜芯片系統(tǒng),。在SoC芯片設計中驗證是一個重要的部分,,除了功能上的驗證,還有時序上的驗證,。SoC是軟件和硬件的統(tǒng)一,,在SoC芯片設計的初期就要規(guī)劃好軟件和硬件,以便于SoC芯片的設計和驗證,。SoC芯片設計中可以采用軟硬件協同仿真" title="協同仿真">協同仿真來驗證功能,,將SoC 中的硬件部分的RTL代碼經過綜合映射成門級的網表可以進行軟硬件協同的動態(tài)時序仿真,并且在仿真過程中可以得到一個VCD(Value Change Dump)文件,,該文件可以用來比較精確地估計芯片功耗,。
??? 在HDTV解碼SoC的芯片中集成了兩顆4Kc MIPS核,在仿真過程中用MIPS的VMC(Verilog Module Compiler)模型來進行仿真,。VMC模型可以模擬MIPS的全部行為,,包括執(zhí)行MIPS的指令集,所以用MIPS的VMC模型可以方便地構建軟硬件協同驗證的環(huán)境,,運行軟件程序,,可以方便地找到軟件和硬件上的問題。
??? 目前很多EDA工具可以對芯片的門級網表做靜態(tài)時序分析和形式上的驗證,。靜態(tài)時序分析和形式上的驗證僅僅用于驗證硬件,,并且驗證的正確性取決于腳本中參數的設置。而軟硬件協同的SoC門級動態(tài)時序仿真驗證可以在物理層完整覆蓋軟件和硬件的協同工作,。門級的仿真驗證可以得到門級的仿真數據,,這個數據可以比較準確地估計SoC芯片的功耗,為下一步做低功耗設計做準備,。
?? ?本文以HDTV解碼SoC芯片的設計為例,,采用MIPS的VMC模型運行boot loader程序,對HDTV解碼SoC芯片進行軟硬件協同的動態(tài)時序仿真,,以驗證芯片的功能和時序,,并對芯片的功耗進行估計和分析。
1 HDTV解碼 SoC芯片的系統(tǒng)框圖和仿真平臺
??? HDTV解碼SoC芯片是一個集成了兩顆MIPS處理器內核,、支持MPEG-2,、MP@HL視頻和多制式音頻解碼的系統(tǒng)級解碼和控制芯片,可以應用于數字電視機頂盒或數字電影播放器中。其中MPEG-2視頻解碼使用了已經通過MPW驗證的芯片(HD2201A),,完成高清視頻信號的解碼,。該芯片中一個MIPS處理器內核完成對整個解碼系統(tǒng)進行控制,另一個MIPS處理器的內核用作音頻軟解碼處理單元,,音頻解碼支持MPEG-1 L1/L2,,或MP3、MPEG2 AAC或Dolby AC-3,。芯片中集成了多個功能單元IP模塊,,可以實現對TS流解復用、音頻解碼,、視頻解碼的控制,、視頻后處理的功能。HDTV解碼SoC芯片的結構框圖如圖1所示,。

?


??? 在軟硬件協同仿真過程中,,芯片集成的兩個MIPS核采用VMC模型。VMC是由Synopsys開發(fā)的一種全功能的SmartModel仿真模型,。SmartModel是一種標準集成電路的二進制行為模型庫[2],,在這個庫里有世界上各大半導體廠商的器件模型,包括微處理器,、控制器,、外圍設備、FPGA,、CPLD,、存儲器及通用邏輯器件等,分為全功能模型FFMs(Full-Functional Models)和總線功能模型BFMs(Bus-Functional Models),。VMC屬于FFM,,是將Verilog的源代碼編譯成可執(zhí)行文件,并通過仿真工具所具備的SWIFT接口調用這種模型,,可以結合Verilog或VHDL語言一起進行仿真,。
??? 首先需要安裝VMC模型[3]。如圖2所示是MIPS公司提供的一個簡單的VMC仿真平臺" title="仿真平臺">仿真平臺,。CPU和存儲器通過一個EC_XBUS總線接口控制器連接,,CPU對指令的讀取及存儲器的讀寫操作都是通過EC_XBUS總線接口實現的。

?


??? 以MIPS的VMC的簡單仿真平臺為參考,,可以構建HDTV解碼SoC的軟硬件協同仿真平臺,,如圖3所示。

?


??? 其中HDTV解碼SoC芯片的內部構架如圖1所示,。用Synopsys公司的綜合工具DC(Design Compiler),,采用SMIC0.18工藝庫,,對HDTV 解碼SoC芯片的RTL設計文件進行綜合。在綜合過中對于MIPS部分定義一個MIPS核的黑盒子,,將MIPS的庫文件讀入進行綜合,。最后可以得到HDTV解碼SoC的門級網表文件和標準延時文件,將芯片網表文件編譯,,并將標準時延文件反標到網表中,。用MIPS的VMC模型來取代圖中的CPU_S和CPU_A,同時編譯Flash和SDRAM的仿真模型文件,。Flash用來存儲要運行的程序,;SDRAM用來運行程序,如操作系統(tǒng)等,。
??? 在選取仿真軟件程序時,應選擇驗證代碼覆蓋率高的程序,。在本次仿真驗證中,,選擇系統(tǒng)的Boot loader程序。Boot loader程序除了要初始化MIPS 核的相關寄存器,、Cache等,,還要初始化芯片中的功能模塊。
2 基于VMC模型的SoC仿真驗證流程
??? 本次HDTV解碼SoC芯片的動態(tài)時序仿真采用的程序是MIPS的boot loader程序,。Boot loader程序是SoC設計中重要的軟件部分,,它和硬件的聯系很密切,用來啟動和引導操作系統(tǒng)以及初始化SoC芯片的重要模塊[1],,因此boot loader程序是對芯片硬件測試覆蓋率較高的程序,。HDTV解碼SoC芯片的boot loader程序是針對芯片中兩個MIPS核的。Boot loader的過程如圖4所示,。

?


??? 在仿真系統(tǒng)中,,將Boot Loader的程序先存儲在Flash中。根據MIPS上電復位后程序指針將指向初始地址為0X1FC00000,這是按照8位數據總線編址,,所以在32位EC_XBUS總線上的地址為0X07F00000,。由于FLASH的地址只有24位,所以將boot loader的程序安排在0X380000的位置上,。同時將約有2M大小的μClinux內核代碼也先存儲在FLASH中,,還有音頻MIPS 的處理器的執(zhí)行代碼,以及OSD在處理過程中用到的兩幀圖像也先存儲在Flash中,。當系統(tǒng)CPU復位后,,Flash中的boot loader就會開始執(zhí)行。
??? 首先系統(tǒng)CPU判斷運行和取指令的操作設置是否正確,,如果正確,,就初始化重要的寄存器,如GPR及CPO等,并初始化SDRAM的控制,,將boot loader程序從FLASH中讀取到SDRAM中,,然后CPU從SDRAM讀取指令繼續(xù)執(zhí)行Boot loader,接著繼續(xù)初始化 CACHE和TLB(Translate Look-aside Buffers),,初始化芯片中重要的功能模塊,,如TSD、OSD,、PCM等,,再測試存儲區(qū)。最后,,將μClinux核,、音頻MIPS執(zhí)行的代碼以及OSD用到的圖像數據從Flash中讀取到SDARM。然后系統(tǒng)CPU將音頻CPU復位并將系統(tǒng)CPU的程序指針跳到操作系統(tǒng)程序的入口地址,。系統(tǒng)CPU運行操作系統(tǒng),,音頻CPU進行初始化,運行MP2的解碼程序,,功能模塊也開始運行,。
??? 在選擇軟硬件協同仿真的測試程序時,應該考慮測試覆蓋率大的程序,。本文中選擇的Boot loader程序除了啟動兩個MIPS外,,還初始化芯片中重要的功能模塊,使功能模塊工作,,因此其測試覆蓋率很高,,能滿足測試的需求。
3 芯片功耗估計方法
??? 功耗是芯片的一個重要的指標,,芯片的功耗主要有靜態(tài)功耗和動態(tài)功耗" title="動態(tài)功耗">動態(tài)功耗,。芯片的靜態(tài)功耗和芯片的庫工藝有關,而動態(tài)功耗和芯片的信號翻轉率有關,。通過芯片門級網表的動態(tài)時序仿真可以得到一個VCD文件,。這個文件可以動態(tài)捕獲芯片中每個節(jié)點的翻轉情況。
??? 本文采用Synopsys公司提供的流程做功耗估計,。功耗估計流程如圖5所示,。

?


??? 用經過綜合和物理設計得到的芯片網表文件、標準時延文件以及MIPS的VMC模型進行軟硬件協同的動態(tài)時序仿真可以得到VCD(Value Change Dump)文件,。由于Power Compiler工具要求使用SAIF(Switching Activity Interchange Format)文件[4],,所以將VCD文件轉換成SAIF文件。最后用Power Compiler工具將SAIF文件反標到芯片的網表中,,用命令report_power 可以得到芯片的功耗文件,。得到功耗文件后,,可以分析芯片中功耗的分布,為降低功耗的工作做準備,。
4 實驗結果
??? 仿真環(huán)境和工具是SUN服務器上的Cadence公司的NCSIM工具,。
??? 在仿真過程中仿真軟件沒有報timing violation,仿真結果如圖6所示,。Boot loader 結束時系統(tǒng)CPU發(fā)復位命令給音頻CPU,,音頻CPU 讀取已經存儲的SDRAM程序。音頻CPU被復位后,,驅動32位EC_XBUS總線上的地址EB_A為0X07F00000,,它與按照8位數據總線編址的初始地址0X1FC00000是一致的。這說明音頻CPU內核的啟動是正常的,,并且繼續(xù)執(zhí)行相應的程序,。由于系統(tǒng)中的兩個CPU的復位后指向地址都是0X1FC00000,在32位EC_XBUS總線上的地址EB_A為0X07F00000,,所以在SDRAM中要將兩個CPU

的訪問地址空間映射到不重疊的空間,。

?

?

圖6 HDTV解碼SoC芯片的軟硬件協同動態(tài)時序仿真結果


??? 功耗估計工具是Synopsys公司的Power Compiler,功耗估計的結果如表1所示,,整個芯片的平均功耗約為1.179W。由表中可以看到,,在smic0.18工藝下動態(tài)功耗占了很大比例,,并且芯片中元件(cell)的功耗遠遠大于布線(net)上的功耗。

?


??? SoC軟硬件協同仿真的實質是在一個計算機平臺上運行嵌入CPU的硬件模型,。在HD3201A芯片(HDTV解碼SoC芯片)流片過程中用基于MIPS的軟硬件協同仿真的方式對芯片的門級網表進行了動態(tài)時序驗證,。結果表明芯片的功能和時序都是正確的。在此基礎上還對門級網表和原始的RTL代碼作了Formality的驗證,,結果也表明了功能上的正確性,。本文對芯片的功耗進行了較精確的估計和分析,為在下一版中實現低功耗設計,、打下好基礎,。
參考文獻
[1] TAN Zhiming,ZHENG Shibao.Design and implementation?of the software system on MPSoC:An HDTV decoder case?study,,Consumer Electronics,,IEEE Transactions on,Publication Date:Nov.2006.
[2] SmartModel Library User′s Manual.Synopsys Inc,,2002,,(7).
[3] MIPS32 4KTM Processor Core Family Integrator′s Manual,Revision 01.10.MIPS Technologies Inc,,2002.
[4] Power Compiler User Guide.Synopsys Release,,2002,,(5).
[5] 方應龍.SoC軟硬件協同驗證技術的應用研究.電子技術應用,2006,,(12).

本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點,。轉載的所有的文章,、圖片、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者,。如涉及作品內容、版權和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失,。聯系電話:010-82306118,;郵箱:[email protected]