语法常用格式如下:
#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 总线发出的写入请求的数量(无响应)。此操作暗示设