SystemVerilog中hook和callback的确切定义是什么?
但是一直没见过对这两者在文字上的确切定义,特地请教一下大家,有了解的不妨介绍介绍。
谢谢!
这些都不是SV的特性, 是相关方法学的内容,如VMM等等。
确切的说是OOP的特点吧,我是特指出SV来,是为了避免和windows的hook机制混淆。
您怎么看它俩的确切定义?
hook和call_back在《systemverilog for verification》中都被明确提到了,当然,这本书写的时候用了VMM做例子,收到了很多影响
从结构上说,这两个东西的确是方法学的东西,不是systemverilog内建的东西。
好像还有什么pre_randomize和post_randomize??
我不太了解windows中hook的定义
就我的理解,hook机制是为了保证SV Testbench的可重用性,如果测试人员需要修改测试平台的功能,则不必修改平台代码,直接覆盖虚函数,调用回调函数或使用blueprint都行。这样保证了测试平台的鲁棒性。可以把hook看成测试平台开的后门
call back是hook的一种,可以覆盖原操作,但是原操作仍然执行
OOP强调的多态、封装和复用, 这些hook和callback等等都是软件的概念,说白就是
一些预留的接口,供扩展用。
楼上说的,SV的里面的randomize函数的pre_randomize和post_randomize也可以说一
种callback或者是hook, 目的在于修改随机结果,方便扩展。
pre_randomize, post_randomize这个是systemverilog吧,这个和方法学没关系
谢谢大家的讨论
不过似乎确切的定义还是没出来。。。
这个没有确定的定义吧,方法学上的一种方法,知道为什么用、怎么用就行了吧
正解,不必拘泥于语言,知道是这么回事就可以。
从来没听说过hook啊 callback是软件理论的概念
我记得在C++里,hook是callback的特例。system verilog没去仔细研究过