原创 Testbench巧解!

2010-4-21 15:51 2637 10 11 分类: FPGA/CPLD

=================================概念=========================
testbench是一种验证的手段。

首先,任何设计都是会有输入输出的。但是在软环境中没有激励输入,也不会对你设计的输出正确性进行评估。那么此时便有一种,模拟实际环境的输入激励和输出校验的一种“虚拟平台”的产生。在这个平台上你可以对你的设计从软件层面上进行分析和校验,这个就是testbench的含义。
==============================================================

======================初步认识=================================
就初学而言,testbench更像一个激励的产生器。
举例:一个ram,可能有几个input和output。分别列在下面。

clk,时钟输入
addr,地址输入
wen,写使能
data,数据输入

然后还有一个dataout的数据输出。
那么你可以写一个文件,给clk,addr,wen,data送入你预想的一些信号,然后观察q的输出,看看ram是否工作正常。那么这个文件从一定意义上可以叫做"testbench"。

联想(帮助理解):从quartus里面你仿真,你可能对着那个画图一样的东西画上输入,然后编译以后看他的输出。对吧。那么在modelsim里面,我告诉你,可以不用画图了~,你只需要按照一定规则写一个.v或者.vhd的文件,这个文件可以给你的设计提供你预想的输入。这个就是testbench的文件。然后在modelsim这个特定的软件环境下,这个软件能根据你的代码给你的设计提供输入,又可以把你设计的输出在屏幕上显示出来给你debug。那么这个时候,一个在modelsim上的testbench就完成了。

狭义的总结一下:FPGA的testbench就是一个.v(verilog)或者.vhd(vhdl)的文件。这个文件能给你的设计提供激励,并能在一些专用的软件中提供良好的debug接口。这个就是一个testbench。
==============================================================

=====================高级应用================================
关于testbench的高级应用。
刚才说了初步的testbench。其实testbench是verification(验证)中的一个手段。
验证是什么呢?举例:做鱼了,你往里面加了调料,然后再尝尝味道,这个就是验证的过程。同样你可以分成几个部分,一条鱼,好比你的设计,然后你给他一定的激励,也就是调料啦。然后你再尝一尝,看看鱼是不是达到你想要的味道了。那就是一种验证的手段,如果淡了。那么加点盐,再尝尝,这个就是反复验证。

testbench图解一下比较清楚。
=========================Testbench=============================
|             |                                  |                 |
|             |         ==================       |                 |
|  激励生成   |====》   |                 |      |    输出校验     |
|             |预想输入 |      设计       |==》  |                 |
|             |         |                 | 设计 |                 |
=================================  输出 ===================

testbench里面包含了三个东西:
1、激励生成。也就是我们刚才初级时候说的所谓的“testbench”。英文么就是simulator,这个只用来生成输出,他自己没有输入,只是按照一定的规律去给你的设计激励,激励通过设计的输入端口送到你的设计中。其余的事情不管。这里的激励,都是预先设想好的,比如根据某个协议,或者某种通信方式传递。

2、你的设计。英文可以叫做DUT:design under testbench或者DUV:design under verification。当然咯。这个是你主要目标。

3、输出校验。校验你的输出。英文叫markerboard,他所管的事情就是,接收你设计的输入,然后通过校验,找出对应的问题。然后报错,或者统计错误。等等。通俗的讲,你设计它就是把你自己解脱出来,让他来帮你找错误。他输出给你的可能就是通过打印啊,通知啊,等等方法了解你设计的正确性。

那么你有可能问了,这个东西用verilog或者VHDL能写么,modelsim里能用么?的确是可以的,有写甚至可以用c的代码通过程序接口来转换到modelsim里面来帮助验证。
========================高级应用结束==========================

最后小说两句:testbench是一个平台,帮助你从软件方面验证的。对于这个概念不需强求,等你自己的验证写多了,自然而然就会了解其中深刻的含义。先开始慢慢的写一些激励,然后再写写校验。到时候你收获的东西自然而然的能帮助你理解testbench和verification 。


-----转载

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1413281 2011-9-15 15:50

写的太好了,不顶对不起博主。

用户1582931 2010-12-7 13:58

您好,我在做一个激光测距仪,用到MAX3266跨阻放大器,但是我看过pdf文档,它的封装很小说的也不是特别清楚,想向您请教一下,先谢啦!(急用)

用户234619 2010-5-28 11:24

说得太好了!先顶,再收藏!
相关推荐阅读
用户1435818 2011-08-19 17:16
STVD在Win7安装成功!
因为用win7操作系统,一直担心stvd不能安装,今天安装,很顺利,大家可以尝试下!...
用户1435818 2011-08-17 17:39
STM8S从IAR移到STVD!
近期较忙,没有时间弄IAR的STM8了,资源太少! 换STVD+ST-Link了,近期陆续将调试过程奉上,共享! 工具三剑客! ...
用户1435818 2011-08-05 18:03
AOI系統有哪些工業應用?
A.平面顯示器製造產業:如 STN 及 TFT 基板檢查、彩色濾光片檢查(Color Filter)、ITO及空白玻璃基板檢查、PDP 電漿顯示器檢查等。B.印刷電路板製造產業:如內層板檢查、外層板檢...
用户1435818 2011-08-05 18:01
和謂AOI?
AOI 即自動化瑕疵光學檢測 (Automatic Optical Inspection)。具體來說明:透過 Line scan 或 Area CCDs 取像後,使用軟體技術去進行目標物 (Objec...
用户1435818 2011-07-20 21:50
通用表面缺陷在线检测系统
检测对象:各种材料需视觉表面检测材料生产线速度:最大1200米/分检测幅宽:任何宽度(多相机)图像精度:0.1mm-0.3mm检测内容:黑点、亮点、昆虫、污物、孔洞、破边等各类视觉缺陷最小疵点缺陷识别...
用户1435818 2011-07-20 21:47
2012机器视觉市场容量将超150亿美元
现代工业自动化技术日趋成熟,越来越多的制造企业考虑如何采用机器视觉来帮助生产线实现检查、测量和自动识别等功能,以提高效率并降低成本,从而实现生产效益最大化。机器视觉作为新兴技术被寄予厚望,被认为是自动...
我要评论
2
10
关闭 站长推荐上一条 /3 下一条