c. 在指令标签中,选择For_loop并右击打开Directives Editor对话框。 I. 激活上部的Directives下拉菜单,并选择PIPELINE II. 保持间隔空白,让他默认为1
III. 选择enable loop rewinding(使能重复循环) IV. 点击OK
当设计顶层是循环,你可以用选择流水线重复,这个通知vivado HLS 在RTL实现中,这个循环连续运行(与功能和功能重新启动周期没有结束)。
在执行了上述步骤,指令标签如图86。检查保证所有的选择都正确的应用。如果没有,双击指令重新打开Directives Editor
6.综合设计
当报告在信息窗口中打开,确认d_i和d_o被8个独立的AXI4流接口实现
7.在设计中的性能部分,确认每个时钟周期对for循环的处理样本(间隔1)以3延迟,并且设计有比实验3解决方案2,3,或4使用的资源更小(图83)。
阵列接口和部分for循环展开的循环分区允许执行该C代码在硬件上实现八个单独的通道。 步骤3:实现AXI4-Lite接口
在这个练习中,您可以把块级I/O协议端口组成简单的AXI4 Lite接口,AXI4 Lite接口容许这些块级控制信号被控制,由CPU访问
1:从工具栏中选择New Solution或者从工程(project menu)菜单来创建新的解决方案 2:设置默认,点击Finish,包括从solution1种复制存在的指令
3:保证C源代码在信息窗口中可见
4:在指令选项卡中,选择顶层函数axi_interface并且右击打开Directives Editor对话框。 a. 在对话框上部激活Directives下来菜单,并选择INTERFACE
b. 激活mode下拉菜单,并选择s_axilite.这指定了与函数返回(块级I / O端口)被实现为一个AXI4Lite接口相关联的端口。由于默认模式为函数的返回是ap_hs,这里需要指定该I / O协议。 c. 点击OK
指令标签显示如图87
5:综合设计
当报告打开,只有RTL端口为AXI4 Slave Lite的接口出现在接口摘要
6:选择从工具栏导出RTL(Export RTL),或者解决方案(Solution)菜单来创建IP包 7:保持格式选择项为IP Catalog点击OK
您可以在solution2/impl文件夹中看见IP包如图88,因为你用vivado IP Catalog格式,这个包在ip文件夹中
Ip文件夹包括了drivers 子文件夹,如图88
当你在设计中添加了AXI4-Lite接口时,IP封装过程还创建软件驱动程序文件,使外部模块,通常一个CPU,以控制该块(启动,停止,设置端口值,检查中断状态)。
8:双击xaxi_interfaces_hw.h文件在信息窗口中打开
这显示了地址访问和控制的块级接口信号例如,设置控制寄存器从0到1,将使能ap_start端口,另外设定位7将使能自动重启动,使设计将在每个事务结束时自动重新启动。
其余C驱动程序文件是用来整合AXI4-Slave-Lite接口控制嵌入在CPU或微控制器上运行的代码,并包含在IP封装中。
结论在本教程中,您学习:
?有哪些块级I / O协议,以及如何控制它们。 ?如何指定和应用端口级的I / O协议。 ?如何指定阵列端口RAM和FIFO的接口。 ?如何划分的RAM和FIFO接口为子端口。
?如何使用两个I / O指令和优化指令来创建AXI4接口的优化设计