Ultra 96V2 PS/PL(BRAM交互共享数据) PYNQ

环境:PYNQ、Ultra96 V2、Vivado2018.3
具体流程:
Ultra 96V2 PS/PL(BRAM交互共享数据) PYNQ

结构简图(https://blog.****.net/rzjmpb/article/details/50365915# )
(1) 创建Vivado工程,选择Ultra 96板;
(2) Create Block Design;
(3) Add ZYNQ,Run Block Automation;
(4) 添加AXI_BRAM_CTRL x2(一个write、一个read), 并把number of BRAM interfaces 修改成1;
(5) 添加Block Memory Generator,双击Block Memory Generator ,修改Memory Type(True Dual Port RAM);
(6) 点击run Connection Automation,把axi_bram_ctrl_1的S_AXI端口的连接目标修改为M_AXI_HPM1_FPD(axi_bram_ctrl_0的S_AXI端口的连接目标默认为为M_AXI_HPM0_FPD);
(7) 生成后的Diagram如下:
Ultra 96V2 PS/PL(BRAM交互共享数据) PYNQ

(8) 点击Address Editor 可以看到自动分配好的地址:
Ultra 96V2 PS/PL(BRAM交互共享数据) PYNQ

(9) Generare output ProductsCreate HDL WrapperGenerate Bitstream
(10) 左侧Open block design左上方FileExportExport block design;
(11) 将bit、tcl文件上传pynq,统一命名:
Ultra 96V2 PS/PL(BRAM交互共享数据) PYNQ

(12) Pynq测试:
Ultra 96V2 PS/PL(BRAM交互共享数据) PYNQUltra 96V2 PS/PL(BRAM交互共享数据) PYNQUltra 96V2 PS/PL(BRAM交互共享数据) PYNQ

参考:https://blog.****.net/wangjie36/article/details/107025003/ (PL\PL通信总结)
https://www..com/article/32911356311/ (Ultra 96入门总结)
https://blog.****.net/qq_34341423/article/details/102642129 (PYNQ Library详解 - PS与PL接口)