最近本人在做毕业设计,需要用到UVM搭建验证平台,故在网上查找相关资料,看了一些博客和科普,多少有些收获,记录在这里,以便以后复习查看。以下是本人根据网上学习资料整理的笔记,如果有什么不对的地方欢迎指正!
那么,开始入坑吧!
1. build_phase完成的工作主要有:
(1) 完成实例化;
(2) 完成config_db机制的get行为,即把其它component设置给此component的一些参数接收过来;
2. agent主要有两种工作形式:UVM_PASSIVE和UVM_ACTIVE
UVM_PASSIVE:agent以这种形式运行时,只监测总线而不驱动总线;
UVM_ACTIVE:agent以这种形式运行时,既可以监测总线,也可以驱动总线;
3.两个主要端口:uvm_blocking_get_port是一个TLM事务级端口,用于接收由uvm_analysis_port发送的信息,而uvm_analysis_port是发送信息的端口,其发送的消息会被前面的端口所接收。uvm验证平台的各个组件之间通过这两个端口来实现事务级别通信。
4.scoreboard中一般使用一个队列来暂存从reference model得到的期望数据。
5.uvm验证平台可以使用uvm_tlm_analysis_fifo把uvm_blocking_get_port和uvm_analysis_port连接;
6.在UVM中,定义一个类但是没有实例化,一般来说是没有意义的,但是存在特殊的情况:对于一个静态类,即其成员变量都是静态的,不实例化也可以正常使用;
未完待续..................