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

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

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

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

?

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

?


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

?


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

?


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

?


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

?


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

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

?

?

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


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

?


??? SoC軟硬件協(xié)同仿真的實質(zhì)是在一個計算機平臺上運行嵌入CPU的硬件模型,。在HD3201A芯片(HDTV解碼SoC芯片)流片過程中用基于MIPS的軟硬件協(xié)同仿真的方式對芯片的門級網(wǎng)表進行了動態(tài)時序驗證,。結(jié)果表明芯片的功能和時序都是正確的。在此基礎(chǔ)上還對門級網(wǎng)表和原始的RTL代碼作了Formality的驗證,,結(jié)果也表明了功能上的正確性,。本文對芯片的功耗進行了較精確的估計和分析,為在下一版中實現(xiàn)低功耗設(shè)計,、打下好基礎(chǔ),。
參考文獻
[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] 方應(yīng)龍.SoC軟硬件協(xié)同驗證技術(shù)的應(yīng)用研究.電子技術(shù)應(yīng)用,2006,,(12).

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