gpt4 book ai didi

c++ - 将图像位发送到嵌入在 FPGA 中的 HDL 生成的 RAM block

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:29 33 4
gpt4 key购买 nike

我有一 block FPGA SoC 板 (DE1-SoC-MTL2)。 SoC 是 Altera(现在是 Intel FPGA)的 Cyclone V FPGA 和 ARM Cortex A9 的组合,它们相互连接,可以使用 AMBA 网络交换数据。使用称为 Platform Designer(以前称为 Qsys)的工具,可以将地址分配给 HDL 创建的 block ,从而可以从 ARM Cortex A9 处理器控制 FPGA 部分中的 block 。

简而言之,我有一个 Linux 系统,它可以使用分配的基地址与 FPGA 交换数据。

我有一个大小为 300x1200 的二进制图像(黑白,1 位),我必须将它存储在内置的 FPGA RAM 中。为此,我设计了一个 RAM,它有 1200 个 304 位字(我不允许将它设为 300,因为它必须是 8 的倍数,因为地址分配仅限于字节)。假设 RAM 地址从 0x0000 开始到 0xB220 结束。我应该怎么做才能将图像存储在该 RAM 中,以便每个 300 位宽度的信息存储在 RAM 的每个字中? (我可以为此使用 C、C++(Qt 创建者),我只想从 GUI 中单击一个按钮来将图像存储在那里)

最佳答案

我能够解决问题,所以我会尝试回答我自己的问题。

304 位字词无法与使用 AMBA 互连的系统的其余部分进行通信。我被迫设计一个字长为 2 的幂(最小 8 位)的 RAM,所以我选择 512 位作为我的字长。我用零填充了未使用的部分(每个单词的位数从 301 到 512)(我本可以使用它们,但会使我的 HDL 算法更加复杂)。

正如@John Moon 在评论中建议的那样,我首先使用了 mmap() 并一次写入 32 位。为了在给定地址写入 32 位字,我使用了基址 + 偏移地址(如@Eugene Sh. 建议的那样),并且为了能够使用我的自定义架构使用内存中的数据,我制作了 RAM 双端口。现在一切正常。

关于c++ - 将图像位发送到嵌入在 FPGA 中的 HDL 生成的 RAM block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51770832/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com