- 在使用Xilinx的Vitis HLS(High-Level Synthesis)工具综合C语言代码时,出现错误
ERROR: [HLS 214-196] ERROR: XFORM, Cannot specify interface mode: '"fpga.address.interface"="ap_fifo"' on a non-pointer argument.,错误代码如下:
void test_ap_fifo(ap_uint<1> led) {
#pragma HLS INTERFACE ap_fifo port=led
#pragma HLS INTERFACE ap_ctrl_none port=return
// 相关处理逻辑……
}
-
错误原因:不能将流接口(
ap_fifo)应用于普通的非指针类型数据。 -
解决办法:将参数设置为指针类型
void test_ap_fifo(ap_uint<1> *led) {
#pragma HLS INTERFACE ap_fifo port=led
#pragma HLS INTERFACE ap_ctrl_none port=return
}
- 综合后的结果:
module test_ap_fifo(
ap_clk,
ap_rst,
led_dout,
led_empty_n,
led_read
);
parameter ap_ST_fsm_state1 = 1'd1;
input ap_clk;
input ap_rst;
input [511:0] led_dout;
input led_empty_n;
output led_read;
CG
HLS中接口协议与指针/非指针类型的关系
ap_fifo:需要指针类型的参数来进行流数据传输。ap_memory:适用于内存接口,通常用于通过内存映射来访问数据。指针和非指针类型都可以使用这个接口。AXI4-Stream:流式接口,指针类型。AXI4-Lite和ap_hs:接口通常适用于控制信号或非流数据的传输。可以非指针类型的参数。

被折叠的 条评论
为什么被折叠?



