paradoxfx

【原创】如何把Vivado HLS生成的IP用作PS的外设并验证

0
阅读(9518)

前面的博文(请参考http://blog.chinaaet.com/detail/37142)里,我们已经学习了如何把Vivado HLS生成的IP用于Vivado IPI集成开发流程里。作为面向IP的设计流程的一部分,我们生成的IP自然也可以作为ZYNQ SOCPS的一个外设进行使用,这里我们就来看一下是如何使用的。

首先,按照前面博文的流程,用Vivado HLS新建一个IP工程(主要用途是从PLPS发送中断请求),并导出为IP Catalog类型的IP,然后新建VivadoRTL工程,把刚刚生成的IP导出到Vivado IPI中,然后新建模块设计,把刚刚导入的IP以及一个PSIP拖入模块设计文件中,其中PS部分的配置如图1所示。

1 PS部分的中断配置

在模块设计文件中有PS相关的IP出现时,IPI会出现自动连接的提示,如图2所示。

2自动连接的提示

点击图2中的Run Connection AutomationVivado IPI便可帮助我们智能地完成连续工作,点击Run Block Automation,则会把相关的外设端口进行连接,连续配置的结果如图3所示。

3自动连线的配置结果

然后确认我们在HLS生成并导入IPIIP作为PS的外设,已经分配了相应的内存空间,如图4所示。

4 PS的外设分配的地址

然后按照上一博文里同样的方法,依次完成验证设计、生成输出文件、产生HDL打包文件的步骤,全部完成之后点击Vivado设计流程管理中Program and Debug下面的Generate Bitstream,把Vivado工程编译为比特流文件。

接下来就可以把PL中实现的IP导入SDK中,作为PS的一个外设进行开发配置了。点击Vivado菜单栏上的File---Export---Export Hardware for SDK,选择导出包含比特流文件的IPSDK中,如图5所示。

5导出硬件配置到SDK

接下来还要做的一个步骤是把Vivado HLS中生成的IP信息也加入到SDK“IP仓库中,点击SDK工具栏Xilinx Tools下面的Reference,切换到Repositories进行配置,如图6所示。

6配置SDK中的IP路径

然后点击SDK工具栏的File---New---Application Project,新建一个SDK测试工程,如图7所示,工程的模版则可以使用“hello world”之类的,方便我们进行快速的测试。

7新建SDK测试工程

点击SDK菜单栏Xilinx Tools下面的Program FPGA,把基于“hello world”模版创建的简单工程先烧写到FPGA中,然后点击SDK窗口中Terminal下面的connection,配置一个串口连接,如图8所示。

8配置SDK中终端的连接

然后还需要配置串口的调试功能,才能把在调试功能中使用窗口,配置方法为在图7中新建的工程上点击右键,选择其属性,如图9所示。

9配置串口的调试

然后在图9中所示test工程上点击右键,选择在硬件上运行程序,如图10所示。

10运行程序

此时在SDK中的控制台里,程序的运行结果便通过串口发生上来了,如图11所示。

11运行结果

“hello world”模版上创建的工程已经能够正确运行了,说明我们的硬件配置等都是正确的。接下来便是在SDK中进行和我们的外设有关的编程,对其进行控制了。因为这里用的IP生成的外设实际是在Vivado HLS中的C代码生成的,所以这里的测试思路是把同样的C代码也放入SDK的这个工程里,然后把外设的运算结果和C代码直接运行的结果进行对比。用图10同样的方法运行代码,运行结果如图12所示。

12运行结果

Baidu
map