一、为什么使用UVM
随着芯片的功能逐渐增多以及愈发难以理解,通过仿真器的波形去检查验证设计变得越来越困难了。为了缩短和简化验证时间,我们需要标准化验证平台。由于RTL代码是使用verilog语言,但是验证没有标准化,不能够重复利用。UVM能够提供验证平台标准化,这里是我们会使用UVM的原因;
但是UVM的什么方面能够提高它的复用性呢?
- 各个模块的验证环境是独立封装的,对外不需要保留数据端口,因此便于环境的进一步集成复用。
独立封装:独立封装可以专业点的叫法:自闭性。它是指单元组件只能可以成为独立行为,不需要依赖其他并行组件。
与环境的关系:可以独立集成于top环境,互相的不需要额外的通信连接;
与sv区别:在搭建验证环境时,如果例化driver需要generator; - 环境框架搭建:phase机制保证顶层在调用各个子环境时,不需要考虑子环境之间的例化顺序,例如可能导致对象句柄悬空的情况发生。
- call back机制:如果把两个不同的项目不同地方使用call back函数来做,而把相同的地方写成一个完整的env,再重用时,只要