国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

超詳細(xì)FPGA新手小白入門點(diǎn)亮LED燈

這篇具有很好參考價(jià)值的文章主要介紹了超詳細(xì)FPGA新手小白入門點(diǎn)亮LED燈。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Vivado軟件的基本操作(以控制LED燈閃爍為例)

其實(shí)之前早已用過(guò)Vivado進(jìn)行FPGA的開(kāi)發(fā)學(xué)習(xí),但由于每次都是淺嘗輒止地學(xué)了一些時(shí)間,加上Vivado軟件和FPGA開(kāi)發(fā)流程的復(fù)雜性,長(zhǎng)時(shí)間不用就會(huì)遺忘。因此今天還是簡(jiǎn)單地寫個(gè)筆記記錄一下Vivado軟件的一些基本操作,實(shí)現(xiàn)一個(gè)“hello world工程”:控制LED燈的閃爍。

實(shí)驗(yàn)基于的版本是Vivado17.4,F(xiàn)PGA芯片是Xilinx的XC7Z100-2FFG900。

創(chuàng)建Vivado工程

(1)雙擊Vivado快捷方式啟動(dòng)Vivado。

fpga亮燈,fpga開(kāi)發(fā)

(2)點(diǎn)擊Create Project創(chuàng)建一個(gè)新工程。

fpga亮燈,fpga開(kāi)發(fā)

(3)在彈出的建立新工程的向?qū)е悬c(diǎn)擊Next。

fpga亮燈,fpga開(kāi)發(fā)

(4)在彈出的對(duì)話框中輸入工程名和工程存放的目錄,之后點(diǎn)擊Next。

需要注意工程路徑“Project location”不能有中文空格,路徑名稱也不能太長(zhǎng)。由于默認(rèn)勾選了“Create project subdirectory”選項(xiàng),Vivado會(huì)在所選工程目錄下自動(dòng)創(chuàng)建一個(gè)與工程名同名的文件夾,用于存放工程內(nèi)的各鐘文件。 Vivado會(huì)自動(dòng)管理工程文件夾內(nèi)的各種工程文件,并創(chuàng)建相應(yīng)的子目錄。

fpga亮燈,fpga開(kāi)發(fā)

(5)在工程類型中選擇RTL Project,之后點(diǎn)擊Next。

  • “RTL Project”是指按照正常設(shè)計(jì)流程所選擇的類型,這也是常用的一種類型,“ RTL Project”下的 Do not specify sources at this time”用于設(shè)置是否在創(chuàng)建工程向?qū)У倪^(guò)程中添加設(shè)計(jì)文件,如果勾選后,則不創(chuàng)建或者添加設(shè)計(jì)文件;
  • “Post synthesis Project”在導(dǎo)入第三方工具所產(chǎn)生的綜合后網(wǎng)表時(shí)才選擇;
  • “I/O Planning Project”一般用于在開(kāi)始RTL設(shè)計(jì)之前,創(chuàng)建一個(gè)用于早期IO規(guī)劃和器件開(kāi)發(fā)的空工程;
  • “Imported Project” 用于從 ISE、 XST或 Synopsys Synplify導(dǎo)入現(xiàn)有的工程源文件;
  • “Example Project”是指創(chuàng)建一個(gè) Vivado提供的工程模板 。

fpga亮燈,fpga開(kāi)發(fā)

(6)這里添加源文件界面直接點(diǎn)擊Next,選擇在創(chuàng)建完工程之后再創(chuàng)建和添加源文件。以及Target language選擇Verilog(默認(rèn)),但也可以使用VHDL,支持多語(yǔ)言混合編程。

fpga亮燈,fpga開(kāi)發(fā)

(7)添加約束文件界面直接點(diǎn)擊Next,即在創(chuàng)建完工程之后創(chuàng)建添加約束文件。

fpga亮燈,fpga開(kāi)發(fā)

(8)接下來(lái)選擇器件型號(hào),這里根據(jù)大家自己的具體芯片型號(hào)去相應(yīng)選擇即可。選擇完成后點(diǎn)擊Next。

fpga亮燈,fpga開(kāi)發(fā)

具體的ZYNQ命名規(guī)則如下圖所示:

fpga亮燈,fpga開(kāi)發(fā)

(9)進(jìn)入工程概覽界面,這個(gè)頁(yè)面將之前幾個(gè)步驟中的設(shè)置全部列了出來(lái),供用戶檢查。確認(rèn)無(wú)誤后點(diǎn)擊Finish完成工程的創(chuàng)建。

fpga亮燈,fpga開(kāi)發(fā)

Vivado主界面介紹

fpga亮燈,fpga開(kāi)發(fā)

(1)Flow Navigator:提供對(duì)命令和工具的訪問(wèn),包含從輸入到生成比特流的整個(gè)過(guò)程。

(2)數(shù)據(jù)窗口區(qū)域:默認(rèn)情況下,這個(gè)區(qū)域顯示與設(shè)計(jì)源文件和數(shù)據(jù)相關(guān)的信息,如:

  • Sources窗口:顯示層次結(jié)構(gòu)(Hierarchy)、IP源文件(IP Sources)、庫(kù)(Libraries)和編譯順序(Compile Order)的視圖。
  • Netlist窗口:提供分析后的(elaborated)或綜合后的(synthesisized)邏輯設(shè)計(jì)的分層視圖。

(3)Properties窗口:顯示有關(guān)所選邏輯對(duì)象或器件資源的信息。

(4)工作空間(Workspace):工作區(qū)顯示了具有圖形界面的窗口和需要更多屏幕空間的窗口,包括:

  • 用于顯示和編輯基于文本的文件和報(bào)告的Text Editor。
  • 原理圖(Schematic)窗口。
  • 器件(Device)窗口。
  • 封裝(Package)窗口。

(5)結(jié)果區(qū)域窗口:在Vivado中所運(yùn)行命令的狀態(tài)和結(jié)果,顯示在結(jié)果窗口區(qū)域內(nèi),這是一組子窗口的集合。子窗口的集合。在運(yùn)行命令、生成消息、創(chuàng)建日志文件和報(bào)表文件時(shí),相關(guān)信息將顯示在此區(qū)域。默認(rèn)情
況下,此區(qū)域包括以下窗口:

  • Tcl Console:允許輸入Tcl命令,并查看以前的命令和輸出的歷史記錄。
  • Messages:顯示當(dāng)前設(shè)計(jì)的所有信息,包括”Error”、” Critical Warning”、“Warning”等。
  • Log:顯示由綜合、實(shí)現(xiàn)和仿真運(yùn)行創(chuàng)建的日志文件。
  • Reports:提供對(duì)整個(gè)設(shè)計(jì)流程中的活動(dòng)運(yùn)行所生成的報(bào)告的快速訪問(wèn)。
  • Design Runs:管理當(dāng)前工程的運(yùn)行。

(6)主工具欄:提供了對(duì)Vivado中最常用命令的單擊訪問(wèn)。

(7)主菜單:提供對(duì)Vivado命令的訪問(wèn)。常用的命令會(huì)一直顯示(例如, File > Project > Open),而其他命令只在設(shè)計(jì)活動(dòng)時(shí)顯示 (例如,Reports > ReportDRC)。

(8)窗口布局(Layout)選擇器:提供預(yù)定義的窗口布局,以方便設(shè)計(jì)過(guò)程中的各種任務(wù)。布局選擇器能夠輕松地更改窗口布局,也可以使用菜單欄中的 “Layout”菜單來(lái)更改窗口布局。

創(chuàng)建Verilog輸入文件

(1)點(diǎn)擊左側(cè)的Add Sources或者右側(cè)的“+“號(hào)。

fpga亮燈,fpga開(kāi)發(fā)

(2)選擇Add or create design sources,之后點(diǎn)擊Next。

fpga亮燈,fpga開(kāi)發(fā)

(3)選擇Create file。

fpga亮燈,fpga開(kāi)發(fā)

(4)自己輸入文件名,點(diǎn)擊“OK”。

fpga亮燈,fpga開(kāi)發(fā)

(5)點(diǎn)擊Finish,會(huì)出現(xiàn)如下窗口。

此窗口用于設(shè)置源文件的模塊名稱和端口列表,Vivado會(huì)根據(jù)在此窗口中的設(shè)置,自動(dòng)地在HDL源文
件中寫入相應(yīng)的verilog語(yǔ)句。我們手動(dòng)輸入代碼,所以這里不作任何設(shè)置,直接點(diǎn)擊 OK即可。

fpga亮燈,fpga開(kāi)發(fā)

(6)在彈出的對(duì)話框中選擇“Yes”。

fpga亮燈,fpga開(kāi)發(fā)

(7)此時(shí)“Sources”窗口中就出現(xiàn)了我們剛剛創(chuàng)建的源文件,如下圖所示。

fpga亮燈,fpga開(kāi)發(fā)

(8)這時(shí)可直接雙擊打開(kāi)這個(gè).v文件進(jìn)行Verilog代碼的編寫。由于Vivado自帶的編輯器不是很好用,所以我這里配置了將vscode代替默認(rèn)的編輯器(網(wǎng)上有詳細(xì)教程,可以自己查一下,包括也可以替換成vim、notepad++等)。

這里定義了一個(gè) 32 位的寄存器timer, 用于循環(huán)計(jì)數(shù) 0~199999999(1 秒鐘), 計(jì)數(shù)到 199999999(1秒)的時(shí)候, 寄存器 timer 變?yōu)?,并翻轉(zhuǎn)四個(gè)LED。這樣原來(lái)LED是滅的話,就會(huì)點(diǎn)亮,如果原來(lái)LED為亮的話,就會(huì)熄滅。由于輸入時(shí)鐘為 200MHz 的差分時(shí)鐘,因此需要添加IBUFDS原語(yǔ)連接差分信號(hào)。

編寫好代碼后切記保存。

`timescale 1ns / 1ps

module led_twinkle(
    // 差分時(shí)鐘輸入
    input                sys_clk_p,
    input                sys_clk_n,
    input                rst_n,
    output reg  [3:0]    led
    );
    
    reg  [31:0]    timer_cnt;
    wire  sys_clk;

    IBUFDS # (
        .DIFF_TERM("FALSE"),
        .IBUF_LOW_PWR("TRUE"),
        .IOSTANDAND("DEFAULT")
    ) IBUFDS_inst (
        .O(sys_clk),
        .I(sys_clk_p),
        .IB(sys_clk_n)
    );

    always @ (posedge sys_clk or negedge rst_n) begin
        if (!rst_n) begin
            led <= 4'd0;
            timer_cnt <= 32'd0;
        end
        else if (timer_cnt >= 32'd199_999_999) begin
             led <= ~led;
             timer_cnt <= 32'd0;
        end
        else begin
            led <= led;
            timer_cnt <= timer_cnt + 32'd1;
        end
    end
    
endmodule

功能仿真

在設(shè)計(jì)輸入之后,設(shè)計(jì)綜合前進(jìn)行RTL級(jí)仿真,稱為綜合前仿真,也稱為前仿真或功能仿真。前仿真也就是純粹的功能仿真,主旨在于驗(yàn)證電路的功能是否符合設(shè)計(jì)要求,其特點(diǎn)是不考慮電路門延遲與線延遲。功能仿真需要的文件:

  • 設(shè)計(jì)HDL源代碼。
  • 測(cè)試激勵(lì)代碼(TestBench):根據(jù)設(shè)計(jì)要求輸入/輸出的激勵(lì)程序,由于不需要進(jìn)行綜合,書寫具有很大的靈活性。
  • 仿真模型/庫(kù):根據(jù)設(shè)計(jì)內(nèi)調(diào)用的器件供應(yīng)商提供的模塊而定,如:FIFO、ADD_SUB等。在使用Vivado Simulator時(shí),仿真器所需的仿真模型/庫(kù)是預(yù)編譯好并集成在 Vivado中的,因此不需要進(jìn)行額外的預(yù)編譯操作,直接加載HDL設(shè)計(jì)和TestBench即可執(zhí)行仿真。

(1)首先創(chuàng)建一個(gè)TestBench,點(diǎn)擊左側(cè)的Add Sources或者右側(cè)的“+“號(hào)。

fpga亮燈,fpga開(kāi)發(fā)

(2)在彈出的窗口中選擇“ Add or Create Simulation Sources”,之后點(diǎn)擊Next,如下圖所示。

fpga亮燈,fpga開(kāi)發(fā)

(3)在接下來(lái)的頁(yè)面中點(diǎn)擊Create File。

fpga亮燈,fpga開(kāi)發(fā)

(4)在彈出的窗口中輸入TestBench的文件名,TestBench源文件名稱的后綴“tb”可以用來(lái)向用戶示意該源文件是一個(gè) TestBench源文件,僅用于仿真,并不能用于設(shè)計(jì)的綜合和實(shí)現(xiàn)。

fpga亮燈,fpga開(kāi)發(fā)

(5)點(diǎn)擊OK后點(diǎn)擊Finish。

fpga亮燈,fpga開(kāi)發(fā)

(6)在彈出的自定義模塊窗口中直接點(diǎn)擊OK即可結(jié)束TestBench源文件的創(chuàng)建。

fpga亮燈,fpga開(kāi)發(fā)

(7)編寫.v文件代碼。

代碼第一行的timescale是Verilog語(yǔ)法中的不可綜合語(yǔ)法,用于定義仿真的時(shí)間表示仿真的單位時(shí)間為1ns,精度為1ps,這是Xilinx官方推薦的仿真單位時(shí)間和精度。

`timescale 1ns / 1ps

module led_twinkle_tb;

    reg            sys_clk_p;
    wire           sys_clk_n;
    reg            rst_n;
    wire  [3:0]    led;

    led_twinkle u_led_twinkle (
        .sys_clk_p(sys_clk_p),
        .sys_clk_n(sys_clk_n),
        .rst_n(rst_n),
        .led(led)
    );

    initial begin
        sys_clk_p = 0;
        rst_n = 0;
        #1000;
        rst_n = 1;
    end

    always #2.5 sys_clk_p = ~sys_clk_p;

    assign sys_clk_n = ~sys_clk_p;

endmodule

(8)在“Flow Navigator“窗口中點(diǎn)擊“Run Simulation”并選擇 “Run Behavioral Simulation”。

fpga亮燈,fpga開(kāi)發(fā)

(9)之后就進(jìn)入了仿真界面。

fpga亮燈,fpga開(kāi)發(fā)

①Scope窗口:Scope(范圍)是HDL設(shè)計(jì)的層次劃分。在Scope窗口中,可以看到設(shè)計(jì)層次結(jié)構(gòu)。當(dāng)選擇了一個(gè)Scope層次結(jié)構(gòu)中的作用域時(shí),該作用域內(nèi)的所有 HDL對(duì)象,包括reg、wire等都會(huì)出現(xiàn)在“Objects”窗口中??梢栽?“Objects”窗口中選擇HDL對(duì)象,并將它們添加到波形查看器中。

②Object窗口:“Objects”窗口會(huì)顯示在Scopes”窗口中選擇的范圍內(nèi)的所有HDL仿真對(duì)象。例如,在Scope窗口中選擇頂層模塊“l(fā)ed_twinkle”,在“Objects”窗口中就會(huì)自動(dòng)顯示出led_twinkle模塊中所有的對(duì)象。如下圖所示:

fpga亮燈,fpga開(kāi)發(fā)

③波形窗口:用于顯示所要觀察信號(hào)的波形。若要向波形窗口添加單個(gè)HDL對(duì)象或多個(gè)HDL對(duì)象,可以在“Objects”窗口中,右鍵單擊一個(gè)或多個(gè)對(duì)象,然后從下拉菜單中選擇“Add to Wave Window”選項(xiàng)。例如,可以把 “l(fā)ed_twinkle”模塊 下的“timer_ cnt”計(jì)數(shù)器添加到波形窗口中。

fpga亮燈,fpga開(kāi)發(fā)

④仿真工具欄:仿真工具欄包含運(yùn)行各個(gè)仿真動(dòng)作的命令按鈕。從左至右依次是:

  • Restart:將仿真時(shí)間重置為零,此時(shí)波形窗口中原有的波形都會(huì)被清除。下次執(zhí)行仿真時(shí),會(huì)從0時(shí)刻重新開(kāi)始。

  • Run all:運(yùn)行仿真,直到其完成所有事件或遇到 HDL語(yǔ)句中的 s t o p 或 stop或 stopfinish命令為止。注意,如果沒(méi)有在 TestBench語(yǔ)句中加入 s t o p 或 stop或 stopfinish命令,當(dāng)點(diǎn)擊Run all命令時(shí),仿真器會(huì)無(wú)休止地一直仿真下去,除非用戶點(diǎn)擊仿真工具欄中的“ Break”按鈕來(lái)手動(dòng)地結(jié)束仿真。但是這里有個(gè)地方需要注意,如果此時(shí)需要仿真的設(shè)計(jì)比較復(fù)雜,則仿真器在運(yùn)行仿真時(shí)會(huì)耗費(fèi)電腦大量的CPU和內(nèi)存資源,此時(shí)有可能會(huì)造成電腦卡頓甚至死機(jī)的情況。所以,如果設(shè)計(jì)比較復(fù)雜,且沒(méi)有在 TestBench語(yǔ)句中加入 s t o p 或 stop或 stopfinish命令,最好不要輕易點(diǎn)擊 Run all命令。

  • Run For:運(yùn)行特定的一段時(shí)間。緊隨在后面的兩個(gè)文本框用于設(shè)定仿真時(shí)長(zhǎng)的數(shù)值大小和時(shí)間單位。

  • Step:按步運(yùn)行仿真,每一步仿真一個(gè)HDL語(yǔ)句。

  • Break:暫停當(dāng)前仿真。

  • Relaunch :重新編譯仿真源并重新啟動(dòng)仿真。

  • 源代碼進(jìn)行修改。在修改完 HDL源代碼后,如果需要修改HDL代碼,可以點(diǎn)擊Relaunch按鈕來(lái)重新加載UUT設(shè)計(jì)和 TestBench,以重新對(duì)修改后的HDL源代碼進(jìn)行仿真。此時(shí)就不需要再關(guān)閉并重新打開(kāi)仿真器了。

在剛打開(kāi)仿真器時(shí),仿真器會(huì)首先將TestBench中的信號(hào)加入到波形窗口中 ,并執(zhí)行一段時(shí)長(zhǎng)的仿真。仿真的時(shí)長(zhǎng)由Settings設(shè)置窗口中的參數(shù)值指定,如下圖所示:

fpga亮燈,fpga開(kāi)發(fā)

可以看到,仿真器啟動(dòng)后默認(rèn)立即執(zhí)行的仿真時(shí)長(zhǎng)是1000ns。由于我們是在默認(rèn)立即執(zhí)行仿真結(jié)束之后,才加入了“timer_cnt”計(jì)數(shù)器信號(hào),所以新加入的”timer_cnt“信號(hào)并沒(méi)有波形。此時(shí)我們需要將仿真時(shí)刻重置為0,重新開(kāi)始仿真。點(diǎn)擊Restart按鈕,波形窗口中的當(dāng)前仿真時(shí)刻點(diǎn)(黃色標(biāo)尺)就會(huì)回歸到0ns,且原先的所有波形都被清除,如下圖所示:

fpga亮燈,fpga開(kāi)發(fā)

點(diǎn)擊仿真工具欄中的Run For按鈕,默認(rèn)仿真時(shí)長(zhǎng)是10us,此時(shí)就可以看到波形窗口中就出現(xiàn)了波形。

fpga亮燈,fpga開(kāi)發(fā)

分析與綜合

(1)點(diǎn)擊“Flow Navigator”窗口中的“Open Elaborated Design”按鈕。此時(shí),Vivado會(huì)編譯RTL源文件并進(jìn)行全面的語(yǔ)法檢查,并在Messages窗口中給出相應(yīng)的“Error”和“Warning”。

fpga亮燈,fpga開(kāi)發(fā)

(2)打開(kāi)分析后 Elaborated的設(shè)計(jì)后Vivado會(huì)生成頂層原理圖視圖,并在默認(rèn)view layout中顯示設(shè)計(jì),如下圖所示:

fpga亮燈,fpga開(kāi)發(fā)

(3)將打開(kāi)的分析后的設(shè)計(jì)關(guān)閉,再點(diǎn)擊“Flow Navigator”窗口中的“Run Synthesis”按鈕進(jìn)行綜合。

fpga亮燈,fpga開(kāi)發(fā)

fpga亮燈,fpga開(kāi)發(fā)

(4)在彈出的窗口中點(diǎn)擊"OK"。

fpga亮燈,fpga開(kāi)發(fā)

(5)綜合完成后彈出如下窗口,直接關(guān)閉即可。

fpga亮燈,fpga開(kāi)發(fā)

約束輸入

(1)首先需要?jiǎng)?chuàng)建一個(gè)用于存儲(chǔ)約束語(yǔ)句的約束文件。點(diǎn)擊“Sources”窗口中的 “+”號(hào),在彈出的窗口選擇“ Add or create constraints”,如下圖所示,點(diǎn)擊“Next”:

fpga亮燈,fpga開(kāi)發(fā)

(2)點(diǎn)擊“Create File”。

fpga亮燈,fpga開(kāi)發(fā)

(3)在彈出的對(duì)話框中輸入約束文件的名稱“l(fā)ed_twinkle”,然后點(diǎn)擊 OK。

fpga亮燈,fpga開(kāi)發(fā)

(4)點(diǎn)擊“Finish”即可。

fpga亮燈,fpga開(kāi)發(fā)

Vivado的約束文件是以“.xdc”為文件后綴的ASCII文本文件,其中存儲(chǔ)的是一條條的xdc約束命令。

fpga亮燈,fpga開(kāi)發(fā)

點(diǎn)開(kāi)此文件,輸入如下內(nèi)容:

set_property PACKAGE_PIN AJ16 [get_ports {led[0]}]
set_property PACKAGE_PIN AK16 [get_ports {led[1]}]
set_property PACKAGE_PIN AE16 [get_ports {led[2]}]
set_property PACKAGE_PIN AE15 [get_ports {led[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}]
set_property PACKAGE_PIN AF18 [get_ports rst_n]
set_property IOSTANDARD LVCMOS33 [get_ports rst_n]
set_property PACKAGE_PIN F9 [get_ports sys_clk_p]
set_property IOSTANDARD DIFF_SSTL15 [get_ports sys_clk_p]

create_clock -period 5.000 -name sys_clk_p -waveform {0.000 2.500} [get_ports sys_clk_p]

普通 IO 口只需約束引腳號(hào)和電壓,管腳約束如下:

set_property PACKAGE_PIN “引腳編號(hào)” [get_ports “端口名稱”]

電平信號(hào)的約束如下:

set_property IOSTANDARD “電平標(biāo)準(zhǔn)” [get_ports “端口名稱”]

這里需要注意文字的大小寫,端口名稱是數(shù)組的話用{ }括起來(lái),端口名稱必須和源代碼中的名字一致,且端口名字不能和關(guān)鍵字一樣。

電平標(biāo)準(zhǔn)中“LVCMOS33”后面的數(shù)字指FPGA的BANK 電壓,LED所在BANK電壓為3.3伏,所以電平標(biāo)準(zhǔn)為“LVCMOS33”。Vivado 默認(rèn)要求為所有 IO 分配正確的電平標(biāo)準(zhǔn)和管腳編號(hào)。

對(duì)于xdc文件,每一個(gè)約束命令單獨(dú)占用一行,命令的結(jié)尾沒(méi)有如verilog中的分號(hào)一樣的語(yǔ)句結(jié)束符號(hào)。每一條注釋也單獨(dú)占用一行。命令的第一個(gè)關(guān)鍵字代表該命令的名稱,其后的所有字段都是該命令的參數(shù)列表。

設(shè)計(jì)實(shí)現(xiàn)

(1)約束輸入完畢之后,就可以開(kāi)始實(shí)現(xiàn)設(shè)計(jì)了。點(diǎn)擊“Flow Navigator”窗口中的”Run Implementation”按鈕。

fpga亮燈,fpga開(kāi)發(fā)

(2)在彈出的界面選擇OK。

fpga亮燈,fpga開(kāi)發(fā)

可以看到實(shí)現(xiàn)正在進(jìn)行。

fpga亮燈,fpga開(kāi)發(fā)

(3)直接關(guān)閉實(shí)現(xiàn)完成后的提示窗口。

fpga亮燈,fpga開(kāi)發(fā)

再次查看“Design Runs”窗口中的實(shí)現(xiàn)結(jié)果,發(fā)現(xiàn)時(shí)序要求都已滿足,即沒(méi)有報(bào)紅,說(shuō)明設(shè)計(jì)成功地在FPGA中完成了實(shí)現(xiàn)。

fpga亮燈,fpga開(kāi)發(fā)

下載比特流

(1)生成用于下載到器件中的比特流文件,點(diǎn)擊“Flow Navigator”窗口中的“Generate Bitstream”按鈕。

fpga亮燈,fpga開(kāi)發(fā)

(2)在彈出的窗口中直接點(diǎn)擊OK。

fpga亮燈,fpga開(kāi)發(fā)

此時(shí)可以看到“Design Runs”窗口中顯示正在生成比特流:

fpga亮燈,fpga開(kāi)發(fā)

(3)生成完成后,直接關(guān)閉提示窗口。

fpga亮燈,fpga開(kāi)發(fā)

(4)開(kāi)始下載比特流,點(diǎn)擊“Flow Navigator”窗口中的“Open Hardware Manager”按鈕。

fpga亮燈,fpga開(kāi)發(fā)

(5)將開(kāi)發(fā)板上電并接好JTAG接口,點(diǎn)擊Open target中的Auto Connect(或Hardware中的此按鈕)。

fpga亮燈,fpga開(kāi)發(fā)

出現(xiàn)如下界面就表示 Vivado就已經(jīng)和下載器連接成功了:

fpga亮燈,fpga開(kāi)發(fā)

(6)右擊xc7z100_1,在彈出的菜單中點(diǎn)擊Program Device。

fpga亮燈,fpga開(kāi)發(fā)

(7)在彈出的對(duì)話框中直接點(diǎn)Program即可。
fpga亮燈,fpga開(kāi)發(fā)

下載成功后,可以觀察到板子上的LED燈在不停地閃爍。

fpga亮燈,fpga開(kāi)發(fā)

總結(jié)

至此使用Vivado開(kāi)發(fā)FPGA實(shí)現(xiàn)一個(gè)簡(jiǎn)單的LED閃爍的流程就走完了,可以看到還是比較復(fù)雜的。之后還有Vivado中在線邏輯分析儀的使用、固化文件的生成等,就另起文章記錄了。

參考

達(dá)芬奇之FPGA開(kāi)發(fā)指南 V1.2

cource_s1_ALINX_ZYNQ(AX7Z100)開(kāi)發(fā)平臺(tái)FPGA教程V1.07文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-765120.html

到了這里,關(guān)于超詳細(xì)FPGA新手小白入門點(diǎn)亮LED燈的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • cubmx基礎(chǔ)操作,hal庫(kù)基本配置流程之使用 stm32cubmx生成HAL庫(kù)進(jìn)行g(shù)pio點(diǎn)亮led(stm32h7xx)(超詳細(xì),小白教程)

    cubmx基礎(chǔ)操作,hal庫(kù)基本配置流程之使用 stm32cubmx生成HAL庫(kù)進(jìn)行g(shù)pio點(diǎn)亮led(stm32h7xx)(超詳細(xì),小白教程)

    HAL庫(kù)(硬件抽象層庫(kù))是一個(gè)提供對(duì)底層硬件操作的抽象的庫(kù),它使得開(kāi)發(fā)者可以使用統(tǒng)一的接口進(jìn)行硬件操作,而不必關(guān)心底層硬件的具體實(shí)現(xiàn)細(xì)節(jié)。HAL庫(kù)通常由硬件廠商提供,用于支持其硬件設(shè)備,并為其提供標(biāo)準(zhǔn)化的接口。 HAL庫(kù)的主要目的是簡(jiǎn)化底層硬件的操作,使得

    2024年02月20日
    瀏覽(18)
  • 51單片機(jī)——LED 點(diǎn)陣點(diǎn)亮一個(gè)點(diǎn),小白詳解

    51單片機(jī)——LED 點(diǎn)陣點(diǎn)亮一個(gè)點(diǎn),小白詳解

    LED點(diǎn)陣介紹: ? ? ? ?LED點(diǎn)陣是由發(fā)光二極管排列組成的顯示器件,在我們生活中的電器中隨處可見(jiàn),被廣泛用于汽車報(bào)站器,廣告屏等。 ????????通常用用較多的是8*8點(diǎn)陣,然后使用多個(gè)8*8點(diǎn)陣組成不同分辨率的LED點(diǎn)陣顯示屏,比如16*16點(diǎn)陣可以使用4個(gè)8*8點(diǎn)陣構(gòu)成。因

    2024年02月09日
    瀏覽(22)
  • Java新手小白入門篇 JDK安裝及環(huán)境變量配置(超詳細(xì))

    Java新手小白入門篇 JDK安裝及環(huán)境變量配置(超詳細(xì))

    學(xué)習(xí)Java,必備的就是JDK,所以我們必須得下載安裝JDK,才能學(xué)習(xí)Java,下面我們會(huì)介紹 JDK是什么,如何安裝并配置。 一、JDK簡(jiǎn)介 1.名詞解釋 JVM (Java Virtual Machine) Java虛擬機(jī) 作用:加載 .class 文件 并 運(yùn)行 .class 文件 JRE (Java Runtime Environment) Java運(yùn)行環(huán)境 包含 JVM + 運(yùn)行Java程序所必

    2024年02月04日
    瀏覽(101)
  • FPGA/Verilog HDL/AC620零基礎(chǔ)入門學(xué)習(xí)——第一個(gè)項(xiàng)目按鍵控制LED

    FPGA/Verilog HDL/AC620零基礎(chǔ)入門學(xué)習(xí)——第一個(gè)項(xiàng)目按鍵控制LED

    最近要考試了,所以我趕緊補(bǔ)習(xí)FPGA,我們用的是小梅哥的AC620開(kāi)發(fā)板,軟件是Quartus。推薦看這個(gè)視頻教程:零基礎(chǔ)輕松學(xué)習(xí)FPGA,小梅哥FPGA設(shè)計(jì)思想與驗(yàn)證方法視頻教程 用按鍵控制LED燈的亮滅就是一個(gè)二選一多路器,兩個(gè)IO,a、b,可以是高電平,也可以是低電平。 輸入按鍵

    2024年02月05日
    瀏覽(28)
  • FPGA在校學(xué)習(xí)記錄系列---實(shí)驗(yàn)4不同狀態(tài)的LED+開(kāi)發(fā)板(Verilog HDL)

    FPGA在校學(xué)習(xí)記錄系列---實(shí)驗(yàn)4不同狀態(tài)的LED+開(kāi)發(fā)板(Verilog HDL)

    此系列記錄FPGA在學(xué)校的學(xué)習(xí)過(guò)程。 FPGA系列 需要用到的軟硬件: 軟件:Quartus II 15.0 (64-bit) 硬件: 5CEBA4F23C7芯片 鏈接: FPGA在校學(xué)習(xí)記錄系列—新建一個(gè)FPGA工程編寫程序并仿真(Verilog HDL) 創(chuàng)建的工程名字為:LED (這次不用仿真,直接用開(kāi)發(fā)板驗(yàn)證) 編譯文件 按鍵資源:

    2024年04月09日
    瀏覽(27)
  • FPGA 芯片點(diǎn)亮標(biāo)準(zhǔn)?

    FPGA 芯片點(diǎn)亮標(biāo)準(zhǔn)?

    芯片設(shè)計(jì)完成,給到工廠制造,封裝后回來(lái),要經(jīng)過(guò)最重要的一個(gè)點(diǎn)亮的環(huán)節(jié),你知道什么叫做點(diǎn)亮嗎? 其實(shí),什么樣叫做點(diǎn)亮,每家公司有每家的標(biāo)準(zhǔn),本著自已不為難自已的原則,一般會(huì)有最簡(jiǎn)單的過(guò)程。當(dāng)然,和不同的芯片也有關(guān)系,這里我只是以FPGA芯片為例,說(shuō)說(shuō)

    2024年02月06日
    瀏覽(26)
  • 【FPGA】FPGA入門 —— 基本開(kāi)發(fā)流程

    【FPGA】FPGA入門 —— 基本開(kāi)發(fā)流程

    快速上手verilog語(yǔ)法 狀態(tài)機(jī),線性序列機(jī) FPGA常見(jiàn)的設(shè)計(jì)方法 自己寫代碼,下載代碼進(jìn)行使用,使用廠家/第三方提供的IP核 常見(jiàn)接口設(shè)計(jì) 等等。。 學(xué)習(xí)時(shí)間:基礎(chǔ)內(nèi)容的學(xué)習(xí) - 20*8h,啊啊啊我可以我能行,看來(lái)這個(gè)月我給把時(shí)間砸這上面了~~ 仿真兩大作用:檢查驗(yàn)證設(shè)計(jì)功能

    2024年02月11日
    瀏覽(18)
  • FPGA學(xué)習(xí)——點(diǎn)亮流水燈

    FPGA學(xué)習(xí)——點(diǎn)亮流水燈

    在FPGA開(kāi)發(fā)板中,一般板載LED默認(rèn)高電平點(diǎn)亮,因此我們只需要將想要亮起的LED賦值為1即可。 本入門實(shí)驗(yàn)要求為每隔1s開(kāi)發(fā)板上的LED輪流亮起,因此我們需要一個(gè)1s的計(jì)數(shù)器, 由于開(kāi)發(fā)板晶振時(shí)鐘為50MHz,因此我們計(jì)數(shù)50_000_000即為1s。 注意:為了后續(xù)方便仿真所以這里MAX設(shè)置

    2024年02月13日
    瀏覽(46)
  • 最詳細(xì)STM32,cubeMX 點(diǎn)亮 led

    最詳細(xì)STM32,cubeMX 點(diǎn)亮 led

    這篇文章將詳細(xì)介紹 如何在 stm32103 板子上點(diǎn)亮一個(gè)LED. 實(shí)驗(yàn)開(kāi)發(fā)板:STM32F103C8T6。 所需軟件:keil5 , cubeMX 。 實(shí)驗(yàn)?zāi)康模毫私?led 點(diǎn)亮原理,cubeMX配置 , GPIO 等相關(guān)函數(shù) 。 代碼編寫軟件 : MDK keil5 。 圖形化配置軟件 :STM32cubeMX。 仿真器驅(qū)動(dòng) : STLINK 。 串口驅(qū)動(dòng) :CH340 。

    2024年01月16日
    瀏覽(22)
  • ESP8266入門教程03:點(diǎn)亮LED燈

    ESP8266入門教程03:點(diǎn)亮LED燈

    ESP8266默認(rèn)是高電平工作,所以想要點(diǎn)亮LED只需要給相應(yīng)的引腳設(shè)置低電平即可。 ?第11行:使用pinMode(pin, mode)來(lái)設(shè)置GPIO口工作模式,pin取值范圍0 ~ 16,數(shù)字引腳0-15可設(shè)置為INPUT、OUTPUT、INPUT_PULLUP模式(輸入、輸出、上拉輸入);數(shù)字引腳16可設(shè)置為INPUT、OUTPUT、INPUT_PULLDOWN_16模式

    2024年02月14日
    瀏覽(103)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包