在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 13307|回复: 28

对于复杂逻辑电路,如何书写高效率的testbench?

[复制链接]
发表于 2007-10-15 16:10:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
各位大侠,对于复杂逻辑电路,如何书写高效率的testbench啊?
比如说电路的测试向量非常多,为了能够快速而全面的对设计进行验证,写testbench的时候应该掌握什么样的原则呢?
发表于 2007-10-16 10:29:10 | 显示全部楼层
同问  高手指点一下
发表于 2007-10-16 19:49:25 | 显示全部楼层
复杂设计的验证,如果使用传统的initialbegin...end之间顺序的编写测试向量的话,效率很低,而且这种定向测试覆盖率可能也不会很高。解决这种低效测试平台设计的做法有以下几个:
(1)使用任务或者函数增加代码的重用性,例如:在某个协议转换模块的验证中,可以将发送数据作为一个任务封装,这样在不同的地方需要发送数据给该协议转换模块时就只只需要写一条任务调用语句即可,省去大量重复的代码编写。
(2)使用事务器或者总线功能模型。在验证系统某个功能模块设计时,一般需要完整的构建该模块实际工作的环境,此时不可能也没必要将系统其他模块也用RTL描述设计,只需要使用行为级描述与被验证模块交互的其余功能模块,而且一般只需要实现这些“虚拟”模块的总线功能即可。事务器或者BFM就是这种“虚拟”的仅用于验证的功能模块。在不同的设计中只要总线接口一致(例如:基于ARM的SoC设计一般使用的是AMBA总线)可以重用事务器或者BFM。
(3)受约束的随机测试。随机测试能够产生大量性质相同的激励,而且能快速达到很高的故障覆盖率,因此目前在早期验证中使用的越来越多。当使用随机测试覆盖率趋于稳定时,就可以考虑使用某些特殊的激励定向去覆盖随机测试无法覆盖的功能。
VerilogHDL语言历史算比较早,诞生之初一般用于数字电路的建模仿真,语言本身对设计的重用性、面向对象特性支持不是很好,而SystemVerilog考虑到目前复杂验证出现的问题,所以建议可以使用SV做复杂功能验证。

[ 本帖最后由 karnizhu 于 2007-10-17 11:29 编辑 ]
发表于 2007-10-16 21:11:28 | 显示全部楼层
写的相当不错,晚上回去找你讨教下,目前我正看这个,看郁闷了!
发表于 2007-10-17 10:46:22 | 显示全部楼层

建议

tsetbench 是模拟激励信号,因此并不要求太规范
想用verilog写tenchbench,基本上就像写C语言一样。
激励可以在程序中产生,但大型的仿真通常是由C语言写的仿真器输出激励信号,然后tnechbench将文本中的激励信号读入,
然后再输入到被仿真unit的接口。
我写过大量仿真tenchbench,需要参考的可以将email告诉我,发给你参考
发表于 2008-5-20 11:44:53 | 显示全部楼层
楼上那位,你的email地址呢?
发表于 2008-6-5 11:57:13 | 显示全部楼层
可以写成层次化的testbench  推荐你看一本英文书 如何写testbench
发表于 2010-5-5 18:23:48 | 显示全部楼层
老兄 你好  我现在正在做基于ahb总线的存储模块的测试  我的邮箱是szg1902@163.com  希望能得到你的指点和帮助  不尽感激
发表于 2010-5-6 13:31:56 | 显示全部楼层
老兄,我现在是做的i2cslave的testbench,先没有写master,希望帮我一下,邮箱是bandit2009@126.com
发表于 2010-5-6 15:24:09 | 显示全部楼层
帖子别沉了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 23:54 , Processed in 0.028475 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表