目录
1. 介绍
本系列blog主要介绍最常用的验证框架:通用验证方法学(Universal Verification Methodology, UVM)
参考资料主要为《UVM实战(卷I)》和《芯片验证漫游指南》。
正是看到了纯粹由编程语言Systemverilog手工搭建的验证平台有诸多不便,因此才产生了UVM,并且UVM也是如今IC验证者常用的验证框架。
初学者可按照如下的顺序进行学习。
1.1. 数字集成电路(Integrated Circuit, IC)验证
首先对IC验证基本概念和验证方法进行介绍。
2. 一个简易UVM验证平台例子
搭建的一个简易的UVM验证框架,不仅继承于SystermVerilog搭建的验证平台,还在此基础上增添了新的功能。
可以尝试理解一下各个模块的功能,看不懂的童鞋可以直接转入UVM基础~
3. UVM 基础
这里给出一个UVM类库地图,所有UVM的功能机制都可从以下这些UVM类中找到相应的属性和方法
下面将对上述UVM常用的类进行介绍。
3.1. UVM factory 机制
工厂机制,来自于软件设计中的工厂设计模式。其意义在于工厂机制有独特的对象创建函数,且基于此能够重载创建函数,使父类句柄指向子类对象。
3.2. UVM field automation 机制
注册后,每一个object都可使用copy()
,compare()
等等方法,不满意的用户也可自己手动定义do_copy()
, do_compare()
等等
3.3. UVM config_db 机制
该机制可实现在组件实例化前就设定好配置信息。
3.4. UVM 消息机制
各种消息的打印方法和使用范式。
3.5. UVM phase 机制
解释了在tb文件中,一句run_test("my_test");
开始仿真后到底经历了什么。以及如何对仿真进行控制,涉及到9大phase。
4. UVM 验证平台框架
详细介绍testbench中各模块及相互关系
5. UVM 通信
包括事务级建模(Transaction Level Modeling, TLM)通信标准,和同步通信元件。
UVM:事务级建模(Transaction Level Modeling, TLM)1.0 通信标准
UVM:事务级建模(Transaction Level Modeling, TLM)2.0 通信标准
6. UVM sequence
事务,即数据包的产生和发送机制
UVM:sequence机制 之 捕获transaction
7. UVM 寄存器模型
UVM中引入了软件侧寄存器模型的概念,用于以可读性更高的方式访问、模拟、验证dut中的硬件寄存器
8. UVM 设计模式 总结
UVM框架中涉及一些软件设计模式,总结如下,正在更新。。。。
9. UVM 验证IP
介绍了验证IP的概念