在Vivado HLS中的Test Bench的.cpp文件如何将hls::stream<double> data_out 进行读取并输出
时间: 2024-03-28 16:42:17 浏览: 120
您可以使用以下代码将 HLS 流 data_out 读取并输出到终端上:
```
#include <iostream>
#include <fstream>
#include "header_file_containing_function_prototype.h"
using namespace std;
int main() {
hls::stream<double> data_out;
double read_data;
// Call your function here
function_name(data_out);
// Read data from the stream and output to console
while (!data_out.empty()) {
data_out.read(read_data);
cout << "Data: " << read_data << endl;
}
return 0;
}
```
在此代码中,您可以将 `header_file_containing_function_prototype.h` 替换为包含 HLS 函数原型的头文件,并将 `function_name` 替换为您要测试的函数的名称。请注意,您必须首先调用 HLS 函数,然后才能读取数据流。
相关问题
在Vivado HLS中的Test Bench的.cpp文件如何输出hls::stream<double> data_out数据流
在Vivado HLS中,可以通过在Test Bench的.cpp文件中使用C++标准库中的ofstream类来输出hls::stream<double>数据流。具体步骤如下:
1. 在Test Bench的.cpp文件中包含<fstream>头文件和<ap_axi_sdata.h>头文件:
```c++
#include <fstream>
#include <ap_axi_sdata.h>
```
2. 定义ofstream对象和hls::stream<double>对象:
```c++
ofstream output_file;
hls::stream<ap_axiu<32, 2, 5, 6> > data_in;
```
其中,ap_axiu是Vivado HLS中的数据类型,用于表示带有AXI Stream接口的数据流。
3. 打开输出文件:
```c++
output_file.open("data_out.txt");
```
4. 从hls::stream<double>对象中读取数据,并将数据输出到文件中:
```c++
ap_axiu<32, 2, 5, 6> tmp;
while(data_out.read_nb(tmp)) {
output_file << tmp.data.to_double() << endl;
}
```
其中,to_double()是ap_fixed类型的成员函数,用于将ap_fixed类型数据转换为double类型数据。
5. 关闭输出文件:
```c++
output_file.close();
```
通过以上步骤,就可以在Vivado HLS中的Test Bench的.cpp文件中输出hls::stream<double>数据流了。
在Vivado HLS中的Test Bench的.cpp文件如何用printf输出hls::stream<double> data_out数据流
在Vivado HLS中的Test Bench的.cpp文件中,可以通过以下方式使用printf输出hls::stream<double> data_out数据流:
1. 首先需要包含stdio.h和hls_stream.h头文件,如下所示:
```
#include<stdio.h>
#include "hls_stream.h"
```
2. 然后,在主函数中定义一个hls::stream<double>类型的变量,用于接收模块输出的数据流,如下所示:
```
int main()
{
hls::stream<double> data_out;
//...
}
```
3. 在模块调用结束后,使用while循环读取数据流中的数据并使用printf输出,如下所示:
```
while (!data_out.empty())
{
double data = data_out.read();
printf("data_out = %f\n", data);
}
```
这样就可以将hls::stream<double>数据流中的数据输出到控制台上了。
阅读全文