??? 摘 要: 時序驗(yàn)證是SoC片上系統(tǒng)設(shè)計(jì)中的關(guān)鍵問題。本文在嵌入MIPS內(nèi)核的HDTV解碼SoC芯片設(shè)計(jì)" title="芯片設(shè)計(jì)">芯片設(shè)計(jì)過程中,采用MIPS的VMC仿真模型對SoC系統(tǒng)進(jìn)行了基于門級網(wǎng)表文件的軟硬件協(xié)同的動態(tài)時序仿真" title="時序仿真">時序仿真。在仿真環(huán)境下,通過加載MIPS的Boot Loader程序?qū)π酒墓δ芎蜁r序進(jìn)行有效的驗(yàn)證。在此基礎(chǔ)上,用門級仿真過程中生成的VCD(Value Change Dump)文件對完成物理設(shè)計(jì)的SoC芯片的功耗進(jìn)行了有效的估計(jì)和分析。
??? 關(guān)鍵詞: SoC;boot loader;動態(tài)時序仿真;功耗估計(jì)
?
??? SoC是目前芯片設(shè)計(jì)的一個主流方向。它將經(jīng)過驗(yàn)證的IP核整合在一起,形成一個有一定功能的復(fù)雜芯片系統(tǒng)。在SoC芯片設(shè)計(jì)中驗(yàn)證是一個重要的部分,除了功能上的驗(yàn)證,還有時序上的驗(yàn)證。SoC是軟件和硬件的統(tǒng)一,在SoC芯片設(shè)計(jì)的初期就要規(guī)劃好軟件和硬件,以便于SoC芯片的設(shè)計(jì)和驗(yàn)證。SoC芯片設(shè)計(jì)中可以采用軟硬件協(xié)同仿真" title="協(xié)同仿真">協(xié)同仿真來驗(yàn)證功能,將SoC 中的硬件部分的RTL代碼經(jīng)過綜合映射成門級的網(wǎng)表可以進(jìn)行軟硬件協(xié)同的動態(tài)時序仿真,并且在仿真過程中可以得到一個VCD(Value Change Dump)文件,該文件可以用來比較精確地估計(jì)芯片功耗。
??? 在HDTV解碼SoC的芯片中集成了兩顆4Kc MIPS核,在仿真過程中用MIPS的VMC(Verilog Module Compiler)模型來進(jìn)行仿真。VMC模型可以模擬MIPS的全部行為,包括執(zhí)行MIPS的指令集,所以用MIPS的VMC模型可以方便地構(gòu)建軟硬件協(xié)同驗(yàn)證的環(huán)境,運(yùn)行軟件程序,可以方便地找到軟件和硬件上的問題。
??? 目前很多EDA工具可以對芯片的門級網(wǎng)表做靜態(tài)時序分析和形式上的驗(yàn)證。靜態(tài)時序分析和形式上的驗(yàn)證僅僅用于驗(yàn)證硬件,并且驗(yàn)證的正確性取決于腳本中參數(shù)的設(shè)置。而軟硬件協(xié)同的SoC門級動態(tài)時序仿真驗(yàn)證可以在物理層完整覆蓋軟件和硬件的協(xié)同工作。門級的仿真驗(yàn)證可以得到門級的仿真數(shù)據(jù),這個數(shù)據(jù)可以比較準(zhǔn)確地估計(jì)SoC芯片的功耗,為下一步做低功耗設(shè)計(jì)做準(zhǔn)備。
?? ?本文以HDTV解碼SoC芯片的設(shè)計(jì)為例,采用MIPS的VMC模型運(yùn)行boot loader程序,對HDTV解碼SoC芯片進(jìn)行軟硬件協(xié)同的動態(tài)時序仿真,以驗(yàn)證芯片的功能和時序,并對芯片的功耗進(jìn)行估計(jì)和分析。
1 HDTV解碼 SoC芯片的系統(tǒng)框圖和仿真平臺
??? HDTV解碼SoC芯片是一個集成了兩顆MIPS處理器內(nèi)核、支持MPEG-2、MP@HL視頻和多制式音頻解碼的系統(tǒng)級解碼和控制芯片,可以應(yīng)用于數(shù)字電視機(jī)頂盒或數(shù)字電影播放器中。其中MPEG-2視頻解碼使用了已經(jīng)通過MPW驗(yàn)證的芯片(HD2201A),完成高清視頻信號的解碼。該芯片中一個MIPS處理器內(nèi)核完成對整個解碼系統(tǒng)進(jìn)行控制,另一個MIPS處理器的內(nèi)核用作音頻軟解碼處理單元,音頻解碼支持MPEG-1 L1/L2,或MP3、MPEG2 AAC或Dolby AC-3。芯片中集成了多個功能單元IP模塊,可以實(shí)現(xiàn)對TS流解復(fù)用、音頻解碼、視頻解碼的控制、視頻后處理的功能。HDTV解碼SoC芯片的結(jié)構(gòu)框圖如圖1所示。
?
??? 在軟硬件協(xié)同仿真過程中,芯片集成的兩個MIPS核采用VMC模型。VMC是由Synopsys開發(fā)的一種全功能的SmartModel仿真模型。SmartModel是一種標(biāo)準(zhǔn)集成電路的二進(jì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語言一起進(jìn)行仿真。
??? 首先需要安裝VMC模型[3]。如圖2所示是MIPS公司提供的一個簡單的VMC仿真平臺" title="仿真平臺">仿真平臺。CPU和存儲器通過一個EC_XBUS總線接口控制器連接,CPU對指令的讀取及存儲器的讀寫操作都是通過EC_XBUS總線接口實(shí)現(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è)計(jì)文件進(jìn)行綜合。在綜合過中對于MIPS部分定義一個MIPS核的黑盒子,將MIPS的庫文件讀入進(jìn)行綜合。最后可以得到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用來存儲要運(yùn)行的程序;SDRAM用來運(yùn)行程序,如操作系統(tǒng)等。
??? 在選取仿真軟件程序時,應(yīng)選擇驗(yàn)證代碼覆蓋率高的程序。在本次仿真驗(yàn)證中,選擇系統(tǒng)的Boot loader程序。Boot loader程序除了要初始化MIPS 核的相關(guān)寄存器、Cache等,還要初始化芯片中的功能模塊。
2 基于VMC模型的SoC仿真驗(yàn)證流程
??? 本次HDTV解碼SoC芯片的動態(tài)時序仿真采用的程序是MIPS的boot loader程序。Boot loader程序是SoC設(shè)計(jì)中重要的軟件部分,它和硬件的聯(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判斷運(yùn)行和取指令的操作設(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運(yùn)行操作系統(tǒng),音頻CPU進(jìn)行初始化,運(yùn)行MP2的解碼程序,功能模塊也開始運(yùn)行。
??? 在選擇軟硬件協(xié)同仿真的測試程序時,應(yīng)該考慮測試覆蓋率大的程序。本文中選擇的Boot loader程序除了啟動兩個MIPS外,還初始化芯片中重要的功能模塊,使功能模塊工作,因此其測試覆蓋率很高,能滿足測試的需求。
3 芯片功耗估計(jì)方法
??? 功耗是芯片的一個重要的指標(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é)點(diǎn)的翻轉(zhuǎn)情況。
??? 本文采用Synopsys公司提供的流程做功耗估計(jì)。功耗估計(jì)流程如圖5所示。
?
??? 用經(jīng)過綜合和物理設(shè)計(jì)得到的芯片網(wǎng)表文件、標(biāo)準(zhǔn)時延文件以及MIPS的VMC模型進(jìn)行軟硬件協(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 實(shí)驗(yàn)結(jié)果
??? 仿真環(huán)境和工具是SUN服務(wù)器上的Cadence公司的NCSIM工具。
??? 在仿真過程中仿真軟件沒有報(bào)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é)果
??? 功耗估計(jì)工具是Synopsys公司的Power Compiler,功耗估計(jì)的結(jié)果如表1所示,整個芯片的平均功耗約為1.179W。由表中可以看到,在smic0.18工藝下動態(tài)功耗占了很大比例,并且芯片中元件(cell)的功耗遠(yuǎn)遠(yuǎn)大于布線(net)上的功耗。
?
??? SoC軟硬件協(xié)同仿真的實(shí)質(zhì)是在一個計(jì)算機(jī)平臺上運(yùn)行嵌入CPU的硬件模型。在HD3201A芯片(HDTV解碼SoC芯片)流片過程中用基于MIPS的軟硬件協(xié)同仿真的方式對芯片的門級網(wǎng)表進(jìn)行了動態(tài)時序驗(yàn)證。結(jié)果表明芯片的功能和時序都是正確的。在此基礎(chǔ)上還對門級網(wǎng)表和原始的RTL代碼作了Formality的驗(yàn)證,結(jié)果也表明了功能上的正確性。本文對芯片的功耗進(jìn)行了較精確的估計(jì)和分析,為在下一版中實(shí)現(xiàn)低功耗設(shè)計(jì)、打下好基礎(chǔ)。
參考文獻(xiàn)
[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é)同驗(yàn)證技術(shù)的應(yīng)用研究.電子技術(shù)應(yīng)用,2006,(12).