1. 程式人生 > >MYIR-ZYNQ7000系列-zturn教程(9):將bit檔案固化到QSPI_Flash

MYIR-ZYNQ7000系列-zturn教程(9):將bit檔案固化到QSPI_Flash

開發板環境:vivado 2017.1 ,開發板型號xc7z020clg400-1。 

我們用FPGA最後生成的是二進位制bit檔案,bit檔案下載到開發板是在記憶體裡執行如果斷電程式會丟失。如果我們用FPGA生成的bit檔案和zynq核生成的fsbl合成一個BOOT.bin檔案,這個zynq核配置了DDR核QSPI_Flash,然後將這個BOOT.bin檔案下載到QSPI_Flash讓開發板執行在QSPI_Flash啟動模式就能讓開發板斷電程式也不會丟失。如下圖所示

Step1 這是已經新建好的一個vivado 流水燈的fpga工程

Step2     點選Flow Navigator 下的Create Block Desion新建一個Block Desion

點選OK

Step3    點選工作區的Add IP新增IP核,在彈出的搜尋欄Search中輸入zynq,發現可以搜到ZYNQ IP核,雙擊這個ZYNQ核新增到工作區內

新增好的ZYNQ核如下圖所示

Step4   雙擊ZYNQ IP核新增tcl配置檔案,然後點選OK(如果不知道怎樣新增請參考hello_world工程裡面有詳細步驟)

已經配置好的zynq核,如下圖所示

我們配置zynq核時一定不要忘記配置這個QSPI_Flash,有很多人沒有這裡沒有配置

QSPI_Flash導致最後下載到QSPI_Flash時失敗

Step 5 點選Run Block Automation進行自動佈線

在彈出的對話方塊中點選OK

自動佈線完成後如下圖所示

Step6  右擊 design_1->Generate Ouput Products   生成綜合檔案

在彈出的對話方塊中點選Generate

Step7 右擊 design_1->Create HDL Wrapper  生成頂層文

在彈出的對話方塊中點選OK

頂層檔案生成後如下圖所示

將這個流水燈user_led例化到這個zynq核的頂層檔案裡,如下圖所示

流水燈user_led例化到zynq核完成後,如下圖所示

Step8   點選Generate Bitstream產生bit檔案

點選Yes

點選OK

在彈出的對話方塊中可以看出bit檔案生成成功 ,點選Cancel關閉對話方塊

Step9   點選選單欄上的 File->Export->Export Hardware 匯出硬體配置檔案

在彈出的對話方塊中勾選Include bitstream ,然後點選OK

Step10   點選選單欄上的 File->Launch SDK->OK啟動SDK

點選OK

Step11 點選選單欄上的 File->New->Application Project新建工程新建一個fsbl

在彈出的對話方塊中填寫fsbl

在工程模板中選擇Zynq FSBL

Step12  右擊 fsbl->Create boot Image, 生成BOOT.bin啟動檔案

在彈出的對話方塊中點選Create Image ,生成BOOT.bin

連線開發板電源和jtag下載器,並且將開發板打到SD卡啟動模式JP1斷開、JP2閉合,如下圖所示

Step13  點選選單欄上的xilinx Tools-->Program Flash 

在彈出的對話方塊中點選Image File 的Browse將我們生成的BOOT.bin檔案新增進來

找到我們生成的BOOT.bin檔案,然後點選開啟將BOOT.bin檔案新增進來,如下圖所示

點選Program 將BOOT.bin檔案下載到QSPI_Flash

BOOT.bin檔案正在往QSPI_Flash中下載,如下圖所示

BOOT.bin檔案往QSPI_Flash裡下載成功,如下圖所示

將開發板打到QSPI_Flash模式JP1閉合、JP2閉合,可以看到開發板三色燈D34不停的閃爍,如果將開發板電源斷開,

然後重新連線上可以看到開發板依然可以正常執行,可以看到開發板斷電程式沒有丟失

連結:https://pan.baidu.com/s/1nGBd7itC3n5eI2cGxAfxiA   提取碼:p9ma