亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于嵌入式方法的浮點(diǎn)單元驗(yàn)證系統(tǒng)設(shè)計(jì)

        2012-07-25 03:19:20王云貴
        微處理機(jī) 2012年1期
        關(guān)鍵詞:指令信號(hào)

        王云貴,楊 靚

        (西安微電子技術(shù)研究所,西安710054)

        1 引言

        目前芯片的驗(yàn)證已經(jīng)成為IC領(lǐng)域面臨的一大挑戰(zhàn)。對(duì)于IC前端設(shè)計(jì)而言,用于設(shè)計(jì)和驗(yàn)證的時(shí)間比例達(dá)到了3:7,即不得不把大部分時(shí)間用于驗(yàn)證,由此可見驗(yàn)證對(duì)于IC的重要性。對(duì)浮點(diǎn)單元而言,驗(yàn)證更加困難。Intel曾經(jīng)因?yàn)楸简v處理器的浮點(diǎn)錯(cuò)誤而損失了數(shù)以億計(jì)的美金,而且嚴(yán)重?fù)p害了公司的聲譽(yù)。為了對(duì)某定浮點(diǎn)合并的FALU[1]進(jìn)行驗(yàn)證,文獻(xiàn)[1]采用特殊數(shù)據(jù)和隨機(jī)數(shù)據(jù)相結(jié)合的方法對(duì)其進(jìn)行了充分的功能仿真,但是只進(jìn)行功能仿真是不夠的。在芯片流片前為了在實(shí)際電路中對(duì)其進(jìn)行驗(yàn)證,一般都需要用FPGA做原型驗(yàn)證。一種方法是直接把FALU綜合后下載到FPGA里對(duì)其進(jìn)行驗(yàn)證。這里采用另外一種方法,利用Xilinx公司FX系列帶PowerPC 405硬核的FPGA,通過APU控制器把FALU連接到PPC 405核,然后編寫測(cè)試程序,通過自定義指令訪問FALU,然后通過程序的運(yùn)算結(jié)果來判斷FALU的功能是否正確,即設(shè)計(jì)一個(gè)嵌入式處理器系統(tǒng)來對(duì)FALU(其它IP也可以)進(jìn)行驗(yàn)證。

        2 創(chuàng)建硬件平臺(tái)

        2.1 PowerPC 405流水結(jié)構(gòu)圖

        PowerPC405處理器擁有輔助處理單元控制器APU(Auxiliary Processor Unit),使得用戶可以添加自定義指令集。用戶通過FPGA設(shè)計(jì)自己的IP核,也稱為結(jié)構(gòu)性從處理模塊FCM(Fabric Co-processor Module),完成必要功能(如加密解密、壓縮解壓縮以及浮點(diǎn)運(yùn)算),F(xiàn)CM通過使用FPGA邏輯資源來實(shí)現(xiàn)[2]。通過APU控制器,擴(kuò)展必要的指令,將FCM的功能流程與PowerPC405主處理器流水線更緊密的結(jié)合在一起,該方式具有的優(yōu)勢(shì)是其它方式,比如總線外設(shè)等方式無法達(dá)到的[3]。圖1顯示了PowerPC405處理器核、APU控制器以及結(jié)構(gòu)性從處理模塊三者之間的流水結(jié)構(gòu)[4]。

        APU控制器主要解決兩個(gè)問題:一是進(jìn)行快速PowerPC405時(shí)鐘和慢速FCM接口時(shí)鐘之間的同步;二是譯碼某些FCM指令,把指令需要的CPU資源(比如需要 CPU的 GPR作為源操作數(shù))通知CPU。取決于FCM的應(yīng)用,APU控制器能夠譯碼所有指令,或者APU譯碼部分FCM譯碼部分,或者全部由 FCM 譯碼[5]。

        當(dāng)指令到譯碼階段時(shí),它同時(shí)被傳給PowerPC處理器和APU控制器,如果這不是一條CPU能夠認(rèn)識(shí)的指令(即不是原生的PowerPC指令),處理器就期望APU控制器給其返回一個(gè)指令有效的響應(yīng)信號(hào),如果APU指令有效,則處理器把需要的操作數(shù)傳送給APU。被傳給APU的指令可以是在指令集體系架構(gòu)(ISA)預(yù)先定義的也可以是用戶自定義的[3]。

        圖1 PowerPC405流水結(jié)構(gòu)圖

        2.2 創(chuàng)建一個(gè)基本系統(tǒng)

        對(duì)大多數(shù)的嵌入式系統(tǒng)設(shè)計(jì)來說,Base System Builder(BSB)能夠自動(dòng)進(jìn)行基本的硬件和軟件平臺(tái)配置任務(wù)。如果目標(biāo)開發(fā)板來自Xilinx公司或者其合作伙伴,BSB支持從相應(yīng)的開發(fā)板上選擇可用的外圍設(shè)備,自動(dòng)使得FPGA管腳和目標(biāo)板相匹配,創(chuàng)建一個(gè)完整的硬件平臺(tái)。如果在用戶自己設(shè)計(jì)的開發(fā)板上進(jìn)行設(shè)計(jì),BSB可以讓你根據(jù)你的板子選擇處理器核(MicroBlaze、PowerPC)和多種外圍設(shè)備,并且連接它們,這樣就創(chuàng)建了一個(gè)基本硬件平臺(tái),通過這個(gè)起點(diǎn),可以根據(jù)需要添加更多的外圍設(shè)備,通過XPS工具的支持,還可以添加定制的外設(shè)。

        2.3 添加FCB總線

        基本系統(tǒng)建好后,打開IP核目錄子窗口,展開Bus and Bridge目錄,選擇Fabric Co-processor Bus(FCB),右擊,選擇添加IP,則將FCB總線添加到系統(tǒng)了,在編輯窗口的 Bus Interface子窗口中展開ppc405_0目錄,在MFCB欄的下拉菜單中選擇fcb_v10_0,這樣就將FCB連接到了PowerPC405處理器上。

        圖2 添加FCB總線

        APU控制器和FCM模塊之間有很多信號(hào),但是一般只用到其中的少部分。下面對(duì)用到的重要接口信號(hào)做簡單介紹。

        從FCM輸出到APU的信號(hào):

        (1)FCMAPURESULT[0:31],通過 APU 傳給CPU的FCM模塊的執(zhí)行結(jié)果。

        (2)FCMAPUDONE,通知APU控制器:FCM中的指令執(zhí)行完畢,對(duì)于自治指令來說,這個(gè)信號(hào)僅僅表示FCM能夠接收下一條指令了。

        (3)FCMAPURESULTVALID,表示結(jié)果FCMAPURESULT[0:31]等信號(hào)值有效。

        從PowerPC405處理器通過APU控制器傳給FCM模塊的信號(hào):

        (4)APUFCMINSTRUCTION[0:31],通過 APU傳給FCM模塊的指令,當(dāng)APUFCMINSTRVALID信號(hào)為高時(shí),它的值有效。

        (5)APUFCMINSTRVALID,在兩種情況下這個(gè)信號(hào)會(huì)變高,一是APU控制器譯碼了一個(gè)有效的APU指令,二是一個(gè)未譯碼的指令傳給 FCM,由FCM進(jìn)行譯碼。

        (6)APUFCMRADATA[0:31],從通用寄存器GPR傳過來的源操作數(shù)(RA)。

        (7)APUFCMRBDATA[0:31],從通用寄存器GPR傳過來的源操作數(shù)(RB)。

        (8)APUFCMOPERANDVALID,表示傳過來的操作數(shù)有效。

        (9)APUFCMDECUDI[0:2],指示 APU 控制器譯碼的是哪條UDI指令(總共8條)。

        為了能夠使用APU與UDI,需要在system.mhs文件中將其使能,在system.mhs中找到ppc405_virtex4,把APU使能控制參數(shù)添加到相應(yīng)的位置,同時(shí)添加UDI的配置參數(shù)。下面夾在注釋行中間的就是手動(dòng)添加的配置參數(shù),其它的由系統(tǒng)自動(dòng)生成[7]。

        2.4 添加FCM模塊

        在工程目錄下,有個(gè)叫pcores的文件夾,這是用來放置用戶自己IP的文件夾。文中設(shè)計(jì)的FCM模塊就是需要驗(yàn)證的浮點(diǎn)單元FALU,在工程中的名字叫fcmfalu。在pcores目錄下面新建一個(gè)子目錄:fcmfalu_v1_00_a,在這個(gè)目錄下新建兩個(gè)子目錄:data和hdl。如果FCM模塊中要用到Xilinx公司提供的IP,則還需要建立一個(gè)叫netlist的目錄,這個(gè)目錄用來放置這類IP的網(wǎng)表文件。

        在data目錄下新建兩個(gè)文件:fcmfalu_v2_1_0.pao和fcmfalu_v2_1_0.mpd。后綴為.pao(Peripheral Analyze Order)的文件包含了用于綜合的HDL文件,定義了仿真時(shí)的分析順序;后綴為.mpd(Microprocessor Peripheral Definition)的文件定義了IP的接口信號(hào),它具有如下三個(gè)特點(diǎn):列出了總線接口的端口和默認(rèn)連接關(guān)系,列出了參數(shù)和默認(rèn)值。另外還有一個(gè)后綴為.bbd(Black Box Definition)的文件,它定義了FCM模塊中黑盒子部分的網(wǎng)表文件的存放位置,如果FCM模塊中使用了這類IP,則需要這個(gè)文件,如果沒有使用,則不需要。

        Hdl目錄用于存放FCM模塊的IP源碼,下面可以有兩個(gè)子目錄,如果IP是使用VHDL描述的,則將.vhd文件放在vhdl目錄下;反之,如果IP是用Verilog HDL描述的,則將.v文件放在verilog子目錄下。

        把data、hdl以及netlist文件夾下面的文件都設(shè)置好后,在XPS的菜單欄中選擇Project->Rescan User Repositories,則XPS會(huì)把用戶IP加載到工程信息域窗口的IP目錄子窗口的Project Local PCores下面,右擊用戶IP核fcmfalu,選擇添加IP,這樣就把用戶IP核fcmfalu添加到系統(tǒng)中了,然后在編輯窗口的Bus Interfaces子窗口的fcmfalu_0欄的下拉列表里面選擇fcb_v10_0,這樣就把FCM模塊fcmfalu連接到FCB總線上了,如圖3所示。2.3節(jié)中,把FCB總線連到了PowerPC405處理器的APU控制器上,這樣FCM模塊就通過FCB總線與APU控制器連接起來了。至此,浮點(diǎn)單元驗(yàn)證系統(tǒng)的硬件平臺(tái)就建立完畢了,PowerPC 405處理器能夠通過APU控制器訪問被測(cè)的浮點(diǎn)單元。

        圖3 將被測(cè)浮點(diǎn)單元fcmfalu連接到FCB總線上

        3 創(chuàng)建測(cè)試程序

        有兩種創(chuàng)建應(yīng)用軟件的方法:一是直接用XPS,二是使用SDK(Software Development Kit)。SDK是EDK工具中與XPS互補(bǔ)的一種工具,它用來開發(fā)應(yīng)用軟件工程,它基于Eclipse開源標(biāo)準(zhǔn)。對(duì)于較大的應(yīng)用軟件開發(fā),Xilinx推薦使用SDK。

        嵌入式軟件平臺(tái)為每個(gè)處理器定義硬件外設(shè)的驅(qū)動(dòng)程序(板級(jí)支持包),庫文件,標(biāo)準(zhǔn)輸入輸出接口,中斷處理程序和其它相關(guān)的軟件屬性?;谲浖脚_(tái),XPS可以進(jìn)一步定義在各個(gè)處理器上運(yùn)行的應(yīng)用軟件,在軟件平臺(tái)設(shè)置窗口可以設(shè)置驅(qū)動(dòng)程序,庫文件以及操作系統(tǒng)。

        默認(rèn)的操作系統(tǒng)是Standalone,它提供板級(jí)支持包,這意味著在應(yīng)用程序和硬件平臺(tái)之間沒有操作系統(tǒng),應(yīng)用軟件通過直接調(diào)用驅(qū)動(dòng)程序操作硬件平臺(tái),應(yīng)用程序可以使用驅(qū)動(dòng)程序和基本的庫文件。standalone是一種簡單、低層次的軟件層,它提供對(duì)基本處理器特征的訪問,比如:高速緩存、中斷以及基本輸出等。這種模式不適合復(fù)雜的應(yīng)用程序,但是它提供了基本的庫文件,因此對(duì)簡單應(yīng)用是非常適合的,軟件平臺(tái)設(shè)置好后就可以編寫用戶程序了。

        為了對(duì)浮點(diǎn)單元進(jìn)行驗(yàn)證,需要編寫相應(yīng)的浮點(diǎn)測(cè)試程序讓其執(zhí)行,這樣就可以通過程序的結(jié)果來判斷浮點(diǎn)單元是否正確。文獻(xiàn)[1]設(shè)計(jì)的FALU能夠執(zhí)行21條指令,為了簡便起見,這里僅演示對(duì)浮點(diǎn)加法指令進(jìn)行測(cè)試,其它指令的測(cè)試原理是一樣的。自定義指令UDI1FCM_GPR_GPR_GPR(aa0,bb1,bb2)的作用是把bb1,bb2兩個(gè)源操作數(shù)傳遞給浮點(diǎn)單元執(zhí)行,浮點(diǎn)單元執(zhí)行完畢后把運(yùn)算結(jié)果返回給PowerPC 405處理器,PowerPC 405將結(jié)果保存在變量aa0中。最簡單的測(cè)試程序如下所示。

        4 系統(tǒng)仿真

        硬件平臺(tái)和測(cè)試軟件都創(chuàng)建完畢后,對(duì)浮點(diǎn)單元FALU進(jìn)行驗(yàn)證的嵌入式系統(tǒng)就建好了,下一步就可以進(jìn)行仿真了。大多數(shù)現(xiàn)代仿真器要求在使用它們進(jìn)行仿真之前首先編譯HDL庫,編譯HDL庫的好處包括更快的執(zhí)行速度和更少的內(nèi)存占用量。

        在仿真庫編譯過程中如果沒有錯(cuò)誤產(chǎn)生,就可以進(jìn)行下一步的操作:產(chǎn)生仿真模型。EDK產(chǎn)生一個(gè)后綴為.do的文件來編譯產(chǎn)生的仿真模型,這個(gè)文件包含了仿真庫的映射和編譯命令,在Modlesim中輸入do system.do編譯仿真模型,仿真模型編譯完畢之后,在仿真之前還必須加載仿真文件,加載命令取決于頂層的HDL語言,如果EDK創(chuàng)建的頂層文件是VHDL格式的,則用vsim system命令加載設(shè)計(jì),如果是Verilog格式的,則用vsim system glbl命令加載設(shè)計(jì)。系統(tǒng)仿真波形如圖4所示。

        圖4 系統(tǒng)仿真波形

        從仿真波形可以看出PowerPC405處理器根據(jù) 測(cè)試軟件中的指令向 FCM模塊(在這里是被測(cè)FALU單元)發(fā)出了正確的控制信號(hào),如instrvalid(指令有效)信號(hào)、instruction(指令)信號(hào)、decoded(指令譯碼)信號(hào)、decudivalid(UDI有效)信號(hào)、operandvalid(操作數(shù)有效)信號(hào)以及兩個(gè)操作數(shù)afufcmradata、afufcmrbdata。FCM 接到 PowerPC405發(fā)出的指令信號(hào)和數(shù)據(jù)信號(hào)后進(jìn)行計(jì)算,計(jì)算結(jié)束后把結(jié)果返回給PowerPC405,并給出相應(yīng)的指示信號(hào):fcmapudone,fcmapuresultvalid以及返回的結(jié)果:fcmapuresult。根據(jù)仿真波形可以看出,本系統(tǒng)能夠有效的對(duì)被測(cè)IP進(jìn)行驗(yàn)證。如果需要對(duì)浮點(diǎn)單元進(jìn)行更完善的驗(yàn)證,可以編寫更加復(fù)雜的測(cè)試程序。很明顯,通過這種嵌入式方法對(duì)浮點(diǎn)單元進(jìn)行驗(yàn)證(其它功能的IP也類似)比直接將其網(wǎng)表下載到FPGA里進(jìn)行驗(yàn)證要好的多。

        5 結(jié)束語

        介紹了一種基于嵌入式系統(tǒng)對(duì)浮點(diǎn)單元進(jìn)行驗(yàn)證的方法,該方法對(duì)其它IP的驗(yàn)證也一樣適用。該驗(yàn)證系統(tǒng)的硬件平臺(tái)基于Xilinx公司FX系列帶PowerPC 405處理器硬核的FPGA,該FPGA有APU控制器接口,通過該接口PowerPC 405處理器可以對(duì)被測(cè)IP進(jìn)行訪問,然后通過編寫測(cè)試程序?qū)Ω↑c(diǎn)單元進(jìn)行測(cè)試,通過程序的運(yùn)行結(jié)果來判斷浮點(diǎn)單元的正確性。上面的例子說明了該方法的有效性。當(dāng)然,也可以用這種方法構(gòu)建一個(gè)嵌入式系統(tǒng),讓PowerPC 405處理器執(zhí)行簡單指令,讓FCM模塊執(zhí)行復(fù)雜的運(yùn)算密集型指令,通過這種方法可使系統(tǒng)速度提高數(shù)倍到數(shù)十倍[7]。

        [1] 王云貴,楊靚.一種定浮點(diǎn)合并的FALU的設(shè)計(jì)與實(shí)現(xiàn)[J].微處理機(jī),2011,32(2):7-9,13.

        [2] Xilinx.Virtex-4FPGA User Guide UG070(v2.6)[Z].Xilinx.,2008.

        [3] Xilinx.PowerPC 405 Processor Block Reference Guide Embedded Development Kit UG018(v2.4)[Z].Xilinx.,2010.

        [4] Xilinx.PowerPC ProcessorReferenceGuideUG011(v1.3)[Z].Xilinx.,2010.

        [5] Xilinx.Fabric Co-processor Bus(FCB)(v1.00a).Product Specification.DS308[Z].Xilinx.,2009.

        [6] Xilinx.Implementing a Virtex-4 FX C-to-HDL Hardware Coprocessor Accelerator in a PowerPC Design Design Guide.UG096(v2.0)[Z].Xilinx.,2007.

        [7] Endric Schubert,F(xiàn)elix Eckstein.Extend the PowerPC Instruction Set for Complex Number Arithmetic Using the APU inside a Xilinx Virtex-5-FXT[J].Xcell.Journal Fourth Quarter 2008:44-47.

        猜你喜歡
        指令信號(hào)
        聽我指令:大催眠術(shù)
        信號(hào)
        鴨綠江(2021年35期)2021-04-19 12:24:18
        完形填空二則
        孩子停止長個(gè)的信號(hào)
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        殺毒軟件中指令虛擬機(jī)的脆弱性分析
        基于LabVIEW的力加載信號(hào)采集與PID控制
        一種基于極大似然估計(jì)的信號(hào)盲抽取算法
        一種基于滑窗的余度指令判別算法
        999精品免费视频观看| 国产 精品 自在 线免费| 男女高潮免费观看无遮挡| 丰满爆乳无码一区二区三区| 日日人人爽人人爽人人片av| 国产亚洲一区二区三区夜夜骚| 99视频偷拍视频一区二区三区| 美女与黑人巨大进入免费观看| 高h小月被几个老头调教 | АⅤ天堂中文在线网| 91蜜桃精品一区二区三区毛片| 日韩极品视频免费观看| 中文字幕欧美人妻精品一区 | 东京热人妻系列无码专区| 99热这里有精品| 亚洲男人精品| 欧美精品一本久久男人的天堂| 精品熟女视频一区二区三区国产| 一区二区三区人妻少妇| 人妻激情另类乱人伦人妻| 麻豆精产国品| 一区欧美在线动漫| 日本伦理美乳中文字幕| 日本不卡高字幕在线2019| 免费a级毛片无码免费视频120软件| 无限看片在线版免费视频大全| 国产精品天天看大片特色视频| 中文字幕一区二区va| 99久久婷婷亚洲综合国产| 一本色道久久爱88av| 亚洲老妇色熟女老太| 亚洲av无码成人网站www| 国产粉嫩美女一区二区三| 久久久精品亚洲一区二区国产av | 欧洲多毛裸体xxxxx| 国产av一区二区三区日韩| 国产精品无码专区综合网| 日韩黄色大片免费网站| 精品国产亚洲av麻豆| 黑人巨大av在线播放无码| 中文无码日韩欧免费视频|