首先,UVM的验证平台的各个组件的使用与否完全取决于工程师本人,验证工程师本人出于对项目的大小,RTL设计的spec以及可复用性等其他因素对项目的验证平台的整体flow有了大体的思路之后,撰写相应的文档并且搭建UVM环境。
通常来说,一个相对简单完整的验证平台包括了sequence、sequencer、reference model、agent、driver、monitor、scoreboard等组件。下面来说说各个组件的作用。
sequence:sequence不是验证env下面的组件,其主要作用是产生transaction的数据并且与sequencer进行交互,从而向sequencer发送相应的transaction数据。
sequencer:作为sequence和driver的数据中转站,通过对这两个部分的发/接受请求,从而向driver提供相应的transaction数据。
reference model:一般情况下,验证平台要去检测RTL的行为对错,会做一个与RTL要实现功能一致的model,这个model的输入与driver送至RTL的激励一致,并且通过model的行为后,产生一些信息送至scoreboard进行相应的判定。
agent:agent是用来将属于同一层的组件封装在一起的组件。通常情况下,将sequencer、driver、monitor封装在一起作为agent,封装后的组件对上对下的交互需经过agent。
driver:激励RTL。
monitor:与driver的行为基本一致,或者完成一致,作为向reference产生输入的组件,或者是接收RTL返回的数据信息。
scoreboard:对RTL行为和reference model进行比较,进行结果的比对,发出相应的信息。
原文地址:https://www.cnblogs.com/rongmouzhang/p/9468816.html