• 
    

    
    

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

      ?

      嵌入式系統(tǒng)芯片的軟硬件協(xié)同仿真環(huán)境設(shè)計(jì)

      2011-06-22 08:19:06官楓林習(xí)友寶劉斌
      關(guān)鍵詞:時(shí)序代碼架構(gòu)

      官楓林,習(xí)友寶,劉斌

      (1.電子科技大學(xué)電子工程學(xué)院,成都610000;2.海思半導(dǎo)體成都研究所)

      官楓林(碩士研究生),研究方向?yàn)锳SIC芯片設(shè)計(jì)與驗(yàn)證。

      1 概 述

      隨著微電子產(chǎn)業(yè)日新月異的發(fā)展,IC設(shè)計(jì)的規(guī)模越來(lái)越大,集成度越來(lái)越高,已經(jīng)足以將一套完整的系統(tǒng)集成到一塊小小的芯片中。在這種形勢(shì)下,SoC技術(shù)應(yīng)運(yùn)而生[1]。隨著IP核復(fù)用技術(shù)的出現(xiàn),SoC芯片的設(shè)計(jì)已經(jīng)不再是很大的難題,SoC芯片的驗(yàn)證已逐漸取代芯片設(shè)計(jì)成為芯片開(kāi)發(fā)階段的瓶頸。現(xiàn)階段SoC芯片設(shè)計(jì)的正確性要經(jīng)過(guò)前仿真、后仿真以及FPGA驗(yàn)證來(lái)保證。前仿真包括單元驗(yàn)證、集成驗(yàn)證和系統(tǒng)驗(yàn)證,后仿真包括帶反標(biāo)時(shí)序SDF的網(wǎng)表仿真。其中系統(tǒng)驗(yàn)證和后仿真都需要關(guān)注SoC芯片的全局功能,這就涉及SoC的軟件仿真和硬件仿真的協(xié)同問(wèn)題。本文以DSM模型替代ARM核,以VMM驗(yàn)證方法學(xué)和VCS仿真器為基礎(chǔ),搭建一個(gè)可重用性高、調(diào)試和定位問(wèn)題方便、仿真真實(shí)性高、軟件和硬件能夠很好配合的協(xié)同驗(yàn)證平臺(tái)。

      軟硬件協(xié)同仿真架構(gòu)如圖1所示,協(xié)同驗(yàn)證分軟件驗(yàn)證環(huán)境和硬件驗(yàn)證環(huán)境兩部分。軟件代碼通常由C/C++和匯編語(yǔ)言混合編寫(xiě)而成,然后由軟件編譯器轉(zhuǎn)換成二進(jìn)制格式,最后將該二進(jìn)制文件加載到SoC芯片的存儲(chǔ)器中去,芯片boot啟動(dòng)時(shí)由ARM核調(diào)用軟件代碼并執(zhí)行;硬件環(huán)境基于VMM驗(yàn)證方法學(xué)進(jìn)行搭建,下文中會(huì)有詳細(xì)介紹。協(xié)同仿真就是通過(guò)事件和命令,使用一些機(jī)制,在這兩個(gè)環(huán)境間進(jìn)行控制。

      2 DSM模型的使用

      1 軟硬件協(xié)同仿真架構(gòu)

      SoC芯片的CPU一般選用ARM,協(xié)同驗(yàn)證平臺(tái)中ARM可以用seamless CVE模型替代,或者直接選用ARM網(wǎng)表。采用seamless CVE模型進(jìn)行仿真,雖然速度比較快,但需要替換設(shè)計(jì)中的Memory模型,且必須使用CVE自己的模型,這樣與芯片真實(shí)情況有出入;采用ARM網(wǎng)表進(jìn)行仿真,速度比較慢,調(diào)試也不方便,但是更接近實(shí)際情況。相比于這兩者,本文采用的DSM(DesignSimulation Model)模型由ARM公司提供,能完全模擬ARM的接口和時(shí)序行為,具有更高的真實(shí)性,而且 DSM無(wú)需更換存儲(chǔ)器模型和外掛仿真工具,使驗(yàn)證DUT與實(shí)際芯片完全一致,即不必為了滿足仿真需求修改部分RTL代碼。此外,DSM環(huán)境仿真過(guò)程中輸出的LOG文件log.eis真實(shí)記錄每個(gè)周期執(zhí)行的CPU代碼和操作。根據(jù)該文件能快速定位軟件問(wèn)題。CVE環(huán)境通過(guò)調(diào)用XRAY軟件調(diào)試工具,雖然可以進(jìn)行單步調(diào)試、設(shè)置斷點(diǎn)等操作,但出現(xiàn)軟件問(wèn)題時(shí)定位沒(méi)有DSM環(huán)境那么直觀、方便。

      DSM是ARM公司提供的設(shè)計(jì)仿真模型,該模型直接從ARM公司的RTL代碼經(jīng)過(guò)加密處理轉(zhuǎn)化而來(lái),具有同真實(shí)RTL代碼完全一致的功能和特性。在時(shí)序仿真過(guò)程中,還能直接對(duì)該模型反標(biāo)時(shí)序。在仿真過(guò)程中,將模型WRAPPER——也就是模型的最頂層——例化到RTL代碼中,仿真器在仿真過(guò)程中觸發(fā)WRAPPER,請(qǐng)求Model Manager動(dòng)態(tài)調(diào)用模型庫(kù)進(jìn)行仿真。Model Manager響應(yīng)請(qǐng)求動(dòng)態(tài)調(diào)用模型庫(kù)文件,達(dá)到功能仿真的目的。由此可以看出,Model Manager在仿真過(guò)程中充當(dāng)中介角色,將模型和仿真器動(dòng)態(tài)連接在一起。DSM模型的工作原理如圖2所示。

      圖2 DSM模型工作原理

      3.軟件仿真

      ARM匯編器工具ARMASM、ARM的C/C++編譯工具 ARMCC和 ARMCPP,以及 ARM的鏈接工具ARMLINK,利用ARM工具對(duì)軟件代碼進(jìn)行編譯鏈接生成的文件格式為ELF格式(Executable Link File),原始代碼在文件中的位置通過(guò)SCATTER文件指定。ARM提供了fromelf工具,該工具將ELF格式的文件根據(jù)運(yùn)行時(shí)域轉(zhuǎn)化為二進(jìn)制文件,以便在仿真起始階段將代碼放到指定的Memory中。在makefile中將ELF格式轉(zhuǎn)化為BIN文件的具體實(shí)例如下:

      上述語(yǔ)句表示將software.elf文件轉(zhuǎn)化為二進(jìn)制文件放到當(dāng)前目錄。

      在軟硬件協(xié)同仿真的初始階段,需要將生成的二進(jìn)制文件導(dǎo)入相應(yīng)的存儲(chǔ)器中,這通過(guò)Verilog提供的系統(tǒng)函數(shù)fread實(shí)現(xiàn)。下面是一個(gè)將二進(jìn)制文件導(dǎo)入存儲(chǔ)器的實(shí)例,先通過(guò)$fopen函數(shù)讀出文件地址,然后通過(guò)$fread函數(shù)將指定地址的文件數(shù)據(jù)傳給變量inst_file_word,最后將變量inst_file_word中的值傳給存儲(chǔ)器中的相應(yīng)地址單元。在DSM仿真中都需要一個(gè)這樣的“橋梁”文件,將軟件和邏輯鏈接起來(lái)。

      軟硬件協(xié)同仿真的軟件結(jié)構(gòu)如圖3所示,系統(tǒng)BOOT起來(lái)后直接跳轉(zhuǎn)到main()函數(shù)進(jìn)行單進(jìn)程任務(wù),如果出現(xiàn)中斷異常,則boot代碼中根據(jù)中斷向量表地址跳轉(zhuǎn)到中斷處理函數(shù)。中斷處理函數(shù)中包含對(duì)各中斷的處理,main()函數(shù)中調(diào)用各個(gè)模塊的TC(Test Case)函數(shù),TC調(diào)用底層的驅(qū)動(dòng)代碼。驅(qū)動(dòng)代碼的編寫(xiě)則基于各個(gè)模塊的寄存器定義文件和全局變量。該軟件結(jié)構(gòu)清晰可控,便于各測(cè)試用例TC的并行提交和管理。

      圖3 軟件結(jié)構(gòu)圖

      4 構(gòu)建基于VMM的軟硬件協(xié)同仿真平臺(tái)

      在軟硬件協(xié)同仿真環(huán)境中,完全可以采用基于VMM的驗(yàn)證架構(gòu),但軟硬件協(xié)同仿真環(huán)境較一般的純邏輯集成驗(yàn)證環(huán)境難度大,主要體現(xiàn)在軟硬件協(xié)同仿真環(huán)境因?yàn)榉抡孢^(guò)程中有軟件代碼在執(zhí)行,同時(shí)驗(yàn)證環(huán)境也在執(zhí)行,因此如何將軟件代碼和硬件環(huán)境協(xié)調(diào)起來(lái)是關(guān)鍵。在仿真過(guò)程中,軟件和驗(yàn)證環(huán)境之間需要建立一種通信機(jī)制,如可以通過(guò)中斷通信,也可以通過(guò)某一特殊信號(hào)線通信。軟硬件協(xié)同仿真環(huán)境中,某一項(xiàng)功能點(diǎn)的測(cè)試常常需要軟硬件兩條測(cè)試用例TC,軟件TC需要驅(qū)動(dòng)代碼,而一般的集成測(cè)試用例不需要軟件TC和驅(qū)動(dòng)。典型的VMM的驗(yàn)證架構(gòu)如圖4所示。

      驗(yàn)證的總體架構(gòu)是分層次的,層次化的驗(yàn)證環(huán)境具有很好的擴(kuò)展性和重用性,各個(gè)層次完成自己特定的功能。Test層又叫TC層,主要完成數(shù)據(jù)激勵(lì)的定義、環(huán)境的控制工作。Generator層定義的數(shù)據(jù)“模板”,產(chǎn)生各種數(shù)據(jù)激勵(lì)。Function Layer層完成輸入和輸出數(shù)據(jù)激勵(lì)的收集,進(jìn)行自動(dòng)比對(duì)。Command Layer層主要按接口時(shí)序收發(fā)數(shù)據(jù),同時(shí)將一些底層方法(如數(shù)據(jù)讀寫(xiě)等)進(jìn)行封裝。Signal Layer層主要是完成接口信號(hào)連接工作。不同的人關(guān)注不同層次,一般的驗(yàn)證人員只需要在Test層工作,編寫(xiě)測(cè)試向量。只有搭建環(huán)境的驗(yàn)證人員才需了解各個(gè)層次。驗(yàn)證架構(gòu)的層次化降低了驗(yàn)證環(huán)境復(fù)雜度和環(huán)境維護(hù)成本,提升了驗(yàn)證效率。

      圖4 傳統(tǒng)VMM驗(yàn)證環(huán)境架構(gòu)

      本文基本采用圖4的驗(yàn)證環(huán)境架構(gòu)的思路,并在其基礎(chǔ)上進(jìn)行修改,添加相應(yīng)組件。VMM驗(yàn)證環(huán)境架構(gòu)如圖5所示,環(huán)境數(shù)據(jù)流從測(cè)試用例Test Case開(kāi)始,經(jīng)過(guò)數(shù)據(jù)包產(chǎn)生器Generator和數(shù)據(jù)處理器Transactor送給BFM處理,BFM把驗(yàn)證環(huán)境的抽象層次從信號(hào)級(jí)抽象到Transaction級(jí),在實(shí)現(xiàn)上只做時(shí)序轉(zhuǎn)換功能,利于重用。從發(fā)送方向看,BFM只負(fù)責(zé)將接收到的數(shù)據(jù)發(fā)送給DUT;從接收方向看,BFM只負(fù)責(zé)將接收到的數(shù)據(jù)發(fā)給Transactor,實(shí)現(xiàn)任何數(shù)據(jù)的解析。Monitor抓取接口上的信號(hào),并分析各組控制信號(hào)之間的邏輯時(shí)序關(guān)系,檢查其是否滿足協(xié)議所規(guī)定的邏輯時(shí)序關(guān)系,同時(shí)把監(jiān)測(cè)到的數(shù)據(jù)信號(hào)轉(zhuǎn)化為數(shù)組送到RM解析。與BFM一樣,Monitor只實(shí)現(xiàn)時(shí)序轉(zhuǎn)換功能,不做數(shù)據(jù)解析。從Monitor上采樣數(shù)據(jù)再送入RM,是基于重用的角度考慮。參考模型(RM)用于預(yù)測(cè)數(shù)據(jù)響應(yīng)[2],Check組件將RM的輸出數(shù)據(jù)與被觀測(cè)響應(yīng)進(jìn)行比較。

      圖5 VMM驗(yàn)證環(huán)境架構(gòu)

      該驗(yàn)證環(huán)境架構(gòu)還添加斷言(Assertion)來(lái)提高觀察和定位設(shè)計(jì)問(wèn)題的能力。斷言是檢查DUT中信號(hào)行為是否正確的觀察器,用來(lái)描述被預(yù)期的特定性質(zhì)。本文采用的斷言為SVA斷言語(yǔ)言,可以應(yīng)用到設(shè)計(jì)過(guò)程的各個(gè)階段,還可以統(tǒng)計(jì)功能覆蓋率。

      5 基于DSM的軟硬件協(xié)同仿真調(diào)試

      由于DSM模型在仿真過(guò)程中,會(huì)將ARM執(zhí)行的每一步動(dòng)作打印出來(lái),生成一個(gè)log.eis文件,由該文件給出的信息定位問(wèn)題非常方便,如圖6所示。

      圖中第1列表示程序執(zhí)行到ARM的第幾個(gè)時(shí)鐘周期。第2列是ARM執(zhí)行的指令類(lèi)型。第3列的CCFAIL表示條件執(zhí)行時(shí)是否執(zhí)行,如果條件執(zhí)行了,則不打印CCFAIL,反之則打印出CCFAIL。第4列是 ARM執(zhí)行的機(jī)器碼。最后幾列是詳細(xì)的ARM執(zhí)行的動(dòng)作,從圖中可以看出ARM執(zhí)行哪一步指令,將哪些數(shù)據(jù)讀寫(xiě)到哪些地址。對(duì)應(yīng)的仿真波形圖如圖7所示??梢钥闯?log.eis完整無(wú)誤地將ARM執(zhí)行的動(dòng)作打印了出來(lái)。

      圖6 log.eis文件

      圖7 仿真波形

      結(jié) 語(yǔ)

      設(shè)計(jì)驗(yàn)證是SoC設(shè)計(jì)的關(guān)鍵技術(shù)之一,貫穿整個(gè)SoC設(shè)計(jì)過(guò)程[3]。隨著 SoC技術(shù)的發(fā)展,軟硬件協(xié)同驗(yàn)證的效率和正確性對(duì)整個(gè)SoC設(shè)計(jì)的影響也越來(lái)越大。相比傳統(tǒng)的軟硬件協(xié)同環(huán)境,本文介紹的環(huán)境速度快,更真實(shí),調(diào)試也更加容易。該環(huán)境可繼承性好,能夠?yàn)楦鞣NSoC項(xiàng)目開(kāi)發(fā)驗(yàn)證所用。

      [1]鮑華,洪一,郭二輝.面向SoC的軟硬件協(xié)同驗(yàn)證平臺(tái)設(shè)計(jì)[J].計(jì)算機(jī)工程,2009(8).

      [2]Bergeron Janick.Verification Methodology ManuaL For SystemVerilog[M].北京航空航天大學(xué)出版社,2007.

      [3]幸強(qiáng).一種基于ISS的軟硬件協(xié)同驗(yàn)證環(huán)境[J].現(xiàn)代電子技術(shù),2007(8).

      [4]李建成,莊釗文,張亮.SoC設(shè)計(jì)的軟硬件協(xié)同驗(yàn)證研究[J].半導(dǎo)體技術(shù),2007(10).

      [5]馮博凌,李平,王憶文.基于混合建模的SoC軟硬件協(xié)同驗(yàn)證平臺(tái)研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(5).

      [6]申敏,曹聰玲.基于SoC設(shè)計(jì)的軟硬件協(xié)同驗(yàn)證技術(shù)研究[J].廣東通信技術(shù),2009(2).

      猜你喜歡
      時(shí)序代碼架構(gòu)
      時(shí)序坐標(biāo)
      基于FPGA的RNN硬件加速架構(gòu)
      基于Sentinel-2時(shí)序NDVI的麥冬識(shí)別研究
      功能架構(gòu)在電子電氣架構(gòu)開(kāi)發(fā)中的應(yīng)用和實(shí)踐
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
      一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
      電子制作(2016年15期)2017-01-15 13:39:08
      胶州市| 盐津县| 澎湖县| 班戈县| 巫山县| 涪陵区| 西青区| 璧山县| 铜山县| 成都市| 万山特区| 塔城市| 长宁区| 长岭县| 泾阳县| 娄底市| 桦川县| 芒康县| 将乐县| 临洮县| 收藏| 洞口县| 五华县| 吐鲁番市| 南漳县| 乳山市| 太谷县| 南雄市| 西宁市| 祁阳县| 万州区| 遂宁市| 邵阳市| 永修县| 老河口市| 信宜市| 桐乡市| 增城市| 元朗区| 临城县| 平果县|