电子说
大多数dut都有许多不同的接口(interface),每个接口都有自己特有的协议。 UVM agent的任务就是集中管理和这个接口相关的所有内容 ,主要是各种用于驱动和监测DUT的验证组件(uvm_components),这些组件的命令最好都使用同一个前缀进行命名。
Uvm_agent中的package通常包括:
**• A Sequence_item ** -agent 中可能存在一个或多个sequence item,这些事务定义了agent驱动和监测DUT的信号级内容.
• A Driver - .driver 用于将sequence_items中的数据转换为信号级行为。
**• A Sequencer ** - sequencer 的作用是将sequence_items从生成的sequence 路由到driver。
**• A Monitor ** - monitor 观察DUT接口上的信号级行为,并将其观察的结果数据转换为sequence_items,然后发送到scoreboards 等组件,已生成预期数据或者其他的数据分析处理。
**• Configuration object ** - 一个配置容器,用于将信息由上层(env或者test case)传递给agent代理,从而影响agent的行为方式,以及与DUT的接口连接。
每个agent 都应该有一个配置对象,其中可能包括:
1、virtual interface ,其被driver和monitor使用来访问(驱动、监测)实际DUT接口信号,即组件的连接。
2、控制agent子组件的创建与否 (是否需要创建driver和sequencer )以及 具体行为 (错误注入、组件行为延时控制等等),即组件的行为配置按钮。
**• Functional coverage monitor ** - 收集协议特定的功能覆盖率。
**• A responder ** - 响应接口的slave_driver,注意不是主动激励接口的driver。
**• (API) Sequences ** - 调用driver的一个API,即BFM。
全部0条评论
快来发表一下你的评论吧 !