集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4171|回复: 7

如何编写testbench测试

[复制链接]
老怪甲 该用户已被删除
老怪甲 发表于 2010-5-14 10:03:45 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2011-8-17 13:37 编辑

如何编写testbench测试

本帖子中包含更多资源

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

x
ccs 发表于 2010-6-20 14:07:33 | 显示全部楼层
复杂设计的验证,如果使用传统的initialbegin...end之间顺序的编写测试向量的话,效率很低,而且这种定向测试覆盖率可能也不会很高。解决这种低效测试平台设计的做法有以下几个:
(1)使用任务或者函数增加代码的重用性,例如:在某个协议转换模块的验证中,可以将发送数据作为一个任务封装,这样在不同的地方需要发送数据给该协议转换模块时就只只需要写一条任务调用语句即可,省去大量重复的代码编写。
(2)使用事务器或者总线功能模型。在验证系统某个功能模块设计时,一般需要完整的构建该模块实际工作的环境,此时不可能也没必要将系统其他模块也用RTL描述设计,只需要使用行为级描述与被验证模块交互的其余功能模块,而且一般只需要实现这些“虚拟”模块的总线功能即可。事务器或者BFM就是这种“虚拟”的仅用于验证的功能模块。在不同的设计中只要总线接口一致(例如:基于ARM的SoC设计一般使用的是AMBA总线)可以重用事务器或者BFM。
(3)受约束的随机测试。随机测试能够产生大量性质相同的激励,而且能快速达到很高的故障覆盖率,因此目前在早期验证中使用的越来越多。当使用随机测试覆盖率趋于稳定时,就可以考虑使用某些特殊的激励定向去覆盖随机测试无法覆盖的功能。
VerilogHDL语言历史算比较早,诞生之初一般用于数字电路的建模仿真,语言本身对设计的重用性、面向对象特性支持不是很好,而SystemVerilog考虑到目前复杂验证出现的问题,所以建议可以使用SV做复杂功能验证。
yezhutou 发表于 2010-8-7 22:16:52 | 显示全部楼层
谢谢LZ  我算是学习了
梦竹1122 发表于 2010-8-10 21:19:14 | 显示全部楼层
谢谢,正需要!
hyt0110 发表于 2010-8-10 23:50:59 | 显示全部楼层
谢谢 受益匪浅啊
zhiweiqiang33 发表于 2017-12-7 10:44:00 | 显示全部楼层
如何编写testbench测试
fpga_feixiang 发表于 2017-12-7 14:44:03 | 显示全部楼层
歇息额楼主分享~~~~~~~~~~~
原子弹 发表于 2017-12-7 22:49:02 | 显示全部楼层
谢谢分享,新手正在学习
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-19 00:08 , Processed in 0.080048 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表