当前位置:   article > 正文

system verilog编程题_SystemVerilog面试题(1-107)

systemverilog 面试题

1、什么是callback?

callback(回调)是一种在不更改实际代码的条件下更改为验证组件(例如driver,generator或monitor)行为的机制

class abc_transactor;virtual taskpre_send();endtaskvirtual taskpost_send();endtasktask xyz();this.pre_send();this.post_send();endtask : xyzendclass :abc_transactorclass my_abc_transactor extend abc_transactor;virtual taskpre_send();... //This function is implemented hereendtaskvirtual taskpost_send();... //This function is implemented hereendtaskendclass :my_abc_transactor

在上面的例子中,基类abc_transactor具有3个tasks,其中2个被声明为virtual task并且没有具体实现。另一个已完全实现xyz() task会调用这两个virtual task。

未实现的virtual task称为callback taskes(回调任务)。从基类abc_transactor扩展的子类my_abc_transactor将实现先前未实现的pre_send() task和post_send() task,无需更改xyz() task的代码。

通过这种方式,我们可以将可执行代码注入到函数xyz()task中,而无需对其进行修改。

例如你正在编写将被多个测试环境使用的基类,并且对于每个测试环境,基类中的某些task代码将发生变化,这时就可以将该task/function实现为callback method(回调方法)。</

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/938623
推荐阅读
相关标签
  

闽ICP备14008679号