• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于VPI技術(shù)的全芯片混合仿真*

      2018-03-01 00:36:52,
      關(guān)鍵詞:芯片建模軟件

      ,

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

      引 言

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

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

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

      1 SystemC軟件建模方法

      基于片上網(wǎng)絡(luò)的復(fù)雜SoC電子系統(tǒng)的設(shè)計(jì)需要使用先進(jìn)的系統(tǒng)級(jí)描述語言對(duì)其進(jìn)行描述。SystemC是由OSCI(Open SystemC Initiative)提出的一種基于C++的統(tǒng)一建模平臺(tái),其本質(zhì)是在C++的基礎(chǔ)上添加了硬件擴(kuò)展庫和仿真內(nèi)核,這使得SystemC可以在不同的抽象級(jí)別對(duì)復(fù)雜電子系統(tǒng)建模,解決了傳統(tǒng)C++語言在描述硬件時(shí)不具有并發(fā)性、時(shí)序概念等缺陷,從而可以在系統(tǒng)級(jí)用高級(jí)語言統(tǒng)一描述軟件和硬件行為。SystemC基本體系結(jié)構(gòu)框架如圖1所示。

      圖1 SystemC體系架構(gòu)

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

      ① 模塊(sc_module):一種層次化實(shí)體,可嵌套其它模塊和過程,一般一個(gè)完整的SystemC仿真系統(tǒng)可由大量模塊經(jīng)實(shí)例化后互聯(lián)組成;

      圖2 SystemC 類型繼承關(guān)系圖

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

      ③ 接口(sc_interface):定義了一組方法實(shí)現(xiàn)目標(biāo),但是不實(shí)現(xiàn);

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

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

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

      ⑦ 時(shí)鐘(sc_clock):時(shí)鐘在同步電路設(shè)計(jì)中是一個(gè)非常重要的角色,本質(zhì)上是一種特殊的信號(hào),為仿真過程提供了時(shí)間基準(zhǔn)。

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

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

      2 基于VPI技術(shù)的全芯片仿真

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

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

      表1 VPI中常用API概述

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

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

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

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

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

      圖4 基于VPI的多核DSP混合仿真平臺(tái)結(jié)構(gòu)

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

      結(jié) 語

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

      [1] 韋祎.基于SystemC構(gòu)建多核DSP軟件仿真平臺(tái)[J].微電子學(xué)與計(jì)算機(jī),2016,33(4):86-90.

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

      [3] 陳曦,徐寧儀,周祖成.嵌入式系統(tǒng)虛擬原型平臺(tái)的SystemC實(shí)現(xiàn)[J].計(jì)算器輔助設(shè)計(jì)與圖形學(xué)報(bào),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設(shè)計(jì)[J].中國集成電路,2017,30(5):28-33.

      [6] 趙地,朱興華.基于Verilog的模擬前端時(shí)序的實(shí)現(xiàn)方法[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] 洪一,方體蓮,趙斌等.“魂芯一號(hào)”數(shù)字信號(hào)處理器及其應(yīng)用[J].中國科學(xué):信息科學(xué),2015,45(4):574-586.

      猜你喜歡
      芯片建模軟件
      禪宗軟件
      英語文摘(2021年10期)2021-11-22 08:02:26
      聯(lián)想等效,拓展建?!浴皫щ娦∏蛟诘刃?chǎng)中做圓周運(yùn)動(dòng)”為例
      軟件對(duì)對(duì)碰
      基于PSS/E的風(fēng)電場(chǎng)建模與動(dòng)態(tài)分析
      電子制作(2018年17期)2018-09-28 01:56:44
      不對(duì)稱半橋變換器的建模與仿真
      芯片測(cè)試
      多通道采樣芯片ADS8556在光伏并網(wǎng)中的應(yīng)用
      談軟件的破解與保護(hù)
      精品(2015年9期)2015-01-23 01:36:01
      三元組輻射場(chǎng)的建模與仿真
      74HC164芯片的應(yīng)用
      河南科技(2014年10期)2014-02-27 14:09:18
      乌拉特前旗| 通州区| 阳江市| 海口市| 勃利县| 梁平县| 达孜县| 昔阳县| 海丰县| 米泉市| 太保市| 牙克石市| 普宁市| 都匀市| 平乡县| 宣化县| 洛宁县| 庆云县| 罗田县| 弋阳县| 安陆市| 旌德县| 德化县| 青神县| 毕节市| 元阳县| 易门县| 嘉荫县| 仙居县| 昌吉市| 泾源县| 当雄县| 团风县| 伊金霍洛旗| 诸暨市| 襄汾县| 务川| 盈江县| 恩平市| 大兴区| 富锦市|