999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于嵌入式方法的浮點單元驗證系統設計

2012-07-25 03:19:20王云貴
微處理機 2012年1期
關鍵詞:指令信號

王云貴,楊 靚

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

1 引言

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

2 創建硬件平臺

2.1 PowerPC 405流水結構圖

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

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

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

圖1 PowerPC405流水結構圖

2.2 創建一個基本系統

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

2.3 添加FCB總線

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

圖2 添加FCB總線

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

從FCM輸出到APU的信號:

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

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

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

從PowerPC405處理器通過APU控制器傳給FCM模塊的信號:

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

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

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

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

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

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

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

2.4 添加FCM模塊

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

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

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

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

圖3 將被測浮點單元fcmfalu連接到FCB總線上

3 創建測試程序

有兩種創建應用軟件的方法:一是直接用XPS,二是使用SDK(Software Development Kit)。SDK是EDK工具中與XPS互補的一種工具,它用來開發應用軟件工程,它基于Eclipse開源標準。對于較大的應用軟件開發,Xilinx推薦使用SDK。

嵌入式軟件平臺為每個處理器定義硬件外設的驅動程序(板級支持包),庫文件,標準輸入輸出接口,中斷處理程序和其它相關的軟件屬性。基于軟件平臺,XPS可以進一步定義在各個處理器上運行的應用軟件,在軟件平臺設置窗口可以設置驅動程序,庫文件以及操作系統。

默認的操作系統是Standalone,它提供板級支持包,這意味著在應用程序和硬件平臺之間沒有操作系統,應用軟件通過直接調用驅動程序操作硬件平臺,應用程序可以使用驅動程序和基本的庫文件。standalone是一種簡單、低層次的軟件層,它提供對基本處理器特征的訪問,比如:高速緩存、中斷以及基本輸出等。這種模式不適合復雜的應用程序,但是它提供了基本的庫文件,因此對簡單應用是非常適合的,軟件平臺設置好后就可以編寫用戶程序了。

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

4 系統仿真

硬件平臺和測試軟件都創建完畢后,對浮點單元FALU進行驗證的嵌入式系統就建好了,下一步就可以進行仿真了。大多數現代仿真器要求在使用它們進行仿真之前首先編譯HDL庫,編譯HDL庫的好處包括更快的執行速度和更少的內存占用量。

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

圖4 系統仿真波形

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

5 結束語

介紹了一種基于嵌入式系統對浮點單元進行驗證的方法,該方法對其它IP的驗證也一樣適用。該驗證系統的硬件平臺基于Xilinx公司FX系列帶PowerPC 405處理器硬核的FPGA,該FPGA有APU控制器接口,通過該接口PowerPC 405處理器可以對被測IP進行訪問,然后通過編寫測試程序對浮點單元進行測試,通過程序的運行結果來判斷浮點單元的正確性。上面的例子說明了該方法的有效性。當然,也可以用這種方法構建一個嵌入式系統,讓PowerPC 405處理器執行簡單指令,讓FCM模塊執行復雜的運算密集型指令,通過這種方法可使系統速度提高數倍到數十倍[7]。

[1] 王云貴,楊靚.一種定浮點合并的FALU的設計與實現[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,Felix 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.

猜你喜歡
指令信號
聽我指令:大催眠術
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
孩子停止長個的信號
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
一種基于滑窗的余度指令判別算法
主站蜘蛛池模板: 久久综合亚洲色一区二区三区| 在线观看无码av五月花| 亚洲人成网站日本片| 大学生久久香蕉国产线观看| 92精品国产自产在线观看| 国产精品尤物铁牛tv | 重口调教一区二区视频| 精品无码一区二区三区电影| 日韩精品久久无码中文字幕色欲| 国产91丝袜在线观看| 日本免费福利视频| 精品一区二区三区波多野结衣| 四虎永久免费地址| 99视频精品在线观看| 亚洲三级影院| 日韩欧美国产区| 谁有在线观看日韩亚洲最新视频| 午夜激情婷婷| 久久一级电影| 九九视频在线免费观看| 青草视频免费在线观看| 欧美亚洲一区二区三区在线| 国产精选自拍| 97在线碰| 国产高清无码第一十页在线观看| 九九久久精品国产av片囯产区| 最新国产高清在线| 黄色网址免费在线| 特级精品毛片免费观看| 99精品伊人久久久大香线蕉| 国产精品视频第一专区| 国产精品 欧美激情 在线播放 | 国产精品香蕉在线| 无遮挡国产高潮视频免费观看| 精品国产成人高清在线| 伊人成色综合网| 亚洲水蜜桃久久综合网站| 久久综合九色综合97婷婷| 2020国产精品视频| 毛片免费试看| 国产18页| 在线看片国产| 日本欧美一二三区色视频| 福利视频一区| 91在线国内在线播放老师| 女人爽到高潮免费视频大全| 国产精品久久久久无码网站| 国产一级无码不卡视频| 国产精品久久久久久久久| 久久激情影院| 三上悠亚精品二区在线观看| 97在线碰| 综合色区亚洲熟妇在线| 亚洲一区二区约美女探花| 五月婷婷亚洲综合| 91麻豆国产精品91久久久| 国产亚洲高清视频| 无码福利日韩神码福利片| 3D动漫精品啪啪一区二区下载| 高清亚洲欧美在线看| 国产成人综合亚洲欧洲色就色| 亚洲欧洲综合| 中文无码伦av中文字幕| 色噜噜中文网| 国产一级视频在线观看网站| 一级毛片基地| 99热这里只有精品国产99| 国产真实自在自线免费精品| 国产毛片一区| 在线免费a视频| 亚洲AⅤ无码国产精品| 40岁成熟女人牲交片免费| 国产在线91在线电影| 五月天久久综合国产一区二区| 国产91熟女高潮一区二区| 国产精女同一区二区三区久| 这里只有精品在线| 99热国产在线精品99| 亚洲精选无码久久久| 欧美色图第一页| 伊人久久久久久久| 国产视频只有无码精品|