SOC芯片是基于IP模块的集成,这些IP模块是经过充分验证的,因此,在SOC芯片的功能仿真中,应该更多关注IP模块之间的互联以及系统级验证,那么验证一个IP至少需要哪些case呢?
1、CPU访问IP寄存器的
验证IP是否正确地挂载到总线上了,且对寄存器的RTL实现与DOC描述进行double check
2、CPU访问IP未定义的寄存器
验证当CPU访问IP未定义地寄存器时,是否能够触发HARD FAULT中断
3、CPU访问IP未开放的寄存器
验证当CPU试图访问IP未开放的寄存器时,是否hang住总线
4、复位
验证复位信号线是否正确连接
5、fuse
验证是否能够fuse掉IP,现象就是IP的时钟被关闭
6、DMA(eop)
7、debug
8、中断
验证能否产生中断,且CPU能否及时响应中断
9、时钟
验证时钟信号线是否正确连接
10、PAD
验证IP与PAD是否正确连接
11、IP之间的交互
如一个IP给另一个IP提供trigger信号
12、低功耗
1) 不掉电,CPU进入sleep模式,CPU时钟关闭,IP时钟保持开启,IP的同步中断唤醒CPU
2) 不掉电,CPU进入deep sleep模式,CPU时钟关闭,IP时钟保持开启/关闭,IP的异步中 断/NMI中断唤醒CPU
3) 掉电,CPU进入deep sleep模式,CPU时钟关闭,IP时钟关闭,NMI中断唤醒CPU
4) Dual CPU进入sleep/deep sleep模式
5) IP的doze模式