set_directive_interface说明-vivado hls第六十八章
7.rtl端口类型:ap_none|ap_stable|ap_vld|ap_ack|ap_hs|ap_ovld|ap_fifo| ap_bus|ap_memory|bram|axis|s_axilite|m_axi|ap_ctrl_none|ap_ctrl_hs |ap_ctrl_chain。4.函数级协议的实现:ap_ctrl_none,ap_ctrl_hs,ap_ctrl_chain模式来控制
一、指令作用
1.上述指令用于在接口综合期间如何依据函数来描述和创建RTL端口
2.rtl实现端口来自任意函数级协议,函数实参,全局变量
3.函数级握手:函数级握手是用于控制函数什么时候开始执行运算,函数什么时候是空闲的,函数什么时候终止运行,函数
什么时候准备好处理新的数据输入
4.函数级协议的实现:ap_ctrl_none,ap_ctrl_hs,ap_ctrl_chain模式来控制
5.每个函数实参均可指定为包含其自己的 I/O 协议(例如,有效握手或确认握手)
6.有效握手就是只有ap_vld;确认握手是有ap_vld和ap_ack
7.rtl端口类型:ap_none|ap_stable|ap_vld|ap_ack|ap_hs|ap_ovld|ap_fifo| ap_bus|ap_memory|bram|axis|s_axilite|m_axi|ap_ctrl_none|ap_ctrl_hs |ap_ctrl_chain
二、rtl端口说明
1.ap_none无协议,此接口为数据端口
2.ap_stable无协议,数据只在复位阶段改变,复位后的数据一直持续稳定的
3.ap_vld,用于实现关联valid端口的数据端口,提示数据何时有效,可供读取和写入
4.ap_ack,用于实现包含关联acknowledge端口的数据端口,确认数据已读取或者写入
5.ap_hs,用于实现包含valid端口和acknowledge端口的数据端口,提供两路握手
6.ap_ovld:用于实现含关联 valid 端口的输出数据端口,以指示何时数据有效且可供读取或写入。
7. ap_fifo:使用含关联低电平有效 FIFO empty 端口和 full 端口的数据输入和输出端口来实现含标准 FIFO 接口
的端口
8.ap_bus:用于实现指针和按引用传递端口(作为总线接口)。
9.ap_memory:用于实现数组实参(作为标准 RAM 接口)。如果在 Vivado IP integrator 中使用 RTL 设计,内存接
口会显示为离散端口
10. bram:用于实现数组实参(作为标准 RAM 接口)。如果在 Vivado IP integrator 中使用 RTL 设计,内存接口会显
示为单端口
11.axis:用于实现所有端口(作为 AXI4-Stream 接口)。
12.s_axilite:用于实现所有端口(作为 AXI4-Lite 接口)。Vivado HLS 会在“导出 RTL”流程期间生成一组关联
的 C 驱动文件。
13. m_axi:用于实现所有端口(作为 AXI4 接口)。您可使用 config_interface 命令来指定 32 位(默认)地址
端口或 64 位地址端口,并控制任何地址偏移。
三、循环
1.完美的循环嵌套
仅限最内层循环才包含循环主体内容;
在循环语句之间不指定任何逻辑;--这句话的意思就是内层循环和外层循环之间是没有逻辑代码的,两层循环之间没有循环主体内容
所有循环边界均为常量
2.半完美的循环嵌套
仅限最内层循环才包含循环主体内容;
在循环语句之间不指定任何逻辑;--这句话的意思就是内层循环和外层循环之间是没有逻辑代码的,两层循环之间没有循环主体内容
最外层的循环边界可采用变量
3.不完美的循环嵌套
当内层循环具有变量边界或者循环主体未完全包含在内层循环内时,请尝试重构代码或者将循环主体中的循环展开
以创建完美循环嵌套。
所有评论(0)