当前位置:首页 > 公众号精选 > 芯片验证工程师
[导读]大多数dut都有许多不同的接口(interface),每个接口都有自己特有的协议。UVMagent的任务就是集中管理和这个接口相关的所有内容,主要是各种用于驱动和监测DUT的验证组件(uvm_components),这些组件的命令最好都使用同一个前缀进行命名。 Uvm_agent...

大多数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。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭
关闭