问题标签 [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.
matrix - Xilinx Vivado_HLS 提供的线性代数库中的 QRF_ALT 函数中使用的算法是什么?
随 Vivado HLS 安装一起提供了一个线性代数库。在这个库中有这个函数 QRF_ALT,它应该是 Qrf-basic 的高吞吐量版本:使用给定旋转的 QR 分解。
我的问题是它如何实现高吞吐量?从随代码提供的简短注释来看,我的猜测是它使用批量矩阵行的并行处理,但它是如何安排的,我无法理解。
有没有人有任何 Vivado HLS 的经验可以帮助我?在这一点上,任何帮助将不胜感激。
该库位于(linux)中
文件也可以在这里找到:
https://filebin.ca/5gtV16lXK4ZT/qrf_alt.h
c - 并联两个循环 Vivado HLS
为了举例说明,我有一个循环,在该循环中,每次迭代都在一次循环中读取和写入数组的内容。
仅在 上访问相同的元素以进行读/写操作i=0
,具有适当的延迟和同步算法应该允许并行化。我正在努力寻找合适的 HLS 编译指示来强制它们像这样并行运行
理想情况下,第一个循环应该在第二个循环完成后完成两个循环,并以这种方式读取最后一个my_array
元素的正确值。我可能有一个误解,但我希望以这种方式(跨两个周期)划分工作,应该提高时钟速度吗?
生成的 Verilog 代码的其余部分很好,尽管它很神秘,我宁愿坚持使用 C 而不是尝试修改生成的 HDL。关于如何并行化它或它是否可行的任何建议?
system-verilog - 当仅使用总线名称而不是 [a:b] 时,vivado 是否考虑其所有位或仅考虑最低有效位
我的问题是,当我们想对指定的位执行功能时,我们会写一些类似“assign y[1:0] = d0[1:0];”的东西。但是,如果我们不指定位,vivado 会考虑什么?换句话说,写“y or y[3:0]”是一样的吗?正在写“assign y[3:0] = d0[3:0];” 和“分配 y = d0;” 相同?当系统只使用它的名字时,它是如何考虑总线的?
c++ - 从 unsigned char 类型转换为定点数据类型时,'operator+' 的模棱两可的重载
我在 vivado hls 上实现了一个图像处理算法,作为优化的一部分,我试图将浮点表示更改为定点表示。
这是出错的部分
当我尝试执行它时,它给了我一个错误说
有人可以帮助我提出与为什么会出错以及可以做些什么来完成这项工作有关的任何建议吗?
提前致谢,
amazon-cloudfront - 无法使用 AWS CloudFront 签名 Cookie 播放 HLS m3u8 文件
我正在做一个需要播放 HLS 加密视频 (.m3u8) 文件的项目。我正在使用 CloudFront 和签名的 cookie 来保护内容。我可以在没有签名 cookie 的情况下播放 .m3u8 文件,但是当我使用签名 cookie 时,cookie 不会收到发送请求。
我正在使用备用域进行 CloudFront 分发,并且我确认除了 .m3u8 文件之外,我还可以使用签名的 cookie 访问所有其他文件。
经过研究,我发现如果我withCredentials
像下面的代码一样设置为 true,那么签名的 cookie 将在请求中发送:
此代码有效,并且签名的 cookie 正在请求中发送,但是我开始收到一个新错误,即:
Access to XMLHttpRequest at 'https://protected.example.com/output-plain/art.m3u8undefined' from origin 'https://example.com' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
然后我发现我必须设置Access-Control-Allow-Credentials
为true。但是,这对我不起作用。
我正在使用 video.js 库,我也尝试过 hls.js 并得到相同的错误并卡在同一个地方。
在过去的 7 天里,我一直被困在这个问题上,我认为 AWS 文档真的是压倒性的,我已经提到了很多关于 SO 的问题和 Github 上的问题,但仍然没有运气。希望有人会在这里帮助我。
这是 CloudFront 分配行为的屏幕截图:
这是我的 php 和 js 代码;索引.php:
这是 S3 降压 CORS 政策:
先感谢您。
vivado - vivado hls中的以下代码有什么问题?
下面的代码应该从 DDR 读取一个值,递减它,将结果写回相同的地址,然后读取下一个值,重复 256 次。
相反,在第一次运行时,它会递减前 2 个值(axi_ddr[0] 和 [1]),而在连续运行时,它只会递减第一个值(axi_ddr[0])。
仿真和协同仿真都按预期通过,并且无法找出导致问题的原因。
还尝试了 C++,但它以相同的行为结束。唯一不同的是,当我忘记为变量 diff 赋予初始值时,所有 256 个 DDR 位置的值都变为 0x0。
有人可以指出我错过了什么吗?
c++ - Wint-in-bool-context 是什么导致了这个警告?
我在谷歌上搜索过,但我没有找到这个警告的原因Wint-in-bool-context
编译器给了我以下警告:
这是与此警告相关的代码行(host.cpp 第 50 行):
目标是创建 32 位整数值向量来存储 N*M 大小的矩阵。
c++ - 在 vivado_hls 的流中发送浮点数的问题
我正在尝试做一个简单的图像处理过滤器,其中像素值将被除以一半以降低强度,并且我正在尝试开发相同的硬件。因此我使用vivado hls来生成 IP。如此处所述https://forums.xilinx.com/t5/High-Level-Synthesis-HLS/Float-numbers-with-hls-stream/mp/942747在 hls 流中发送浮点数,联合需要使用过,我也这样做了。但是,结果似乎与图像的红色和绿色分量不匹配,而与图像的蓝色分量匹配。这是一个非常简单的算法,其中一个像素值将被除以一半。
我一直在尝试解决它,但我无法看到问题出在哪里。我已附上以下所有文件,有人可以帮我解决吗?
当我调试时,它显示像素的蓝色分量是匹配的。对于一个红色像素,它向我展示了以下内容:
红色、绿色和蓝色的总误差为:
我不明白为什么红色和绿色会出错。我在这里发帖希望新的眼睛能帮助我解决问题。
提前致谢
c++ - 移动一个像素的坐标
我正在尝试为一种算法制作一个原型,以找到一个球在盘子上的坐标,我想让它尽可能高效,因为我必须在 FPGA 中实现它。球和盘子的图片并不总是在同一方向,所以我需要根据盘子角的坐标移动球中心的坐标。
要理解我的意思,请参见下图,其中白纸代表盘子。
现在我已经找到了一种方法来确定球在图片上的坐标,以及图片中盘子的角坐标,但是我想找出球在盘子上的位置。
我尝试用 getPerspectiveTransform() 和 wrapPerspective() 做一些事情并且它起作用了,但这涉及大量矩阵计算,我认为当我只想移动一个像素的坐标时这有点矫枉过正(中心球)。
您知道如何确定球在板上的中心像素坐标的更有效方法吗?
fpga - vivado_hls.bat 未找到
我设置了 Vivado HL WebPACK 版本。Vivado 运行没有任何问题。据我所知 Vivado HL WebPACK 版本包含 Vicado HLS 但是当我单击 Vivado HLS 时不起作用。它说没有找到 vivado_hls.bat。我已经删除并设置了一段时间。我面临着同样的问题。我应该怎么办?