首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Specman -如何控制被动/主动代理

Specman -如何控制被动/主动代理
EN

Stack Overflow用户
提问于 2018-03-08 17:26:45
回答 2查看 104关注 0票数 0

构建了uart验证环境。我有uart_tx_agent和uart_rx_agent。uart_tx_agent有控制cts端口的虚拟bfm,没有驱动程序。uart_rx_agent具有bfm和带有uart_sequence的驱动程序。

uart_env.e :在uart_env中,我按如下方式启动代理

代码语言:javascript
复制
unit uart_env_u like uvm_env {
   uart_tx_agent: uart_tx_agent_u is instance;
   uart_rx_agent: uart_rx_agent_u is instance;
};

unit uart_tx_agent_u like uvm_agent {
   keep soft active_passive == PASSIVE;
};

unit uart_rx_agent_u like uvm_agent {
   keep soft active_passive == PASSIVE;   
};

uart_tx_agent.e:

代码语言:javascript
复制
extend uart_rx_agent_u{
   uart_rx_monitor : RX uart_monitor_u is instance;
   when ACTIVE uart_rx_agent_u
   {
      uart_bfm : uart_rx_bfm_u is instance;
      driver: uart_driver_u is instance;
   };   
};

unit uart_rx_bfm_u like uvm_bfm{
};

sequence uart_sequence using 
   item = uart_frame_s,
   created_driver = uart_driver_u;

uart_tx_agent.e:

代码语言:javascript
复制
extend uart_tx_agent_u{
   uart_tx_monitor : TX uart_monitor_u is instance;
   uart_tx_scb: uart_tx_scoreboard_u is instance;
   when ACTIVE uart_tx_agent_u {
      uart_bfm : uart_tx_bfm_u is instance;
   };
};

unit uart_tx_bfm_u like uvm_bfm{
};

在tx_test中,我只有一个主序列- vr_ad_sequence,并且我执行以下操作:

代码语言:javascript
复制
extend MAIN vr_ad_sequence {
   .....
   .....  
   keep uart_env.uart_tx_agent.active_passive == ACTIVE;
   ...
}; 

在rx_test中,我有两个主要的序列:

代码语言:javascript
复制
extend MAIN uart_sequence {
   ....
   ....
   body() @driver.clock is only {
   };
};

extend MAIN vr_ad_sequence {
   .....
   .....  
   keep uart_env.uart_tx_agent.active_passive == ACTIVE;
   ...
}; 

但它确实能像我预期的那样工作。在这两个测试中,代理都处于被动状态(没有bfm /driver)。

EN

回答 2

Stack Overflow用户

发布于 2018-03-09 14:38:03

只有在测试开始后才会生成序列,因此在此时将代理设置为活动状态为时已晚。

将此约束放在层次结构中的更高级别。例如-在包含此代理的env中

票数 0
EN

Stack Overflow用户

发布于 2018-03-09 22:14:33

您需要区分单元层次结构(在模拟开始时生成)和结构。后者可以在任何时候动态生成。因此,在模拟中的稍后点生成的序列中的任何约束都不能改变单元层次结构。这样做也是一种糟糕的风格。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49169576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档