HLS常用语法-AXI4

本文介绍了AXI4接口的使用策略,包括避免使用AXI4-Stream以节省寄存器空间,以及如何利用pragmaHLS指令进行AXI4-Lite接口的配置。文中详细讲解了m_axi接口的depth和offset设置,以及slave选项的使用规则。此外,还讨论了如何通过设置latency、max_read_burst_length等参数优化AXI4接口性能,以提高设计效率和资源利用率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
指令以及描述
语法常用格式如下:

#pragma HLS directive_name [directive_options]

其中,directive_name是具体的指令名称,directive_options是指令的参数。

AXI4

在这里插入图片描述
一般不选择AXI4-Stream,以免空间不够
register 表示输入需要寄存,将信号绑在CTRL_BUS上

#pragma HLS INTERFACE s_axilite register port=Padding bundle=CTRL_BUS

m_axi用来控制数组和指针,depth表示深度,offset可以选择如下:

#pragma HLS INTERFACE m_axi depth=512 port=Input    offset=slave

在这里插入图片描述

slave表示偏移,也可以不加
如果在 AXI 接口中使用 slave 选项,则必须在设计接口上使用 AXI4-Lite 端口。赛灵思建议使用以下编译指示来实现AXI4-Lite 接口:

#pragma HLS INTERFACE s_axilite port=return

此外,如果使用 slave 选项并使用多个 AXI4-Lite 接口,则必须确保 AXI 主端口偏移寄存器已与正确的 AXI4-Lite 接
口绑定。在以下示例中,端口 a 作为含偏移和 AXI4-Lite 接口(名为 AXI_Lite_1 和 AXI_Lite_2)的 AXI 主接口来
实现:

#pragma HLS INTERFACE m_axi port=a depth=50 offset=slave 
#pragma HLS INTERFACE s_axilite port=return bundle=AXI_Lite_1
#pragma HLS INTERFACE s_axilite port=b bundle=AXI_Lite_2

以下 INTERFACE 指令是确保端口 a 的偏移寄存器与名为 AXI_Lite_1 的 AXI4-Lite 接口绑定所必需的。

#pragma HLS INTERFACE s_axilite port=a bundle=AXI_Lite_1

当设计在等待访问总线时,从不会在最优化 AXI4 接口上停滞,授予总线访问后,总线等待设计执行读写时从不停滞。
为创建最优化 AXI4 接口,在 INTERFACE 指令中提供了以下选项以指定突发的行为并最优化 AXI4 接口的效率。
其中部分选项使用内部存储空间来缓存数据,并且可能影响面积和资源。
• latency:指定期望的 AXI4 接口时延,允许设计发起总线请求的时间比执行期望的读取或写入操作早数个周期
(时延)。如果该值太低,设计将过早达成就绪状态,可能停滞并等待总线;如果该值太高,则可能授予总线访问
权时,总线仍处于停滞状态并等待设计发起访问。
• max_read_burst_length:指定突发传输期间读取的数据值的最大数量。
• num_read_outstanding:指定在设计停滞前可对 AXI4 总线发出的读取请求的数量(无响应)。此操作暗示设
计中的内部存储空间,即 FIFO 大小为:num_read_outstandingmax_read_burst_lengthword_size。
• max_write_burst_length:指定突发传输期间写入的数据值的最大数量。
• num_write_outstanding:指定在设计停滞前可对 AXI4 总线发出的写入请求的数量(无响应)。此操作暗示设

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值