完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在ZCU102上安装了linux并且有一个c ++应用程序,我在其中malloc和memcpy一些数据,将物理地址传递给FPGA来处理并将一些结果写入DRAM,然后c ++出现并读取结果。
我正在使用HPC端口,我设置AxCACHE = 0xF(我尝试了0x3和0x0also)。 我所看到的是,当我使用小输入数据结构运行我的应用程序时,它主要给我正确的结果。 当我增加这些数据结构的大小时,错误的概率会更高,直到它们变得足够大并且我保证错误。 当我使用HP端口并使用操作系统可见的内存块时,我在使用L2之前遇到了麻烦,但这些错误在每4kB时是非常可预测的。 我已经在这个区域上面添加了一个bootarg mem = 512M和malloc并使用HPC端口,这些问题消失了,但我现在每次运行应用程序时都会看到随机性。 我试图孤立这个问题,但到目前为止,我能够看到的是,当我在数据结构中使用32位元素而不是16位元素时,它似乎消失了。 我已经尝试通过迭代随机的1MB阵列并在fpga运行之前和之后设置A = A [i-1] * 10来确保L2不会妨碍。 对于我是否进行这种手动冲洗,结果似乎无关紧要。 如果我不冲洗,我认为它可能会更频繁地给我正确答案,但我不确定。 我尝试使用Xil_DCacheFlush / Invalidate / Disable但是他们要么是segfault,要么是gdb说它们是无效指令。 有没有办法通过Linux使用这些功能? 我正在交叉编译我的应用程序,我按照https://github.com/Xilinx/embeddedsw上的说明使用默认参数(64位,zcu102,a53)为ZynqMP创建库。 然后我抓住那里的静态库并链接。 我也尝试使用taskset -c 0运行,看看是否有任何核心的模式。 核心#3似乎最常给我错误的答案,但我认为所有这些都有可能弄乱。 我也尝试使用ACP端口作为HPC端口的插件,但是当我发出读取请求时,它似乎总是返回全0。 我知道ACP端口不能与DMA IP一起使用。 我的verilog包含自己的驱动程序来讨论AXI协议并请求dram事务。 任何这些部分遵循的路线的帮助将不胜感激! 谢谢。 |
|
相关推荐
1个回答
|
|
@hbucher Xil_DCacheFlushRange也给了我非法指令。
您是否知道有关如何在交叉编译时正确构建和链接libxil的任何指南? 也许从embeddedsw存储库构建f***l不是正确的做法? 我仍然不能100%确定我看到的随机性是否与缓存无关,这只是我最好的猜测。 当它混乱时,它似乎搞乱了多次爆发的整个AXI请求(大小从2到10个爆发)。 我在ZC706上运行完全相同的IP块并且没有看到这些问题,因此我也在寻找有关如何迁移SW和Xilinx IP的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
2416 浏览 7 评论
2821 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2292 浏览 9 评论
3372 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2459 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1134浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
581浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
447浏览 1评论
2002浏览 0评论
726浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 09:52 , Processed in 1.274026 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号