專利名稱:一種基于網(wǎng)絡(luò)的軟硬件協(xié)同仿真平臺的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于集成電路芯片的功能仿真技術(shù)領(lǐng)域,特別涉及軟硬件協(xié)同仿真、驗證技術(shù)。
背景技術(shù):
系統(tǒng)芯片(SOC)設(shè)計在近年迅速發(fā)展,它相對于ASIC的最大不同之處在于除了大量 硬件模塊之外,還包含大量的軟件,如操作系統(tǒng)、驅(qū)動程序、通信協(xié)議以及各種應(yīng)用程序 等,其設(shè)計復(fù)雜度遠高于傳統(tǒng)的集成電路芯片。因此對SOC芯片的仿真也變得非常困難, 不僅僅需要對系統(tǒng)硬件部分進行仿真,還要對軟件部分進行仿真,也就是要進行軟硬件協(xié) 同仿真。
軟硬件協(xié)同仿真技術(shù)是將一個復(fù)雜的soc設(shè)計按照IP模塊進行劃分,采用基于模塊的
仿真技術(shù),將一部分或全部模塊下載到可編程邏輯硬件上,用硬件電路來模擬其功能,該 部分電路工作在接近實時的運行速度,而其余設(shè)計部分仍然運行在軟件仿真器中,通過硬
件平臺來取代純粹的計算機仿真,從而大大地提高soc芯片仿真的精確性。協(xié)同仿真系統(tǒng)
由一個軟件執(zhí)行環(huán)境和一個硬件執(zhí)行環(huán)境組成,通過事件和命令,使用同步機制,在這兩 個環(huán)境之間進行控制,使軟硬件協(xié)同工作,共同完成系統(tǒng)的仿真。
軟件仿真模塊在計算機上運行,采用較高的抽象描述級別的建模方法,并可以獲得軟件 仿真的靈活性和方便的調(diào)試手段。在硬件仿真平臺中的硬件仿真模塊通常是使用硬件描述
語言(HDL)進行寄存器傳輸級(RTL)的建模后,然后使用電子設(shè)計自動化(EDA)工 具進行綜合和布局布線處理,下載到硬件仿真平臺上實現(xiàn)。硬件仿真模塊在硬件仿真平臺 運行,可較準(zhǔn)確地模擬模型的硬件特性,達到硬件的執(zhí)行速度,以及使用真實接口與外界 交換數(shù)據(jù)。
在信號級的各種軟硬件協(xié)同仿真方法中,如果系統(tǒng)或模塊的輸入信號不會受自身輸出信 號的反饋影響,這種模式稱為測試矢量模式(Vectormode),由于輸入信號不受輸出信號 影響,因此可以一次施加多個時間節(jié)拍的激勵信號矢量,仿真速度快。如果系統(tǒng)或模塊的 輸入信號受自身輸出信號的反饋影響,這種模式稱為協(xié)同仿真模式(Co-Simulationmode)。 現(xiàn)在提出的各種協(xié)同仿真技術(shù)的實現(xiàn)方法,側(cè)重點主要是提高仿真效率方面,而在系統(tǒng) 靈活性、占用硬件資源、仿真方式的多樣性等方面的支持比較欠缺。隨著用戶待測設(shè)計 (DUT)復(fù)雜度的不斷提高,硬件仿真平臺目標(biāo)板的I/O資源日趨緊張,系統(tǒng)應(yīng)盡量少地
占用目標(biāo)板的I/0資源。另外,為了滿足不同用戶的不同仿真習(xí)慣,滿足不同仿真階段的 特殊需求,仿真平臺應(yīng)支持多種仿真模式。同時,為了實現(xiàn)研發(fā)團隊分布式地仿真,仿真 平臺應(yīng)支持遠程仿真調(diào)試功能。
發(fā)明內(nèi)容
本發(fā)明的任務(wù)是實現(xiàn)一種基于網(wǎng)絡(luò)的軟硬件協(xié)同仿真平臺,這種平臺著重考慮了資源占 用低、調(diào)試靈活以及仿真手段豐富等特性。本發(fā)明可以實現(xiàn)Vector模式和Co-Simulation 模式的軟硬件協(xié)同仿真,它主要由三部分組成PC終端101、調(diào)試器102和目標(biāo)板103。 PC終端101安裝現(xiàn)場可編程邏輯門陣列(FPGA)開發(fā)工具111、仿真器Modelsimll2;用 戶在PC終端101上完成系統(tǒng)設(shè)計、配置文件生成、協(xié)同仿真激勵文件生成、采樣數(shù)據(jù)分 析。調(diào)試器102完成配置文件、協(xié)同仿真激勵文件、協(xié)同仿真響應(yīng)文件的翻譯與傳輸,完 成接口標(biāo)準(zhǔn)的轉(zhuǎn)換。目標(biāo)板具有一顆或多顆目標(biāo)FPGA106,運行用戶DUT,模擬應(yīng)用目標(biāo) 系統(tǒng);目標(biāo)板具有I/O接口 109和JTAG接口 110, JTAG接口 110是配置目標(biāo)FPGA106 的通道,1/0接口 109是傳送激勵和返還響應(yīng)的通道。
當(dāng)用戶需要進行協(xié)同仿真時,首先需要把包含了 DUT的配置文件下載到目標(biāo)FPGA106 上,然后在PC終端101的仿真器112中定義激勵矢量,PC終端101將激勵矢量保存成激 勵文件,通過以太網(wǎng)將激勵文件傳送到遠程的調(diào)試器102翻譯成串行激勵信號,經(jīng)PCI-E 串行接口傳送到目標(biāo)板103;串行激勵信號通過I/O插座109送入目標(biāo)FPGA106。目標(biāo) FPGA106內(nèi)的協(xié)同仿真接口模塊108解析出并行激勵信號,實施激勵,采集響應(yīng),再將響 應(yīng)數(shù)據(jù)打包,返回PC終端101進行顯示、分析。對于Vector模式, 一個激勵文件包含多 個時刻的激勵信號矢量;對于Co-Simulation模式, 一個激勵文件僅包含一個時刻的激勵信 號矢量,PC終端101與目標(biāo)板103通過不斷地交互激勵文件和響應(yīng)文件,推動仿真時刻的 不斷推進。
本發(fā)明的協(xié)同仿真平臺相對于現(xiàn)有其他的協(xié)同仿真平臺的優(yōu)點在于第一.本協(xié)同仿真 平臺在統(tǒng)一的多模式仿真機制上同時支持Vector模式和Co-Simulation模式的仿真;第二 調(diào)試器102與PC終端101以以太網(wǎng)線連接,支持用戶進行遠程下載與遠程仿真調(diào)試;第 三.調(diào)試器102向目標(biāo)板103傳送用戶激勵信號和接收響應(yīng)信號時,通過串行方式完成,大 大減少了對目標(biāo)板I/0資源的占用;第四.和業(yè)界廣泛采用的仿真器Modelsim聯(lián)合使用,用 戶操作與使用界面良好。
圖1是本發(fā)明的系統(tǒng)組成結(jié)構(gòu)圖。包括PC終端101,目標(biāo)板103,連接前兩者的調(diào)試 器102。
圖2是調(diào)試器102中控制FPGA105的內(nèi)部結(jié)構(gòu)圖。
圖3是目標(biāo)FPGA106的內(nèi)部結(jié)構(gòu)圖。
圖4是Vector仿真模式下仿真的數(shù)據(jù)流圖。
圖5是Co-Simulation仿真模式下仿真的數(shù)據(jù)流圖。
具體實施例方式
本發(fā)明是一種基于網(wǎng)絡(luò)的軟硬件協(xié)同仿真平臺?,F(xiàn)結(jié)合附圖對本發(fā)明的軟硬件協(xié)同仿真 平臺進行具體實施方式
的描述。
圖1示出了本發(fā)明系統(tǒng)組成圖。系統(tǒng)由PC終端lOl、調(diào)試器102和目標(biāo)板103三部分 組成。用戶在PC終端101上完成DUT的設(shè)計。由于DUT模塊必須依靠協(xié)同仿真接口模 塊108的支持,才能接收激勵信號、回傳響應(yīng)信號,因此用戶DUT模塊107必須與協(xié)同仿 真接口模塊108—起綜合、布局布線,產(chǎn)生FPGA配置文件。配置文件通過調(diào)試器102經(jīng) JTAG接口 110下載到目標(biāo)板103的目標(biāo)FPGA106。 Vector模式和Co-Simulation模式的激 勵信號矢量都在PC終端101的仿真器112Modelsim中產(chǎn)生,所有激勵信號矢量被打包形 成激勵文件發(fā)送到調(diào)試器102。調(diào)試器102主要由嵌入式微處理器ARM104和控制FPGA105 構(gòu)成,ARM104完成遠程通信功能,控制FPGA105實現(xiàn)到目標(biāo)板103的各種本地邏輯時序。 用戶可讀的激勵文件被調(diào)試器102解析成硬件可懂的激勵信號,通過PCI-E接口以串行方 式發(fā)送到目標(biāo)板103。目標(biāo)板103上具有一顆或互聯(lián)的多顆FPGA,目標(biāo)FPGA106模擬應(yīng) 用目標(biāo)系統(tǒng),運行有已經(jīng)下載的用戶DUT模塊107和協(xié)同仿真接口模塊108。協(xié)同仿真接 口模塊108將接收到的激勵信號施加給DUT模塊107。DUT模塊107對激勵產(chǎn)生相應(yīng)的響 應(yīng),協(xié)同仿真接口模塊108將響應(yīng)信號采集后送回調(diào)試器102。調(diào)試器102將這些響應(yīng)信 號封裝成響應(yīng)文件,通過以太網(wǎng)送回PC終端101,在仿真器112Modelsim中顯示響應(yīng)信號 波形。
圖2是調(diào)試器102中控制FPGA105的內(nèi)部結(jié)構(gòu)圖,主要包括以下各功能模塊 l.ARM接口模塊201:調(diào)試器102中的ARM104完成遠程通信功能,收發(fā)激勵文件和
響應(yīng)文件。控制FPGA105中的ARM接口模塊201負責(zé)從ARM104取來接收的激勵文件,
以及向ARM104發(fā)送需要傳回的響應(yīng)文件。
2. 地址解析模塊202:根據(jù)地址判斷輸入為指令還是數(shù)據(jù);如果是指令,則送入指令解 析模塊進行解析;如果是數(shù)據(jù),則送入輸入數(shù)據(jù)緩沖器203,以備目標(biāo)FPGA配置模塊205 或發(fā)送激勵/接收響應(yīng)模塊207其中之一調(diào)用。
3. 指令解析模塊204:解析送來的指令,以確定需要完成的功能。指令分為三種指令 (1)如果是配置目標(biāo)FPGA指令,則使能目標(biāo)FPGA配置模塊205; (2)如果是讀取目
標(biāo)FPGA狀態(tài)寄存器指令,則使能讀目標(biāo)FPGA狀態(tài)寄存器模塊206; (3)如果是仿真運 行指令,則使能發(fā)送激勵/接收響應(yīng)模塊207。
4. 目標(biāo)FPGA配置模塊205:將送入的配置文件下載到目標(biāo)FPGA106進行配置。
5. 讀目標(biāo)FPGA狀態(tài)寄存器模塊206:讀取目標(biāo)FPGA106的狀態(tài)寄存器的值,以確定下 載是否成功等詳細信息。
6. 發(fā)送激勵/接收響應(yīng)模塊207:當(dāng)仿真進行時,負責(zé)向目標(biāo)FPGA106發(fā)送激勵信號并 接收從目標(biāo)FPGA106返回的響應(yīng)信號。從該模塊發(fā)送的激勵信號和接收的信號響應(yīng)都是以 串行的方式傳輸。
7. 反饋信息處理模塊208:當(dāng)目標(biāo)FPGA配置操作完成之后,將返回的操作結(jié)果傳送給 反饋信息處理模塊208,并通告ARM104。
協(xié)同仿真過程中,來自ARM104的仿真運行指令經(jīng)ARM接口模塊201送入地址解析模 塊202,判斷數(shù)據(jù)類型為指令,則轉(zhuǎn)發(fā)到指令解析模塊204;經(jīng)解析為仿真運行指令,則使 能對應(yīng)的發(fā)送激勵/接收響應(yīng)模塊207。接著ARM接口模塊201將會收到后續(xù)的激勵信號, 地址解析模塊202判斷其為數(shù)據(jù)后送入輸入數(shù)據(jù)緩沖器203。隨后已被使能的發(fā)送激勵/接 收響應(yīng)模塊207開始發(fā)送激勵信號。待發(fā)送激勵/接收響應(yīng)模塊207接收到響應(yīng)信號后,通 知指令解析模塊204該指令已完成,取消使能;同時將接收的響應(yīng)信號傳給反饋信息處理 模塊208 ,再經(jīng)ARM接口模塊201返還給ARM104 。
圖3是目標(biāo)FPGA106的內(nèi)部結(jié)構(gòu)圖。主要包含兩個模塊用戶DUT模i央107和協(xié)同仿 真接口模塊108。協(xié)同仿真接口模塊108將來自調(diào)試器102的串行輸入的激勵信號轉(zhuǎn)換成 并行激勵信號,并且把當(dāng)前時刻的所有激勵信號并行施加給用戶DUT模塊107的各個端口 。 相反地,DUT模i央107在激勵信號作用下的響應(yīng)信號被協(xié)同仿真接口模塊108以并行的方 式采集,協(xié)同仿真接口模塊108對并行的響應(yīng)信號進行并串轉(zhuǎn)換并同步后,以串行的方式 返還給調(diào)試器102。
圖4是Vector仿真模式下仿真的數(shù)據(jù)流示意圖。用戶在仿真器112Modelsim中為用戶
DUT準(zhǔn)備一個激勵文件,以EVCD (Extended Value Change Dump)格式保存。底層驅(qū)動 407將激勵文件發(fā)送到遠程的調(diào)試器102,調(diào)試器102將用戶可讀的激勵文件處理后,翻譯 成硬件可懂的激勵信號,以串行方式將當(dāng)前時刻的激勵信號發(fā)送給目標(biāo)板103。目標(biāo) FPGA106中的協(xié)同仿真接口模塊108根據(jù)這些激勵信號在DUT模塊107的對應(yīng)輸入端口 產(chǎn)生激勵信號電平與時序,并將短暫延時后的輸出端口的響應(yīng)信號值采集,并串轉(zhuǎn)換后發(fā) 往調(diào)試器102。調(diào)試器102繼續(xù)發(fā)送下一個時刻的激勵信號,并接收下一個時刻的響應(yīng)信 號,直至仿真時刻推進至結(jié)束值。然后調(diào)試器102將所有采集到的串行響應(yīng)信號翻譯成響 應(yīng)文件,以EVCD格式保存,發(fā)送回PC端仿真器112顯示。
圖5是Co-Simulation模式下仿真的數(shù)據(jù)流示意圖。用戶使用VHDL語言為DUT描述 測試平臺TestBench504,并在HDL仿真器112Modelsim上運行。在Co-simulation模式下, 可以將一部分模塊(此處為模塊B506)下載到目標(biāo)FPGA106上實現(xiàn),而將其余模塊(此處為 模塊A505,模塊C507)繼續(xù)運行在仿真器112中,而模塊B506由一個"黑匣子"結(jié)構(gòu)替 代,該"黑匣子"結(jié)構(gòu)保持了與原設(shè)計文件相同的端口屬性,DUT的其它部分可以不做任何 修改。仿真器112Modelsim通過調(diào)用面向VHDL語言的FLI接口 508將激勵信息傳送到動 態(tài)鏈接庫509,對應(yīng)的庫函數(shù)將激勵信息翻譯成EVCD格式的激勵文件,經(jīng)底層驅(qū)動407 發(fā)送到遠程的調(diào)試器102,調(diào)試器102將用戶可讀的激勵文件處理后,翻譯成硬件可懂的 激勵信號,以串行方式將當(dāng)前時刻的激勵信號發(fā)送給目標(biāo)FPGA106。目標(biāo)FPGA106中的 協(xié)同仿真接口模塊108根據(jù)這些激勵信號在DUT模塊107的對應(yīng)輸入端口產(chǎn)生激勵信號電 平與時序,并將短暫延時后的輸出端口的響應(yīng)信號值采集,并串轉(zhuǎn)換后發(fā)往調(diào)試器102。 調(diào)試器102將采集到的當(dāng)前串行響應(yīng)信號翻譯成響應(yīng)文件,以EVCD格式保存,發(fā)送回PC 端仿真器112。 PC端仿真器112根據(jù)testbench504和反饋回來的響應(yīng)信號矢量產(chǎn)生新的下 一時刻的激勵信號矢量,PC終端101與目標(biāo)板103間如此反復(fù)交互激勵文件和響應(yīng)文件, 直至仿真時刻推進至結(jié)束值。
權(quán)利要求
1.一種基于網(wǎng)絡(luò)的軟硬件協(xié)同仿真平臺,包括三個部分運行軟件部分的用戶PC端,模擬硬件部分的目標(biāo)板,以及將二者互連的調(diào)試器。
2. 根據(jù)權(quán)利要求1所述的一種基于網(wǎng)絡(luò)的軟硬件協(xié)同仿真平臺,其特征在于對Vector模式和Co-simulation模式仿真的支持可以在統(tǒng)一的多模式仿真體制上 實現(xiàn)。
3. 根據(jù)權(quán)利要求2所述的一種基于網(wǎng)絡(luò)的軟硬件協(xié)同仿真平臺,其特征在于 統(tǒng)一的多模式仿真體制使用調(diào)試器將用戶PC端產(chǎn)生的激勵文件翻譯成目標(biāo)板硬 件可識別的激勵信號,將目標(biāo)板回傳的響應(yīng)信號翻譯成用戶可讀的響應(yīng)文件。
4. 根據(jù)權(quán)利要求2所述的一種基于網(wǎng)絡(luò)的軟硬件協(xié)同仿真平臺,其特征在于 統(tǒng)一的多模式仿真體制下,Co-simulation模式的仿真時刻的推進由用戶PC端與 目標(biāo)板間反復(fù)交互激勵文件與響應(yīng)文件來實現(xiàn);Vector模式的仿真時刻的推進由 調(diào)試器與目標(biāo)板間反復(fù)交互激勵信號與響應(yīng)信號來實現(xiàn)。
5. 根據(jù)權(quán)利要求1所述的一種基于網(wǎng)絡(luò)的軟硬件協(xié)同仿真平臺,其特征在于 目標(biāo)FPGA中的協(xié)同仿真接口模塊與用戶DUT模塊以并行的方式施加激勵和采 集響應(yīng),而與調(diào)試器以串行的方式通信。
6. 根據(jù)權(quán)利要求1所述的一種基于網(wǎng)絡(luò)的軟硬件協(xié)同仿真平臺,其特征在于 用戶PC端與調(diào)試器通過以太網(wǎng)連接,雙方通過TCP/IP SOCKET通信,實現(xiàn)協(xié)同仿真的遠程下載和遠程仿真調(diào)試。
全文摘要
本發(fā)明公開了一種基于網(wǎng)絡(luò)的軟硬件協(xié)同仿真平臺的實現(xiàn)方法,屬于SOC仿真、驗證技術(shù)領(lǐng)域。系統(tǒng)包括運行軟件部分的PC終端、模擬硬件部分的目標(biāo)板、以及將兩者互連的調(diào)試器。本發(fā)明對Vector模式和Co-simulation模式仿真的支持可以在統(tǒng)一的多模式仿真體制上實現(xiàn)。調(diào)試器與目標(biāo)板的通信采用串并轉(zhuǎn)換方式,大大減少對I/O資源的占用。軟件部分與硬件部分通過以太網(wǎng)通信,以支持遠程協(xié)同仿真。
文檔編號G06F17/50GK101174283SQ20071005068
公開日2008年5月7日 申請日期2007年12月3日 優(yōu)先權(quán)日2007年12月3日
發(fā)明者翔 凌, 旸 岳, 巫世弘, 李忠琦, 海 白, 胡劍浩, 陳庚生 申請人:電子科技大學(xué)