亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

軟硬件協(xié)同仿真通信方法

文檔序號(hào):6555181閱讀:240來(lái)源:國(guó)知局
專利名稱:軟硬件協(xié)同仿真通信方法
技術(shù)領(lǐng)域
本發(fā)明涉及集成電路設(shè)計(jì)技術(shù)領(lǐng)域,特別涉及SOC(system-on-a-chip片上系統(tǒng))的設(shè)計(jì)驗(yàn)證技術(shù)。
背景技術(shù)
傳統(tǒng)的SOC設(shè)計(jì)中,其過(guò)程一般是系統(tǒng)的預(yù)研,劃分各功能模塊(包括軟件、硬件),具體模塊的實(shí)現(xiàn),然后是各個(gè)模塊的集合、驗(yàn)證。按照傳統(tǒng)的方法,硬件模塊和軟件模塊各自分開(kāi)驗(yàn)證其功能是否正確,也就是說(shuō),它們的驗(yàn)證不在同一個(gè)環(huán)境之下。這種方法存在很多缺點(diǎn)。首先,硬件和軟件模塊必須根據(jù)系統(tǒng)要求,建立各自的驗(yàn)證環(huán)境,這必然導(dǎo)致兩個(gè)環(huán)境的不一致性;同時(shí),額外增加了硬件模擬軟件環(huán)境和軟件模擬硬件環(huán)境的仿真模型;另外,仿真模型有別于實(shí)際的代碼,以至于最后整合時(shí),容易產(chǎn)生不可預(yù)期的錯(cuò)誤,導(dǎo)致整個(gè)設(shè)計(jì)的反復(fù)。軟硬件協(xié)同驗(yàn)證,則在最大程度上解決了分開(kāi)驗(yàn)證的缺點(diǎn),使軟件和硬件能夠盡早協(xié)同運(yùn)作,讓軟件調(diào)試和硬件調(diào)試在同一時(shí)間進(jìn)行,及時(shí)發(fā)現(xiàn)軟件和硬件的錯(cuò)誤。
為了解決這個(gè)問(wèn)題,目前業(yè)內(nèi)有一系列的方法最常見(jiàn)的一種是軟原型驗(yàn)證,即將硬件設(shè)計(jì)由HDL仿真器在工作站上模擬,軟件模型與硬件仿真器之間通過(guò)API接口通信來(lái)實(shí)現(xiàn)整個(gè)系統(tǒng)的軟硬件部分的聯(lián)合仿真,即Co-simulation。這種方法的優(yōu)點(diǎn)在于整個(gè)仿真驗(yàn)證過(guò)程的可控性和可監(jiān)測(cè)性很好,成本低;其缺點(diǎn)在于驗(yàn)證能力有限,只能適用于早期測(cè)試、接口調(diào)試和代碼調(diào)試方面;且仿真運(yùn)行速度很慢;此外它只能驗(yàn)證模型在功能上的正確性,沒(méi)有精確至周期,也沒(méi)精確至引腳;并且它很難解決外圍設(shè)備數(shù)據(jù)同步的要求。另一中方法為快速原型系統(tǒng),實(shí)現(xiàn)途徑包括仿效(Emulation)、可重配置原型系統(tǒng)&專用原型系統(tǒng),它是一種將SOC系統(tǒng)快速映射到基于處理器陣列或基于FPGA器件而構(gòu)建出來(lái)的可重配置的平臺(tái)來(lái)對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證的方法。這種方法的優(yōu)點(diǎn)在于仿真速度很快,但仿真過(guò)程的可控性和可檢測(cè)性差,且成本很高。
因此,SOC軟硬件聯(lián)合驗(yàn)證仍是個(gè)需要解決的問(wèn)題。以下列舉已有專利及項(xiàng)目提出的一些解決方法。
國(guó)內(nèi)研發(fā)的SOC軟硬件驗(yàn)證平臺(tái)的典型案例有浙江大學(xué)的媒體處理器軟硬件協(xié)同仿真驗(yàn)證平臺(tái)(MPSP)、清華大學(xué)微電子所基于Celoxica的RC1000和RC200平臺(tái)提出了改進(jìn)型SoC原型驗(yàn)證電路板設(shè)計(jì)方案等。但是,浙江大學(xué)的MPSP專用性過(guò)強(qiáng),可擴(kuò)展性不能滿足SoC系統(tǒng)研發(fā)的實(shí)際需要,清華大學(xué)的SoC原型驗(yàn)證方案還不成熟,不能提供完整的平臺(tái)。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是,為SOC軟硬件聯(lián)合驗(yàn)證提供一種軟硬件雙方數(shù)據(jù)通信機(jī)制,為聯(lián)合驗(yàn)證提供通信支持。
本發(fā)明解決所述技術(shù)問(wèn)題采用的技術(shù)方案是,軟硬件協(xié)同仿真通信方法,軟硬件協(xié)同仿真通信方法,其特征在于,在仿真初始化階段,軟件側(cè)和硬件側(cè)之間交換的數(shù)據(jù)包內(nèi)包括下列數(shù)據(jù)方向標(biāo)識(shí),用于標(biāo)識(shí)本數(shù)據(jù)包在雙方傳送的方向;數(shù)據(jù)類型標(biāo)識(shí),用于標(biāo)識(shí)本數(shù)據(jù)包是否為寄存器配置信息;第一數(shù)據(jù)標(biāo)識(shí),用于標(biāo)識(shí)本數(shù)據(jù)包是否為信號(hào)使能位;寄存器地址,用于標(biāo)識(shí)需要配置的寄存器的地址;寄存器數(shù)據(jù),即向寄存器送出的配置信息;時(shí)鐘;輸入信號(hào)使能標(biāo)識(shí);輸出信號(hào)使能標(biāo)識(shí);第一使能標(biāo)識(shí)。
進(jìn)一步的,數(shù)據(jù)包內(nèi)還包括仿真模式類型標(biāo)識(shí),用于標(biāo)識(shí)屬于聯(lián)合仿真模式還是矢量仿真模式;第一長(zhǎng)度標(biāo)識(shí),用于標(biāo)識(shí)數(shù)據(jù)包中幀的個(gè)數(shù);第二長(zhǎng)度標(biāo)識(shí),用于標(biāo)識(shí)本次通信中數(shù)據(jù)包的個(gè)數(shù)。
在仿真運(yùn)行階段,硬件側(cè)和軟件側(cè)之間交換的數(shù)據(jù)包內(nèi)包括下列數(shù)據(jù)時(shí)鐘用來(lái)定義時(shí)鐘的,總共可定義8個(gè)時(shí)鐘,最高位為第一個(gè)時(shí)鐘,次位為第二個(gè)時(shí)鐘,依此類推24位為第八個(gè)時(shí)鐘;輸入標(biāo)記用來(lái)表述輸入信號(hào)的值;方向標(biāo)記用來(lái)表述雙向信號(hào)輸入方向的值;第二使能標(biāo)記輸入和雙向信號(hào)的使能位的值。
數(shù)據(jù)包是固定長(zhǎng)度,如果長(zhǎng)度不足,以填充位填滿。
本發(fā)明的有益效果是,為硬件加速器或仿效器和軟件仿真器正確高速的傳輸數(shù)據(jù)提供了支持,使軟硬件雙方協(xié)同工作,以完成對(duì)整個(gè)系統(tǒng)的驗(yàn)證。
以下結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。


圖1為本發(fā)明的實(shí)現(xiàn)軟硬件協(xié)同仿真通信協(xié)議數(shù)據(jù)包的結(jié)構(gòu)圖;圖2是本發(fā)明的數(shù)據(jù)包的包頭格式示意圖;圖3是初始化階段配置寄存器的包體中的一個(gè)幀的結(jié)構(gòu)示意圖;圖4是使能位的包體格式示意圖;圖5是初始化階段詳細(xì)的包體組織格式;圖6是仿真運(yùn)行階段軟件側(cè)傳遞給硬件側(cè)的包體的格式示意圖;圖7是仿真運(yùn)行階段軟件側(cè)傳遞給硬件側(cè)的詳細(xì)包頭的格式示意圖。
圖8是由硬件側(cè)傳回軟件側(cè)的數(shù)據(jù)包體的格式示意圖;圖9是詳細(xì)的數(shù)據(jù)包體格式示意圖;圖10是仿真結(jié)束階段具體包體的格式示意圖。
圖11是本發(fā)明的通信方法的工作環(huán)境示意圖。
具體實(shí)施例方式
本發(fā)明的的通信方法是基于如下SOC驗(yàn)證機(jī)制SOC軟硬件一體化設(shè)計(jì)驗(yàn)證方法,包括以下步驟a、初始化;b、軟件側(cè)向硬件側(cè)發(fā)送激勵(lì)數(shù)據(jù)包;c、硬件側(cè)根據(jù)激勵(lì)數(shù)據(jù)包進(jìn)行仿真處理,將處理結(jié)果發(fā)回軟件側(cè),并為軟件側(cè)接收;d、循環(huán)步驟b-c直到仿真結(jié)束。
以Co-Simulation模式仿真為例。
Co-Simulation模式仿真的基本機(jī)理在仿真初始化之后,即可進(jìn)入仿真運(yùn)行階段。仿真運(yùn)行時(shí),軟件先向硬件發(fā)送一個(gè)激勵(lì)數(shù)據(jù)包,然后接收一個(gè)來(lái)自硬件的響應(yīng)數(shù)據(jù)包;接著再發(fā)送一個(gè)激勵(lì)數(shù)據(jù)包,然后接收一個(gè)響應(yīng)數(shù)據(jù)包;如此循環(huán)交替進(jìn)行下去,直到仿真結(jié)束為止。
a)仿真的初始化階段在仿真的初始化階段,軟件側(cè)通過(guò)向硬件側(cè)發(fā)送兩個(gè)數(shù)據(jù)包,其中第一個(gè)數(shù)據(jù)包中包含硬件側(cè)寄存器的配置信息,通過(guò)對(duì)硬件側(cè)的寄存器寫(xiě)入相應(yīng)的值,第二個(gè)數(shù)據(jù)包中對(duì)每一個(gè)數(shù)據(jù)位的輸入輸出方向進(jìn)行定義。從而完成對(duì)硬件側(cè)的初始化。
b)仿真運(yùn)行階段在仿真的運(yùn)行階段,軟硬件數(shù)據(jù)的通訊以數(shù)據(jù)包的形式進(jìn)行傳送,數(shù)據(jù)包包括包頭(Packet Header)和包體(Packet Body,對(duì)于Co-Simulation模式,一個(gè)數(shù)據(jù)包體就對(duì)應(yīng)一次協(xié)同仿真周期的數(shù)據(jù)),在仿真進(jìn)行中,在每一個(gè)協(xié)同仿真周期由軟件環(huán)境發(fā)送一個(gè)數(shù)據(jù)包(由數(shù)據(jù)包頭緊跟著一個(gè)負(fù)載數(shù)據(jù)包構(gòu)成),等待硬件方完成仿真后,將數(shù)據(jù)包(由數(shù)據(jù)包頭緊跟負(fù)載數(shù)據(jù)包構(gòu)成)傳回后,進(jìn)行處理后傳回給仿真器。在這里給出仿真運(yùn)行階段的數(shù)據(jù)包和負(fù)載數(shù)據(jù)的格式。Co-Simulation模式的仿真過(guò)程軟件發(fā)送第一個(gè)激勵(lì)數(shù)據(jù)包,讀取硬件返回的第一個(gè)激勵(lì)數(shù)據(jù)包的響應(yīng)數(shù)據(jù)包,發(fā)送第二個(gè)激勵(lì)數(shù)據(jù)包,讀取硬件返回的第二個(gè)激勵(lì)數(shù)據(jù)包的響應(yīng)數(shù)據(jù)包,如此循環(huán)下去,直到仿真結(jié)束。即在仿真過(guò)程中,從軟件側(cè)發(fā)送到硬件側(cè)和從硬件側(cè)發(fā)送到軟件側(cè)的數(shù)據(jù)包的大小在初始化化完成后是確定的。在仿真期間不允許有變化長(zhǎng)度的數(shù)據(jù)包出現(xiàn)。
c)仿真結(jié)束階段軟件側(cè)在仿真結(jié)束后,由軟件側(cè)向硬件側(cè)發(fā)送一個(gè)字長(zhǎng)為17的32位數(shù)據(jù)包。通知硬件以結(jié)束仿真。其中負(fù)載數(shù)據(jù)包即是關(guān)斷聯(lián)合仿真卡所有I/O的方向使能信息(全為‘0’)。
附圖1為本發(fā)明的實(shí)現(xiàn)軟硬件協(xié)同仿真通信協(xié)議數(shù)據(jù)包的結(jié)構(gòu)圖;圖中所取為數(shù)據(jù)流片斷,它是由數(shù)據(jù)包組成,數(shù)據(jù)包一個(gè)個(gè)32位的幀構(gòu)成,幀的個(gè)數(shù)由具體的數(shù)據(jù)包類型決定;數(shù)據(jù)包由包頭和包體組成,包頭的長(zhǎng)度是固定的為一幀,主要用來(lái)定義驗(yàn)證模式、數(shù)據(jù)流的方向、指示數(shù)據(jù)包體類型、數(shù)據(jù)包的類型、包體的長(zhǎng)度、包頭標(biāo)記位和數(shù)據(jù)包的個(gè)數(shù)等,包體由若干個(gè)幀構(gòu)成,它的個(gè)數(shù)是不固定的,幀的個(gè)數(shù)由具體的數(shù)據(jù)包類型決定。
整個(gè)軟硬件協(xié)同仿真過(guò)程分為三個(gè)階段仿真初始化、仿真運(yùn)行和仿真結(jié)束;每個(gè)仿真階段的數(shù)據(jù)包的格式統(tǒng)一定義為圖1所示,其中每一格為一個(gè)幀,幀的大小是32bit;數(shù)據(jù)包的第一個(gè)幀是數(shù)據(jù)包的包頭,包頭后緊跟是包體,包體是由n個(gè)幀組成,n是由數(shù)據(jù)包的類型決定。
在軟硬件協(xié)同仿真通信協(xié)議中統(tǒng)一定義了數(shù)據(jù)包的包頭格式,如圖2所示;對(duì)于包體,針對(duì)不同的仿真階段有不同的定義格式;包頭中每一位的具體意義如下描述DIR方向位,包頭幀的第31位,0表示數(shù)據(jù)包從軟件側(cè)傳遞到硬件側(cè),1表示數(shù)據(jù)包從硬件側(cè)傳遞到軟件側(cè);Type類型位,包頭幀的第30位,1表示數(shù)據(jù)包為寄存器配置信息,0表示數(shù)據(jù)包為非寄存器配置信息;Mode仿真模式選擇位,包頭幀的第29位,1表示Co-Simulation模式(聯(lián)合仿真模式),0表示Vector仿真模式(矢量仿真模式);EN標(biāo)記位,數(shù)據(jù)包頭的第28位,1表示數(shù)據(jù)包是信號(hào)使能位的信息,0表示數(shù)據(jù)包不是信號(hào)使能位的信息。
SHD關(guān)斷包位,數(shù)據(jù)包頭的第27位,1表示數(shù)據(jù)包為關(guān)斷包,0表示數(shù)據(jù)包為非關(guān)斷包;N/A保留位,數(shù)據(jù)包頭的第17位到16位和第26位到24位,留做以后擴(kuò)展;Length包頭的第23到18位,表示數(shù)據(jù)包中幀的個(gè)數(shù)(包括包體和包頭),以32bit為一個(gè)計(jì)數(shù)單位;NO_FRA表示數(shù)據(jù)包的個(gè)數(shù);包頭標(biāo)記位包頭的第9位到0位,為恒定值0x0A5;對(duì)于包體的格式定義,我們針對(duì)不同的仿真階段有不同的定義仿真初始化階段軟件側(cè)向硬件側(cè)發(fā)送數(shù)據(jù),對(duì)硬件側(cè)進(jìn)行初始化;發(fā)送的數(shù)據(jù)含兩種類型的數(shù)據(jù)包,其中一種數(shù)據(jù)包中包含硬件側(cè)寄存器的配置信息,對(duì)硬件側(cè)的寄存器寫(xiě)入相應(yīng)的初始化值,另一種數(shù)據(jù)包是用來(lái)定義時(shí)鐘的個(gè)數(shù)和輸入輸出信號(hào)。根據(jù)不同的數(shù)據(jù)包類型定義不同的包體一種包體用來(lái)配置硬件側(cè)中的寄存器,一種用來(lái)配置時(shí)鐘和輸入、輸出與雙向信號(hào)信號(hào)的使能位。具體包體定義如下
配置寄存器的包體格式(如圖3所示為包體中的一個(gè)幀)。
ADDR1和ADDR2是要配置的寄存器的地址,DATA1和DATA2是要配置的寄存器的配置信息;對(duì)于不足32位的寄存器配置信息,以1作為填充;硬件的軟復(fù)位實(shí)現(xiàn)通過(guò)對(duì)0x00寄存器寫(xiě)入FF值實(shí)現(xiàn)復(fù)位。復(fù)位的時(shí)間由地址為01H寄存器寫(xiě)入的值確定。硬件在復(fù)位時(shí)間后自動(dòng)恢復(fù)到正常的工作狀態(tài)。軟復(fù)位與配置寄存器采用不同的數(shù)據(jù)包進(jìn)行發(fā)送。
在初始化階段,需配置的寄存器如下表1所列,地址為0x00~0x0B的12個(gè)寄存器


表1用來(lái)配置時(shí)鐘和輸入、輸出與雙向信號(hào)信號(hào)的使能位的包體格式,如圖4所示;包體中幀的數(shù)目是可變的,它是由輸入、輸出和雙向信號(hào)的個(gè)數(shù)決定,對(duì)于不滿32bit的幀以0作填充。詳細(xì)的包體組織格式如圖5所示。
CLOCK用來(lái)定義時(shí)鐘的,總共可定義8個(gè)時(shí)鐘,最高位為第一個(gè)時(shí)鐘,次位為第二個(gè)時(shí)鐘,依此類推24位為第八個(gè)時(shí)鐘;例如啟用編號(hào)為0和3的時(shí)鐘時(shí),則clock段的八位為1001000。
INPUT’EN用來(lái)定義輸入信號(hào)的使能位,以1填充,1的個(gè)數(shù)由輸入信號(hào)的個(gè)數(shù)決定;OUTPUT’EN用來(lái)定義輸出信號(hào)的使能位,以1填充,1的個(gè)數(shù)由輸出信號(hào)的個(gè)數(shù)決定;INOUT’EN用來(lái)定義雙向信號(hào)的使能位,以1填充,1的個(gè)數(shù)由雙向信號(hào)的個(gè)數(shù)決定;Padding填充位,用來(lái)填充不滿32bit的幀;在初始化階段,發(fā)送完以上兩個(gè)數(shù)據(jù)包后,就認(rèn)為硬件的初始化就已經(jīng)完成,在每一次仿真啟動(dòng)的時(shí)候,軟件都要對(duì)硬件進(jìn)行初始化。
仿真運(yùn)行階段軟件側(cè)向硬件側(cè)發(fā)送數(shù)據(jù)對(duì)硬件側(cè)施加激勵(lì)信號(hào),等待硬件側(cè)完成仿真后將數(shù)據(jù)通過(guò)PCI傳回軟件側(cè)。仿真運(yùn)行階段的數(shù)據(jù)包的包體分為兩種一種是由軟件側(cè)發(fā)送給硬件側(cè)的,它是對(duì)硬件施加的激勵(lì)信號(hào);另一種是由硬件側(cè)傳遞給軟件側(cè)的,它是從硬件讀回的仿真數(shù)據(jù)。具體數(shù)據(jù)包格式定義發(fā)送(由軟件側(cè)傳遞給硬件側(cè))包體的格式如圖6所示。
CLOCK用來(lái)定義時(shí)鐘的,總共可定義8個(gè)時(shí)鐘,最高位為第一個(gè)時(shí)鐘,次位為第二個(gè)時(shí)鐘,依此類推24位為第八個(gè)時(shí)鐘;例如啟用編號(hào)為0和3的時(shí)鐘時(shí),則clock段的八位為1001000。
INPUT用來(lái)存儲(chǔ)輸入信號(hào)的值;INOUT用來(lái)存儲(chǔ)雙向信號(hào)輸入方向的值;EN輸入和雙向信號(hào)的使能位的值,1表示使能信號(hào),以1填充,1的個(gè)數(shù)由輸入信號(hào)或雙向信號(hào)的個(gè)數(shù)決定;Padding填充位,用來(lái)填充不滿32bit的幀;詳細(xì)的包頭格式如圖7所示。
對(duì)發(fā)送包體格式的幾點(diǎn)說(shuō)明CLOCK時(shí)鐘位的長(zhǎng)度恒為8位,對(duì)應(yīng)于第一個(gè)32位數(shù)據(jù)的31,30....24位依次對(duì)應(yīng)于時(shí)鐘通道的第0,1,2,3,4,5,6,7個(gè)時(shí)鐘通道。時(shí)鐘數(shù)據(jù)為時(shí)鐘信號(hào)當(dāng)前的實(shí)際電平。未啟用時(shí)鐘始終以0填充,比如已啟用0通道時(shí)鐘,則8位CLOCK值為?000_0000(注?代表該已啟用時(shí)鐘信號(hào)為當(dāng)前仿真數(shù)據(jù)下對(duì)應(yīng)的實(shí)際電平)。
CLK,INPUT和INOUT的位數(shù)之和如果不為32的整數(shù)倍,則在其后面通過(guò)引入PADDING信息,將其擴(kuò)展為32位的整數(shù)倍,如上圖所示。其中INPUT共有X位。INOUT共有Y位。如8+X+Y=55,則應(yīng)在后面添加9個(gè)1,作為填充位。
EN位,作為發(fā)送數(shù)據(jù)(包括clock,input,inout)位的方向選擇信號(hào),1表示對(duì)應(yīng)位為輸入(軟件傳遞激勵(lì)信息硬件);0表示對(duì)應(yīng)發(fā)送數(shù)據(jù)位為輸出信號(hào)(數(shù)據(jù)自硬件返回給軟件側(cè))。EN位的每一位數(shù)據(jù)與發(fā)送數(shù)據(jù)的clock,input,inout位的每一位一一對(duì)應(yīng),不足32位的整數(shù)倍時(shí),在后面添加PADIDNG信息。
關(guān)于時(shí)鐘信號(hào)對(duì)應(yīng)的8位EN,當(dāng)前數(shù)據(jù)包對(duì)應(yīng)的時(shí)鐘信號(hào)如果發(fā)生了跳變,其對(duì)應(yīng)位的EN為‘1’,否則為‘0’,比如,當(dāng)前數(shù)據(jù)包是對(duì)應(yīng)編號(hào)為3的時(shí)鐘跳變,則這8位EN編碼為0001000。
對(duì)于沒(méi)有INOUT雙向數(shù)據(jù)位時(shí)EN位的處理,即為本文檔中的Y=0的特殊情況。與Y?。?(有雙向數(shù)據(jù)位時(shí))的處理方法一樣。
接收(由硬件側(cè)傳回軟件側(cè)的)數(shù)據(jù)包體的格式如圖8所示。
INOUT用來(lái)存儲(chǔ)雙向信號(hào)輸出方向的值OUTPUT用來(lái)存儲(chǔ)輸出信號(hào)的值;Padding1和Padding2填充位,用來(lái)填充不滿32bit的幀;詳細(xì)的數(shù)據(jù)包體格式參見(jiàn)圖9。
在自硬件側(cè)返回的數(shù)據(jù)中,包括有PADDING信息,和INOUT位和OUTPUT位。
在仿真過(guò)程中,從軟件側(cè)發(fā)送到硬件側(cè)和從硬件側(cè)發(fā)送到軟件側(cè)的數(shù)據(jù)包的大小在初始化化完成后是確定的。在仿真期間不允許有變化長(zhǎng)度的數(shù)據(jù)包出現(xiàn)。
仿真結(jié)束階段仿真結(jié)束后,由軟件側(cè)向硬件側(cè)發(fā)送一個(gè)字長(zhǎng)為17的32位數(shù)據(jù)包,以通知硬件以結(jié)束仿真。具體包體的格式如圖10所示。其中32個(gè)32位,全為‘0’。
本發(fā)明的工作環(huán)境參見(jiàn)圖11。采用C語(yǔ)言或硬件描述語(yǔ)言編寫(xiě)的測(cè)試激勵(lì)以及硬件虛擬映射軟件(MVP)產(chǎn)生的管腳映射信息,經(jīng)由第三方仿真工具并通過(guò)PL API(HDL應(yīng)用接口函數(shù))或直接通過(guò)文本文件發(fā)送到采用C語(yǔ)言編寫(xiě)的基于事務(wù)級(jí)的打包解包應(yīng)用程序模塊中,該模塊根據(jù)所述平臺(tái)的軟硬件通信協(xié)議將激勵(lì)信息打成規(guī)定格式的數(shù)據(jù)包,并通過(guò)PCI總線發(fā)送到硬件(PCI卡的FIFO中),然后硬件通過(guò)軟硬件通信雙握手協(xié)議將激勵(lì)傳送到聯(lián)合仿真板卡的FIFO中,隨后由仿真主控模塊(或BFM)模塊對(duì)激勵(lì)數(shù)據(jù)包進(jìn)行解壓處理并轉(zhuǎn)換成具體的時(shí)鐘經(jīng)準(zhǔn)的測(cè)試激勵(lì)信號(hào)加載到被測(cè)試模塊中,待相應(yīng)仿真周期完成后被測(cè)試模塊(DUT)將所得的響應(yīng)信號(hào)傳回仿真主控模塊(或BFM)模塊并由它按照軟硬件通信協(xié)議打包,然后將這些響應(yīng)數(shù)據(jù)包存儲(chǔ)在聯(lián)合仿真子板的上行FIFO中,等其軟硬件通信模塊握手成功后,則將響應(yīng)數(shù)據(jù)包傳送至PCI卡的FIFO中,最后通過(guò)PCI總線按原路傳回至采用C語(yǔ)言編寫(xiě)的基于事務(wù)級(jí)的打包解包應(yīng)用程序模塊中,該模塊將收到的響應(yīng)數(shù)據(jù)包解壓后,通過(guò)相應(yīng)API(Application Programming Interface)函數(shù)將響應(yīng)信息傳回第三方仿真工具,或直接以文本形式保存。采用所述平臺(tái)的這種驗(yàn)證方法的整個(gè)過(guò)程中用戶不會(huì)感覺(jué)到整個(gè)硬件仿真環(huán)境的存在,整個(gè)仿真操作過(guò)程與通常的軟件模擬仿真沒(méi)什么兩樣,但是仿真速度有極大的提高。
權(quán)利要求
1.軟硬件協(xié)同仿真通信方法,其特征在于,在仿真初始化階段,軟件側(cè)和硬件側(cè)之間交換的數(shù)據(jù)包內(nèi)包括下列數(shù)據(jù)方向標(biāo)識(shí),用于標(biāo)識(shí)本數(shù)據(jù)包在雙方傳送的方向;數(shù)據(jù)類型標(biāo)識(shí),用于標(biāo)識(shí)本數(shù)據(jù)包是否為寄存器配置信息;第一數(shù)據(jù)標(biāo)識(shí),用于標(biāo)識(shí)本數(shù)據(jù)包是否為信號(hào)使能位;寄存器地址,用于標(biāo)識(shí)需要配置的寄存器的地址;寄存器數(shù)據(jù),即向寄存器送出的配置信息;時(shí)鐘;輸入信號(hào)使能標(biāo)識(shí);輸出信號(hào)使能標(biāo)識(shí);第一使能標(biāo)識(shí)。
2.如權(quán)利要求1所述的軟硬件協(xié)同仿真通信方法,其特征在于,數(shù)據(jù)包內(nèi)還包括仿真模式類型標(biāo)識(shí),用于標(biāo)識(shí)屬于聯(lián)合仿真模式還是矢量仿真模式;第一長(zhǎng)度標(biāo)識(shí),用于標(biāo)識(shí)數(shù)據(jù)包中幀的個(gè)數(shù);第二長(zhǎng)度標(biāo)識(shí),用于標(biāo)識(shí)本次通信中數(shù)據(jù)包的個(gè)數(shù)。
3.如權(quán)利要求1或2所述的軟硬件協(xié)同仿真通信方法,其特征在于,在仿真運(yùn)行階段,硬件側(cè)和軟件側(cè)之間交換的數(shù)據(jù)包內(nèi)包括下列數(shù)據(jù)時(shí)鐘用來(lái)定義時(shí)鐘的,總共可定義8個(gè)時(shí)鐘,最高位為第一個(gè)時(shí)鐘,次位為第二個(gè)時(shí)鐘,依此類推24位為第八個(gè)時(shí)鐘;輸入標(biāo)記用來(lái)表述輸入信號(hào)的值;方向標(biāo)記用來(lái)表述雙向信號(hào)輸入方向的值;第二使能標(biāo)記輸入和雙向信號(hào)的使能位的值。
4.如權(quán)利要求1或2或3所述的軟硬件協(xié)同仿真通信方法,其特征在于,數(shù)據(jù)包是固定長(zhǎng)度,如果長(zhǎng)度不足,以填充位填滿。
全文摘要
軟硬件協(xié)同仿真通信方法,涉及集成電路設(shè)計(jì)技術(shù)領(lǐng)域,特別涉及SOC(system-on-a-chip片上系統(tǒng))的設(shè)計(jì)驗(yàn)證技術(shù)。本發(fā)明在仿真初始化階段,軟件側(cè)和硬件側(cè)之間交換的數(shù)據(jù)包內(nèi)包括下列數(shù)據(jù)方向標(biāo)識(shí),用于標(biāo)識(shí)本數(shù)據(jù)包在雙方傳送的方向;數(shù)據(jù)類型標(biāo)識(shí),用于標(biāo)識(shí)本數(shù)據(jù)包是否為寄存器配置信息;第一數(shù)據(jù)標(biāo)識(shí),用于標(biāo)識(shí)本數(shù)據(jù)包是否為信號(hào)使能位;寄存器地址,用于標(biāo)識(shí)需要配置的寄存器的地址;寄存器數(shù)據(jù),即向寄存器送出的配置信息;時(shí)鐘;輸入信號(hào)使能標(biāo)識(shí);輸出信號(hào)使能標(biāo)識(shí);第一使能標(biāo)識(shí)。本發(fā)明為硬件加速器或仿效器和軟件仿真器正確高速的傳輸數(shù)據(jù)提供了支持,使軟硬件雙方協(xié)同工作,以完成對(duì)整個(gè)系統(tǒng)的驗(yàn)證。
文檔編號(hào)G06F17/50GK1928878SQ200610021609
公開(kāi)日2007年3月14日 申請(qǐng)日期2006年8月17日 優(yōu)先權(quán)日2006年8月17日
發(fā)明者李平, 廖永波 申請(qǐng)人:電子科技大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1