c++ - 如何将 Xilinx HLS 流的一部分传输到另一个函数?
问题描述
我有两个变量:
void func1(hls::stream<ap_axiu<8,1,1,1>> &a);
void func2(hls::stream<ap_uint<8>> &b);
其中ap_axiu
定义为:
template<int D,int U,int TI,int TD>
struct ap_axiu{
ap_uint<D> data;
ap_uint<(D+7)/8> keep;
ap_uint<(D+7)/8> strb;
ap_uint<U> user;
ap_uint<1> last;
ap_uint<TI> id;
ap_uint<TD> dest;
};
我想调用func2
inside func1
,使用参数 a 的数据func1
(见定义ap_axiu
)。所以func
看起来像这样:
void func1(hls::stream<ap_axiu<8,1,1,1>> &a) {
func2(???);
}
where???
应该是ap_uint<D> data
variable 的一部分hls::stream<ap_axiu<8,1,1,1>> a
,由 . 包围hls::stream< >
。
我怎样才能在 C++ 中做到这一点?我对模板没有太多经验,也无法在 Google 上找到它。
解决方案
尝试这个:
void func1(hls::stream<ap_axiu<8,1,1,1>> a)
{
ap_axiu<8,1,1,1> input = a.read();
hls::stream<ap_uint<8>> intermediate;
intermediate.write(input.data);
func2(intermediate);
}
这个想法是读取整个结构a
并将您关心的一个字段推入intermediate
,以便您可以调用func2
.
这假设您只想将单个元素从 传输func1
到func2
。一个流可能包含许多元素,在这种情况下,您可能需要添加一个循环来读取和写入多个值。
推荐阅读
- java - 运行 jar 时忽略 Class-Path
- java - 如何在 JavaFX 9+ 应用程序中设置全局 CSS?
- azure - 如何收到新的(独特的)错误警报
- networking - 获取静态公共 IP 或任何其他解决方法
- reactjs - 无法从 reactjs(打字稿)中的组件调用操作
- javascript - 如何在 Web 应用中实现实时预览功能?
- xamarin.forms - 用于自定义控件的 Xamarin.Forms CSS 选择器
- angular - Angular 的 Kendo Drawer 组件
- php - 在 PHP 中用多个数组形成最终数组
- php - Laravel,获取两个函数