问题标签 [vivado-hls]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2791 浏览

c - 我可以使用 gcc 编译器编译我在 Vivado HLS 中编写的 C 代码吗?

我正在为使用 Vivado HLS 2015.1 的人开发基于 C 的设计。
此设计使用“ap_cint.h”中包含的任意精度数据类型。

我想知道是否可以通过包含相关头文件在标准 gcc 编译器中编译此代码?
也有人可以向我指出相关文档的方向吗?任何帮助或建议将不胜感激。

0 投票
2 回答
2423 浏览

fpga - 如何将 HLS 任意精度类型转换为复合类型

我正在编写一个带有 AXI4 流输入的 HLS 单元。流中的几个单词组成了一个我想访问的结构。例如:

我可以轻松地缓冲流的单词并将它们连接到一个大的ap_uint<112>. 但是,我非常想将它转换ap_uint<112>成一个很好的结构,就像eth_header上面我可以使用字段语法访问的那样。我找不到这样做的好方法。我不能强制转换或使用联合,因为ap_uint该类不是 POD。

是否可以以某种方式转换类型(无需为每个字段编写显式代码)?

编辑:不清楚是否需要从流中的几个单词转换结构。

0 投票
1 回答
3420 浏览

c++ - AXI4 流接口:如何在 HLS 中管理浮点数组以生成硬件加速器并在 RTL 项目中安全地连接它们?

最后我想做的是在 Vivado Design Suite 中使用带有单精度浮点数组的流接口来构建硬件加速器。HLS 用户指南UG902显示可以使用不同的接口创建硬件加速器(从 C、C++、SystemC、OpenCL 代码开始)。

如果您想使用 AXI4 流接口,HLS 会合成 TREADY 和 TVALID 信号,但不会合成将生成的 RTL 接口连接到 Zynq 处理系统(在我的例子中为 ARM9 内核)所需的信号 TLAST。为了解决这个问题,Xilinx 为您提供了使用这个库的可能性

里面有结构 - 模板:

我有两个问题:

  • 如果我只想使用 TLAST 而不是其他的,我尝试将 U、TI 和 TD 设置为零,但出现错误。
  • 如果我想使用 'float' 而不是 'ap_int' 并且我尝试在模板中更改它,我会收到另一个错误。

如何在不遇到这两个问题的情况下处理和管理带有浮点数据的 HLS 中的流接口?

0 投票
1 回答
5375 浏览

c++ - Vivado SDK 无法识别 #include "math.h" 中的函数

我在 Vivado SDK 中编写了一个简单的项目,以测试我在 Vivado 中开发的硬件平台。我的问题是SDK 无法识别 sin() 函数。我已经包含“math.h”库而没有任何错误,程序识别包含 sin() 函数的库(我自己检查了它)。

我收到此错误:

我在这里阅读了答案,它太笼统了,所以解决我的问题没有用。很明显存在库问题,但不清楚如何在 Vivado SDK 中专门解决它。

我正在使用:操作系统:Windows 7

维瓦多:2016.1

Vivado SDK:2016.1

有什么解决办法???

0 投票
1 回答
2091 浏览

c - 在 Vivado HLS 中函数是否可以返回数组?

一个这样的函数:</p>

这个可以在 Vivado HLS 中使用吗?如果可能,我该如何初始化一个未知大小的数组,因为我不能再使用staticmalloc

0 投票
1 回答
734 浏览

vivado - Vivado_HLS 中的大尺寸数组?

是否可以在 Vivado_HLS 的顶级函数中输出像 arr[200000] 这样的大尺寸数组。

0 投票
1 回答
580 浏览

c++ - 错误:表达式不可分配 C++ 结构

我正在用 C++ 为 FPGA 编写一个普通带宽内核,它正在从主机内存中读取一些内容并将其写回主机中的不同位置。我正在使用结构,其中一个元素是输入和输出缓冲区的地址。高级综合工具在以下代码的最后一行给出错误。

0 投票
1 回答
617 浏览

gpio - Zybo 板的 Vivado HLS GPIO 开关数据

我正在 Vivado HLS 中构建一个自定义 IP 内核,以运行在 Zybo 板上的嵌入式 linux 中运行的图像/视频处理系统。内核在 via 和 AXI 流中获取图像/视频数据,执行处理任务(例如 Sobel),然后将其输出到另一个 AXI 流。这可行,但是,我希望使用 Zybo 的板载开关来确定应该运行哪个处理任务(默认是直通)。

我找不到显示(在 HLS.. 不是 IP Integrator 或 Vivado SDK 中)如何创建 HLS 资源/接口以从 GPIO 开关读取数据的资源或简单示例。我拥有的是我的顶级模块中的以下代码:

以上工作并为“C Simulation”和“C Synthesis”提供了正确的输出。它在“RTL/C Cosimulation”中出错:“OpenCV 错误:输入参数的大小不匹配。” 这对我来说毫无意义,因为所有 RGB_IMAGES 最初都是使用相同的行/列设置的。

0 投票
2 回答
1370 浏览

c++ - C++ HLS 综合警告

当我尝试使用 Vivado HLS 进行 sythnise 时,同一行出现以下错误:

严重警告:[SYNCHK 200-43 ] pcd_triangulation/pcd_triangulation.cpp:156:使用或分配非静态指针“current.0.i.reg2mem”(此指针可能引用不同的内存位置)。

严重警告:[SYNCHK 200-11] pcd_triangulation/pcd_triangulation.cpp:156:常量“开始”具有不可综合的类型“lass.triangle.2.28.31 = type { [3 x �lass.triangle.2.28.3 ... '(可能的原因:指向指针或全局指针的指针)。

严重警告:[SYNCHK 200-11] pcd_triangulation/pcd_triangulation.cpp:156:常量“开始”具有不可合成的类型“^lass.triangle.2.28.31 = type { [3 x �lass.triangle.2.28.3.. .' (可能的原因:结构变量无法分解,因为(1)不支持的类型转换;(2)内存复制操作;(3)结构中使用的函数指针;(4)不支持的指针比较)。

严重警告:[SYNCHK 200-42] pcd_triangulation/pcd_triangulation.cpp:156:不支持指针比较。

代码是 C++。所以这是给出上述警告的代码:

start是指向类 ( ) 的全局指针,triangle *start并且child[i]是指向类 (member)( ) 中的同一类的数组triangle *child[3]

谁能帮我解决这些问题?

0 投票
1 回答
193 浏览

c - Vivado HLS {指针数组} 中的 mex.h 标头错误

这是我的 mex 功能。由于开放数组 [],在 mxArray 中发现了错误。有没有办法解决这个问题?

我只附上了代码,但经常出现的问题是 mxArray 和 extern bool。

代码: