基于FPGA的軟硬件協(xié)同仿真加速技術(shù)
1 前言
本文引用地址:http://dyxdggzs.com/article/201710/367170.htm在數字集成電路的設計中,當設計工程師在用硬件描述語(yǔ)言(HDL:Hardware Description Language)完成設計之后,需要通過(guò)仿真來(lái)檢驗設計是否滿(mǎn)足預期的功能。在仿真中,設計工作師需要為設計項目建立一個(gè)測試平臺,這個(gè)測試平臺為設計項目提供盡可能完備的測試激勵,并提供可供觀(guān)測的輸出響應,根據這些輸出響應信息,設計工程師便可以判斷設計項目是否滿(mǎn)足預期的功能。在進(jìn)行仿真工程時(shí),設計工程師一般先對各個(gè)功能模塊進(jìn)行仿真驗證,全部通過(guò)后再對整個(gè)系統設計進(jìn)行仿真。當設計工程師在仿真中發(fā)現錯誤,就需要進(jìn)行仔細調試,找出錯誤發(fā)生的原因并加以修改。
隨著(zhù)系統設計的復雜性不斷增加,當設計集成度超過(guò)百萬(wàn)門(mén)后,設計正確性的驗證比設計本身還要費勁,系統仿真的實(shí)時(shí)性很難滿(mǎn)足要求。在針對復雜電路進(jìn)行軟件仿真時(shí),系統的仿真時(shí)間往往需要占據大部分的設計時(shí)間。我們常常會(huì )為了仿真電路的某些功能,而不得不等上幾個(gè)小時(shí)甚至幾天。如何提高仿真效率,減少仿真復雜度,縮短仿真時(shí)間,將成為系統設計中的關(guān)鍵一環(huán).利用基于C語(yǔ)言的設計和驗證方法來(lái)代替傳統的基于HDL語(yǔ)言設計的仿真,從而加快仿真速度,但是這種方法只適用設計的早期階段。為了方便而快速的實(shí)現仿真驗證,及時(shí)得到測試數據,本文提出運用硬件加速的思想,采用硬件仿真平臺和軟件仿真平臺相互通信,即通過(guò)主機上運行的仿真軟件與硬件平臺相結合,實(shí)現軟硬件協(xié)同加速仿真,仿真速度可以提高30倍。
2 軟硬件協(xié)同加速仿真
在傳統的設計與驗證過(guò)程中,設計工程師首先將復雜的系統逐模塊的用硬件描述語(yǔ)言表述,待所有模塊在仿真器上單獨驗證通過(guò)后,通過(guò)模塊間整合進(jìn)行局部和整個(gè)設計的仿真,如圖1所示。
圖1 設計驗證進(jìn)程
假設模塊Master和模塊Slave是整個(gè)復雜設計中的一部分。模塊Master負責把輸入數據進(jìn)行數據處理,隨后把處理后數據發(fā)送到下一個(gè)模塊 Slave,Slave模塊完成一個(gè)功能復雜的算法運算,運算結束后把結果返回到模塊Master中,進(jìn)行下一步操作,設計框圖如圖2所示。
圖2 設計例子框圖
設計工程師在完成模塊Master和模塊Slave的HDL設計后,用HDL 仿真器軟件分別對兩個(gè)模塊進(jìn)行仿真驗證,模塊Master的仿真時(shí)間花費了五分鐘,模塊Slave花費了十五分鐘,兩個(gè)模塊進(jìn)行聯(lián)合仿真花費了二十分鐘。如果設計不正確,則要對設計進(jìn)行重新修改和仿真直到驗證通過(guò)為止,重復的仿真工作將要花費幾天甚至幾星期。為了縮短仿真時(shí)間,本文提出利用硬件加速的思想,對設計進(jìn)行軟硬件協(xié)同加速仿真。模塊Master和模塊Slave的功能首先分別在軟件上仿真驗證通過(guò),待模塊Slave經(jīng)綜合實(shí)現后,把模塊 Slave下載到硬件中,模塊Master仍然運行在軟件上,通過(guò)HDL仿真工具提供的外部接口實(shí)現軟硬件間的數據交互,進(jìn)行模塊Slave和模塊 Master的聯(lián)合仿真驗證,一旦仿真通過(guò),把模塊Master和模塊Slave都放入硬件中進(jìn)行加速仿真驗證,這時(shí)兩個(gè)模塊的聯(lián)合仿真時(shí)間將大大縮短。
圖3加速仿真
本文描述的加速仿真技術(shù)實(shí)現框圖如圖3所示。DUT(Design Under Test)由可綜合的Verilog HDL語(yǔ)言設計完成。DUT綜合實(shí)現后,下載到現場(chǎng)可編程門(mén)陣列(FPGA:Field Programmable Gate Array)中進(jìn)行加速仿真驗證。運行在HDL 仿真器上的測試文件TestBench給DUT發(fā)送測試激勵并響應輸出信息,FPGA與HDL仿真器間的信息交換由仿真器提供的Verilog 編程語(yǔ)言接口(PLI:Programming Language Interface)來(lái)實(shí)現。Verilog PLI為Verilog代碼調用C語(yǔ)言編寫(xiě)的函數提供了一種機制,它提供了C語(yǔ)言動(dòng)態(tài)鏈接程序與仿真器的接口,可以實(shí)現C語(yǔ)言和Verilog語(yǔ)言的協(xié)同仿真。由于C語(yǔ)言在過(guò)程控制方面比Verilog語(yǔ)言有優(yōu)勢,可以用C程序來(lái)產(chǎn)生測試激勵和讀取信號的值。以Windows平臺為例,用戶(hù)通過(guò)運用C語(yǔ)言和Verilog PLI編寫(xiě)接口函數,編譯代碼并生成動(dòng)態(tài)鏈接庫(DLL:Dynamic Link Library),然后在由Verilog語(yǔ)言編寫(xiě)的TestBench中調用這些函數。在執行TestBench文件進(jìn)行仿真時(shí),TestBench中的C函數一旦鏈接成功,C函數將詳細信息傳遞給HDL仿真器,執行C函數就可以像仿真Verilog代碼一樣進(jìn)行仿真。這樣,設計工程師利用 Verilog PLI接口創(chuàng )建自己的系統調用任務(wù)和系統函數,就可以通過(guò)C語(yǔ)言編程對DUT進(jìn)行輔助仿真,達到Verilog語(yǔ)法所不能實(shí)現的功能。
3 仿真實(shí)例
圖4 軟硬件協(xié)同加速仿真平臺框圖
軟硬件協(xié)同加速仿真平臺框圖如圖4所示。我們使用的主機配置為2.66GHz Intel Core2處理器和2GB內存。軟件平臺HDL仿真器運行于主機上,完成對仿真過(guò)程的控制和檢測。HDL仿真器采用Mentor Graphics子公司Model Tech公司出品的ModelSim軟件,它全面支持VHDL和Verilog語(yǔ)言的IEEE標準,可以實(shí)現VHDL、Verilog以及VHDL- Verilog混合設計的仿真,還能夠與C語(yǔ)言一起實(shí)現對HDL設計文件實(shí)現協(xié)同仿真。同時(shí),相對于大多數的HDL仿真軟件來(lái)說(shuō),ModelSim在仿真速度上也有明顯優(yōu)勢,并且它支持眾多的FPGA廠(chǎng)家庫,是設計工程師做FPGA設計的RTL級和門(mén)級電路仿真的首選。
硬件平臺主要以FPGA為核心,采用了一片Xilinx公司推出的Virtex-5 XC5VSX95T-FF1136 芯片,它內部有豐富的邏輯資源,包括14720片Slices,8784Kb的BlockRam,640片DSP 48E Slices,16個(gè)GTP 收發(fā)器,640個(gè)可配置 I/O 管腳。此外,該芯片內嵌了一個(gè)PCI-express Endpoint Block 硬核。Xilinx公司提供的IP核endpoint Block Plus for PCIe解決方案適用于 Virtex-5 SXT FPGA架構,該IP核例化了Virtex-5 SXT器件中內嵌的Virtex-5 Integrated Block for PCI Express,為實(shí)現單片可配置PCI-express總線(xiàn)解決方案提供了可能。PCI-express總線(xiàn)作為下一代高性能I/O互聯(lián)技術(shù)和標準的局域I/O總線(xiàn),將廣泛應用于未來(lái)各種計算機平臺。
在實(shí)驗中,我們選用Xilinx公司的IP核FFT(Fast Fourier Transform)v6.0[8]模塊作為DUT,該FFT核配置成Pipelined Streaming I/O的方式,它可以實(shí)現對任意間隔或者連續數據幀的處理。FFT模塊在ModelSim軟件上運行的仿真結果波形如圖5所示。
圖5 IFFT模塊仿真波形
我們分別對DUT進(jìn)行純軟件仿真和軟硬件協(xié)同加速仿真測試,實(shí)驗結果如圖6所示。仿真結果與主機配置、設計的復雜度以及仿真時(shí)鐘周期數有關(guān)。
圖6 實(shí)驗結果對比
4 結論
本文利用硬件加速的思想,提出了基于FPGA的軟硬件協(xié)同加速仿真技術(shù)。用可綜合的Verilog語(yǔ)言編寫(xiě)的設計測試文件(DUT)經(jīng)綜合實(shí)現后,下載到 FPGA中,TestBench仍然運行在主機的仿真器ModelSim軟件上,通過(guò)Verilog編程語(yǔ)言接口(PLI)進(jìn)行軟硬件間的數據交互,從而實(shí)現對DUT的軟硬件協(xié)同加速仿真。實(shí)驗結果表明,相對于純軟件仿真,運用軟硬件協(xié)同加速仿真技術(shù)仿真速度提高了30倍,這大大縮短了仿真時(shí)間,從而達到縮短設計周期的目的。
作者 江霞林,周劍揚,楊銀濤,林曉立
評論