国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2011-06-22 08:19官楓林習友寶劉斌
關鍵詞:時序代碼架構

官楓林,習友寶,劉斌

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

官楓林(碩士研究生),研究方向為ASIC芯片設計與驗證。

1 概 述

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

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

2 DSM模型的使用

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

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

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

圖2 DSM模型工作原理

3.軟件仿真

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

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

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

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

圖3 軟件結(jié)構圖

4 構建基于VMM的軟硬件協(xié)同仿真平臺

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

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

圖4 傳統(tǒng)VMM驗證環(huán)境架構

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

圖5 VMM驗證環(huán)境架構

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

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

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

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

圖6 log.eis文件

圖7 仿真波形

結(jié) 語

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

[1]鮑華,洪一,郭二輝.面向SoC的軟硬件協(xié)同驗證平臺設計[J].計算機工程,2009(8).

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

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

[4]李建成,莊釗文,張亮.SoC設計的軟硬件協(xié)同驗證研究[J].半導體技術,2007(10).

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

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

猜你喜歡
時序代碼架構
基于FPGA的RNN硬件加速架構
清明
功能架構在電子電氣架構開發(fā)中的應用和實踐
基于不同建設時序的地鐵互聯(lián)互通方案分析
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
基于FPGA 的時序信號光纖傳輸系統(tǒng)
WebGIS架構下的地理信息系統(tǒng)構建研究