ug871-vivado-high-level-synthesis-tutorial第4章lab2中文

接口综合lab2:接口I/O协议

概述

这个实验解释了怎么指定具体的端口I/O协议。

1.lab1中用Vivado HLS命令提示符,更改为lab2目录,如图64

2.键入vivado_hls-f run_hls.tcl 来创建新的VivadoHLS工程

Figure 64: Setup for Interface SynthesisLab 2

3. 键入vivado_hls -padders_io_prj 来打开vivado HLS 用户界面工程

4. 打开源代码如图65

Figure 65: C Code for Interface Synthesis Lab 2

本练习的源代码是与lab1类似。出于同样的原因使用简单的代码,它有助于聚焦在接口的行为,而不是核心逻辑。

这一次,代码没有一个函数的返回,取代函数输出的是通过指针参数* in_out1输出。这也提供了机会,探索双向(输入输出)端口的接口选项。

I/ O协议的类型,你可以通过接口综合添加到C函数的参数取决于参数类型。这些选项在Vivado高层次综合用户指南(UG902)有完整描述。

在本实施例中的指针参数既是输入和输出的功能。在RTL设计中,该参数被实现为单独的输入和输出端口。

对于图65所示的代码,每个函数参数可能的选项在下表中被描述

 

 

 

 

函数参数

I/O协议选择

In1  和 In2

按值传递的参数都可以用下面的I / O协议来实现

• Ap_none:没有I/O协议,这个是默认的输入

• Ap_stable:无I/O协议

• Ap_ack:实现与相关的输出端口确认

• Ap_val:实现与相关的输入有效端口

• Ap_hs:实现了两个输入有效和输出端口确认。

In_out1

按引用传递的输出可以用下面的I/O协议实现

•Ap_none:没有I/O协议,这个是默认的输入

•Ap_stable:无I/O协议

•Ap_ack:实现与相关的输出端口确认

•Ap_val:实现与相关输出的有效端口,这个是默认的输出

•ap_ovld:实现与相关输出有效端口,(任何INOUT端口的输入部分没有有效的端口)

•ap_hs:实现所有输入有效端口和输出响应端口

•ap_fifo:FIFO接口与相关输出写入,输入FIFO满端口

•ap_bus:Vivado HLS总线接口协议

 

 

在实验1中应用的端口指令实际上不是必需的,因为AP_NONE是使用这些C参数的默认I/ O协议。在这个练习中给出了指令,以避免处理任何默认或不是默认的I / O端口协议的行为。

在本练习中,您将实现一系列的I / O协议。

步骤2:端口具体的I/O协议

1. 保证能在信息窗口中看见C源代码

2. 激活指令选项卡(Directives tab)并选择输入参数in1(input argument in1),如图66

Figure 66: AddingPort I/O Protocols

3. 右击并选择插入指令(Insert Directives

4. 当指令编辑窗口打开,使指令下来框为INTERFACE

a. 保持目标是默认值,这次,指令被存储在directives.tcl文件中。

b. 从模式下来菜单选择ap_val

c. 点击OK

5. 选择参数 in2 ,添加一个接口指令指定I/O协议为ap_ack

6. 选择参数in_out1并添加一个接口指令I/0协议为ap_hs

7. 在资源管理器窗口中,扩展约束文件夹,并双击打开directives.tcl文件,如图67

Figure 67: Directives for Lab 2

 

8. 综合设计

9. 当文件打开时,查看接口概述,如图68

Figure 68: Interface summary for Lab 2

•设计有时钟和复位

•默认块级I/O协议信号是存在的

•端口in1被以数据端口而实现,并伴随输入有效信号

•数据在in1端口上,仅读。当端口in1_ap_vld为有效高。

•端口in2被综合为数据端口,并与输出响应信号相关联。

•当端口in2被读时,端口in2_ap_ack将被置高

•inout_i定义为inout1参数的输入部分,与输入有效端口inout1_i_ap_val相关联,并且输出响应端口inout1_i_ap_ack

•inout1参数输出部分定义为inout_o,与输出有效端口inout1_o_ap_val相关联,并输入响应端口inout1_o_ap_ack.

10. 退出vivado HLS GUI 并且返回命令提示口

你可能感兴趣的:(ug871-vivado-high-level-synthesis-tutorial第4章lab2中文)