关键字:VMM MCU 验证环境
1 简介
随着设计的复杂程度不断增加,要求把更多的资源放到验证上,不但要求验证能够覆盖所有的功能,还希望能够给出大量的异常情况来检查DUT对应异常的处理状态,这在传统测试方法下往往是难以实现的。此外,设计不断地重用,而验证也希望能够重用一样的验证模块,这就催生了层次化的验证方法。VMM验证方法学提供了基于System Verilog的验证方法,包括了有约束的随机数生成,层次化的验证结构,以及以功能覆盖率为指标的验证流程。在本文中,围绕VMM(Verification Methodology Manual)构建了一个MCU验证环境。
2 DUT
在这个环境中验证了一个8位MCU,该CPU时钟周期即为指令周期,兼容MCU指令集,包含8位的运算逻辑单元,包含了ACC、B、PSW等常用的寄存器,4组R0-R7的R寄存器,支持直接,间接寻址,支持位操作,跳转指令可以为8位有符号相对地址跳转或者11位,16位无符号绝对地址跳转。
4个优先级12个中断,中断包括外部输入中断,以及串口和计数器等的内部中断,15位可编程Watchdog,另外包含程序ROM接口,外部RAM接口,内部RAM以及SFR接口。MCU本身并不包含memory,所有的ROM以及RAM都是通过外部接口进行通信,这里在VMM环境里实现了行为级的 memory model,来保存程序代码和数据。以下是MCU的简要模块框图。
这个MCU也是在原有基础上改进了指令周期,减少了大部分指令执行所需的指令周期。因为部分指令所需要的指令周期的缩短,很多原有采样和赋值时间相应发生较大变化,在功能验证的基础上,需要关注是否因此对下一条指令产生影响,特别是中断和部分指令同时发生时的一些特殊情况。
MCU的指令执行都会通过读写RAM memory来实现,另外所有的外设都会通过配置SFR memory来启动相应功能,并会对相应的SFR置位来显示外设的工作结果或是状态,这里RAM memory和SFR memory内容就是需要关注的检测点,只要保证RAM memory以及SFR memory内容的正确,就可以验证MCU的所有功能正确。
|