我有一个基于Cortex-M4的单片机通过16位并行存储器总线接口连接到FPGA上。本质上,FPGA的行为就像映射到MCU内存空间的外部存储器:MCU显示一个地址,后面跟着一个数据字(写)或读取FPGA (read)所呈现的单词。
在寻址和数据写/读过程中,我都想保护读写不受传输错误的影响。但是,我不期望有太多的位错误,因为两个部分之间的距离很短。
我可以很容易地实现校验和生成的奇偶,汉明码或CRC在FPGA内。但是,在uC中执行相同的操作(检查和生成)似乎比较困难,因为我不想削弱吞吐量。在没有错误检测的情况下,16位字的读写大约需要4-6个处理器周期,因此速度相当快。因此,我不想在保护措施上花费上百个周期。
最后,我正在寻找一种对16位数据的中等效率的错误检测方法,该方法在尽可能少的周期内在中实现。
发布于 2014-05-08 10:42:13
以我的经验来看,保护这样的并行公共汽车是非常罕见的。当然,这是在PC和服务器类硬件与ECC等,但很少在微控制器。
如果您的特定Cortex-M4实现有一个硬件CRC块,您可能可以在那里流数据,假设您可以简单地在每个总线传输的末尾添加一个CRC字。尽管如此,这可能仍然会使它慢下来至少2-3倍,因为来自FPGA的每一个字也必须在软件中被传送到CRC单元。
https://stackoverflow.com/questions/23538268
复制相似问题