亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,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萬(wàn)億次時(shí)間片的計(jì)算,每個(gè)時(shí)間片內(nèi)的所需要的計(jì)算時(shí)間是由電路中寄存器的個(gè)數(shù)來決定的。如果目標(biāo)電路是一個(gè)簡(jiǎn)單的加法器,這樣的仿真過程僅需要不到1秒的時(shí)間;但是當(dāng)目標(biāo)電路換成一個(gè)1O萬(wàn)門以上的系統(tǒng)之后,所需要的仿真時(shí)間就會(huì)變得難以忍受。

        軟硬件聯(lián)合仿真的概念早在HDL語(yǔ)言建立之初實(shí)際上就已經(jīng)提出來。HDL的標(biāo)準(zhǔn)里有很大一部分描述了HDL語(yǔ)言與其他高級(jí)編程語(yǔ)言的接口規(guī)范,verilog對(duì)應(yīng)的接口規(guī)范叫做PLI(Programmable Language Interface)[1],這個(gè)接口允許在仿真層次上verilog與C語(yǔ)言進(jìn)行互動(dòng)。有這個(gè)編程接口之后,HDL仿真就變得十分靈活,它可以借助于C語(yǔ)言實(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)過從算法仿真到硬件描述語(yǔ)言仿真再到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語(yǔ)言與c語(yǔ)言的編程接口。通過PLI接口,Verilog HDL語(yǔ)言的仿真器變得更為靈活,可以完成幾乎任何能夠想到的任務(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ù)定義如下:頁(yè)數(shù)12位,表示當(dāng)前通信過程總共需要的通信幀的個(gè)數(shù),最多可以支持到4O95個(gè)幀,28665x32位的數(shù)據(jù)傳輸。頁(yè)號(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í)鐘傳輸軟件
        禪宗軟件
        別樣的“時(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ì)開“花”
        九九99国产精品视频| 国产色系视频在线观看| 免费无遮挡禁18污污网站| 亚洲精品成人专区在线观看| 欧洲无码一级毛片无遮挡| 午夜少妇高潮在线观看视频| 内射干少妇亚洲69xxx| 蜜臀久久99精品久久久久久小说| 亚洲国产精品午夜电影| 美女射精视频在线观看| 国产无套中出学生姝| 男女一边摸一边做爽爽的免费阅读| 亚洲一区sm无码| 国产精品久久国产精麻豆| www国产亚洲精品| 日韩精品无码免费专区网站| 国产视频最新| 中文字幕日本在线乱码| 亚洲精品无码专区在线在线播放| 国产女女做受ⅹxx高潮| 官网A级毛片| 亚洲日本中文字幕高清在线| 国产av无码专区亚洲av蜜芽| 国产jizzjizz视频免费看| 午夜精品一区二区三区av免费| 日本国产亚洲一区二区| 国产69精品久久久久999小说| 日韩AV无码一区二区三不卡| 国产丝袜一区丝袜高跟美腿| 日本又色又爽又黄又免费网站| 国产亚洲av人片在线观看| 免费无码黄网站在线观看| 中文字幕中文字幕在线中二区| 一区二区三区国产| 国产最新AV在线播放不卡| 国产av精品一区二区三区视频| 久久久久九九精品影院| 97一区二区国产好的精华液| 美腿丝袜一区二区三区| 亚洲色图三级在线观看| 久久人与动人物a级毛片|