IC验证-寄存器专项测试

一.三个概念

关键点:对粘连的理解和验证

1、寄存器默认值的验证

DUT初始化后,读取寄存器值,判断读取的值是否等于设计时所配置的初始值,不等则证明寄存器有错。

2、寄存器之间是否有粘连的验证

通常,对一个寄存器进行赋值,不会影响到其他寄存器值,但是当发生寄存器之间的粘连时,寄存器之间就不再有独立性,对其中某个寄存器进行赋值操作,就会影响到其他寄存器的值。

通常是写入0x01(<<1)后读出0x10,以此类推。

3、同一寄存器中比特位之间的粘连

通常,对一个寄存器中某一位进行置位或清零操作,不会影响到其他比特位,但是当发生寄存器内部比特位之间的粘连时,比特位之间的独立性就不存在了,对其中某个位进行置位或清零操作,就会影响到其他比特位的值 。

二.寄存器验证方法

以RW寄存器为例

方法一

1.读测试(默认值测试)

读出的值应该为默认值,否则为默认值设置错误,默认值错误有时会引起一些莫名其妙的错误

2.读写测试

(1). 随机值测试,随机一个寄存器值然后读出进行比对;

(2). 位粘连测试,采用00….001和11…110进行移位操作写入读出对比测试防止寄存器某些bit位粘连;

(3). 位翻转测试,写0x55…555(0101…0101) 、0xaa…aaa(1010…1010),读出比较;

(4). 位边界测试,写00…00,fff…ff(1111…1111)读出比较

方法二 五步法(其实两种方法是一样的)

1.测寄存器的value

一.对所有寄存器复位,检测default_value是否正确

二.对所有寄存器写入ff(1111_1111),检测是否正确

三.对所有寄存器写入aa(1010_1010)

四.对所有寄存器写入55(0101_0101)

五.对所有寄存器写入随机值

2.进行粘连测试

通常是写入0x01读出0x10,以此类推,写入一个寄存器后读出其他所有寄存器检查是否误写入。

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值