[FPGA6]ZYNQ芯片PS配置流程

ZYNQ芯片PS编程配置流程

Viviado工程的建立

  1. 创建一个vivado工程,创建过程与之前创建pl工程一致,具体步骤可见[FPGA2]创建PL工程完整流程,该项目的Default Part选择为Zynq UltraScale+ ZCU104 Evaluation Board
  2. 点击IP INTEGRATOR--Create Block Design,创建一个Block图形化设计界面
  3. 点击Diagram界面下的+号,即Add IP选项,也可通过Ctrl+I快捷键实现,并搜索添加Zynq UltraScale+ MPSoc
  4. PS UltraScale+ Block Design界面中,能够看到ZYNQ硬核的构架图与内部结构,其中,途中绿色部分为可配置模块,可点击对应方框进入具体的配置界面
  5. 点击I/O Configuration界面,在顶部的MIO Voltage Standard选项中,可以设置PS端口中不同Bank的电平标准;在Peripheral选项中可以选择在PS端需要用到的外设接口,并在I/O选项中给定端口,并且设置电平水平,上拉下拉设置,接口速度等参数。需要注意,因为ZYNQ的PS端口中很多接口可以进行复用,所以在实际配置过程中,需要综合调整各接口的管脚分配,从而解除冲突
  6. 点击Clock Configuration界面,在Input Clocks选项中,可以配置PS时钟输入的频率,允许的输入时钟频率范围为27-60MHz。在Output Clocks选项中可以配置PS接口上各类接口的时钟配置。参数可根据电路原理图与接口配置要求进行调整
  7. 点击DDR Configuration界面,配置DDR的参数,设置DDR的类型,具体型号,总线宽度,以及ECC校验等参数
  8. 点击PS-PL Configuration界面,这个界面主要是进行 PS 与 PL 之间接口的配置,这些接口可以扩展 PL 端的 AXI 接口外设,从而使用各类AXI接口的IP核。在该界面中可以选择各个接口的使能,以及接口数据位宽的设定,具体设置参数参考要连接的IP设置
  9. 完成以上参数设置后,ZYNQ核的配置结束,点击Run Block Automation选项重新生成IP,vivado会自动完成各种端口导出的工作
  10. 在生成IP核后,点击连接PL端与PS端的时钟信号
  11. 点击Sources - Design Sources,右键点击Create HDL wapper,将图形化IP核变成代码形式
  12. 接着再右键点击 Generate Output Products,生成所需的各类文件
  13. 如果该程序涉及pl部分的编程,则继续点击Generate Bitstream,生成bit文件
  14. 最后点击菜单栏的File -> Export -> Export Hardware...完成ps端配置的导出,当需要同时使用ps和pl,则需要勾选Include bitstream选项。需要注意,在19.2版本之前,导出的文件格式为.hdf,而在19.2升级至vitis后,导出的文件格式变为.xsa

vitis工程的建立

  1. 点击Tool -> Launch Vitis,可以打开Vitis软件,选择工程想要放置的文件夹位置,点击Launch
  2. 启动Vitis主界面后,点击Create Application Project,创建工程
  3. 设置工程的名字,并且添加之前创建的.xsa文件
  4. CPU 默认选择,OS 选择 standalone,最下面的 Generate boot components选项,如果勾选上,软件会自动生成 fsbl 工程,我们一般选择默认勾选上,点击 Next
  5. 完成之后可以看到生成了两个工程,一个是硬件平台工程,即之前所说的 Platfrom工程,一个是 APP工程
  6. 在APP工程中编写代码,并进行编译,生成.elf文件,并使用JTAG进行下载
  7. 最后,按需生成boot.bin文件,进行固化即可
    (此部分由于暂未涉及,仅做简单介绍,后续有空会进行完善)