内核转换示例如下:
示例 1
基于窗口的函数原型:
void k1(input_window_cint16 * __restrict inputw_l, input_window_cint16 * __restrict inputw_r, output_window_cint16 * __restrict output);
一维循环缓冲器端口函数原型:
void k1_buffer_port(input_circular_buffer <cint16, adf::extents<adf::inherited_extent>, adf::margin<MARGIN_SIZE> > & __restrict inputw_l, input_circular_buffer <cint16, adf::extents<adf::inherited_extent>, adf::margin<MARGIN_SIZE> > & __restrict inputw_r, output_circular_buffer <cint16, adf::extents<adf::inherited_extent>> & __restrict output);
示例 2
基于窗口的函数原型:
void k2(input_window_cint16 * __restrict input_cb0, input_window_cint16 * __restrict input_cb1, input_window_cint16 * __restrict input_cb2, input_window_cint16 * __restrict input_cb3, input_window_cint16 * __restrict input_cb4, output_window_cint16 * __restrict output_cb);
一维缓冲器端口函数原型:
void k2_buffer_port(input_buffer<cint16> & __restrict input_cb0, input_buffer<cint16> & __restrict input_cb1, input_buffer<cint16> & __restrict input_cb2, input_buffer<cint16> & __restrict input_cb3, input_buffer<cint16> & __restrict input_cb4, output_buffer<cint16> & __restrict output_cb);
注释: 在函数原型中继承的大小指定为缓冲器端口大小时,使用计算图中的
dimensions()
API 来指定实际的缓冲器端口大小。