【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合

文章目录

  • 5. PS和PL简单结合
    • 创建工程
    • XDC文件约束PL管脚
    • 下载调试

5. PS和PL简单结合

  • 使用zynq 最大的疑问就是如何把 PS 和 PL 结合起来使用,在其他的 SOC 芯片中一般都会有 GPIO
  • 本实验使用一个 AXI GPIO 的 IP 核,让 PS 端通过 AXI 总线控制 PL 端的 LED 灯
  • 实验虽然 简单,不过可以让我们了解 PL 和 PS 是如何结合的

创建工程

  • 建立一个名为“ ps_axi_led Vivado 工程,表示 PS 通过 AXI 总线控制 LED 灯
  • 创建一个 Block 设计
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第1张图片
  • 添加 ZYNQ 处理器
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第2张图片

UART配置:

  • 配置 Bank1 电平标准 为 LVCMOS 1.8V
  • 如果不配置 Bank1 电平标准,可能导致串口无法接收
  • 使能串口 ,使用 MIO48 MIO49
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第3张图片

DDR3配置

  • AX7010 配置 DDR3 型号为“ MT41J128M16 HA 125
  • AX7020 配置 DDR3 型号为MT41J256M16 RE 125
  • 这里 ddr3 型号并不是板子上的 ddr3 型号,而是参数最接近的型号
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第4张图片
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第5张图片

设置时钟
【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第6张图片

  • 添加一个 AXI GPIO 的 IP 核
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第7张图片

添加AXI GPIO

  • 双击刚才添加的“ axi_gpio_0 ”配置参数
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第8张图片
  • 选择“ All Outputs ”,因为这里控制 LED ,只要输出就可以了 GPIO Width ”填 4 ,控制 4颗 LED ,点击 OK
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第9张图片
  • 点击“ Run Connection Automation ”,可以完成部分自动连线
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第10张图片
  • 选择要自动连接的端口,这里全选,点击 OK
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第11张图片
  • 点击“ Run Block Automation
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第12张图片
  • 点击“ OK
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第13张图片
  • 点击“ Optimize Routing ”,可以优化布局
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第14张图片
  • 修改 GPIO 端口的名称
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第15张图片
  • 名称修改为 leds
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第16张图片
  • 创建 HDL 文件
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第17张图片
  • 点击“ OK
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第18张图片
  • Generate Output Products
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第19张图片
  • 在生成的 Verilog 文件中,可以看到有个“ leds_tri_o ”的输出端口 ,要为他们分配管脚
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第20张图片

XDC文件约束PL管脚

  • 综合
  • 实现
  • 生成 bit 文件
  • 导出硬件(File-export-export hardware)
  • 因为要用到 PL ,所以 选择“ Include bitstream ”,点击 OK
  • 运行 SDK
  • 创建一个名为“ axi_led ”的 APP ,工程模板 选择 Hello World
  • 双击“ system.mss 找到“ axi_gpio_0 这里可以点击“ Documentation ”来看相关文档,点击“ Import Examples’’
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第21张图片
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第22张图片
  • 里面用到很多GPIO 相关的 API 函数,通过文档可以了解详细,也可以选中该函数,按F3 ”查看具体定义 。如果有了这些信息你还不能理解如何使用 AXI GPIO ,说明你需要补充 C语言基础

下载调试

【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第23张图片

【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第24张图片

  • 修改代码让 2 个 LED 灯都闪烁
    【FPGA】Xilinx_ZYNQ7Z020——5. PS和PL简单结合_第25张图片

你可能感兴趣的:(FPGA)