|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本文基于Candence DDR4 IP 介绍ECC 功能。 纠错码(ECC)内存功能是内存子系统的RAS (可靠性,可用性,可维护性),为了处理因为设计或者系统噪音等原因造成内存数据发生的bit 翻转。
按照存储方式分为in-line ECC ,out-of-band ECC 。in-line ECC 是指数据、ECC check code 放到同一个颗粒,out-of-band ecc 是ECC check code单独放到一个颗粒上,称为ECC 颗粒。如果写数据小于64bit(candence IP 支持64bit 产生8bit ECC 数据),ECC 写会执行read/modify/write 操作。
具体的执行流程如下图所示:
RTL 仿真步骤:
1. 初始化DDR4 3200 data rate
2. 造错情景
(1)2bit 造错,出错地址addr,monitor 是否有 2bit ECC错误,并检查数据情况
(2)清理ECC 中断, 直接读取addr,monitor 是否有2bit ECC 错误,并检查数据情况
(3)清理ECC 中断,写地址addr(data length>=64bit),monitor 是否有ECC 错误
(4)清理ECC ,1bit 造错,monitor 是否有1bit 错误,并检查数据纠错情况
(5)其他情况
仿真波形:
一般学习中需要明白以下几点:
1. ECC 纠错机制,就是多少bit 数据产生一组ECC check code,Candence IP 支持64bit 数据产生8bit check code
2. ECC 类型,按照存储方式分in-line ECC 以及out-of-band ECC
3. ECC 纠错能力,能对几bit 错误纠错,Cadence DDR4 IP 支持1bit 纠错,如果出现2bit 错误,只能报告出错地址,无法指明出错bit
4. ECC 如何造错,一般用来RTL 仿真以及DVT 仿真
5. ECC 中断以及报告信息,一般用于silicon debug 中用来判断哪个颗粒出问题了
|
|