【个人经验】关于BFM
2009-12-02 11:59
211 查看
最近看到论坛上关于BFM的话题,有求助的,也有答复的,因此,想对此谈一些个人的理解,欢迎讨论。
说到BFM,就不得不提验证,只有在验证前提下说bfm才有意义。
我们知道,验证就是送激励给DUV(design under verification),然后对DUV输出的信号(或内部信号)进行分析。根据这一句话,我们可以知道数据流大概是下面的样子:
“激励产生”-》“送激励”-》DUV-》“接收信号”-》“分析信号”
那么,BFM就是“送激励”和“接收信号”。在上面的数据流中,带有时序的部分,就是DUV和“送激励”、“接收信号”三部分。说白了,BFM,最大特点就是带有时序的模块,1拍1拍的把数据送给DUV,或者1拍1拍的把数据从DUV接收下来。BFM分为发送bfm和接收bfm。
对于发送bfm,将产生好的激励,在时钟控制下送给DUV,这里的激励,是通过没有时钟的模块产生的,用verilog,c,都可以。
对于接收bfm,将来自DUV的数据事先存在一个大的memory或者reg中,然后在某个时刻触发分析数据的事件,调用“分析信号”模块,从而达到分析DUV输出数据的目的。
“激励产生”和“分析信号”都是不带时序的,如果用verilog语言来写,最大的特点就是要用许多task来完成。“分析信号”也是类似的。
如果要详细了解的话,推荐学习《wrigting testbench》就可以了。
说到BFM,就不得不提验证,只有在验证前提下说bfm才有意义。
我们知道,验证就是送激励给DUV(design under verification),然后对DUV输出的信号(或内部信号)进行分析。根据这一句话,我们可以知道数据流大概是下面的样子:
“激励产生”-》“送激励”-》DUV-》“接收信号”-》“分析信号”
那么,BFM就是“送激励”和“接收信号”。在上面的数据流中,带有时序的部分,就是DUV和“送激励”、“接收信号”三部分。说白了,BFM,最大特点就是带有时序的模块,1拍1拍的把数据送给DUV,或者1拍1拍的把数据从DUV接收下来。BFM分为发送bfm和接收bfm。
对于发送bfm,将产生好的激励,在时钟控制下送给DUV,这里的激励,是通过没有时钟的模块产生的,用verilog,c,都可以。
对于接收bfm,将来自DUV的数据事先存在一个大的memory或者reg中,然后在某个时刻触发分析数据的事件,调用“分析信号”模块,从而达到分析DUV输出数据的目的。
“激励产生”和“分析信号”都是不带时序的,如果用verilog语言来写,最大的特点就是要用许多task来完成。“分析信号”也是类似的。
如果要详细了解的话,推荐学习《wrigting testbench》就可以了。
相关文章推荐
- 关于职业方向规划的个人经验
- 关于Keychain Sharing的一些个人经验
- 一些关于加速Gradle构建的个人经验
- 关于cloudstack 个人使用的一些经验记录
- 关于大型页游后端管理系统的一点经验和个人见解
- 关于C#报表设计中的一点个人经验(winform),本篇文章是借鉴别人的。。。。用于收藏
- 个人总结--关于学习过程中的一些经验心得分享
- 关于github使用的个人经验
- 关于推广个人博客的经验_博客推广
- 关于在android项目中使用fragment的个人经验
- 关于android游戏开发的一些基础和个人经验
- 关于大型页游后端管理系统的一点经验和个人见解
- 关于line-height的一些个人经验整理
- 谈谈关于客户端接口的个人经验
- 个人小经验 ---关于PCB板设计1
- 关于项目管理的个人经验总结
- 开发者:关于Admob的个人经验总结
- 关于在android项目中使用fragment的个人经验
- 关于connect by 误区讲解,纯属个人心得和经验,有图有文字
- 关于如何使用动态域名在个人电脑搭建个人网站的几点经验