UVM实战学习笔记(一)APB VIP-爱代码爱编程
学习完UVM入门课程后,进入到UVM实战阶段,遇到的第一个项目是对APB总线master和slave的验证IP开发。
第一个认识是APBmaster的VIP不是对APB master的验证,而是对master的验证语言实现。在之前的sv和uvm部分学习中,对一个模块的验证是从他的外部接口进行输入和输出对比,按照这个想法,对APBmaster的验证应该是构建硬件master的实际操作对象,生成seq来驱动实际硬件master,并将master硬件在总线上的驱动信号作为checker的输入与预期输入进行对比,从而验证APBmaster是否可以根据上层指令正确的驱动总线信号。但是VIP的用途并不是这样,验证IP用来植入到验证平台中,用来检查协议操作和接口,换句话说,APB master VIP是用来在验证环境中代替APBmaster硬件的,而不是验证APB master。
这一点也在之后的测试用例的实现的以表现,sequence的构建都是围绕master VIP部件,即master部分的driver用来接收seq_item并驱动APB总线的读写行为,而slave部分的driver存在接收seq_item的部分,但并不进行驱动,而是仅进行简单的response转发。关于APB VIP 的测试用例,都是由seq驱动master进行测试。