原创 为什么要写testbench?

2010-7-29 23:33 6365 9 11 分类: FPGA/CPLD
我们为什么要写testbench?


经常看到论坛里有人问我们为什么要写testbench,总是觉得不好回答,下面是整理出来的一些理由供大家参考。
与写testbench相对应的功能手段还有画波形图,两者相比,画波形图的方法更加直观和易于入门,那为什么我们还要写Testbench呢?原因有以下五点:
第一,画波形图只能提供极低的功能覆盖。
    画波形无法产生复杂的激励,因此它只产生极其有限的输入,从而只能对电路的极少数功能进行测试;而testbench以语言的方式描述激励源,容易进行高层次的抽象,可以产生各种激励源,轻松地实现远高于画波形图所能提供的功能覆盖率。以PCI转以太网电路设计为例,该设计并不复杂,但却已经需要考虑多种情况:PCI配置读写、存储器读写等操作;以太网的短包、长包等。如果这些激励都用画波形图完成,其工作量是难以想象的;用testbench则可以轻松完成这些工作。
第二,画波形无法实现验证自动化。
    对于规模设计来说,仿真时间很长,如果一个需要仿真一天设计在检错时仅通过画波形图来观测,将几乎不能检查出任何错误;而testbench是以语言的方式进行描述的,能够很方便地实现对仿真结果的自动比较,并以文字的方式报告仿真结果。我们甚至可以在下班时开始仿真,然后第二天早上上班时再查看验证结果。
第三,画波形图难于定位错误。
    用画波形图进行仿真是一种原始的墨盒验证法,无法使用新的验证技术;而testbench可以通过在内部设置观测点,或者使用断言等技术,快速地定位问题。
第四,画波形的可重用性和平台移植性极差。
    如果将一个PCI100Mb以太网的设计升级到PCI1000Mb以太网,这时原来画的波形图将不得不重新设计,耗费大量的人力物力及时间;但若使用testbench,只需要进行一些小的修改就可以完成一个新的测试平台,极大地提高了验证效率。
第五,通过画波形的验证速度极慢。
    Testbench的仿真速度比画波形图的方式快几个数量级,在Quartus下画波形需半个小时才能跑出来的仿真结果,在ModelSim下使用testbench可能只需几秒钟就可以完成。
    所以,在设计中除了那些极简单的设计(如调用厂商提供的MegaCore),推荐通过写testbench的方法来做功能验证。

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户284189 2010-8-1 20:11

很好的想法哦

用户284151 2010-8-1 16:45

试了一下 不错 ~
相关推荐阅读
用户237991 2010-08-11 09:48
ZRtech调试报告--基于FPGA的实时成像系统(1)任务
最近在做一个基于FPGA的实时成像系统由于功能比较单一,即只需要基本的成像与显示调节,没有涉及到机器视觉方面,所以只用了单FPGA(EP3C55F484)的方案,并且全部采用逻辑实现,这个硬件电路不是...
用户237991 2010-08-03 09:44
VHDL 可综合设计经验
VHDL作为一种硬件描述和仿真语言,最终要实现的是实际硬件电路;为了得到可综合的有效设计,通常在编程时要注意以下几点: 1.命名约定在大多数设计中,常常会忽视建立、采用一种良好的命名约定。拥有好的命名...
用户237991 2010-07-31 16:27
modelsim的快捷键~
1. 波形窗口(Wave)    鼠标操作:        Ctrl+鼠标左键从左上向右下拖拉:放大(选中区域)        Ctrl+鼠标左键从左下向右上拖拉:缩小        Ctrl+鼠标左...
用户237991 2010-07-20 20:14
Altera产品命名规则
ALTERA产品型号命名XXX XX XX  X XX  X  X1     2    3   4   5    6  7 工艺 + 型号 + LE数量 + 封装 + 管脚数目+ 温度范围 + 器件速...
用户237991 2010-07-20 16:53
FPGA中竞争冒险问题的研究
1 引言     现场可编程门阵列(FPGA)在结构上由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块,来实现一定的逻辑功能。 FPGA可以替代其他PLD或者各种中小规模数字逻辑芯片在数字系...
EE直播间
更多
我要评论
2
9
关闭 站长推荐上一条 /3 下一条