gpt4 book ai didi

c++ - CRC/Parity/Hamming 保护 16 位并行总线

转载 作者:太空狗 更新时间:2023-10-29 23:04:10 43 4
gpt4 key购买 nike

我有一个基于 Cortex-M4 的 MCU,它通过 16 位并行内存总线接口(interface)连接到 FPGA。本质上,FPGA 的行为类似于映射到 MCU 存储空间的外部存储器:MCU 提供一个地址,后跟一个数据字(写)或读取 FPGA 提供的字(读)。

我想在寻址和数据写入/读取期间保护读取和写入免受传输错误。但是,由于两部分之间的距离很短,我预计不会出现很多位错误。

我可以在 FPGA 内部轻松实现奇偶校验、汉明码或 CRC 校验和生成。但是,在 uC 中执行相同的操作(检查和生成)似乎比较困难,因为我不想削弱吞吐量。在没有错误检测的情况下,读取和写入 16 位字大约需要 4-6 个处理器周期,因此速度相当快。因此,我不想在保护措施上花费数百个周期。

最后,我正在寻找一种在 uC 中以尽可能少的周期实现的 16 位数据的适度有效错误检测方法。

最佳答案

(以我的经验)像这样保护并行总线是非常罕见的。它当然是在带有 ECC RAM 等的 PC 和服务器类硬件中完成的,但很少在微 Controller 中完成。

如果您的特定 Cortex-M4 实现有一个硬件 CRC block ,您可能能够在那里流式传输数据,假设您可以简单地在每个总线传输的末尾添加一个 CRC 字。不过,这可能仍会将其速度至少降低 2-3 倍,因为进出 FPGA 的每个字也必须通过软件馈送到 CRC 单元。

关于c++ - CRC/Parity/Hamming 保护 16 位并行总线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23538268/

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