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

?

軟硬件聯(lián)合仿真平臺(tái)的設(shè)計(jì)

2012-06-02 01:34:08廈門大學(xué)信息科學(xué)與技術(shù)學(xué)院
電子世界 2012年1期
關(guān)鍵詞:時(shí)鐘傳輸軟件

廈門大學(xué)信息科學(xué)與技術(shù)學(xué)院 奎 偉

1.前言

在做FPGA設(shè)計(jì)時(shí),軟件仿真這個(gè)步驟是必不可少的。仿真工具如Modelsim在每一個(gè)仿真時(shí)鐘片上會(huì)依次計(jì)算電路中每一個(gè)寄存器的值,完成之后再進(jìn)入下一個(gè)仿真時(shí)鐘片。由于CPU的運(yùn)算是串行的,當(dāng)仿真時(shí)間較長(zhǎng),或者電路結(jié)構(gòu)很復(fù)雜時(shí),軟件仿真就會(huì)變成一件很耗時(shí)的事情。

假設(shè)仿真的最小時(shí)鐘片是1ps,那仿真1s的時(shí)間長(zhǎng)度需要進(jìn)行1萬億次時(shí)間片的計(jì)算,每個(gè)時(shí)間片內(nèi)的所需要的計(jì)算時(shí)間是由電路中寄存器的個(gè)數(shù)來決定的。如果目標(biāo)電路是一個(gè)簡(jiǎn)單的加法器,這樣的仿真過程僅需要不到1秒的時(shí)間;但是當(dāng)目標(biāo)電路換成一個(gè)1O萬門以上的系統(tǒng)之后,所需要的仿真時(shí)間就會(huì)變得難以忍受。

軟硬件聯(lián)合仿真的概念早在HDL語言建立之初實(shí)際上就已經(jīng)提出來。HDL的標(biāo)準(zhǔn)里有很大一部分描述了HDL語言與其他高級(jí)編程語言的接口規(guī)范,verilog對(duì)應(yīng)的接口規(guī)范叫做PLI(Programmable Language Interface)[1],這個(gè)接口允許在仿真層次上verilog與C語言進(jìn)行互動(dòng)。有這個(gè)編程接口之后,HDL仿真就變得十分靈活,它可以借助于C語言實(shí)現(xiàn)的驅(qū)動(dòng)程序與各種硬件設(shè)備進(jìn)行交互,這就提供了一種可靠的軟硬件聯(lián)合仿真的技術(shù)基礎(chǔ)。文獻(xiàn)[2]給出了聯(lián)合仿真的統(tǒng)一模型,文獻(xiàn)[3-5]提出了不同的硬件加速設(shè)計(jì)方案。本文基于上述研究,提出一種使用USB2.O接口作為數(shù)據(jù)傳輸通道的軟硬件聯(lián)合仿真平臺(tái)實(shí)現(xiàn)方式。

2.軟硬件聯(lián)合仿真平臺(tái)設(shè)計(jì)

軟硬件聯(lián)合仿真的大體思路是:將一個(gè)系統(tǒng)拆分成為兩部分,待驗(yàn)證模塊和其他部分。將需要重點(diǎn)關(guān)注的待驗(yàn)證模塊放在仿真工具上仿真,然后將其他部分直接燒入FPGA芯片里,通過外設(shè)接口(PCI-E、USB等)實(shí)現(xiàn)FPGA芯片和電腦的數(shù)據(jù)交互。為了保證仿真結(jié)果的可靠性,燒入FPGA芯片內(nèi)的模塊必須是驗(yàn)證后可靠的。

一個(gè)大系統(tǒng)的設(shè)計(jì)往往會(huì)經(jīng)過從算法仿真到硬件描述語言仿真再到FPGA實(shí)現(xiàn)的過程,逐步的由軟件框架變?yōu)橛布O(shè)計(jì)。借助于軟硬件聯(lián)合仿真的方法,就可以將一個(gè)系統(tǒng)分塊由軟件變?yōu)橛布?,并且能夠在設(shè)計(jì)過程中很方便的驗(yàn)證設(shè)計(jì)的正確性和可靠性,將出錯(cuò)的風(fēng)險(xiǎn)分散在整個(gè)設(shè)計(jì)流程內(nèi),降低最后除錯(cuò)的復(fù)雜性。

本設(shè)計(jì)實(shí)現(xiàn)了Modelsim與FPGA開發(fā)板的通信,傳輸接口采用USB2.O。USB2.O數(shù)據(jù)傳輸速率最高可以達(dá)到48OMbps,平均傳輸速率大概是3MB/s,可以滿足仿真過程中大量測(cè)試數(shù)據(jù)的傳輸。

聯(lián)合仿真需要解決的問題主要有,軟硬件通信方式的設(shè)計(jì)以及軟件時(shí)鐘和硬件時(shí)鐘的同步。本設(shè)計(jì)中采用軟件生成時(shí)鐘,驅(qū)動(dòng)硬件產(chǎn)生時(shí)鐘邊沿脈沖信號(hào),來控制硬件運(yùn)行速度,保證軟硬件運(yùn)行速度的一致性。

2.1 系統(tǒng)框架

整個(gè)軟硬件聯(lián)合仿真平臺(tái)的設(shè)計(jì)主要分為三個(gè)部分:Modelsim端的接口程序設(shè)計(jì)、USB驅(qū)動(dòng)在PC上和FPGA上的實(shí)現(xiàn)、FPGA端接口控制電路的設(shè)計(jì)。

Modelsim端需要實(shí)現(xiàn)的功能有:時(shí)鐘信號(hào)的生成,測(cè)試文件的實(shí)現(xiàn)以及實(shí)現(xiàn)USB通信的軟件設(shè)計(jì)。這個(gè)部分是整個(gè)系統(tǒng)的驅(qū)動(dòng)部分,所有對(duì)仿真過程的控制都在Modelsim上實(shí)現(xiàn),同時(shí)也是系統(tǒng)人機(jī)交互的接口。這一部分需要實(shí)現(xiàn)對(duì)硬件的透明化設(shè)計(jì),即用戶只需要修改測(cè)試文件就能控制整個(gè)仿真的流程,與純軟件的仿真過程沒有太大差異。

USB的驅(qū)動(dòng)部分分為PC端和FPGA端。PC端的驅(qū)動(dòng)采用windriver自動(dòng)生成底層接口函數(shù),然后再在這個(gè)基礎(chǔ)上編寫通信控制程序以及PLI的調(diào)用,實(shí)現(xiàn)Modelsim通過USB接口進(jìn)行收發(fā)數(shù)據(jù)的功能。FPGA端采用了一塊通用USB控制芯片cy7c68O13,直接連接到FPGA上。然后在對(duì)該芯片進(jìn)行操作,實(shí)現(xiàn)FPGA通過USB接口進(jìn)行收發(fā)數(shù)據(jù)。

FPGA端接口控制電路的設(shè)計(jì)所實(shí)現(xiàn)的功能包括:時(shí)鐘信號(hào)的生成與驅(qū)動(dòng),仿真數(shù)據(jù)的收集功能,通信幀的組成與解幀。其中重點(diǎn)就是需要完成與軟件時(shí)鐘的同步以及數(shù)據(jù)搜集邏輯的實(shí)現(xiàn)。

2.2 系統(tǒng)性能分析

軟硬件聯(lián)合仿真平臺(tái)的設(shè)計(jì)目標(biāo)是為了加快仿真速度,縮短系統(tǒng)的設(shè)計(jì)周期和設(shè)計(jì)復(fù)雜度。我們會(huì)從時(shí)間性能上來分析使用軟硬件聯(lián)合仿真的方法帶來的好處。

Modelsim的仿真過程是分仿真時(shí)間片進(jìn)行的。每個(gè)仿真時(shí)間片內(nèi),Modelsim按照數(shù)據(jù)路徑依次對(duì)系統(tǒng)中所有門電路和基本邏輯單元的輸出進(jìn)行計(jì)算。因此Modelsim每個(gè)時(shí)間片的仿真時(shí)間與系統(tǒng)綜合后占用的門數(shù)成正相關(guān)。

設(shè)仿真時(shí)間TM與系統(tǒng)所占用的邏輯門數(shù)Ng之間的關(guān)系為:

若采用軟硬件聯(lián)合仿真的方式,將該系統(tǒng)的一部分放入FPGA內(nèi)運(yùn)行,則可以計(jì)算出聯(lián)合仿真模式下所需要的仿真時(shí)間。

對(duì)待測(cè)系統(tǒng)進(jìn)行分割之后,設(shè)需要放入FPGA的部分所占用的邏輯資源比例為p:

采用軟硬件聯(lián)合仿真后,所需要的仿真時(shí)間分為兩個(gè)部分:運(yùn)算和數(shù)據(jù)傳輸,計(jì)算公式如下所示:

上式中,TFPGA表示FPGA內(nèi)部計(jì)算時(shí)間,包括成幀解幀邏輯和系統(tǒng)一個(gè)時(shí)鐘周期的運(yùn)行時(shí)間,而這個(gè)時(shí)間不會(huì)超過微秒數(shù)量級(jí),所以通常情況下,

上式可以化簡(jiǎn)為:

由系統(tǒng)加速比的公式可以看出,軟硬件聯(lián)合仿真所帶來的加速收益是與軟硬件劃分程度p和系統(tǒng)復(fù)雜度Ng成正比。而USB傳輸所需的時(shí)間又可分為設(shè)備初始化時(shí)間和傳輸時(shí)間,由于這是一個(gè)高速的串行接口,因此對(duì)于絕大多數(shù)待測(cè)系統(tǒng)來說,tUSB可以看作是一個(gè)固定不變的值(即不隨系統(tǒng)的復(fù)雜度而改變)。因此,當(dāng)系統(tǒng)越復(fù)雜時(shí),采用軟硬件聯(lián)合仿真可以得到更好的仿真加速性能。

3.仿真平臺(tái)的實(shí)現(xiàn)

3.1 PC端設(shè)計(jì)

PC端實(shí)現(xiàn)的功能是:1.產(chǎn)生測(cè)試用信號(hào);2.實(shí)現(xiàn)USB接口驅(qū)動(dòng),完成與FPGA的通信;3.利用PLI的接口在Modelsim的波形窗口中顯示需要關(guān)注的信號(hào)。

如圖2所示,待測(cè)系統(tǒng)被分為軟件和硬件兩個(gè)部分。同樣,我們所設(shè)計(jì)的接口也分為軟件和硬件部分,PC端實(shí)現(xiàn)的就是仿真平臺(tái)接口的軟件部分。

PLI全稱為Programmable Language Interface,是在1985年就公布的Verilog HDL語言與c語言的編程接口。通過PLI接口,Verilog HDL語言的仿真器變得更為靈活,可以完成幾乎任何能夠想到的任務(wù),包括圖形交互工具、文件讀寫、以及本設(shè)計(jì)中所用到的硬件驅(qū)動(dòng)。

定義系統(tǒng)任務(wù)$getData,實(shí)現(xiàn)PC端對(duì)數(shù)據(jù)的讀取操作。該系統(tǒng)在時(shí)鐘信號(hào)發(fā)生變化時(shí)做出響應(yīng),首先會(huì)判斷時(shí)鐘上升沿和復(fù)位、使能信號(hào)是否有效。當(dāng)條件都滿足時(shí),$getData讀入標(biāo)準(zhǔn)化后的輸出端口信號(hào)值,將其打包組成通信幀,之后再調(diào)用USB驅(qū)動(dòng)程序?qū)?shù)據(jù)發(fā)送出去,并且讀入來自FPGA的輸入端口信號(hào)值,解幀后驅(qū)動(dòng)到Verilog HDL的端口上,實(shí)現(xiàn)PC與FPGA的通信。

圖1 系統(tǒng)設(shè)計(jì)框圖

圖2 系統(tǒng)軟硬劃分示意圖

圖3 通信幀結(jié)構(gòu)

圖4 FPGA端結(jié)構(gòu)圖

圖5 待測(cè)模塊的時(shí)鐘生成邏輯

圖6 加法器的軟硬件聯(lián)合仿真結(jié)果

圖7 加法器的軟硬件聯(lián)合仿真波形圖

3.2 通信幀設(shè)計(jì)

對(duì)于不同的待測(cè)系統(tǒng),所需要傳輸?shù)男盘?hào)數(shù)量也各不相同。為了保持通用性,我們?cè)谲浻布抡嫫脚_(tái)的USB通信部分設(shè)計(jì)了數(shù)據(jù)幀格式,使得程序可以自主的完成傳輸過程,而不需要對(duì)每一個(gè)待測(cè)系統(tǒng)再進(jìn)行單獨(dú)的配置。

通信幀的結(jié)構(gòu)如圖3所示。幀長(zhǎng)度設(shè)計(jì)為32(N+1)bits,其中N代表每一幀包含的32位端口個(gè)數(shù)。一個(gè)完整的通信幀由1個(gè)記錄傳輸信息的幀頭和N個(gè)記錄數(shù)據(jù)的幀體所組成。當(dāng)N=7時(shí),每個(gè)通信幀的傳輸容量為256位,其中可以傳輸224位信號(hào)線的數(shù)據(jù)。

幀頭的32位數(shù)據(jù)定義如下:頁數(shù)12位,表示當(dāng)前通信過程總共需要的通信幀的個(gè)數(shù),最多可以支持到4O95個(gè)幀,28665x32位的數(shù)據(jù)傳輸。頁號(hào)12位,表示當(dāng)前幀在整個(gè)通信過程中的序號(hào),用來避免順序出錯(cuò)以及做通信結(jié)束判斷標(biāo)志。特殊信號(hào)7位,每一位代表一種特殊信號(hào),比如時(shí)鐘、復(fù)位、使能信號(hào)等控制信號(hào)。傳輸方向標(biāo)志(I/O)1位,表示當(dāng)前通信幀是由FPGA傳向PC還是反向。

作為數(shù)據(jù)空間,第一幀的第二個(gè)子幀(即數(shù)據(jù)域端口1)的32位被用來以無符號(hào)整數(shù)的形式傳輸port_in(或port_out)端口的個(gè)數(shù),因此有效的總數(shù)據(jù)量會(huì)減少32位。

3.3 FPGA端設(shè)計(jì)

FPGA端完成的工作包括USB芯片的時(shí)序控制電路,以及聯(lián)合仿真的時(shí)鐘數(shù)據(jù)控制電路,共分為兩個(gè)獨(dú)立的模塊實(shí)現(xiàn),分別是USB_FPGA和enFrame。前者實(shí)現(xiàn)的是對(duì)USB接口進(jìn)行32位數(shù)據(jù)的讀寫操作,后者實(shí)現(xiàn)將USB端口傳入的數(shù)據(jù)正確的配置到待測(cè)模塊Part-B上,并控制Part-B進(jìn)行單時(shí)鐘脈沖運(yùn)行(單步運(yùn)行),使得FPGA的運(yùn)行速度與PC端Modelsim的仿真速度相匹配。

與軟件端對(duì)應(yīng),enFrame也采用自動(dòng)代碼生成器生成與Part-B的連線邏輯,并且內(nèi)部實(shí)現(xiàn)了將PC端傳來的通信幀解幀,剝離出數(shù)據(jù)信號(hào),配置到Part-B的輸入端口;同時(shí),enFrame也在每一個(gè)仿真時(shí)鐘周期對(duì)Part-B的輸出信號(hào)采樣,成幀后由USB接口發(fā)送至仿真平臺(tái)的軟件端。

這個(gè)過程有一個(gè)難點(diǎn)在于,如何實(shí)現(xiàn)FPGA上系統(tǒng)的單步運(yùn)行。我們采用的方法是,將Part-B的時(shí)鐘信號(hào)單獨(dú)剝離出來,由測(cè)試平臺(tái)提供的單脈沖上升沿信號(hào)作為Part-B的時(shí)鐘輸入。如圖5所示,利用使能信號(hào)ENB和晶振產(chǎn)生的方波信號(hào),可以實(shí)現(xiàn)易于控制的單脈沖時(shí)鐘信號(hào)。當(dāng)enFrame將所有數(shù)據(jù)信號(hào)配置在Part-B的輸入端之后,激活使能信號(hào)ENB,在一個(gè)時(shí)鐘周期之后立刻禁用ENB,這樣,圖5所示電路的輸出就只有單個(gè)上升沿/下降沿,達(dá)到預(yù)先的目的。

4.測(cè)試實(shí)例

通過USB接口,對(duì)FPGA發(fā)送測(cè)試數(shù)據(jù)。將FPGA數(shù)據(jù)處理后的結(jié)果采集并發(fā)送給Modelsim中的shift.v模塊。如圖6,DataIn是通過USB發(fā)送給FPGA上加法器的測(cè)試數(shù)據(jù),DataOut是經(jīng)FPGA加法后返回的數(shù)據(jù),可見結(jié)果是正確的。如圖7,是將DataOut發(fā)送給Modelsim,由shift.v模塊中的din接收,dout為經(jīng)過移位后的結(jié)果。如圖6:DataIn[O]傳入FPGA數(shù)據(jù)為97,經(jīng)加法后為DataOut[O]=98,發(fā)送給shift.v的dinO為98,經(jīng)右移后結(jié)果為doutO為49。結(jié)果完全正確。從而驗(yàn)證了硬件仿真加速的想法。同樣,亦可在FPGA中運(yùn)行更為復(fù)雜的系統(tǒng),UUT模塊選擇為H.264,方法亦是相同的。

5.結(jié)論

本文實(shí)現(xiàn)了PC與FPGA的聯(lián)合仿真平臺(tái)設(shè)計(jì),并從理論上證明了該仿真平臺(tái)能夠達(dá)到的加速性能。軟硬件聯(lián)合仿真平臺(tái)共分為3個(gè)部分,分別是電腦上的用戶軟件接口,數(shù)據(jù)通信協(xié)議和FPGA內(nèi)的控制模塊,電腦與FPGA平臺(tái)使用USB接口連接。本文使用加法器作為測(cè)試樣例證明了該結(jié)構(gòu)的可行性。與純軟件仿真的FPGA設(shè)計(jì)方法相比,在設(shè)計(jì)過程中使用聯(lián)合仿真方案可以極大降低設(shè)計(jì)風(fēng)險(xiǎn),縮短設(shè)計(jì)周期。

[1]“IEEE Standard Verilog Hardware Description Language”,New York,September 2001.

[2]Valderrama,C.,A.Changuel,et al.“A unified model for co-simulation and co-synthesis of mixed hardware/software systems”,Proceedings of European design and test conference,1995.

[3]Ruelland,R.,Gateau,G.,Meynard,T.A.,Hapiot,J.-C,“Design of FPGA-based emulator for series multicell converters using cosimulation tools”,IEEE Transactions on Power Electronics,January 2003.

[4]Jingzhao Ou,Prasanna,V.K.,“MATLAB/Simulink based hardware/software cosimulation for designing Using FPGA configured soft processors”,Proceeding of parallel and distributed processing symposium,2005.

[5]A.Hoffman,T.Kogel,H.Meyr,“A framework for fast hardware-software co-simulation”,Pro-ceeding of the conference on design,utomation and test in Europe,2001.

猜你喜歡
時(shí)鐘傳輸軟件
禪宗軟件
英語文摘(2021年10期)2021-11-22 08:02:26
別樣的“時(shí)鐘”
混合型隨機(jī)微分方程的傳輸不等式
牽引8K超高清傳輸時(shí)代 FIBBR Pure38K
古代的時(shí)鐘
軟件對(duì)對(duì)碰
電子制作(2018年18期)2018-11-14 01:48:00
有趣的時(shí)鐘
支持長(zhǎng)距離4K HDR傳輸 AudioQuest Pearl、 Forest、 Cinnamon HDMI線
時(shí)鐘會(huì)開“花”
兰溪市| 南雄市| 左贡县| 象州县| 静乐县| 沐川县| 土默特左旗| 广灵县| 龙口市| 清远市| 同仁县| 安图县| 洪泽县| 翁牛特旗| 即墨市| 郴州市| 遂川县| 广昌县| 锡林浩特市| 佳木斯市| 磐安县| 葵青区| 遵化市| 玉溪市| 桂平市| 松原市| 湟源县| 泰顺县| 景泰县| 乐至县| 北安市| 白水县| 新沂市| 获嘉县| 营山县| 哈密市| 汾阳市| 多伦县| 农安县| 娱乐| 合作市|