UVM类库提供了通用的代码功能,如component hierarchy、transaction level model(TLM),configuration database等等,使用户能够创建任何类型的Testbench架构。
上图是一个非常通用的testbench架构,并不能够表示所有类型的testbench架构。
UVM Testbench
UVM Testbench通常实例化Design under Test (DUT) module和UVM Test class,并进行连接。
UVM Test是在运行时动态实例化的,这使得UVM Testbench可以只编译一次,然后运行不同的测试用例。
1.1.2 UVM Test
UVM Test是UVM Testbench中的顶层组件。UVM Test 通常会执行三个主要功能:
实例化top-level验证环境
配置验证环境(通过 factory overrides或configuration database)
通过调用UVM Sequences来施加激励到DUT
通常,会有一个实例化UVM Environment的 base UVM Test,然后其他的Test将扩展这个base test,以不同的方式配置验证环境或选择运行不同的sequences 。
1.1.3 UVM Environment
UVM Environment是一个分层验证组件,它将相互关联的其他验证组件组合在一起。通常在UVM Environment中实例化的典型组件是UVM Agents, UVM Scoreboards,以及其他UVM Environments。顶层UVM Environment封装了针对DUT的所有验证组件。
例如:在芯片(SoC)UVM Environment上,你会找到对应于各个IP的UVM Environment(例如PCIe Environment, USB Environment, Memory Controller Environment等等)。有时这些 IP Environments被组合到Cluster Environments中(例如 IO Environment, Processor Environment等等),最终在顶层SoC Environment中组合在一起。
1.1.4 UVM Scoreboard
UVM Scoreboard的主要功能是检查某个DUT的行为。UVM Scoreboard通常通过UVM Agent analysis ports接收DUT的输入和输出事务,通过参考模型来产生预期结果,然后和实际输出进行比较。
1.1.5 UVM Agent
UVM Agent是一个分层组件,它将其他和DUT接口交互的验证组件组合在一起。一个典型的 UVM Agent包括一个UVM Sequencer管理激励,一个UVM Driver将激励施加到DUT接口和一个UVM Monitor监测DUT接口。
UVM Agents也可能包括其他组件,如coverage collectors,protocol checkers等等。
UVM Agent可能工作在active mode(能够产生激励),或者工作在passive mode(只监测接口而不驱动)。
1.1.6 UVM Sequencer
UVM Sequencer是一个从多个激励sequences中控制事务流的仲裁器。更具体地说,UVM Sequencer控制着一个或多个UVM Sequences。
1.1.7 UVM Sequence
UVM Sequence是一个包含产生激励行为的对象,并不是验证组件层次结构中的一部分。UVM Sequences同样也可以是分层的,可以由一个sequence(parent sequence)调用另一个sequence(child sequence)。
每个UVM Sequence都被绑定到一个UVM Sequencer上。多个UVM Sequence可以绑定到相同的UVM Sequencer。
1.1.8 UVM Driver
UVM Driver从UVM Sequencer中接收 UVM Sequence Item,并在DUT接口上驱动。因此,UVM Driver将transaction-level激励转换为pin-level激励。
1.1.9 UVM Monitor
UVM Monitor 对DUT接口进行采样,并发送到UVM的其他验证组件中继续下一步的analysis行为。因此,UVM Driver将pin-level转换transaction-level。UVM Monitor有一个TLM analysis port来广播所监测到的创建的transactions。
UVM Monitor可以在内部对产生的事务执行一些处理(如覆盖率收集、检查、日志记录等)或者可以将这些任务交给连接到monitor analysis port的其他验证组件。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !