?
?
Xilinx Pynq 框架允許我們將 Python 和可編程邏輯結(jié)合起來。讓我們看看如何為自己的ZYNQ板卡創(chuàng)建 Pynq 鏡像。
介紹
Python 是目前最熱門的編程語言之一(Python是一種高級編程語言,由Guido van Rossum于1991年開發(fā)。它具有簡潔、易讀、易學的特點,被廣泛應用于各個領域的軟件開發(fā)。),我們希望能夠在 FPGA/SoC 開發(fā)中利用使用 Python 帶來的生產(chǎn)力紅利。
Xilinx Pynq 框架允許開發(fā)人員做到這一點,利用 Python 使用可編程邏輯的進行加速。
在 Pynq 框架內(nèi),可編程邏輯設計稱為overlays(覆蓋層),并被視為硬件庫。雖然創(chuàng)建新的overlays需要 FPGA 設計經(jīng)驗,但越來越多的開源overlays可供開發(fā)人員使用 ( http://www.pynq.io/community.html )
然而,有時我們需要不同或自定義板的 Pynq 映像,讓我們看看如何為自己的Z7010 板創(chuàng)建 Pynq 鏡像。
創(chuàng)建環(huán)境
我們需要做的第一件事是創(chuàng)建一個虛擬機,配置如下:
Ubuntu 16.04
4 個處理器核心
至少 8 G 內(nèi)存
至少 300 G 硬盤空間
配置機器進行無密碼 sudo 操作
虛擬機啟動并運行后,我們需要做的下一件事是安裝構(gòu)建 Pynq 所需的應用程序。
需要什么工具?
要創(chuàng)建 Pynq 映像,我們需要在 Linux 虛擬機上安裝以下工具
Vivado 2018.2
SDK 2018.2
PetaLinux 2018.2
我們還需要使用以下命令從 Xilinx GitHub 克隆 Pynq 存儲庫。
?
git?clone?https://github.com/Xilinx/Pynq.git

?
clone Pynq 存儲庫后,將能夠看到包含許多文件夾的 Pynq 目錄。
Boards - 現(xiàn)有主板規(guī)格、Juypter Notebook 和基礎覆蓋層
Doc - 文檔來源
Pynq - Python 和相關(guān)的支持文件
SDBuild - 包含構(gòu)建 Pynq 映像的所有腳本和資源
要正確設置我們的構(gòu)建環(huán)境,下一步是在目錄中運行設置環(huán)境腳本(setup_host.sh)
Pynq/SDBuild/Scripts
一旦這個腳本運行完成,接下來我們確保可以重建現(xiàn)有的主板(確保環(huán)境無問題)。
在這種情況下,決定重建 Pynq Z1 映像,為此我將目錄更改為 SDBuild 目錄并運行命令
?
make?BOARDS=Pynq-Z1?
?
將啟動鏡像創(chuàng)建過程
構(gòu)建過程可能需要一段時間(如果速度很慢,請檢查分配給虛擬機的處理器數(shù)量)。完成后 SDBuild 目錄下有一個輸出目錄。
在此將找到 Pynq-Z1 鏡像
現(xiàn)在我們知道我們可以重新創(chuàng)建 Pynq 鏡像來開發(fā)我們的自定義鏡像。
構(gòu)建基礎覆蓋層
Pynq 構(gòu)建首先需要的東西之一是基礎覆蓋層。對于自己的開發(fā)板,我們將使用 Pynq Z1 鏡像作為起點。
打開 Vivado (2018.2) 并在 Vivado TCL 窗口中獲取以下腳本??梢栽谀夸浿姓业剿鼈?/p>
boards/Pynq-Z1/base
?
source?build_base_ip.tcl? Source?base.tcl?
?
第一個命令將生成必要的 IP,而第二個命令將在 Vivado 項目中重新創(chuàng)建設計。
現(xiàn)在我們需要做的就是更改設備型號(FPGA型號)。
根據(jù)板卡外設添加自己的外設到工程中,其中包括
Pmod A
Pmod B
Tri-coloured LEDs
Switches (push buttons on the Cora)
I2C interface
SPI Interface
然而,由于我們可用的資源較少,我們需要刪除一些功能。最終的基礎平臺如下。
然后,在 Vivado 中生成bit,以確保設計符合我們的設計
此步驟的目的是確保新的基礎平臺適合 Zynq 7010 器件,并允許重新生成我們用于自定義板卡的base.tcl 。
創(chuàng)建新板
生成鏡像之前的最后一步是在目錄下創(chuàng)建一個新板
pynq/boards
創(chuàng)建新板需要創(chuàng)建一個以目標板命名的新目錄,在本例中為 cora。
在此目錄中,我們還需要創(chuàng)建幾個目錄和板規(guī)范。
電路板規(guī)格是一個文本文件,包含以下信息
目錄是:
base - 這包含基礎覆蓋層和相關(guān)的設計信息notebooks - 這包含 juypter notebookspetalinux_bsp - Linux BSP
使用 Pynq Z1 作為每個目錄的模板,根據(jù) Cora 板(自己的板卡)和較小的 7010 設備的需要更新 tcl、xdc 和 python 文件。
使用基本目錄中的 make 腳本生成基本設計的位文件。
當上面所有操作完成后,可以使用 SDBuild 目錄中的命令啟動 Pynq 構(gòu)建
?
make?BOARDS=cora?
?
同樣,這需要一段時間才能結(jié)束,但結(jié)果將與之前相同
硬件測試
啟動時要監(jiān)控的是串口輸出,通過串口打印能監(jiān)控到 Pynq 的啟動是否正確。
FPGA 啟動 Pynq 映像后,下一步是檢查 FPGA 能否連接到網(wǎng)絡,以便可以訪問 Jupyter notebooks。
?
$?ifconfig?

?
最后階段是測試 Jupyter notebooks。在與 Pynq 位于同一網(wǎng)絡的計算機上打開瀏覽器并輸入網(wǎng)址 pynq:9090
將進入登錄屏幕,密碼是 xilinx
登錄后,將看到筆記本和目錄
一旦我們點擊一個notebook,它就會開始運行,我們可以通過點擊運行選項來看到正在運行的notebook。
如果需要,我們還可以在 Jupyter 環(huán)境中打開終端窗口
看起來 Pynq 環(huán)境已在我們自己的板上啟動并運行,我們現(xiàn)在可以根據(jù)需要開始開發(fā)解決方案和覆蓋層。
評論