SystemVerilog Downcast是什么

发布时间:2021-12-17 16:33:18 作者:iii
来源:亿速云 阅读:237

本篇内容介绍了“SystemVerilog Downcast是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

想象一种具有飞行能力的people,其他people都无法飞行。people肯定不想他们跳下悬崖摔个稀巴烂,才发现自己不会飞。所以在从悬崖跳下去之前,需要预警确保该people是否具有飞行能力。

在SystemVerilog中也是一样,需要在仿真开始之前获得编译错误信息,不希望因为错误赋值导致仿真执行两天后突然中断。在将基类句柄赋值给子类句柄时,需要显式向下转换(downcast)。

在下面的people示例中,使用fly()方法明确该people具有飞行的能力。将基类people句柄赋值给一个子类people句柄成为称为向下转换(downcast)

virtual class normal_people;

endclass: normal_people

class flying_people extends normal_people;
 virtual function void fly();
   . . .
 endfunction
endclass:flying_people

module top;
task fly_if_you_can(normal_people peoples[]) ;
 fly_ people this_people
 for(int i=0;i<peoples.size();i++)
   begin
     // peoples[i].fly(); a compile-time error!
     if($cast(this_people, peoples[i]))
   this_ people.fly();
   end
endtask
endmodule :top

UVM面试题(66-73)

66、什么是virtual sequence和virtual sequencer ?

virtual sequence是一个包含和执行多个子sequence的容器,virtual sequencer是包含其他sequencer的容器以使得virtual sequence中的每个子sequence都能在相应的sequencer上获得执行。

67、 `uvm_do 和 `uvm_send 有什么区别?

`uvm_do自动地创建、随机化和发送新的对象,`uvm_send用于发送已经完成创建和随机化之后的对象

68、我们可以在UVM中自定义phase么?

可以在UVM中自定义phase,然后插入到已有的phase之间,自定义phase继承自uvm_task_phase,需要实现其中的exec_taskexec_func方法。

69、RAL backdoor和frontdoor访问有什么区别?

backdoor访问:通过RTL信号路径访问,不消耗仿真时间

frontdoor访问:通过数据总线协议访问,消耗仿真时间

70、 set_config_* 和 uvm_config_db 有什么不同?

set_config_*可以映射到相应的uvm_config_db:


set_config_int(…)=>uvm_config_db#(uvm_bitstream_t) ::set(cntxt,…)set_config_string(…)=>uvm_config_db#(string) ::set(cntxt,…)set_config_object(…)=>uvm_config_db#(uvm_object) ::set(cntxt,…)

  71、如何在component或者sequence中访问DUT中的信号?     

接口信号可以通过指向具体interface的virtual interface访问,DUT内部信号可以通过信号路径访问

72、如何调试UVM中config_db的名称或者路径不匹配的问题?

    

使用+UVM_CONFIG_DB_TRACE获得set/get信息

73、如何连接monitor和scoreboard、driver和sequencer ?

使用analysis port在connect phase连接monitor和scoreboard。driver具有一个seq_item_port,可以在agent的connect phase中连接到sequencer的seq_item_export

“SystemVerilog Downcast是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. 播客播放工具Downcast for Mac怎么用
  2. 使用spyder帮助的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

systemverilog downcast

上一篇:网站的session机制是什么呢

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》