資料介紹
描述
逐步了解如何為 Minized 創建可工作的 PYNQ 系統。
小型化作為低成本電路板為新開發人員提供了一個嘗試新功能或了解 FPGA 工作原理的切入點。本教程重點介紹如何使用現有工具為 Minized 創建 PYNQ 圖像,以便您對其進行修改、創建疊加和學習!
那么,讓我們開始吧!
準備環境
第一步是為我們的 PYNQ 項目創建 BSP。為此,您可以為 Minized下載預構建的 BSP或按照我的其他教程進行操作。
注意:我在創建本教程時跳過了一些步驟。如果您感到迷茫,請查看我以前的項目,如果您找不到解決方案,請發表評論。
注意:如果你需要干凈的 Ubuntu,你可以在這里下載一個:https ://1drv.ms/u/s!As37uPW_18jehTkymDK5EiuWbuC1?e=JBEgII密碼是“root”。用oracle虛擬盒子打開就行了。運行“setup_host.sh”(在 PYNQ 腳本文件夾中)并安裝 Xilinx 工具。
您將需要創建一些工作目錄。例如稱它為 Avnet。現在下載 Minized 的存儲庫并創建模板項目。
mkdir Avnet;
cd Avnet;
git clone https://github.com/Avnet/bdf.git --branch master;
git clone https://github.com/Avnet/hdl.git --branch 2019.1;
git clone https://github.com/Avnet/petalinux.git --branch 2019.1;
并從 Xilinx GitHub 下載 PYNQ 映像。
git clone https://github.com/Xilinx/PYNQ.git -b image_v2.5.4

修改 Vivado 項目
使用 Vivado 2019.1 打開項目

開放式塊設計

移除不必要的 IP 核并禁用未使用的 Zynq 接口(不必要)。
將“sdcard_mgr”IP 核添加到模塊設計中。

將“sdcard_mgr”連接到 Zynq EMIO 接口。

并修改約束:
打開“minized_petalinux.xdc”并添加:
#SD - CARD
set_property PACKAGE_PIN L15 [get_ports PMOD1_PIN1_0]
set_property IOSTANDARD LVCMOS33 [get_ports PMOD1_PIN1_0]
set_property PACKAGE_PIN M15 [get_ports PMOD1_PIN2_0]
set_property IOSTANDARD LVCMOS33 [get_ports PMOD1_PIN2_0]
set_property PACKAGE_PIN L14 [get_ports PMOD1_PIN3_0]
set_property IOSTANDARD LVCMOS33 [get_ports PMOD1_PIN3_0]
set_property PACKAGE_PIN M14 [get_ports PMOD1_PIN4_0]
set_property IOSTANDARD LVCMOS33 [get_ports PMOD1_PIN4_0]
set_property PACKAGE_PIN K13 [get_ports PMOD1_PIN7_0]
set_property IOSTANDARD LVCMOS33 [get_ports PMOD1_PIN7_0]
set_property PACKAGE_PIN L13 [get_ports PMOD1_PIN8_0]
set_property IOSTANDARD LVCMOS33 [get_ports PMOD1_PIN8_0]
set_property PACKAGE_PIN N13 [get_ports PMOD1_PIN9_0]
set_property IOSTANDARD LVCMOS33 [get_ports PMOD1_PIN9_0]
set_property PACKAGE_PIN N14 [get_ports PMOD1_PIN10_0]
set_property IOSTANDARD LVCMOS33 [get_ports PMOD1_PIN10_0]
保存模塊設計并生成新的比特流。
單擊文件 → 導出 → 硬件以導出項目 HDF。
這將創建新的“MINIZED_wrapper.hdf”
注意:我已經刪除了 previous.hdf 文件

修改 Petalinux 項目
注意:如果你不想玩 petalinux,你可以跳過這整個部分。只需下載一個 Avnet 的 BSP 并將其用于創建 PYNQ rootfs,使用它對 EMMC 內存進行編程(使用最小的 petalinux 映像和 USB 記憶棒并將文件復制到 EMMC)。使用其他引導到 EMMC 的 BOOT.bin。稍后 PYNQ 將下載覆蓋并覆蓋由 BOOT.bin 編程的比特流。
轉到由 Avnet 腳本或 BSP 創建的 petalinux 項目
petalinux-create -t project -n MzPynq --template zynq
更改 petalinux 項目的引用 HDF。
此命令將在 MINIZED.sdk 文件夾中搜索.hdf 文件。如果有兩個.hdf 文件,petalinux 會返回錯誤。
petalinux-config --get-hw-description=../../../hdl/Projects/minized_petalinux/MINIZED_2019_1/MINIZED.sdk/
(可選)啟用 FPGA 管理器。

轉到圖像打包配置并將根文件系統更改為 SD 卡。Image.ub 將在 /dev/mmcblk0p2 分區上搜索 rootfs。

修改引導順序以在主 sd 上查找“image.ub”

保存并退出。
轉到 MzPynq → 項目規范 → 元用戶 → recipes-bsp → 設備樹 → system_user.dtsi
cd project-spec/meta-user/recipes-bsp/device-tree/
gedit system_user.dtsi
并更改設備樹
/include/ "system-conf.dtsi"
/ {
aliases {
serial0 = &uart1;
serial1 = &uart0;
};
};
&flash0 {
compatible = "micron,n25q128", "jedec,spi-nor";
};
/{
usb_phy0: usb_phy@0 {
compatible = "ulpi-phy";
#phy-cells = <0>;
reg = <0xe0002000 0x1000>;
view-port = <0x0170>;
drv-vbus;
};
};
&usb0 {
dr_mode = "otg";
usb-phy = <&usb_phy0>;
} ;
&qspi {
#address-cells = <1>;
#size-cells = <0>;
flash0: flash@0 {
compatible = "micron,m25p80";
reg = <0x0>;
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <50000000>;
};
};
/* SD Interface for PMOD */
&sdhci0 {
status = "okay";
non-removeable;
bus-width= <4>;
xlnx,has-cd = <0x0>;
xlnx,has-power = <0x0>;
xlnx,has-wp = <0x0>;
mmccard: mmccard@0 {
reg = <0>;
compatible = "mmc-card";
/* broken-hpi; */
};
};
/ {
};
保存并
petalinux-build
如果在打開 FPGA 管理器的情況下構建通過,這意味著也應該在 PYNQ 中構建。
您可以關閉 FPGA 管理器并根據修改后的硬件創建新的 BSP
petalinux-config
petalinux-build;
petalinux-package --bsp -p /home/bartek/Minized_Pynq/Avnet/petalinux/projects/MzPynq -o Minized_Pynq
使用打包的 BOOT.bin 最小化程序
cd ../../../../images/linux/;
petalinux-package --boot --fpga --fsbl --u-boot --force;
program_flash -f BOOT.BIN -fsbl zynq_fsbl.elf -flash_type qspi-x4-single;
對 PYNQ 的修改
Note:
如果您在 Avnet BSP 的 EMMC 內存上構建 Minized PYNQ。您應該將 pynq_bootargs.dtsi 更改為“/dev/mmcblk1p2”。


轉到 PYNQ → sdbuild → 腳本并運行“setup_host.sh”
這用于下載構建 PYNQ 映像所需的所有文件和程序。
cd PYNQ/sdbuild/scripts/
bash setup_host.sh
腳本完成后,您可以獲取 Vivado 和 SDK 進行構建:
source /home/bartek/petalinux20191/settings.sh;
source /home/bartek/Xilinx/Vivado/2019.1/settings64.sh;
source /home/bartek/Xilinx/SDK/2019.1/settings64.sh;
轉到 PYNQ → sdbuild 文件夾并嘗試:
make BOARDS=Pynq-Z1
查看 PYNQ 是否設置正確。
?
我將使用現有的 PYNQ 2.5 imagerootfs for arm
注意:點擊此鏈接可將 Image 快速移植到 PYNQ。
轉到 PYNQ → sdbuild 并輸入:
bash scripts/image_from_prebuilt.sh MinizedPynq Minized_Pynq.bsp arm bionic.arm.2.5.img;
構建完成后,您將在 PYNQ → sdbuild → 輸出中擁有輸出文件夾
使用您的最小化 PYNQ 圖像。

雙擊它并恢復 SD-CARD 上的磁盤映像。
flash完成后輸入
sudo gparted
并調整第二個分區的大小以使用設備上剩余的所有可用空間。
PYNQ 的密碼是“xilinx”

現在我們可以將 USB HUB 與相機和 WI-FI 適配器連接起來。


使用 nano 生成“wpa_supplicant.conf”
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
和寫:
network={
ssid="SSID"
psk="PASSWORD"
}
現在加載“wpa_supplicant”并等待 ip-address
sudo wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 -B
sudo dhclient wlan0
Jupyter notebook 應該在你的 Minized 上運行。

打開瀏覽器并連接到 PYNQ。使用 wlan0 接口中列出的 IP。
http://192.168.0.102:9090
成功!

創建名為“Testing.ipynb”的新文件。該腳本將占用 10 幀并在 Jupyter 筆記本中顯示,每幀延遲 1 秒。
import os
import cv2
import time
from matplotlib import pyplot as plt
from IPython.display import clear_output
cap = cv2.VideoCapture(0)
if cap.isOpened():
print("Camera opened")
else:
print("Failed to open camera")
i = 1
while (i < 10):
check, frame = cap.read()
if check == False:
print(f"Error reading frame! {i}")
else:
plt.imshow(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
i += 1
time.sleep(1)
clear_output(wait=True)
現在讓我們試試 PYNQ 覆蓋是否正常工作。
打開公共文件夾并運行“overlay_download”

在腳本中運行第一個單元格

如您所見,沒有加載默認覆蓋,我們使用的是來自 BOOT.BIN 的比特流。
讓我們加載一個疊加層。為此,我將使用 Vivado 生成的文件。
cd /Avnet/hdl/Projects/minized_petalinux/MINIZED_2019_1/
并尋找“hw_handoff”文件夾

此外,我們將需要比特流。只需在 Vivado 項目文件夾中搜索。

重命名這些文件,以便 PYNQ 知道它們引用的是同一個覆蓋。

將這些文件上傳到 Jupyter Notebook

修改腳本以加載新的覆蓋。


概括
所以這些是如何為 Minized 創建 PYNQ 的基礎知識。
在下一個教程中,我將嘗試向您展示如何為 EMMC 內存創建 PYNQ。
小心!
- 使用Tensil和PYNQ在PYNQ Z1 FPGA板上運行機器學習
- 基于Pynq的汽車儀表板
- 如何為Minized創建PYNQ
- MiniZed和Mighty機器人
- 用于MiniZed的7段LED顯示硬件和VHDL模塊
- 如何為探測器構建活動創建探測器
- 如何為LCD1602顯示器創建自定義字符
- 如何創建和使用LabVIEW中的LLB文件 0次下載
- 如何為混合動力汽車/電動汽車設計加熱和冷卻系統 23次下載
- 基于AADL的自主無人系統可成長框架綜述 3次下載
- Visual C++和MFC創建的應用程序基礎知識 0次下載
- allegro與PADS的區別及創建PCB封裝的步驟 67次下載
- 開源方案|PYNQ框架下開發可重構運動控制器
- PYNQ的常見問題
- AN1246中文手冊之如何在Microchip圖形庫中創建控件
- 使用PYNQ訓練和實現BNN 592次閱讀
- 使用TIA Portal創建用于操作和監視機器與工廠的畫面 1089次閱讀
- Visual Studio Code Python使用新的創建環境命令簡化項目設置 1420次閱讀
- 如何使用Arduino創建停車門禁控制系統? 5302次閱讀
- 米爾PYNQ開發板來了 964次閱讀
- fireflyAIO-3399C主板創建Ubuntu根文件系統 1190次閱讀
- FireflyRK3128主板Ubuntu 根文件系統創建 3390次閱讀
- Avnet MiniZed單核Zynq 7Z007S入門開發方案 5344次閱讀
- PYNQ中MicroBlaze程序文件的加載過程 2271次閱讀
- PYNQ 基于Zynq架構添加了對python的支持 8860次閱讀
- 研究人員基于NVIDIA GPU創建了可預測的3D細胞模型 3454次閱讀
- 一文詳解Avnet Zynq 7Z007SMiniZed開發方案 9892次閱讀
- 驗證設計和創建可實現的設計 786次閱讀
- 低成本 MiniZed Zynq SoC 開發板 7449次閱讀
- 如何為工業控制和自動化應用提供隔離數字輸入接口 2173次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論