<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于VHDL語(yǔ)言的IP核驗證

基于VHDL語(yǔ)言的IP核驗證

——
作者: 時(shí)間:2007-04-28 來(lái)源:電子開(kāi)發(fā) 收藏
引言 

在IC(integrated circuit.集成電路)發(fā)展到超大規模階段的今天,基于IP(Intellectual Property,知識產(chǎn)權)核的IC設計及其再利用是保證SoC(system onchip,片上系統)開(kāi)發(fā)效率和質(zhì)量的重要手段。如果能對進(jìn)行、測試和集成.就可以加速SoC的設計,而這需要從以下5個(gè)方面進(jìn)行考慮。

代碼純化.指在代碼設計中及完成后進(jìn)行自定義的、IEEE標準的、設計重用的、可綜合性和可測試性等方面的規則檢查; 
代碼覆蓋率分析.研究仿真中的測試矢量是否足夠; 
設計性能和面積分析.在設計邏輯綜合過(guò)程中分析所設計的RTL所能達到的性能和面積要求; 
可測性分析:設計重用中的關(guān)鍵技術(shù)。如何保證的高測試覆蓋率,如何保證IP核在集成到SoC中后的可測試性.是該階段分析的主要目標。所以在IP核實(shí)現之前.要檢查IP核設計中是否違反了可測性設計規則; 
低功耗分析:SoC的重要衡量指標。我們在IP核設計階段就需要將TP核功耗參數進(jìn)行精確估計并進(jìn)行相應的功耗優(yōu)化設計; 

基于此.本文重點(diǎn)討論在IC設計過(guò)程中IP核的測試問(wèn)題并以互聯(lián)網(wǎng)上可免費下載的原始IP核資源為例.在與8位RISC架構指令兼容的微處理器下載成功。

1 IP核與RISC體系

1.1 IP核


IP核是具有知識產(chǎn)權的集成電路芯核的簡(jiǎn)稱(chēng)其作用是把一組擁有知識產(chǎn)權的、在數字電路中常用但又比較復雜的電路設計功能塊(如FIR濾波器SDRAM控制器、PCI接口等)設計成可修改參數的集成模塊構成芯片的基本單位,以供設計時(shí)直接調用從而大大避免重復勞動(dòng)。

1.2 RISC處理器

RISC(reduced instruction set computer.精簡(jiǎn)指令系統計算機)是IBM公司提出來(lái)的、在CISC(complerinstruction set computer復雜指令系統計算機)的基礎,上繼承和發(fā)展起來(lái)的一種新型系統結構技術(shù)。具有結構簡(jiǎn)單指令合理成本低廉快捷高效等特點(diǎn)。應用前景被普遍看好。國際IT領(lǐng)域的大公司如IBM、DEC、Intel、ARM、Motorola、Apple、HP等先后將其力量轉向RISC.并已經(jīng)開(kāi)發(fā)出各種基于RISC的芯片或IP核。

SoC是進(jìn)行IA(Intel Architecture.智能家電)產(chǎn)品開(kāi)發(fā)的主要方法.而基于RISC體系的EP(embedded processor,嵌入式處理器)則是SoC芯片的核心??梢哉f(shuō),RISC是當前計算機發(fā)展不可逆轉的趨勢。

1.3 VHDI語(yǔ)言

VHDL(Very High Speed Integrated Circuit Hardware Description Language.集成電路硬件描述語(yǔ)言)與Verilog HDL程序都很適合用來(lái)設計架構RCMP reconfigurable mICroprocessor,可重新規劃的微處理器)。為此.我們利用VHDL設計一種嵌入式RISC8微處理器及應用芯片.設計后的IP核下載到FPGA(Field Programmable Gate Array.現場(chǎng)可編程門(mén)陣列)芯片上做,并在開(kāi)發(fā)板構建視頻接口模塊等以利于調試和應用。

2 IP核的仿真與測試

2.1 SoC的測試策略


SoC芯片的測試比傳統的ASIC測試要復雜得多.全面的功能測試通常是不現實(shí)的  目前常采用的策略是分別測試所有的電路功能模塊在SoC芯片中存在各種不同類(lèi)型的電路模塊,每個(gè)模塊所要求的測試方式也不相同。SoC芯片中的模塊基本可以分為三類(lèi):CPU/DSP、存儲器模塊、其他功能電路模塊。CPU/DSP的測試與傳統的CPU/DSP測試類(lèi)似.通常采用邊界掃描方式結合矢量測試方式。存儲器的測試一般采用BIST測試,比較快捷而容易控制。其他的電路模塊按設計難易程度或應用方便性,采用邊界掃描或BIST。

2.2 IP核的測試方案

IP核的研究平臺有很多種.但一般硬件仿真調試器費用昂貴(幾千到數萬(wàn)元),對于普通用戶(hù)來(lái)說(shuō)難于承受。為此,本文利用免費的IP核進(jìn)行改寫(xiě),利用Xilinx ISE開(kāi)發(fā)軟件和匯編語(yǔ)言翻譯過(guò)來(lái)的機器碼作為測試激勵,完成了RISC結構的Xilinx Spartan2系列的FPGA芯片CPU指令的驗證和測試方案.具體方案如下:

(1)以VHDL/Verilog語(yǔ)言改寫(xiě)或新寫(xiě)8 bit pipelined RISC 結構之處理器模塊、內存控制器模塊以及視頻控制接口模塊.然后通過(guò)Xilinx ISE 4.1/5.2、ModelSim完成行為級仿真、綜合以及布局布線(xiàn)等。

(2)以某個(gè)應用為例將C語(yǔ)言或匯編語(yǔ)言編寫(xiě)的測試算法程序存儲在SRAM中.實(shí)現嵌入式處理器及視頻控制接口并下載到FPGA.從而生成一塊可編程的控制器芯片構成一個(gè)簡(jiǎn)化SoC應用。 


(3)如果SoC應用成功.則可通過(guò)cell-Base Design Flow將其轉成ASIC版圖.實(shí)現流片。

2.3 IP核的驗證方法

在芯片的設計流程中設計的驗證是一個(gè)重要而又費時(shí)的環(huán)節。在進(jìn)行Top_Down設計時(shí).從行為級設計開(kāi)始到RTT級設計再到門(mén)級設計相應地利用EDA工具進(jìn)行各個(gè)級別的仿真.行為仿真和RTL級仿真屬于功能仿真其作用是驗證設計模塊的邏輯功能  門(mén)級仿真是時(shí)序仿真用于驗證設計模塊的時(shí)序關(guān)系無(wú)論是功能仿真或是時(shí)序仿真仿真方法有兩種.即交互式仿真方法和測試平臺法

(1)交互式仿真方法。該方法主要是利用EDA工具提供的仿真器進(jìn)行模塊的仿真它允許在仿真期間對輸入信號賦值,指定仿真執行時(shí)間,觀(guān)察輸出波形。當系統的邏輯功能、時(shí)序關(guān)系達到設計要求后,仿真結束。缺點(diǎn)是輸入輸出不便于記錄歸檔尤其是輸入量比較復雜時(shí),輸出不便于觀(guān)察和比較

(2)程序仿真測試法。就是為設計模  
塊專(zhuān)門(mén)設計的仿真程序(也稱(chēng)為測試程序),以實(shí)現對被測模塊自動(dòng)輸入測試矢量,并通過(guò)波形輸出文件記錄輸出,便于將仿真結果記錄歸檔和比較。利用測試程序可以對一個(gè)設計模塊進(jìn)行功能仿真和時(shí)序仿真。

2.4 IP核的測試仿真

綜上所述,下面給出RISC 8測試仿真實(shí)例。該測試仿真大致可分為5個(gè)步驟

(1)給Wave(波形)窗口添加信號。首先添加的是RISC 8的整體Structure(結構)信號。

(2)行為級仿真初步測試。在初步測試中.“portb”信號的輸出如果是“FX”,則說(shuō)明系統必然存在問(wèn)題;如果是“OX”則說(shuō)明系統沒(méi)有發(fā)現問(wèn)題要進(jìn)行進(jìn)一步的測試。

(3)行為級仿真進(jìn)一步測試。在進(jìn)一步測試中,要注意的信號是romaddr、romdata以及各種指令控制信號。

(4)源程序修改,再仿真。在上一步中定位到出錯的地方,然后回到源程序中找到所有出錯信號出現的地方,仔細分析,并結合波形圖進(jìn)行修改,然后重復上述步驟進(jìn)行再仿真。

(5)布圖布線(xiàn)后的仿真(后仿真)。事實(shí)上在行為級仿真與后仿真之間還有3個(gè)仿真過(guò)程,但一般來(lái)說(shuō)只要能通過(guò)后仿真則其他的仿真也就沒(méi)有問(wèn)題。

在后仿真過(guò)程中,看一下“portb”的輸出是否與行為級仿真一致,若一致則測試通過(guò)。如果不一致則必須返回原程序和行為級仿真,對時(shí)序進(jìn)行仔細分析(因為這種情況大都是因為加入延遲后原來(lái)的時(shí)序發(fā)生改變)。

3 IP核在RISC架構中的下載實(shí)例

3.1 RISC處理器的選擇與指令的測試


我們選用MICrochip公司生產(chǎn)的PICl6c5x-Xilinx Spartan2系列中的Xc2s150微處理器下載.因為其FPGA芯片架構指令與8位RISC兼容.能夠很容易實(shí)現RISC架構之指令集。

RISC的測試激勵文件是由匯編語(yǔ)言測試程序翻譯而得到的.例如test3程序測試循環(huán)移位.test5測試邏輯操作指令、test8測試端口等。

testl程序是測試incf和的decf指令的.行為級初步測試中,“portb”輸出為“01”,如3.3中所述,這并不能說(shuō)明沒(méi)有問(wèn)題接著(zhù)做行為級進(jìn)一步測試

3.2 測試激勵程序的加載步驟與驗證

選擇“Project”萊單中的“News Source”選項,在彈出的“New”對話(huà)框左側選擇文件類(lèi)型為“Test Bench Waveform”,填入文件名,單擊下一步,在彈出的“select”對話(huà)框中選擇關(guān)聯(lián)的源為“anss_risc8_top”,單擊下一步.然后單擊“Finish”后會(huì )啟動(dòng)HDL Bencher.在這個(gè)軟件環(huán)境中可以輸入激勵信號最后將由匯編測試程序翻譯過(guò)來(lái)的機器碼信息作為激勵信號輸入保存.輸入測試時(shí)間后退出HDL Benche。

在進(jìn)一步測試中也沒(méi)有問(wèn)題,然后,我們可將測試程序進(jìn)行如下改變.

    incf x,f:X<=FE
    incf x,f;X<=FF
    incf x,f:X<=00
    incf x,f;X<=01
    decf x,f:X<=00
    decf x,f:X<=FF
    decf x,f:X<=FE

將程序中的最后一個(gè)incf改為的decf.這樣制造了一個(gè)錯誤.重新進(jìn)行仿真,發(fā)現"portb"的輸出仍然為"01"而不是預想的"F1"。由此可見(jiàn)程序中存在問(wèn)題。仔細分析后發(fā)現問(wèn)題出現在“btfss”變?yōu)?時(shí).此時(shí)alu_z為1而實(shí)際上它應該是0。由于alu_z出現在算術(shù)邏輯運算模塊ALU的一個(gè)子模塊alu_dp中,因此對alu_dp進(jìn)行分析,在wave窗口中加入alu_dp模塊的信號,同時(shí)在ISE4.1i中打開(kāi)alu_dp的源文件進(jìn)行分析.經(jīng)分析發(fā)現alu_z變?yōu)?是由于源程序中對alu_z的處理不完備.少考慮了一種情況。根據這種情況對源程序alu_dp.vhd進(jìn)行修改如下: 


  a.signal bittest,temp:std_logIC_vector(7 downto 0);
    --add signal temp
    b.u_zero:process(bittest,op,longq)
    begin
    if(bittest=ZEROBYTE)  and&n  
bsp; (op=ALU_OP_BITTESTCLR)
    then zero<='1';
    elsif(bittest/=ZEROBYTE)  and  (op=ALU_OP_BITTESTSET)
    then zero<='1';
    elsif longq(7 downto 0)=ZEROBYTE and(op/=ALUOP_BITTESTSET)
    then zero<='1';--new add
    elsif temp="zerobyte" and op="ALUOP"_BITTESTSET
    then zero<='1';--new add
    else
    zero<='0';
    end if;
    end process;
    c.bittest<=bitdecoder and a;
    temp<=bitdecoder or a; --new add

修改存儲源程序后再次仿真的結果是正確的(即portb輸出為“F1”)。將測試程序恢復,仿真結果也是正確的。再進(jìn)行后仿真也正確.至此.test1程序測試完畢。

4 結束語(yǔ)

集成電路發(fā)展到超大規模階段后,芯片中凝聚的知識已經(jīng)高度濃縮。專(zhuān)有知識產(chǎn)權的IP核設計及其再利用是保證SoC開(kāi)發(fā)效率和質(zhì)最的重要手段。 隨著(zhù)CPLD/FPGA的規模越來(lái)越大,設計越來(lái)越復雜,IP核是必然的發(fā)展趨勢。


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>