




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
精品文檔-下載后可編輯基于SystemC的系統(tǒng)驗證研究和應用-設計應用摘要:視頻編解碼芯片中運動估計與補償單元(MECU)的算法復雜,使用傳統(tǒng)硬件描述語言建立模型和模型驗證的過程繁瑣耗時,為了縮短芯片驗證時間,本文針對MECU模塊提出了基于SystemC語言的具體系統(tǒng)級驗證流程。在整個芯片驗證工作中,為了實現(xiàn)MECU模塊和低抽象級的其它外部模塊協(xié)同驗證,本文提出的驗證流程利用了SystemC能在不同抽象級建模的優(yōu)勢,對MECU模塊的數(shù)據(jù)傳輸控制端口進行細化。仿真結(jié)果表明:與使用傳統(tǒng)件描述語言驗證方法相比,基于SystemC的驗證流程簡單有效,大大縮短了建模與驗證時間。
1引言
當前集成電路制造技術迅速發(fā)展,SoC(system-on-chip)設計已經(jīng)成為集成電路設計的發(fā)展方向。隨著SoC設計的復雜度提高,在開發(fā)SoC的過程中,驗證工作越發(fā)重要和繁重,所占的開銷占據(jù)總開銷的40%~70%。SoC設計的驗證過程不但影響到芯片的成功設計,而且影響到芯片的上市時間,因此驗證的正確性及其耗時的縮短成為了SoC設計的關鍵。
傳統(tǒng)設計中,系統(tǒng)級設計使用語言C/C++等描述功能模塊的算法,驗證的時候使用硬件描述語言(VHDL或VerilogHDL)。系統(tǒng)驗證之前必須通過手工將原始的C/C++代碼轉(zhuǎn)換為VHDL/VerilogHDL代碼,這個轉(zhuǎn)換過程耗時大并且容易產(chǎn)生錯誤。在系統(tǒng)驗證過程中,使用傳統(tǒng)硬件描述語言對復雜模塊的驗證需要耗費大量時間。
為了提高系統(tǒng)級驗證效率,本文針對視頻芯片中的運動估計與補償單元模塊(MECU)提出了基于SystemC的驗證方法和流程。該方法大大縮短了系統(tǒng)驗證的搭建時間和系統(tǒng)驗證過程的時間。本文利用SystemC支持設計者在不同抽象級建模的特點,給MECU添加了低抽象級接口,使該單元能夠和視頻芯片內(nèi)部其它模型通訊以便完成整個芯片的系統(tǒng)級驗證。本文的仿真結(jié)果證明了該設計流程的有效性。
2SystemC語言
SystemC是由C++衍生而來,本質(zhì)是在C++的基礎上添加了硬件擴展庫和仿真核,這使SystemC可以在不同抽象級對復雜電子系統(tǒng)建模。它既可以描述純功能的模型和系統(tǒng)體系結(jié)構,又可以描述軟硬件的具體實現(xiàn),進行軟硬件的協(xié)同驗證。
SystemC包括以下建模元素:
*模塊(module)相當于C++的類定義,是一個可以多層次的實體。一個模塊可以嵌套其他模塊和一些進程,是SystemC里面基本的單元。
*進程(process)用來描述模塊的功能,包含于模塊中。進程是由事件(event)來觸發(fā)的,這種觸發(fā)的方式使進程可以并行執(zhí)行,實現(xiàn)了硬件系統(tǒng)的并行特性,SystemC包括三種不同的進程。
*接口(interface)定義了一組方法實現(xiàn)目標,但是不實現(xiàn)這些方法。
*通道(channel)實現(xiàn)了接口定義的方法,分為基本通道和層次化通道。
*端口(port)總是與一定的接口類型相關聯(lián),端口只能連接到實現(xiàn)了該類接口的通道上,通過端口模塊和進程來訪問通道內(nèi)定義的接口方法。
*信號(signal)用來實現(xiàn)各個進程之間的通訊。SystemC提供了多種信號格式來滿足從寄存器傳輸級(RegisterTransmitLevel,RTL)到功能級等不同抽象級的模擬。
*事件(event)用來觸發(fā)各個進程的開始以及暫停,通常多個事件組成一個敏感列表(sensitivelist)共同決定進程的狀態(tài)。
*時鐘信號(clock)時鐘在同步電路設計中是一個非常重要的角色,本質(zhì)上它是一種特殊的信號,為仿真過程提供了時間基準。
上述建模元素使得SystemC能夠順利的搭建硬件平臺。
3基于SystemC的建模方法
系統(tǒng)級驗證過程中,對于復雜算法模型只需要建立參考模型(ReferenceModels),搭建驗證平臺,觀察模型的一些重要功能(算法、進程等等),不需要了解RTL層面的細節(jié)。利用事務級建模方法(TLM,TransactionLevelModeling)技術很容易建立參考模型。一個完整的芯片是由多個功能模塊組成,采用SystemC對復雜算法單元建立模型能使功能驗證時間縮短,而一些簡單模型的驗證需要在RTL層面。為了實現(xiàn)不同抽象級模塊通訊,本文對使用SystemC建立的復雜單元模型進行接口精細化處理。本文對實際芯片單元提出的SystemC建模驗證流程如圖1所示:
圖1SystemC驗證流程
驗證流程描述:
(1)搭建SystemC系統(tǒng)級模型:
使用基于C++的SystemC能很容易搭建系統(tǒng)級模型。利用SystemC對所要實現(xiàn)的系統(tǒng)功能進行描述,主要描述系統(tǒng)的算法、結(jié)構等,不考慮每個時鐘周期寄存器數(shù)值改變。只有針對復雜算法單元使用SystemC建模,才能夠發(fā)揮SystemC節(jié)省建模和驗證時間的優(yōu)勢。
(2)系統(tǒng)級功能仿真:
利用支持SystemC的工具對建立的模型進行仿真驗證系統(tǒng)功能,觀察結(jié)果并且不斷進行反饋修改直到仿真正確。
(3)精細化接口:
精細化接口是多模塊驗證過程的關鍵。因為在對單個復雜單元系統(tǒng)級驗證的時候,抽象級很高,只需要考慮其功能性。多個模塊驗證時外部單元模型可能在RTL級別構建,這時需要利用SystemC能在不同抽象級建模的優(yōu)勢,在一個較大的模塊中實現(xiàn)不同的抽象層建模,即在和外部模型接口處將抽象級降低到RTL級。精細化接口的過程需要根據(jù)外部模塊接口調(diào)節(jié)輸入輸出數(shù)據(jù)位寬、設置敏感事件列表,并且嚴格按照外部時鐘控制數(shù)據(jù)的傳輸,保證順利和外部模塊通訊。
(4)協(xié)同驗證:
驗證多個模塊共同工作的正確性,這時候發(fā)現(xiàn)錯誤就能夠及時進行設計的修改,提高芯片設計效率。驗證結(jié)果正確的模塊就可以進行后端流程,建立的驗證平臺也可以作為外部驅(qū)動的測試平臺進行軟件的驗證。
4應用實例
4.1MECU原理
廣泛應用在手機中的視頻編解碼芯片編解碼流程包括了DCT變換、量化、VLC編碼、反DCT變換,反量化、運動估計、運動補償、插值計算、邊緣填充等步驟,其中運動估計與補償部分是實現(xiàn)壓縮圖像時間冗余度的重要環(huán)節(jié),由于其算法的復雜性該部分占據(jù)了大部分的編解碼時間,對MECU模塊的驗證是整個芯片驗證中工作量的環(huán)節(jié)。
本文中MECU采用MVFAST(MotionVectorFieldAdaptiveFastMotionEstimation)算法實現(xiàn)ME/MC:ME部分在圖像編碼過程中實現(xiàn)運動預測,計算出運動矢量,同時完成宏塊編碼類型(MBmode)判斷和運動矢量編碼類型判斷;MC部分在圖像編碼過程中,根據(jù)輸入各塊的運動矢量完成YUV的插值處理輸出運動參考塊數(shù)據(jù)和當前處理塊數(shù)據(jù);在圖像解碼處理中完成插值處理輸出參考塊數(shù)據(jù)。
4.2模塊搭建
采用Verilog語言直接建立MECU模型用于芯片設計時,由于MECU算法復雜,建模過程耗時巨大。Verilog建模期間系統(tǒng)驗證工程師需要等待模型建立完成,這樣增長了芯片設計周期,另一方面對使用Verilog建立的MECU模型驗證耗費時間長。由于基于SystemC的建模時間相對Verilog建模時間縮短3~4倍,驗證過程具有快速性優(yōu)勢,本文嘗試采用SystemC進行前期建模和驗證工作。
依據(jù)本文第二部分介紹的驗證方法,首先建立MECU硬件仿真模型進行功能驗證,然后在這個硬件模型正確的基礎上進行外圍模塊設計的驗證,以實現(xiàn)整個芯片的系統(tǒng)級驗證。
步利用SystemC對ME和MC分別進行系統(tǒng)級建模。在建立ME和MC這兩個模塊時,只需要實現(xiàn)ME和MC各自算法功能和兩個模塊之間的通訊,因此不需要按照的時序建模。在C語言實現(xiàn)MVFAST算法模型基礎上,用SC_MODULE將ME和MC各自編寫成可仿真的模塊MEU和MCU,內(nèi)部的功能利用Process來實現(xiàn)。模型建立之后,搭建平臺進行功能驗證,觀察數(shù)據(jù)經(jīng)過ME和MC之后的變化是否完全符合算法要求。
MEU和MCU模型功能驗證結(jié)束之后需要協(xié)同芯片中其它模塊進行驗證,由于MECU的外圍模塊是在RTL級建模,并且嚴格按照時鐘進行數(shù)據(jù)處理,因此必須對MECU接口進行精細化。本實驗添加了SYS_IF,ZSP-IF,DMA-IF和BPU-IF模塊以實現(xiàn)與外圍模塊通訊,這些接口模塊包括和外圍模塊相匹配的輸入輸出端口,并且由時鐘嚴格控制數(shù)據(jù)的傳輸。
終建立的SystemC模型和外部環(huán)境定義如圖2所示。
圖2MECU的SystemC模型
4.3接口模塊描述
(1)SYS_IF提供MECU的外部時鐘以及復位信號接口,這兩個控制信號對MECU內(nèi)部所有模塊有效。
(2)MEU和MCU的觸發(fā)由外部ZSP產(chǎn)生的開始信號來控制,在MECU內(nèi)部包含的控制寄存器也由ZSP來控制。ZSP_IF模塊的添加實現(xiàn)了ZSP對MECU進行讀寫控制。
(3)MECU模型編解碼過程需要處理的數(shù)據(jù)是通過ZSP控制DMA提供,因此添加DMA_IF模塊實現(xiàn)和DMA通訊,搬運數(shù)據(jù)以供MECU處理。
(4)終MC完成產(chǎn)生的數(shù)據(jù),通過BPU_IF模塊傳輸出到BPU中(用于軟硬件結(jié)果對比)。
從上述結(jié)構可以看出,MECU包括了六個模塊:ME,MC,SYS_IF,ZSP_IF,DMA_IF以及BPU_IF。ME和MC作為功能模塊實現(xiàn)了MECU單元的算法,SYS_IF,ZSP_IF,DMA_IF以及BPU_IF四個接口模塊由時鐘嚴格控制數(shù)據(jù)的傳輸,實現(xiàn)和外圍模塊通訊功能。
5仿真結(jié)果分析
利用上述SystemC模型進行仿真驗證,采用一組352*288像素的圖像作為仿真對象,使用Mentor公司的Modelsim作為仿真工具。首先建立測試平臺,對外部ZSP,DMA進行模擬以提供控制信號和處理數(shù)據(jù),然后利用Modelsim進行仿真驗證和時序分析。Modelsim得到的部分波形圖如圖三所示:
圖三MECU驗證部分波形圖
仿真得到的數(shù)據(jù)結(jié)果完全符合算法的期望值,證明了搭建模型的正確性。時序分析結(jié)果表明:使用SystemC對圖像的一個宏塊(16*16像素)進行編碼平均需要680個clockcycle,其中ME和MC部分占用11個clockcycle;用傳統(tǒng)硬件描述語言Verilog建模進行驗證一個模塊的編碼平均需要3000個clockcycle,其中ME和MC占據(jù)2200個clockcycle。將基于SystemC和Verilog
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 成都商鋪租賃合同范本:包含租賃合同變更及解除
- 車輛抵押貸款及產(chǎn)權轉(zhuǎn)讓全程服務合同范本
- 線上線下活動策劃合作委托合同
- 產(chǎn)科護理教學工作匯報
- 監(jiān)理專用表格匯編(承包商專用)
- 豐富興趣小組活動方案
- 單位小區(qū)電梯管理制度
- 值班值守平臺管理制度
- 口腔護士宿舍管理制度
- 學校費用收取管理制度
- 硬式內(nèi)窺鏡項目計劃書_模板范本
- 皮內(nèi)注射--ppt課件
- 最新防雷設施檢測報告范本
- 機械原理課程設計半自動鉆床郭
- 雨林木風壁紙
- 上海初中科學會考知識點匯總——七年級第一學期牛津
- 機械原理旋轉(zhuǎn)型灌裝機設計
- 計算機辦公軟件應用培訓教學計劃
- 專業(yè)技術人員年度情況考核登記表
- 從DOPPS 研究得到的啟示
- 上海交通大學教職工獎勵辦法
評論
0/150
提交評論