UVM是验证平台,主要包括的组件如图所示:
主要包含的组件有:uvm_driver, uvm_monitor,uvm_sequencer, uvm_sequencer,uvm_env, uvm_agent, uvm_scoreboard.
uvm_driver:从sequencer获取transaction,并将transaction转换成DUT接受的PIN级信号,把transaction里的信息传给DUT端口。
uvm_monitor:监视接口信号,捕捉接口上的事务并将Pin级的信号事务转换成为事务级数据包,之后将数据包发送到analysis组件(包括reference model, scoreboard)进行分析,产生报告。
uvm_sequencer: 启动sequence,将sequence产生的item发送到driver中。
uvm_env:封装了固定不变的组件,包括agent,reference model,scoreboard以及其它的组件,当运行不同的测试用例时,只需要实例化env.
uvm_agent:封装了sequencer, driver以及monitor.为了实现代码的可重用性。
uvm_scoreboard:比较reference model和monitor分别发送来的数据,判断DUT是否正确工作。