ZYNQ芯片PS编程配置流程
Viviado工程的建立
- 创建一个vivado工程,创建过程与之前创建pl工程一致,具体步骤可见[FPGA2]创建PL工程完整流程,该项目的
Default Part
选择为Zynq UltraScale+ ZCU104 Evaluation Board
- 点击
IP INTEGRATOR--Create Block Design
,创建一个Block图形化设计界面 - 点击
Diagram
界面下的+号,即Add IP
选项,也可通过Ctrl+I
快捷键实现,并搜索添加Zynq UltraScale+ MPSoc
核 - 在
PS UltraScale+ Block Design
界面中,能够看到ZYNQ硬核的构架图与内部结构,其中,途中绿色部分为可配置模块,可点击对应方框进入具体的配置界面 - 点击
I/O Configuration
界面,在顶部的MIO Voltage Standard
选项中,可以设置PS端口中不同Bank的电平标准;在Peripheral
选项中可以选择在PS端需要用到的外设接口,并在I/O选项中给定端口,并且设置电平水平,上拉下拉设置,接口速度等参数。需要注意,因为ZYNQ的PS端口中很多接口可以进行复用,所以在实际配置过程中,需要综合调整各接口的管脚分配,从而解除冲突 - 点击
Clock Configuration
界面,在Input Clocks
选项中,可以配置PS时钟输入的频率,允许的输入时钟频率范围为27-60MHz。在Output Clocks
选项中可以配置PS接口上各类接口的时钟配置。参数可根据电路原理图与接口配置要求进行调整 - 点击
DDR Configuration
界面,配置DDR的参数,设置DDR的类型,具体型号,总线宽度,以及ECC校验等参数 - 点击
PS-PL Configuration
界面,这个界面主要是进行 PS 与 PL 之间接口的配置,这些接口可以扩展 PL 端的 AXI 接口外设,从而使用各类AXI接口的IP核。在该界面中可以选择各个接口的使能,以及接口数据位宽的设定,具体设置参数参考要连接的IP设置 - 完成以上参数设置后,ZYNQ核的配置结束,点击
Run Block Automation
选项重新生成IP,vivado会自动完成各种端口导出的工作 - 在生成IP核后,点击连接PL端与PS端的时钟信号
- 点击
Sources - Design Sources
,右键点击Create HDL wapper
,将图形化IP核变成代码形式 - 接着再右键点击
Generate Output Products
,生成所需的各类文件 - 如果该程序涉及pl部分的编程,则继续点击
Generate Bitstream
,生成bit文件 - 最后点击菜单栏的
File -> Export -> Export Hardware...
完成ps端配置的导出,当需要同时使用ps和pl,则需要勾选Include bitstream
选项。需要注意,在19.2版本之前,导出的文件格式为.hdf
,而在19.2升级至vitis后,导出的文件格式变为.xsa
vitis工程的建立
- 点击
Tool -> Launch Vitis
,可以打开Vitis软件,选择工程想要放置的文件夹位置,点击Launch
- 启动Vitis主界面后,点击
Create Application Project
,创建工程 - 设置工程的名字,并且添加之前创建的
.xsa
文件 - CPU 默认选择,OS 选择 standalone,最下面的 Generate boot components选项,如果勾选上,软件会自动生成 fsbl 工程,我们一般选择默认勾选上,点击 Next
- 完成之后可以看到生成了两个工程,一个是硬件平台工程,即之前所说的 Platfrom工程,一个是 APP工程
- 在APP工程中编写代码,并进行编译,生成
.elf
文件,并使用JTAG进行下载 - 最后,按需生成boot.bin文件,进行固化即可
(此部分由于暂未涉及,仅做简单介绍,后续有空会进行完善)