IC验证面试中常问知识点总结(八)附带详细回答!!!

16、 callback机制

16.1 callback机制有什么用?

程序的设计者有时不是程序的使用者,所以作为程序的使用者来说,总是希望程序的设计者能够提供一些接口来满足自己的应用需求。作为这两者之间的一个协调,callback机制出现了。
第一,callback机制可以提高验证平台的可重用性。比如有时候希望在一个项目中开发的验证平台能够用于另外一个项目。但是由于两个不同的项目之间或多或少会有一些差异,完全的重用是比较难实现。所以可以把两个项目不同的地方使用callback函数来做,而把相同的地方写成一个完整的env,这样重用时,只要改变相关的callback函数,env可完全的重用。
第二,callback机制还用于构建异常的测试用例。在UVM中,构建异常的测试用例有很多种方式,如factory机制的重载,callback机制只是其中的一种。在没有factory机制的重载功能之前,使用callback函数构建异常测试用例是最好的实现方式。
第三,在不创建复杂的OOP层次结构前提下,针对组件中的某些行为,在其之前后之后,内置一些函数,增加或者修改UVM组件的操作,增加新的功能,从而实现一个环境多个用例

16.2 UVM中有哪些广义上的回调函数?

post_randomize函数是SystemVerilog提供的广义的callback函数。UVM也为用户提供了广义的callback函数/任务:pre_body和post_body,除此之外还有pre_do、mid_do和post_do。

16.3 回调函数如何使用?

1.声明一个UVM callback空壳类
1).通常都声明在同一个组件文件中;2).所有的方法都声明为virtual,函数体为空;
2.在组件中的主操作函数或任务之前或者之后嵌入Callback函数
1). 使用宏uvm_register_cb在组件中登记UVM_ca

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Francis7777777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值