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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

libraryieee;

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

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

endtest_bench;

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

componententity_under_test--被測(cè)試元件的聲明

port(

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

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

begin-----被測(cè)元件例化

instantiation:entity_under_testportmap(

port-associations);----時(shí)鐘信號(hào)產(chǎn)生

process()--產(chǎn)生時(shí)鐘信號(hào)

……

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

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

……

endprocess;

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

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%的時(shí)鐘; process--產(chǎn)生激勵(lì)源的模塊; begin endprocess;endarch_test;三、建立仿真環(huán)境2.Testbench2)通用模板三、建立仿真環(huán)境2.Testbench--激勵(lì)信號(hào)的產(chǎn)生方式

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

begin

waitfor20ns;

reset<=‘1’;

waitfor20ns;

reset<=‘0’;

waitfor200ns;

wait;--willwaitforever;

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

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

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

waitfor20ns;

Dout<=‘1’;else

waitfor20ns;

Dout<=‘1’;

waitfor200ns;

wait;--willwaitforever;endif;

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

--3.周期性的激勵(lì)信號(hào),如時(shí)鐘

--eg.產(chǎn)生周期時(shí)鐘信號(hào),process語(yǔ)句方法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)生不對(duì)稱時(shí)鐘信號(hào)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)激勵(lì)產(chǎn)生

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

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

waitfor20ns;

Dout<=‘1’;else

waitfor20ns;

Dout<=‘1’;

waitfor200ns;

wait;--willwaitforever;endif;

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論