Testbench/Agent(从The Agent Configuration Object开始)

上一篇 / 下一篇  2018-09-18 09:19:18

         agent有一个配置对象,用于定义:

  • 构建了agent的哪个子组件(Topology)
  • driver和monitor使用的虚拟接口的句柄
  • agent的行为

        按照惯例,UVM agent具有UVM_ACTIVE_PASSIVE_e类型的变量,用于定义agent是否为active(UVM_ACTIVE):如果是active那sequencer和driver被构造,或passive(UVM_PASSIVE)既没有构造driver或也没有构造sequencer。此参数称为active,默认情况下设置为UVM_ACTIVE。
        是否构建其他子组件由其他应具有描述性名称的变量控制。例如,如果存在功能覆盖monitor,则控制功能覆盖monitor是否构建的bit位可称为has_functional_coverage。
       配置对象将包含driver和monitor使用的虚拟接口的句柄。在test中配置和构造配置对象,并且在test中将虚拟接口句柄分配给从testbench module传来的虚拟接口。
       配置对象还可能包含影响agent行为或配置方式的其他变量。例如,在apb agent的配置对象中,存在设置存储器映射并确定针对哪些地址激活哪些apb PSEL线的变量。
       配置类应将其所有变量设置为公共默认值。
       以下代码示例显示了apb agent的配置对象。

       //
       // Class Description:
       //
       //
       class apb_agent_config extends uvm_object;

       // UVM Factory Registration Macro
       //
       `uvm_object_utils(apb_agent_config)

       // Virtual Interface
       virtual apb_if APB;

       //------------------------------------------
       // Data Members
       //------------------------------------------
       // Is the agent active or passive
       uvm_active_passive_enum active = UVM_ACTIVE;
       // Include the APB functional coverage monitor
       bit has_functional_coverage = 0;
       // Include the APB RAM based scoreboard
       bit has_scoreboard = 0;
       //
       // Address decode for the select lines:
       int no_select_lines = 1;
       logic[31:0] start_address[15:0];
       logic[31:0] range[15:0];

       //------------------------------------------
       // Methods
       //------------------------------------------

       // Standard UVM Methods:
       extern function new(string name = "apb_agent_config");

       endclass: apb_agent_config

       function apb_agent_config::new(string name = "apb_agent_config");
            super.new(name);
      endfunction



         
       


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2018-12-13  
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

数据统计

  • 访问量: 15163
  • 日志数: 49
  • 建立时间: 2018-09-03
  • 更新时间: 2018-12-12

RSS订阅

Open Toolbar