基于FPGA的自主可控SOC設(shè)計 課件 2.5 VIVADO 軟件使用_第1頁
基于FPGA的自主可控SOC設(shè)計 課件 2.5 VIVADO 軟件使用_第2頁
基于FPGA的自主可控SOC設(shè)計 課件 2.5 VIVADO 軟件使用_第3頁
基于FPGA的自主可控SOC設(shè)計 課件 2.5 VIVADO 軟件使用_第4頁
基于FPGA的自主可控SOC設(shè)計 課件 2.5 VIVADO 軟件使用_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Vivado使用方法一、軟件安裝二、建立工程三、建立仿真環(huán)境四、為工程添加約束五、綜合、布局布線和生成bit文件六、debug一、軟件安裝一、軟件安裝一、軟件安裝一、軟件安裝一、軟件安裝二、建立工程二、建立工程二、建立工程二、建立工程二、建立工程添加一個模塊設(shè)計二、建立工程添加模塊設(shè)計后,在設(shè)計區(qū)域提示添加IP,點(diǎn)擊“addIP”添加IP或者點(diǎn)擊工具欄圖標(biāo)添加。添加IP二、建立工程為工程添加HDL代碼,點(diǎn)擊Addsource添加hdl文件。二、建立工程添加HDL文件時可以選擇creat一個新的文件也可以add一個本地已經(jīng)寫好的HDL代碼。二、建立工程Creat一個新的模塊,需要在對話框內(nèi)添加模塊名稱,并且可以選擇性的在下面添加主要的端口名稱和屬性。二、建立工程當(dāng)模塊化設(shè)計完成后,如果此模塊僅是一個工程中的子模塊,我們需要將模塊化設(shè)計的模塊creat出一個HDL文件,然后添加到工程文件下面,并在頂層中調(diào)用此模塊。二、建立工程三、建立仿真環(huán)境

在對設(shè)計好的工程進(jìn)行仿真的時候可以使用vivado自帶的仿真工具仿真也可以使用第三方仿真工具仿真。使用vivado自帶仿真工具仿真時只需要編寫測試激勵就可以直接利用vivado進(jìn)行仿真。當(dāng)使用modelsim等第三方仿真工具仿真時,我們需要提前對xilinx的仿真庫進(jìn)行編譯。在vivado中編譯仿真庫和ISE稍有不同,ISE提供的可視化的庫文件編譯環(huán)境,而在vivado設(shè)計環(huán)境下,編譯仿真庫需要使用TCL腳本進(jìn)行編譯。三、建立仿真環(huán)境

在tcl命令窗口,我們敲入help可以獲得關(guān)于vivado軟件操作的幫助說明。此時我們先輸入help,然后在給出的幫助主題中選擇simulation主題繼續(xù)查找?guī)椭?。在simulation主題下給出的幫助包括添加文件,編譯仿真庫和配置編譯仿真文件等等多個幫助主題,我們選擇編譯仿真庫主題。三、建立仿真環(huán)境

輸入幫助命令后,vivado將在提示欄給出詳細(xì)的庫文件編譯命令和需要編譯的所有xilinx庫文件名等信息。我們可以根據(jù)需求進(jìn)行庫文件編譯,例如如下編譯方式:compile_simlib-directoryC:/Xilinx_vivado/XLX_LIB_FOR_MODELSIM/VIVADO_2014-simulatormodelsim-familyzynq-familyvirtex7-familykintex7-familyartix7-libraryall-languageall三、建立仿真環(huán)境

在完成庫文件編譯后,我們就可以對modelsim的配置文件根據(jù)庫文件編譯的結(jié)果進(jìn)行修改,將modelsim中配置文件增加xilinx庫名稱和庫文件路徑。在編譯完成仿真庫后,使用vivado調(diào)用modelsim的方式進(jìn)行仿真,需要在vivado軟件中指定仿真工具和仿真庫文件的路徑。也可以自己編寫腳本利用腳本啟動modelsim進(jìn)行仿真。三、建立仿真環(huán)境Vivado調(diào)用modelsim仿真時,指定仿真工具所在的路徑三、建立仿真環(huán)境對仿真工具和仿真庫文件路徑進(jìn)行設(shè)定三、建立仿真環(huán)境完成庫文件編譯和對vivado的設(shè)置后,可以點(diǎn)runsimulation并選擇需要的仿真方式對自己的設(shè)計代碼進(jìn)行仿真驗(yàn)證。三、建立仿真環(huán)境2.Testbenchtestbench是一種驗(yàn)證的手段。首先,任何設(shè)計都是會有輸入輸出的。但是在軟環(huán)境中沒有激勵輸入,也不會對你設(shè)計的輸出正確性進(jìn)行評估。Testbench是模擬實(shí)際環(huán)境的輸入激勵和輸出校驗(yàn)的一種“虛擬平臺”。在這個平臺上你可以對你的設(shè)計從軟件層面上進(jìn)行分析和校驗(yàn)。三、建立仿真環(huán)境2.Testbench1)testbecnh編寫方法一個最基本的Testbench包含三個部分,信號定義、模塊接口和功能代碼。編寫Testbench的三個基本步驟:(1)對被測試設(shè)計的頂層接口進(jìn)行例化;(2)給被測試設(shè)計的輸入接口添加激勵;(3)判斷被測試設(shè)計的輸出相應(yīng)是否滿足設(shè)計要求。三、建立仿真環(huán)境2.Testbench2)通用模板--VHDL測試平臺文件(testbench)的基本結(jié)構(gòu)---引用庫文件

libraryieee;

useieee.std_logic_1164.all;---空端口

entitytest_benchis--測試平臺文件的空實(shí)體(不需要端口定義)

endtest_bench;

三、建立仿真環(huán)境2.Testbench2)通用模板architecturetb_behavioroftest_benchis---調(diào)用被測試元件

componententity_under_test--被測試元件的聲明

port(

list-of-ports-theri-types-and-modes);

endcomponent;三、建立仿真環(huán)境2.Testbench

begin-----被測元件例化

instantiation:entity_under_testportmap(

port-associations);----時鐘信號產(chǎn)生

process()--產(chǎn)生時鐘信號

……

endprocess;---其他信號產(chǎn)生

process()--產(chǎn)生激勵源

……

endprocess;

endtb_behavior;libraryieee;--也可以加入其它的庫;useieee.std_logic_1164.all;entitytestbench--testbench是測試文件的名字;endtestbench;architecturearch_testoftestbenchis signalclk:std_logic:='0'; signalrst:std_logic:='1'; ......; signalqout:std_logic_vector(3downto0); ......; constantclk_period:time:=20ns; ......; componentsample_name--待測試電路模塊的名字;

port( clk:instd_logic; rst:instd_logic; ......; qout:outstd_logic_vector(3downto0); ......); endcomponentsample_name;begin UUT:sample_name portmap(clk,rst,...,qout,...); clk<=notclkafterclk_period/2;--生成占空比為50%的時鐘; process--產(chǎn)生激勵源的模塊; begin endprocess;endarch_test;三、建立仿真環(huán)境2.Testbench2)通用模板三、建立仿真環(huán)境2.Testbench--激勵信號的產(chǎn)生方式

--1.以一定的離散時間間隔產(chǎn)生激勵信號的波形,也稱為時序變化的激勵型號eg:復(fù)位信號激勵產(chǎn)生tb:process--激勵信號

begin

waitfor20ns;

reset<=‘1’;

waitfor20ns;

reset<=‘0’;

waitfor200ns;

wait;--willwaitforever;

endprocess;3)激勵產(chǎn)生三、建立仿真環(huán)境2.Testbench3)激勵產(chǎn)生

--2.基于實(shí)體的狀態(tài)產(chǎn)生激勵信號,也就是說基于實(shí)體的輸出響應(yīng)產(chǎn)生激勵信號tb:process--激勵信號

beginif(Ready='1')then-----實(shí)體狀態(tài)輸出

waitfor20ns;

Dout<=‘1’;else

waitfor20ns;

Dout<=‘1’;

waitfor200ns;

wait;--willwaitforever;endif;

endprocess;三、建立仿真環(huán)境2.Testbench3)激勵產(chǎn)生

--3.周期性的激勵信號,如時鐘

--eg.產(chǎn)生周期時鐘信號,process語句方法1:clk<=notclkafterclk_period/2;-----結(jié)構(gòu)體內(nèi)循環(huán)執(zhí)行。方法2:

clk_gen1:process

constanclk_period:=40ns;

begin

clk=’1‘;

waitforclk_period/2;

clk=’0‘;

waitforclk_period/2;

endprocess;方法3:產(chǎn)生不對稱時鐘信號w_clk<=’0‘a(chǎn)fterperiod/4whenw_clk=’1‘else’1‘a(chǎn)fter3*period/4whenw_clk=’0‘else’0‘;三、建立仿真環(huán)境2.Testbench3)激勵產(chǎn)生

--2.基于實(shí)體的狀態(tài)產(chǎn)生激勵信號,也就是說基于實(shí)體的輸出響應(yīng)產(chǎn)生激勵信號tb:process--激勵信號

beginif(Ready='1')then-----實(shí)體狀態(tài)輸出

waitfor20ns;

Dout<=‘1’;else

waitfor20ns;

Dout<=‘1’;

waitfor200ns;

wait;--willwaitforever;endif;

endprocess;三、建立仿真環(huán)境2.Testbench4)等待語句(1)wait:無限等待,表示永遠(yuǎn)掛起,對于漢語wait語句的進(jìn)程來說,進(jìn)程在一開始執(zhí)行一次后面就不執(zhí)行了;(2)waiton信號表:敏感信號等待語句,等待敏感信號表中的信號發(fā)生變化才執(zhí)行;(3)waituntil表達(dá)式:條件等待語句,當(dāng)條件表達(dá)式中所含的信號發(fā)生了變化,并為true時,進(jìn)程才脫離等待狀態(tài);(4)waitfor時間表達(dá)式:此語句中聲明了一個時間段,從從執(zhí)行到當(dāng)前的wait語句開始,只要這個時間段內(nèi),進(jìn)程處于等待狀態(tài),超過這段時間,進(jìn)程自動恢復(fù)執(zhí)行該等待語句的下一條語句。waitfor5ns四、為工程添加約束1、使用xdc文件添加約束2、使用vivado提供的約束工具添加約束1、使用XDC文件添加約束當(dāng)所有功能模塊的文件的代碼編寫完成后我們需要對我們的設(shè)計添加各種約束文件,約束文件包括管教約束,時序約束和區(qū)域約束。添加約束文件可以通過直接編寫約束文件完成也可以利用vivado提供的添加窗口完成。1、使用XDC文件添加約束添加約束文件可以選擇creat一個新的約束文件也可以選擇添加原有約束文件。1、使用XDC文件添加約束添加好文件后,可以打開文件進(jìn)行編輯,進(jìn)行時序約束、管腳約束和區(qū)域約束。2、使用軟件約束工具添加約束Vivado除為我們提供了添加約束文件的方法來為工程添加約束外,還提供了窗口界面操作的辦法來提供約束,我們可以通過點(diǎn)擊implementationdesign下面的各個功能按鈕來添加約束。1)添加時序約束2、使用軟件約束工具添加約束1)添加時序約束2、使用軟件約束工具添加約束2)添加管腳約束2、使用軟件約束工具添加約束2)添加管腳約束2、使用軟件約束工具添加約束3)添加區(qū)域約束2、使用軟件約束工具添加約束五、綜合、布局布線和生成bit文件

當(dāng)完成代碼和必要的約束后,我們就可以開始進(jìn)行編譯綜合和實(shí)現(xiàn)了。完成這些只需要按照vivado開發(fā)工具提供的流程逐步進(jìn)行即可。也可以通過TCL腳本輸入命令控制。六、debug

在對程序進(jìn)行debug時,vivado為我們提供了ILA工具,他和ISE下的chipscope同樣可以用JTAG的方式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論