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

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

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

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

?

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

?


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

?


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

?


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

?


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

?


??? 用經(jīng)過綜合和物理設(shè)計(jì)得到的芯片網(wǎng)表文件、標(biāo)準(zhǔn)時(shí)延文件以及MIPS的VMC模型進(jìn)行軟硬件協(xié)同的動(dòng)態(tài)時(shí)序仿真可以得到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é)束時(shí)系統(tǒng)CPU發(fā)復(fù)位命令給音頻CPU,音頻CPU 讀取已經(jīng)存儲(chǔ)的SDRAM程序。音頻CPU被復(fù)位后,驅(qū)動(dòng)32位EC_XBUS總線上的地址EB_A為0X07F00000,它與按照8位數(shù)據(jù)總線編址的初始地址0X1FC00000是一致的。這說明音頻CPU內(nèi)核的啟動(dòng)是正常的,并且繼續(xù)執(zhí)行相應(yīng)的程序。由于系統(tǒng)中的兩個(gè)CPU的復(fù)位后指向地址都是0X1FC00000,在32位EC_XBUS總線上的地址EB_A為0X07F00000,所以在SDRAM中要將兩個(gè)CPU

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

?

?

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


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

?


??? SoC軟硬件協(xié)同仿真的實(shí)質(zhì)是在一個(gè)計(jì)算機(jī)平臺(tái)上運(yùn)行嵌入CPU的硬件模型。在HD3201A芯片(HDTV解碼SoC芯片)流片過程中用基于MIPS的軟硬件協(xié)同仿真的方式對(duì)芯片的門級(jí)網(wǎng)表進(jìn)行了動(dòng)態(tài)時(shí)序驗(yàn)證。結(jié)果表明芯片的功能和時(shí)序都是正確的。在此基礎(chǔ)上還對(duì)門級(jí)網(wǎng)表和原始的RTL代碼作了Formality的驗(yàn)證,結(jié)果也表明了功能上的正確性。本文對(duì)芯片的功耗進(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).

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