问题标签 [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 投票
1 回答
498 浏览

verilog - .vcd 和 .saif 文件

我正在使用 vivado 2017.1,我的目的是计算 FIR 滤波器的功耗。我在 xilinx ISE 中使用 verilog 进行编码,并在 vivado 中导入这些文件。我在测试台中使用这些命令生成了 .vcd 和 .saif 文件。

我的问题是,如何为此目的同时使用 .vcd 和 .saif 文件。我知道这两者之间的区别。我可以在电源报告的“切换”选项卡中上传 .saif 文件,但我找不到可以上传 .vcd 文件的任何其他地方。我看过很多教程,也阅读了 vivado 套装指南。难道我做错了什么?功率报告是否只需要 .saif 文件?一份文件说他们的 FIR 滤波器的动态功率为 0.727W,但对于相同的代码和相同的滤波器设计,我的动态功耗为 25.09W。请帮忙。

0 投票
1 回答
142 浏览

vhdl - 使用 AXI4 从设备进行 R&W

我是 VHDL 和 Vivado 的初学者,我需要在从机和主机之间建立通信;正是我需要阅读和写作。我的意思是,我的奴隶是一个内存,我的主人是一个 DDR 控制器。我使用向导创建了一个 IP,但我很迷茫......这是向导返回的内容:

我认为,最终我必须在这里输入与通信相关的代码。

0 投票
2 回答
239 浏览

c++ - C++ 模板中的自定义函数

如果我使用带有 int 模板参数的 C++ 类,例如:

然后我知道我可以从这种类型的某些宽度创建特定定义,例如:

但是,如果我想说定义一个常量并将其传入,我的选择是什么(除了定义)?说这样的话:

此外,是否可以在模板参数选择中定义一个函数或使用现有函数?像这样的东西:

如果可能的话,我可以自己编写函数。

0 投票
2 回答
400 浏览

c - 变更单分析设计文件使用 Vivado HLS 2019 归档我的项目

我正在使用 xlininx 的 vivado xls 创建一个顶级函数。在我的项目中有5个文件:

  • P434.c
  • 实用程序.c
  • sidh.c
  • fpx.c
  • 密码.c

当我运行 C Synthesys 时,文件的分析按以下顺序开始:

1-util.c

2- sidh.c

3- P434.c

我希望分析文件设计的顺序是:

1-util.c

2- P434.c

3- sidh.c

我怎样才能做到这一点?

0 投票
1 回答
211 浏览

opencv - 访问多维 cv::Mat 数组的元素

我无法弄清楚如何正确访问 3D cv::Mat 数组的元素。以下代码在 Vivado HLS 中运行并失败并出现非描述性错误。这是 Vivado HLS 的问题,还是我没有正确读取值?

错误:

0 投票
1 回答
767 浏览

c++ - 将指针数组传递给 Vivado HLS (SDSoC 2018) 中的函数

我正在使用 SDSoC 2018.3 Vivado HLS 加速 C++ 函数。这个函数只需要一个指针数组(在 PS 中使用 sds_alloc 分配)。然后,它遍历这个数组,提取其中的每个元素(这是 DDR 内存的地址),并读取位于该地址中的数据。

这是一个演示该想法的简单函数:

问题是,如果我将指针数组作为顶级函数的参数传递,SDSoC 会引发错误。

在挖掘了 Vivado 的“ug902”手册后,我发现:

“Vivado HLS 支持指向综合指针的指针,但不支持在顶级接口上使用它们,即作为顶级函数的参数。如果在多个函数中使用指向指针的指针,Vivado HLS 会内联所有使用指向指针的函数。内联多个函数可以增加运行时间。”</p>

我不知道如何解决这个问题。

任何帮助表示赞赏。

0 投票
1 回答
61 浏览

vivado-hls - a.at(x,y) 在 Vivado SDSoC 中不起作用

我想从 Vivado SDSoC 中的 Mat 获取 2d 阵列,但我无法做到这一点,因为如 Xilinx(XAPP1167) 所述,

cv::Mat<>.at() 方法和 cvGet2D() 函数在可综合库中没有对应的等效函数

我很感激任何帮助。谢谢你。

该项目是关于人脸识别系统的。系统首先会进行 viola-jone 人脸检测,然后将输出提供给 CNN 分类。viola-jones 人脸检测的输出为 unsigned char*。我将其转换回 Mat 并获得 CNN 分类器输入的 2d 数组。

0 投票
1 回答
104 浏览

verilog - AXI-Stream 接口需要哪些信号?

对于 AXI 流接口,哪些都需要?

1.ID
2.VALID 3.KEEP 4.LAST 5.READY 6.DATA 7.STRB 8.USER 9.DEST

0 投票
1 回答
301 浏览

c++ - HLS - 使用循环时数组参数接口不同

set_directive_interface -mode axis -register -register_mode both "FIR" Result我在 Vivado HLS 中的指令具有以下功能:

此函数将生成以下报告:

在此处输入图像描述

我有两个带有地址、CE 和一个数据输入的内存接口。一切如预期。

现在我使用以下功能:

这将产生以下输出:

在此处输入图像描述

那么为什么第二个函数会产生一个带有两个 RAM 端口的接口呢?

0 投票
1 回答
53 浏览

c++ - Zedboard zynq-7000 Opencl 浮点从类型“double *”到类型“double”的无效转换

我是 Xilinx 开发的新手,我正在用 zedboard 准备我的硕士学位。我正在尝试使用 Vivado HLS 在 Zedboard 上使用 Opencl 开发卷积加速器。

我创建了 OpenCL 块。

然后我在 Vivado 中使用它来创建架构: 图 1

将其导出到 Vivado SDK 并从此处使用和修改代码后。OpenCL 块没有正确执行,我不知道它的原因。

所以我的问题是为什么当我用 float 或 double 替换 int 类型时,它会给我一个错误。

旧代码:

我的代码:

它给了我这个错误:

错误图像

从“double *”类型到“double”类型的无效转换

请帮帮我,我想将“a”数组的内容传输到 OpenCL 块的“a_addr”数组。