简要设计流程
Vivado端创建工程 --> 设置PS配置,设计PL代码 --> 生成硬件信息 --> 打开SDK基于硬件信息创建工程 --> 下载程序
1.创建工程-Vivado端
虽然ZYNQ的ARM是硬核,但是也需要我们建立工程并添加IP模块,这里的工程建立参考《ALINX–PS开发手册》。
2.PS配置
2.1打开配置界面,绿色的模块都是可以配置的。
2.2 可以设置PS-PL的数据交互,通过AXI总线进行
2.3 通过这个界面选择需要的外设,这里的很多引脚都是复用的,注意引脚的复用关系
- MIO:多功能IO接口,属于Zynq的PS部分,在芯片外部有54个引脚。这些引脚可以用在GPIO、SPI、UART、TIMER、Ethernet、USB等功能上,每个引脚都同时具有多种功能,故叫多功能。虽然可以复用但是连接的IO也是确定的,不能随意指定。
- EMIO:扩展MIO,依然属于Zynq的PS部分,只是连接到了PL上,再从PL的引脚连到芯片外面实现数据输入输出。
如果想了解引脚为什么这么连,为什么选择某几个引脚就能连接某个外设,请找PS部分的原理图PCB看一下,电路连接已经确定好了。
例如:UART1这下面有很多种IO的选择,但是具体选择哪一组IO是设根据ZYNQ的PS硬件连接进行选择的。
2.4 如需要添加PL部分
在block design 中通过连线的方式进行设计(如下图所示)
在生成HDL顶层文件后可以在其中例化需要的PL设计(这种方法也是PL程序固化所需要的)
红色位置进行代码添加,这个部分会在之后的仅PL程序固化的文章中进行介绍
3.配置文件生成
- Vivado将ARM当作了一个普通IP核来使用,将IP核生成对应整个工程的HDL文件
- 右键“Generate Output Products”,此步骤会生成 block 的输出文件,包括IP,例化模板,RTL 源文件,XDC 约束,第三方综合源文件等等。供后续操作使用。生成文件后,可以看到在IP Sources中的xdc硬件约束文件中已经将PS的引脚设置好了,所以我们不用像设计PL一样自己定义xdc文件去配置引脚。
- Vivado输出硬件信息给软件工具
如果没有PL的部分可以直接导出硬件信息即可,如果含义PL部分需要先生成比特流然后导出信息选择包含比特流
第一种: 生成软件工具可以使用的硬件配置信息。
第二种: 生成软件工具可以使用的包括PS的硬件信息和PL生成的比特流的硬件配置文件。
4.SDK
4.1 创建工程
没有创建PS的工程时打开只有红框标注的文件
选择File --> New --> Application Proiect 创建新工程
1 输入工程名称
2 选择操作系统:无操作系统、RTOS、Linux 硬件信息即Vivado生成的文件
3 选择板级支持包:生成新的或者选择已有的BSP
- 设置好后点击Finish则直接生成工程,代码包含Hello World模板)
- 点击Next可以选择生成代码的模板(可以先选一个空或者Hello World模板)
4.2 工程设置
工程生成后便会新增bsp和代码文件,进行编程设计保存即可进行程序下载了。
如果需要一些IP核的示例代码可以选择bsp中的mss文件则会出现右边红框的界面,点击需要的代码Import Examples即可,例如图中的polling_example即我导入的一个示例代码
4.2 程序下载
左边为debug右边为正常下载
右键想要下载的程序,选择Launch on Hardware即可直接下载程序,如需设置下载流程则选择最下方面的Run Configurations
在该界面下可以选择下载的方式等等,点击Run即可下载程序
参考资料
ZYNQ PS-PL ILA联调注意事项
course_s2_ZYNQ那些事儿-SDK实验篇V3.08 -->《ALINX–PS开发手册》