【ECC校验及使用】

ECC校验及使用


在IC设计中会经常用到ram来进行存储,在存储数据时我们写读时需要知道在传输过程中有没有出现差错,因此需要额外的校验位也存储下来;
ECC验证能纠正1bit错误,能发现2bit错误,但是无法纠正;
因此RAM ECC(Error Correcting Code,错误检查和纠正)是一种内存技术,它通过在数据位上添加额外的位来检测和纠正内存中的错误;
一般ecc校验值时用海明码来计算;具体原理在这里就不展开了,只关注在设计中如何进行使用;
ram经常使用的场景:一个是在模块中作为二维数组来进行存储,并进行索引;另一个是作为FIFO的存储;

1 RAM ECC Demo

以1r1w的ram为例,假如我们需要一个32x119的ram,那么该怎么存呢;一般来说ram都会设计拼接(不过肯定是相同的来进行拼接);
因为ecc模块可能是固定的若干种来进行选择,比如ecc64_8 ecc_32_? 等,在这里假如选择ecc_64_8 模块来进行生成ecc检验值;那此时
119bit(width_real) --> (64+8) * 2 = 144bit; 且此时拼接的ram为ram78,则测试需要拼接两个;且一般会把ecc校验位放在最后;
在这里插入图片描述
Steps:
Wdata:现根据真实wdata的位宽---->计算得到加上ecc校验值后的位宽---->确定选择ecc计算的模块,通过拆分数据来进行分别送进去,去得到ecc校验值---->然后再放入真实的RAM里面;
Rdata:然后从ram里读出值---->拆分数据+相应ecc校验值,送进去ecc_check模块---->然后分别得到data_out的值以及有没有data_err;

[Ref]
https://blog.csdn.net/icxiaoge/article/details/122655042

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值