FPGA流水燈(含Vivado使用流程)


1. 建立工程

新建工程。

image

工程名和工程路徑。

image

根據芯片型號選擇。

image

其他一路Next直至Finish。

2. 源文件

新建源文件:

Add Sources→Add or create design sources

image

image

Verilog代碼:(這里先以流水燈為例)

module led_stream(
    output reg [3:0] led,  // LED4 to LED1, 1 on, 0 off
    input            clk,  // FPGA PL clock, 50 MHz
    input            rst_n // FPGA reset pin
);
 reg [31:0] cnt;
 reg [1:0]  led_on_number;
    //clock input 50000000
parameter CLOCK_FREQ  =50000000;
parameter COUNTER_MAX_CNT=CLOCK_FREQ/2-1;//change time 0.5s

    always @(posedge clk, negedge rst_n) begin
        if(!rst_n) begin
            cnt <= 31'd0;
            led_on_number <= 2'd0;
        end
        else begin
            cnt <= cnt + 1'b1;
            if(cnt == COUNTER_MAX_CNT) begin//count time 0.5s
                cnt <= 31'd0;
                led_on_number <= led_on_number + 1'b1;
            end
        end
    end
    always @(led_on_number) begin
        case(led_on_number)
            0: led <= 4'b0001;
            1: led <= 4'b0010;
            2: led <= 4'b0100;

            3: led <= 4'b1000;
        endcase
    end
endmodule

時鍾頻率CLOCK_FREQ為50000000Hz。通過cnt累加計數,達到0.5s后改變一次輸出狀態。

3. 仿真文件

Add Sources→Add or create simulation sources

`define clk_cycle 10
module led_sim();
    reg clk, rst_n;
    wire [3:0] led;
    always #`clk_cycle clk = ~clk;
    initial begin
        clk = 0;
        rst_n = 1;
        #10 rst_n = 0;
        #10 rst_n = 1;
    end
led_stream led_stream(.rst_n(rst_n), .clk(clk), .led(led));
endmodule

時鍾周期20ns,故設置clk每隔10ns翻轉一次。效果如下圖所示。

image

仿真至2s出頭,得到結果如下圖所示,可知程序正確。

led按照0001→0010→0100→1000的順序變化。

image

4. 綜合

點擊Run Synthesis

image

Number of jobs代表綜合消耗的進線程。

image

點擊OK開始綜合,同時窗口右上角顯示綜合正在運行的提示。

image

綜合完成后顯示

image

5. 管腳綁定

Open Elaborated Design

image

觀察原理圖。

LED引腳and復位按鍵引腳:

imageimage

image

時鍾引腳:

image

根據原理圖綁定管腳:

image

保存管腳約束文件(Ctrl+S):

image

6. 實現

Run Implementation

image

Generate Bitstream

image

打開硬件管理器 Open Hardware Mnager:

image

連接ZYNQ開發板,選擇Auto Connect

image

點擊Program進行燒寫操作

image

效果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM