999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VPI技術的全芯片混合仿真*

2018-03-01 00:36:52
單片機與嵌入式系統應用 2018年2期
關鍵詞:方法模型設計

(中國電子科技集團公司 第三十八研究所,合肥 230088)

引 言

隨著半導體工藝的快速發展,超大規模集成電路設計技術日益成熟,系統芯片(System on Chip, SoC)已成為主流的設計技術。伴隨“摩爾定律”所預言的晶體管增長趨勢,IC設計復雜度還在持續不斷增大。隨著芯片規模的快速增長,其相應的設計、驗證的難度也在不斷增大,這使得在芯片設計流程的后期,調試、驗證所需的代價增大。因此,一方面需要盡可能在設計周期的早期給出標準的參考模型,以確定芯片架構并發現體系結構中存在的問題。另一方面,目標機上運行的軟件開發和調試也需要一個完整而可靠的參考環境,也就是說目前在IC設計的各個階段中,構建功能完備、周期精確的全芯片仿真平臺具有重要意義。

基于C/C++的純軟件仿真方法[1-4]具有描述能力強、抽象層次豐富、仿真速度快等諸多優勢,但是在一個較大規模的全芯片系統中想要同時獲取所有子模塊對應的周期精確的軟件模型難度較大,在實際操作中幾乎很難滿足;另一方面,基于硬件描述語言Verilog HDL的前端數字仿真[5-6]雖然具有周期精確且IP庫豐富的優勢,但其行為級描述能力有限,而且通常仿真速度較慢。

本文針對此問題,首先介紹基于SystemC[7]的純軟件虛擬仿真方法并分析其特點,然后提出了一種基于VPI技術的全芯片混合仿真方法并通過實際工程應用證明其有效性。

1 SystemC軟件建模方法

基于片上網絡的復雜SoC電子系統的設計需要使用先進的系統級描述語言對其進行描述。SystemC是由OSCI(Open SystemC Initiative)提出的一種基于C++的統一建模平臺,其本質是在C++的基礎上添加了硬件擴展庫和仿真內核,這使得SystemC可以在不同的抽象級別對復雜電子系統建模,解決了傳統C++語言在描述硬件時不具有并發性、時序概念等缺陷,從而可以在系統級用高級語言統一描述軟件和硬件行為。SystemC基本體系結構框架如圖1所示。

圖1 SystemC體系架構

SystemC中關鍵類的繼承關系如圖2所示,其最底層是一個節拍式仿真內核,由sc_simcontext類封裝。其它常用的關鍵類型有:

① 模塊(sc_module):一種層次化實體,可嵌套其它模塊和過程,一般一個完整的SystemC仿真系統可由大量模塊經實例化后互聯組成;

圖2 SystemC 類型繼承關系圖

② 過程(sc_process):用來描述模塊的具體功能,可由事件觸發,多個過程可并行執行,SystemC支持3種不同的過程類型:方法過程(sc_method、線程過程(sc_thread)及時鐘線程(sc_cthread);

③ 接口(sc_interface):定義了一組方法實現目標,但是不實現;

④ 通道(sc_channel):實現了接口中定義的方法,分為基本通道和層次化通道;

⑤ 信號(sc_signal):用來實現各個過程之間的通信,SystemC提供了多種信號格式來滿足從寄存器傳輸級(Register Transmit Level,RTL)到功能級等不同抽象級的模擬;

⑥ 事件(sc_event):用來觸發各個過程的開始以及暫停,通常多個事件組成一個敏感列表(sensitive list)共同控制一個過程的狀態;

⑦ 時鐘(sc_clock):時鐘在同步電路設計中是一個非常重要的角色,本質上是一種特殊的信號,為仿真過程提供了時間基準。

由于SystemC完全構建于標準C++,使得其對抽象層次較高的行為級、算法級的系統任務天然地具有非常強的描述能力,同時又由于其添加了專門用于硬件描述的類庫和仿真內核,使之也可以在抽象層次較低的RTL層次對系統進行描述。值得一提的是,SystemC支持延遲賦值這一硬件特殊行為,通過支持Δ延遲(delta-delay)來支持硬件信號的行為建模。Δ延遲是最小的仿真步,一個Δ周期包括許多估值(evaluate)和更新(update)相,當事件調用notify()時,將在仿真環境的事件隊列中插入這個事件,用request_update()發出更新請求,在更新相時,調用update()更新信號。

當前在使用完全基于SystemC的純軟件仿真方法描述系統時,所面臨的主要問題是基于SystemC建立的周期精確的模型庫還不夠完善,很多面向工業級應用的IP核依然缺乏,另一方面,由于歷史上Verilog HDL長期在工業界的數字前端設計領域占主導地位,因此基于Verilog HDL設計開發的模型庫是相當豐富的,但是其仿真速度較慢的缺點一直沒有得到很好的解決。

2 基于VPI技術的全芯片仿真

針對前文中對SystemC建模仿真方法的優勢及劣勢的分析,本文提出一種基于VPI技術的全芯片混合仿真方法。

VPI(Verilog Procedural Interface)是第三代Verilog HDL與C語言過程調用接口,目前已經成為IEEE1364標準(IEEE Verilog HDL標準)的一部分,其中定義了一組標準API接口用以實現Verilog與標準C之間的通信。利用此接口,一方面可以為Verilog硬件代碼添加額外的用C實現的系統函數,以彌補Verilog行為級描述能力的不足,另一方面,可以在軟件代碼中根據需要直接以后門方式讀寫Verilog硬件代碼中的仿真部件(如reg、wire、memory等),VPI技術為軟硬件混合仿真的實現提供了必要條件。一些關鍵的VPI接口及其概要描述見表1。

表1 VPI中常用API概述

通過使用VPI技術可以實現全芯片級的軟硬件混合仿真平臺的搭建,將系統中復雜度最高、運算量最集中的模塊使用周期精確的軟件模型構建,同時對其它一些缺乏軟件模型的模塊直接使用Verilog HDL數字電路模型進行建模,此類功能模塊通常為外設模塊,并非仿真效率的瓶頸,但是卻缺乏周期精確軟件模型的模塊直接使用Verilog HDL數字電路模型,軟硬件模型之間的通信一方面可以通過傳統的端口連接實現,另一方面也可以通過VPI實現,如圖3所示。

圖3 基于VPI混合仿真通信模式

圖3中最左側模塊可以認為是一個運算量相對集中、復雜度相對較高的模塊(例如CPU、DSP等中央處理單元模塊),一般認為這種類型的功能模塊是整個系統的仿真效率瓶頸,因此我們使用SystemC建立其周期精確的模擬,最右側使用Verilog模型可能是因為其軟件建模困難,或者已存在成熟的商用IP核(例如AMBA總線或者PCIE外設控制器等模塊),中間的模塊可以視為一個橋接功能模塊,一方面它與軟件模型之間通過TLM[8](Transaction Level Modeling,一種基于SystemC的事務級仿真框架)方式通信,通過C++函數調用接口nb_transport_bw/nb_transport_fw來傳遞被包裝成generic_payload(TLM中指定的數據幀格式)的數據幀,另一方面它通過sc_signal/VPI_API與Verilog模型進行通信。

“魂芯”多核DSP[9]是一款完全由中國電子科技集團第三十八研究所自主研發的面向高性能電子應用領域的通用DSP。由于該款芯片面向高端應用,因此其支持多種高速外設,而同時獲取或者構建所有這些外設控制器的周期精確的軟件模型是不現實的,同時也沒有必要,而邏輯最復雜同時也是計算量最密集的計算內核模塊其周期精確的軟件模型是可用的。

基于以上事實,在該款DSP的實際設計中采用了本文提出的基于VPI技術的方法為其構建了軟硬件混合仿真平臺,該平臺的大致結構如圖4所示。圖中的頂層是全芯片層,其中包含眾多的Verilog硬件模型,如AHB、Uart、RapidIO、PCIE等,而內核計算模型則是由SystemC實現的周期精確的模型。值得注意的是,為了實現DMA控制器的周期精確模型,平臺在軟件計算內核的內部還嵌入了一個DMAC(DMA Controller)硬件電路模型,整個混合仿真平臺既保證了系統的完整性,同時還是周期精確的。

圖4 基于VPI的多核DSP混合仿真平臺結構

由于該混合仿真平臺使用周期精確的軟件模型描述計算內核,因此仿真速度大概是純硬件仿真速度的10~100倍(由目標機運行的應用程序決定),同時由于此平臺包含了幾乎所有高速外設的Verilog HDL模型,因此它也是功能完備的。在芯片流片的窗口期該平臺支撐了操作系統、驅動程序等大量目標機相關生態軟件的開發、調試,為大幅縮短產品研發周期起到了關鍵作用。

結 語

仿真技術是IC設計中的一種關鍵技術,基于C++的SystemC仿真方法具有描述能力強、仿真速度快等優點,但是目前工業界中大量使用的還是基于Verilog HDL的IP核,基于SystemC的周期精確的仿真模型相對還比較匱乏。在實際工程應用中試圖搭建純軟件仿真平臺難度較大,需要或者放棄系統的功能完整性,或者放棄系統的周期精確性。本文提出一種基于VPI技術的全芯片混合仿真方法,通過后門讀寫的方式完成軟件模型與硬件模型的交互,使得在搭建全系統仿真平臺時對于模型的選取更加 靈活,最后通過將該方法在一款實際DSP設計中的應用說明了本方法是可行的、有效的。

[1] 韋祎.基于SystemC構建多核DSP軟件仿真平臺[J].微電子學與計算機,2016,33(4):86-90.

[2] 彭德生,蔣志翔.基于SystemC的MIPS處理器建模與架構[J].計算機工程與設計,2015,36(4):1015-1021.

[3] 陳曦,徐寧儀,周祖成.嵌入式系統虛擬原型平臺的SystemC實現[J].計算器輔助設計與圖形學報,2004,16(8):1070-1073.

[4] Keinert J,Schlichter T,Falk J,et al.System Codesigner-an automatic ESL synthesis approach by design space exploration and behavioral synthesis for streaming application[C]//Proc. of the 45th Annual Design Automation Conference,2008:580-585.

[5] 莫寒以,王仁平.32位稀疏樹可逆邏輯加法器的Verilog設計[J].中國集成電路,2017,30(5):28-33.

[6] 趙地,朱興華.基于Verilog的模擬前端時序的實現方法[J].電子科技,2017,30(4):144-147.

[7] IEEE 1666-2005.IEEE Standard SystemC language reference manual,2006.

[8] Ghenassia F.Transaction level modeling with SystemC:TLM concepts and applications for embedded systems[M].Berlin:Springer,2005.

[9] 洪一,方體蓮,趙斌等.“魂芯一號”數字信號處理器及其應用[J].中國科學:信息科學,2015,45(4):574-586.

猜你喜歡
方法模型設計
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
3D打印中的模型分割與打包
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 免费一级全黄少妇性色生活片| 国产香蕉一区二区在线网站| 1级黄色毛片| 日韩欧美综合在线制服| 欧美一区中文字幕| 尤物精品视频一区二区三区| 色欲不卡无码一区二区| 国产欧美网站| 欧美精品1区| 亚洲国产精品一区二区第一页免| 一区二区偷拍美女撒尿视频| 亚洲最新网址| 国产激爽爽爽大片在线观看| 手机永久AV在线播放| 国产精品一区不卡| 黄片在线永久| 亚洲精品老司机| 亚洲精品久综合蜜| 免费人欧美成又黄又爽的视频| 亚洲国产成人自拍| 色135综合网| 亚洲日本中文字幕乱码中文| 在线观看的黄网| 亚洲成肉网| 日韩欧美中文字幕在线韩免费| 91精品免费久久久| 欧美伦理一区| 亚洲综合久久一本伊一区| 欧美精品H在线播放| AV天堂资源福利在线观看| 黄色网站不卡无码| 99re这里只有国产中文精品国产精品 | 乱色熟女综合一区二区| 国产亚洲视频免费播放| 欧美亚洲欧美| www.91中文字幕| 伊在人亚洲香蕉精品播放| 91在线国内在线播放老师| 欧美成人综合视频| 国产高清在线精品一区二区三区| 国产亚洲欧美日韩在线观看一区二区| 538精品在线观看| 熟妇丰满人妻av无码区| 国产丝袜啪啪| 色天天综合| 亚洲无线一二三四区男男| 亚洲第一天堂无码专区| 2020国产免费久久精品99| 国产亚洲高清在线精品99| 亚洲第一色视频| 精品精品国产高清A毛片| 好吊妞欧美视频免费| 精品欧美视频| 高h视频在线| 亚洲乱强伦| 狠狠躁天天躁夜夜躁婷婷| 亚洲国产午夜精华无码福利| 老熟妇喷水一区二区三区| 国产极品美女在线观看| 国产资源免费观看| 国产微拍一区二区三区四区| 国产美女无遮挡免费视频| 制服丝袜亚洲| 色成人亚洲| 国产区91| 国产第一页亚洲| 亚洲国产精品美女| 欧美亚洲日韩不卡在线在线观看| 无码视频国产精品一区二区| 亚洲成人福利网站| 日韩一区精品视频一区二区| 国产精品亚洲欧美日韩久久| 国内自拍久第一页| 亚洲欧美日韩中文字幕一区二区三区| 国产精品成人第一区| av一区二区人妻无码| 中国毛片网| 国产99精品久久| 夜夜拍夜夜爽| 不卡无码h在线观看| 在线99视频| 亚洲女同欧美在线|