×

testbench c test

testbench(能告诉我什么是testbench吗)

admin admin 发表于2022-09-05 10:18:32 浏览140 评论0

抢沙发发表评论

本文目录

能告诉我什么是testbench吗


=================================概念===============================
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

modelsim怎么自动生成testbench


ModelSim,首先(open)打开需要仿真的模块 ,Source -》 Show Language Templates,

在显示的 Language Templates栏目中选择“Create Testbench”

软件自动弹出的“Create Testbench Wizzard”窗口中,在“work“下选择待仿真模块,按照提示走完,即自动生成。

扩展资料

主要特点

 RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;

单内核VHDL和Verilog混合仿真;

源代码模版和助手,项目管理;

集成了性能分析、波形比较、代码覆盖、数据流ChaseX、Signal Spy、虚拟对象Virtual Object、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;-test

C和Tcl/Tk接口,C调试;

对SystemC的直接支持,和HDL任意混合;

支持SystemVerilog的设计功能;

对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL;

 ASIC Sign off。可以单独或同时进行行为(behavioral)、RTL级、和门级(gate-level)的代码。


testbench与testcase有什么区别》


testbench是验证的平台,就是一口大锅,什么DUT啊,各种模型啊,各种东西都放进去。
testcase是针对某个点而特意写的代码,专门用来测试这个点的

Quartus中不能自动生成 test bench文件怎么回事


1、打开quartus ii,Tools菜单下Options项,General中EDA Tool Options,指定Modelsim的路径,比如C:\altera\11.0\modelsim_ae\win32aloem,或者C:\altera\Modelsimse10.0b\win64
2、设计好quartus下的工程后,Processing菜单栏下Start项右侧展开选择“Start TestBench Templates Writer”,就会创建一个testbench的模版。在此基础上修改你所需要的testbench
3、testbench设计完后,Assignments菜单下Setting项,左侧栏中找到EDA Tool Settings下的Simulation,在右侧Simulation的设置框中,选择Tool name,到“More EDA Netlist Writer Settings”中,选择“Compile test bench,点击右侧的“Test Benches”,”New“,把testbench文件的module名填入top level项(11.0下;9.0下三项都要补齐,第三项是例化名)。在下面的“Test bench files”中指定你的testbench,模板文件默认是在simulation--modelsim中,后缀是.vt,“Add”进来,一路OK。
4、仿真时,“Tools”菜单下“Run EDA Simulation Tool”右侧展开,第一个为功能仿真,第二个为时序仿真。
-c

关于Quartus中的test bench的问题


1、打开quartus ii,Tools菜单下Options项,General中EDA Tool Options,指定Modelsim的路径,比如C:\altera\11.0\modelsim_ae\win32aloem,或者C:\altera\Modelsimse10.0b\win64
2、设计好quartus下的工程后,Processing菜单栏下Start项右侧展开选择“Start TestBench Templates Writer”,就会创建一个testbench的模版。在此基础上修改你所需要的testbench
3、testbench设计完后,Assignments菜单下Setting项,左侧栏中找到EDA Tool Settings下的Simulation,在右侧Simulation的设置框中,选择Tool name,到“More EDA Netlist Writer Settings”中,选择“Compile test bench,点击右侧的“Test Benches”,”New“,把testbench文件的module名填入top level项(11.0下;9.0下三项都要补齐,第三项是例化名)。在下面的“Test bench files”中指定你的testbench,模板文件默认是在simulation--modelsim中,后缀是.vt,“Add”进来,一路OK。
4、仿真时,“Tools”菜单下“Run EDA Simulation Tool”右侧展开,第一个为功能仿真,第二个为时序仿真。
-c

Verilog键盘扫描程序的testbench怎么写


modulemul3_testbench;//定义一个没有输入输出端口的测试平台rega2,a1,a0,b2,b1,b0;//被测模块的input端口,改为对应的reg寄存器做输入信号wirep5,p4,p3,p2,p1,p0;//被测模块的output端口,改为对应的wire型initialbegin//初始化所有输入信号的寄存器值a2=0;a1=0;a0=0;b2=0;b1=0;b0=0;#50//一般延迟较长时间后,应该使复位信号不复位系统正常工作,但你没有复位信号end//初始化模块结束后一般时序电路仿真是产生时钟信号,//这是纯组合逻辑没有时钟信号就省略了//然后就可以根据你所需要验证的功能在此位置编写initial块或always块给reg型//的输入信号赋值的相关逻辑,观察wire型输入信号的值//---------------------------调用被测对象,格式如一般元件调用-------------------mul3DUT(.a2(a2),.a1(a2),.a0(a0),.b2(b2),.b1(b2),.b0(b0),.p5(p5),.p4(p4),.p3(p3),.p2(p2),.p1(p1),.p0(p0));endmodule//最后的提示,你的程序里定义了整数型变量,其实是不好的用法,甚至不能被正确综合,//可以用等值的reg型变量来替代,即使你定义成整数型,实际上也是被综合成reg型的,//另外,一般可综合代码中最好不要用for语句,个人认为你的代码会完全功能不正常的
-c

如何编写 test bench来仿真VHDL程序


本文介绍如何写testbench来仿真VHDL程序。 通常testbench完成如下的任务:1. 实例化需要测试的设计(DUT);2. 通过对DUT模型加载测试向量来仿真设计;3. 将输出结果到终端或波形窗口中加以视觉检视;4. 另外,将实际结果和预期结果进行比较。 一、构建Testbench 本文用VHDL来写,由于testbench只用来进行仿真,它们没有那些适用于综合的RTL语言子集的语法约束限制,而是所有的行为结构都可以使用。所有testbench包含了以下的基本程序段:Entity and Architecture Declaration ;Signal Declaration ;Instantiation of Top-level Design ;Provide Stimulus. 在ISE工程中添加source:VHDL Test Bench到顶层文件,在source for 选项中选择Behavioral Simulation。你会发现Test Bench中有很多已经自动写好,可根据自己的设计需要改写程序。其中Entity是空的,由于是仿真,不必有管脚的输入输出,只要写好激励信号就可以了。 二、双击Simulate Behavioral Model进行Modelsim仿真 我们在modelsim仿真的过程中,如果想改写激励程序,点击environment back(图中向左的箭头),回到激励程序的编写环境。可以利用其提供的模板直接改写testbench,点source-》show language template,需要将read only取消掉,否则无法改写。本人建议,在这个环境中可以看到模板,你可以根据需要将相应的语句拷到VHDL Testbench中去。 这里只是简单介绍如何用test bench来仿真VHDL程序,其中各种激励信号的编写、时序的安排要依靠设计的需要,这些只能靠平时不断的积累。 这里介绍的是从ISE中直接调用modelsim进行仿真,因此关于ISE和modelsim的关联也是大家经常遇到的问题。这个下次再总结。
-test

quartus13.0中自带的波形仿真和用modelsim仿真有什么区别,然后还有testbench到底是什么


quartus13.0中自带的波形仿真和用modelsim仿真区别为:实现不同、创建测试平台不同、编译仿真速度不同。

一、实现不同

1、quartus13.0中自带的波形仿真:quartus13.0中自带的波形仿真可以直接实现波形仿真。

2、modelsim仿真:modelsim仿真只能通过建立.vwf波形文件的形式完成仿真。

二、创建测试平台不同

1、quartus13.0中自带的波形仿真:quartus13.0中自带的波形仿真可以自动地从QuartusII仿真器波形文件中创建完整的HDL测试平台。

2、modelsim仿真:modelsim仿真不可以自动对波形文件中创建完整的HDL测试平台。

三、编译仿真速度不同

1、quartus13.0中自带的波形仿真:quartus13.0中自带的波形仿真的编译仿真速度非常慢。

2、modelsim仿真:modelsim仿真采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快。

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