背景:见之前的日志(关于RAL的)
验证目标及其解决方案
1. 寄存器表格中寄存器与地址的匹配的(避免地址与寄存器的错位)
解决方法:写寄存器为随机数,读写分为前门和后面,读写结果应该相同。
2.寄存器的配置通道是顺畅的(BUS通路行为正确)
解决方法:使用前门读写
3.寄存器表格中寄存器的属性与代码实现是一致的。
解决方法:正面和方面测试
正面是指对于可读可写的寄存器按照寄存器的属性进行读写,读写结果应该相同。
反面是指对于读写不对称(比如只读)的寄存器按照寄存器的属性进行读写,读写结果应该不同。
备注:对于feild寄存器,不用考虑field。直接读写32bit寄存器即可(32bit为配置通路数据位宽)
4.寄存器的field边界是否清晰,不会出现重叠和错位
解决方法:
A 由VBA脚本对excel的寄存器表格进行检错,即各field之间是无缝衔接,且所有的field位宽之和为32bit.
B 在dynamic scan中的功能验证中识别重叠错位,因为功能验证对bit错位十分敏感。
备注:事实上,表格与代码中bit错位在static scan中无法解决(目前从usrguide中的描述而言)
5。寄存器复位后状态值是确认的
解决方法:使用前门来读(不行则后门读)寄存器值,与寄存器模型中的初值进行比较,结果应该一致。
具体执行过程还需要:
1。VBA脚本对excle表格进行初始格式检查,具体检查项目需要根据表格格式确定。
2。需要使用perl或者VBA由excle表格生成reg_model的代码。
3。寄存器的验证需要支持静态和动态scan,两者集合到同一个平台,但是需要宏开关来二选一。