问题标签 [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.
vivado-hls - Vivado HLS 综合错误
我目前正在尝试在 Vivado HLS 上做一些项目。但是,在合成过程中出现如标题所示的错误。但是,会出现此错误:
错误:** 二进制表达式的无效操作数('double' 和 'datau32' (aka 'ap_axiu<32, 2, 5, 6>')) imgOut= (0.2126*Imgin[coord] + 0.7152*Imgin[coord+1 ] + 0.0722*Imgin[坐标+2])
这是我的 HLS 代码:
vivado - 通过以太网从 PL(fpga) 到 PC 的数据传输
我使用 Zedboard 和 vivado v2017.3。我在 zynq 的 PL 部分有一个自定义 IP,它生成 32 位值并将它们存储在其中一个寄存器中,比如 slv_reg0(地址:0x43c00000)。在 PS 部分,我阅读了这个寄存器,我可以在 gtkterm(简单的一个)中打印它。我现在想通过以太网将这些值传输到 PC。关于如何执行此操作的任何建议?
谢谢,优婆沙那。
c++ - 为什么即使只是 RGB 到灰度转换 (Vivado HLS),延迟也会太高?
我正在使用 Vivado HLS 2015.4 上的图像。
我得到了大约 311774 个时钟周期的非常高的延迟。即使程序只需要两个输入图像并将其从 RGB 转换为灰色。总延迟为 311774,因为我得到所有三个 77-78k 延迟Axi2Mat
,RGB2GRAY
并且Mat2AXI
.
有什么方法可以减少它,以便我可以通过管道将它的最终延迟设置为 78k 左右?
我附上我的代码和综合报告:
fpga - 指导 Vivado HLS 指令编辑器利用自定义 IP 实现各种功能
Vivado HLS 的指令编辑器为“资源”指令提供了不同的选项。是否可以指示 HLS 使用我自定义设计的 IP 进行某些操作?例如:为了实现乘法器,HLS 提供了基于 DSP 的乘法器。但是我可以指示 HLS 在综合操作期间使用我自己定制设计的乘法器 IP 来实现乘法器吗?
我认为 Vivado HLS 还支持不使用 DSP 模块的乘法器实现。但我正在寻找使用我自己的自定义乘法器 IP。
c++ - 具有 hls::stream 类型成员的 Vivado HLS 类& 导致错误:“Constant '' has an unsyntheizable type ...”
我正在尝试查看是否可以在具有 hls::stream<> 引用成员的 vivado_hls 中实例化一个类,以便我可以直接读/写流,而不必将流作为参数传递到调用链中。
注意:这是在 vivado_hls 2018.2 中,这个项目的顶级模块是“ModuleX”考虑下面的简化场景:
使用这种方法,我收到以下错误:ERROR: [SYNCHK 200-11] ClassWithStreamRefs.cpp:18: Constant 'x.s2.V.V' has an unsynthesizable type 'i32P*' (possible cause(s): pointer to pointer or global pointer).
我知道在幕后,编译器可能将引用存储为指向流的指针,但这应该是这种情况下工具的一个错误,因为我认为它是阻塞的,我视为有效的 HLS。
希望有另一种方法来实现我正在寻找的东西(引用,而不是值存储在类中)。
我尝试过的其他有效方法如下。但是,这是非常不可取的,因为该方法增加了 2 个时钟周期的延迟(入口和出口各 1 个 - 没有充分的理由)。
这是一个示例 tcl 脚本(虽然它基本上只是由 vivado_hls 自动生成的)
vivado-hls - Vivado HLS RTL/协同仿真失败
我在 Vivado HLS 中遇到问题我正在开发一个输入是 AXI-Stream 而输出也是 AXI-Stream 的 ipcore。在C Syntheseis 中没有问题,在C Simulation 中也运行良好。但是 RTL/Cosimulation 失败了。
我的顶级功能是这样的:
这是我尝试运行 RTL/Cosimulation 时的控制台消息:
vivado-hls - 如何使用 xf:Mat 进行逐像素计算?
我正在尝试将我的 opencv 代码迁移到 Xilinx xfopencv。我想对两个输入图像进行像素除法。c(x,y)=a(x,y)/b(x,y)
如何使用 xfOpenCv 获取 c ???在OpenCv中,我可以直接做a/b,但是xfOpenCv没有pixel-wize除法功能。我试图自己定义一个除法函数。
但我得到了错误: '[]' could not be resolved 那么如何使用 xf:Mat 进行逐像素计算?你能举个例子吗?
fpga - 为什么 Axi lite 总线占用两个 BRAM_18K?
下面是我的简单代码:
综合后资源利用率如下图,
合成结果:
从这个图中,我惊讶地发现使用了两个 BRAM_18K 块。这是正常的吗?为什么Axi lite总线可以占用两个BRAM_18K?
我检查了生成的verilog代码,仍然找不到原因。生成的verilog代码放在 https://drive.google.com/file/d/1iP6JQGbv6pShGuCF62G21isRHkjJhn3I/view?usp=sharing
谢谢。
c++ - 如何刷新 hls::Mat?
我需要将两个图像(hls::Mat)的上半部分堆叠在一起。我最终遇到了以下错误。
警告:hls::stream 'hls::stream.8' 包含剩余数据,这可能会导致 RTL 模拟挂起。
如果我冲洗剩下的
我收到以下错误
警告:在空时读取 Hls::stream 'hls::stream.7',这可能会导致 RTL 模拟挂起。
我想知道冲洗剩菜的最佳方法是什么?
opencl - 如何在 OpenCL 中使用 __local 变量?
我正在尝试在 OpenCL 中实现卷积算法(使用 Vivado HLS)。我正在尝试在执行工作组之前将部分图像加载到本地内存中(例如,如果工作组为 128*128,卷积滤波器为 5*5,我将加载 132*132 像素)。如何编写内核以使本地内存仅在工作组启动时加载一次?
伪代码: