首页 百科知识 总线功能模型()

总线功能模型()

时间:2022-10-16 百科知识 版权反馈
【摘要】:BFM重用的目的就是在不改变已存在的被证明为有效的复杂代码的前提下,使用该代码,以提高效率。在该例中,基于模块的BFM替换了基于类的驱动组件,并介绍BFM与验证平台激励产生器通信的一个基于类的BFM封装接口。常规情况下,BFM由一系列Verilog任务组成并封装于模块中,而每个任务均完成一个特定行为,驱动非流水线型总线的管脚级信号,使其满足总线协议规定的控制和时序要求。而类bfm_xref例化于接口中,该接口最终被传入BFM封装接口。

9.3 总线功能模型(BFM)

BFM重用的目的就是在不改变已存在的被证明为有效的复杂代码的前提下,使用该代码,以提高效率。modules in testbenches的第二个例子就是为了说明如何在一个带有多个AVM基于类的验证组件的验证平台中集成一个现已存在的基于模块的BFM。在该例中,基于模块的BFM替换了基于类的驱动组件(图9-5中使用),并介绍BFM与验证平台激励产生器通信的一个基于类的BFM封装接口。完整架构如图9-8所示。

img274

图9-8 带有基于模块的BFM的验证平台

基于模块的BFM验证平台的集成

常规情况下,BFM由一系列Verilog任务组成并封装于模块中,而每个任务均完成一个特定行为(如总线读或写),驱动非流水线型总线的管脚级信号,使其满足总线协议规定的控制和时序要求。

在该BFM例子中,将介绍一个基于类的BFM封装接口(如图9-8所示),它从激励产生器接收事务流并翻译它的类型(如读或写),然后调用BFM的一个相应任务完成总线的管脚级行为。回想本例的目的是在AVM验证平台中无改变地直接重用一个已存在的基于模块的BFM,而基于类的BFM封装接口却需访问基于模块的BFM中的相应任务,以驱动总线。为了不在基于模块的BFM中引入新接口时,构造类bfm_xref实现基于模块的BFM和基于类的转换模块之间的绑定机制。而类bfm_xref例化于接口中,该接口最终被传入BFM封装接口。

img275

上述技术让我们把基于模块的BFM任务的层次引用与基于类的BFM封装接口的实现相隔离。

基于类的BFM封装接口通过接口的bfm_xref类访问基于模块的BFM中任务的方式,如下述代码所示。

img276

bfm_write任务在基于模块的BFM中定义,在基于类的BFM封装接口中调用,为保证代码完整性,将其描述如下:

img277

img278

最后,下述代码描述了在基于模块的BFM中定义,在基于类的BFM接口中调用的bfm_read任务。

img279

img280

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈