Callback有什么用

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

创新互联是一家专业提供余姚企业网站建设,专注与成都网站设计、做网站、H5建站、小程序制作等业务。10年已为余姚众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

Systemverilog中的callback指定了一个被调用的callback method,和一个调用callback method的callback hook

callback method一般是dummy method,可以通过继承来覆盖。

temp()方法就是callback hook,callback_1()和callback_2()方法是callback method。在用戶调用temp()方法的时候,callback_1()和 callback_2()方法会自动调用,用戶也可以通过继承来覆盖callbackmethod。

在SV中最常用到的callback hook就是randomize()方法,它带有两个callback method:pre_randomize()post_randomize(),这两个方法分別在randomize()方法的前后执行.

Callback是在不改变验证组件(driver、monitor、generator)代码的条件下改变验证组件行为的一种机制。

可以用来

Inject errorsPut the transaction in the scoreboardGather functional coverage data

 基类:

class transactor;        virtual task pre_send();        endtask        virtual task post_send();        endtask        task send();                this.pre_send();                this.post_send();        endtask : sendendclass : transactor

 子类:

class my_transactor extend transactor;        virtual task pre_send();                ... //This function is implemented here        endtask        virtual task post_send();                ... //This function is implemented here           endtaskendclass : my_transactor

基类transactor具有3个task,其中2个被声明为virtual task且没有任何行为,然后被另一个task send调用。

virtual task pre_send()和post_send()称为callback taskes。

这样,我们可以通过更改继承自基类transactor的子类my_ transactor中的callback taskes来更改transactor中task send的行为,而无需修改其代码。

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

文章标题:Callback有什么用
当前地址:/article0/pgdpoo.html

成都网站建设公司_创新互联,为您提供手机网站建设App设计软件开发网站排名网站营销做网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营