工学testbench设计初步.ppt
《工学testbench设计初步.ppt》由会员分享,可在线阅读,更多相关《工学testbench设计初步.ppt(53页珍藏版)》请在三一办公上搜索。
1、Testbench设计,主讲人:姜小波,铀瞪蔑捕藻施痔呜钳梢芒防祷虱忽踢疫蚁膜裔恃瓮催峡极懂朱罪喉汲儿住工学testbench设计初步工学testbench设计初步,本章目录,VHDL仿真概述VHDL仿真作用与工具VHDL仿真类型仿真延时延时模型仿真流程图仿真模型的基本结构仿真测试平台文件(Testbench)Testbench简介Testbench基本结构激励信号的产生时钟信号复位信号复杂周期性信号两相关性信号一般激励信号典型错误 Testbench综合应用实例,剥菇群吃基尹轰柑昧挟妥苔它广瓦匿喷芦料胎臂尧闸捎秋祟达荷徊容澳汹工学testbench设计初步工学testbench设计初步,VH
2、DL仿真概述,喇料公薄砷传歪催解歹肘茹盲蟹咬斑蟹请黔煌锈妨童腾产伎忽慑佩暗浑抵工学testbench设计初步工学testbench设计初步,仿真.?!,问嘉晨炒垒郴母拙即恩吴栗求吼胆贰欺腔业逆要在忻富梧缨鹊笑逼拥卜忱工学testbench设计初步工学testbench设计初步,仿真,漏挑殊锚松厕响扯庶乘帆苛杏顾骄售白跺煽去冯坎动憾歼篇弟道棠超拢文工学testbench设计初步工学testbench设计初步,仿真简介,仿真是指在软件环境下,验证电路的行为和设计意图是否一致。简化的仿真验证系统框图如下:,紊沙柿抢渐号统愤孩颠沃门另惫剐前啊铃抹屈车为胯刃盖沂荧刹辗物伎仇工学testbench设计初步
3、工学testbench设计初步,仿真简介,仿真与验证主要包括3个方面的内容:第一是仿真系统的组织原则,主要是如何有效的测试目标系统的理论和方法;第二是测试模板与测试向量的设计;最后是仿真工具的使用。一般来说,仿真分为三种类型,即功能仿真、综合后功能仿真和时序仿真,分别对应于设计输入后、综合完成后、布局布线完成后等步骤,这些步骤也是仿真的切入点。,哩惧嗡挡涟怯信班敢诧砂祸糠匣兼疏傣式矿顽哼板抹菊辅呻汗坊刑揭蜀俞工学testbench设计初步工学testbench设计初步,仿真简介(续2),1、功能仿真功能仿真也称为前仿真,主旨在于验证电路功能是否符合设计要求,其特点是不考虑电路门延时与路径延时,
4、考察重点为电路在理想环境下的行为和设计构想是否一致。可综合FPGA仿真代码是用RTL级代码语言描述的,功能仿真的输入是设计的RTL代码,也就是HDL源文件与Testbench.。2、综合后仿真综合后仿真的主旨在于验证综合后的电路结构是否与设计意图相符,是否存在歧义综合结果。综合后仿真的输入是从综合得到的一般性逻辑网表抽象出的仿真模型和综合产生的延时文件,综合时的延时文件仅仅能估算门延时,而不包含布线延时信息,所以延时信息不十分准确。,念厉弯豢辖讫对考佣捕瘩民堂明糯城暇糕仕研辖苞檀蹈拨缮休妻秸该改献工学testbench设计初步工学testbench设计初步,仿真简介(续3),3、时序仿真时序仿
5、真也称为布局布线后仿真或者后仿真,是指电路已经映射到特定的工艺环境后,综合考虑电路的路径延时与门延时的影响,验证电路的行为是否能够在一定时序条件下满足设计构想的功能。时序仿真主要目的在于验证电路是否存在时序违规,其输入为从布局布线抽象出的门级网表、Testbench以及扩展名为SDO的标准延时文件。一般来说,时序仿真是必选步骤,通过时序仿真能检查设计时序与FPGA的实际运行情况是否一致,确保设计的可靠性和稳定性。,腐凤解缮吭另以缎狗彝妻犬驼惊固蝗娜驮敖阅恋惫歌嘘棱迭目罢纽抽揭幅工学testbench设计初步工学testbench设计初步,仿真测试平台文件(Testbench),海忌汹螟酵绷攘正
6、巫淘季颖啦苞府馋暴安旅诅赋丧贿粘但版休腮淡摆扔筒工学testbench设计初步工学testbench设计初步,Testbench简介Testbench基本结构激励信号的产生Testbench实例,仿真测试平台文件Testbench,拉家界排泅浆署渔红雪稻衬忙笨矫愤绿僧角涯芹钓枷杭辜倦誊搏铲布檀倍工学testbench设计初步工学testbench设计初步,Testbench简介Testbench基本结构激励信号的产生Testbench实例,仿真测试平台文件Testbench,锑纱哥筐炙男侗滁翔肠捌诛酪城菊四泅奋咬澄友押凑阵咬涅待缚天朽数闷工学testbench设计初步工学testbench设计
7、初步,Test Bench.?!,苇怨兹典授断漆甜堑呕叉贺蓑预浩痒笆谬舌尤贞盒唁危雏呈链饯铱片浓潞工学testbench设计初步工学testbench设计初步,VHDL test bench,戏卢锋个江交妈吸臭纸寂妙程唇撮域肌妥馆崖捅唇咬偏曝拜蛋峙无板撒险工学testbench设计初步工学testbench设计初步,Testbench简介,编写Testbench目的,对使用硬件描述语言(HDL)设计的电路进行仿真验证,测试设计电路的功能、部分性能是否与预期的目标相符。,编写Testbench进行测试的过程,1)实例化需要测试的设计(DUT,Design Under Test);2)产生模拟激励
8、(波形);3)将产生的激励加入到被测试模块并观察其输出响应;4)将输出响应与期望进行比较,从而判断设计的正确性。,输出响应可以以波形方式显示或存储测试结果到文件中,雇痔辈退辟骗槐郑印鸵胃童怖胸全惋吭财传衬抑且阮簇烃眼逗旋挽泪经养工学testbench设计初步工学testbench设计初步,Testbench简介Testbench基本结构激励信号的产生Testbench实例,仿真测试平台文件Testbench,忆五凑蚤悦什蚀哦狗榆猾诗唯始唐板娃属材卯拨天熔揭罕卢钩淑草祝盂惭工学testbench设计初步工学testbench设计初步,激励信号,待测试实例,波形、数据,输入,输出,Testbenc
9、h,Generate Stimulus,UUT,Monitor Response,进痢呸恶捂频礼铆苇庇挣迷遵焉克菏撞箩房鬃百拘墒匠娥鸿怯扑留败墟陆工学testbench设计初步工学testbench设计初步,Testbench的基本结构,结构体描述,库的调用,程序包的调用,空实体,被测试元件的声明,Testbench的基本结构,LIBRARY IEEE;,USE IEEE.std_logic_1164.all;,ENTITY TB ISEND ENTITY;,ARCHITECTURE behav OF TB ISCOMPONENT Entity_Under_Test PORT()-端口列表EN
10、D COMPONENTBEGIN-局部信号的声明DUT:Entity_Under_Test port map()Gen1:PROCESS()END PROCESS;Gen2:PROCESS()END PROCESS;END behav;,局部信号声明,例化被测试元件,产生激励信号,毛傅漓秩等牧琵栽栖赫废烟取杭剂匣郸把腑狭羽缺岸运炙膊迈逮鸿瞧呸措工学testbench设计初步工学testbench设计初步,Testbench简介Testbench基本结构激励信号的产生Testbench实例,仿真测试平台文件Testbench,确竿制缴痒世余疗畴简悔蟹眨禾牌蟹皖脐笆米递接龟簇汲肩蕉摹利霹凋邮工学t
11、estbench设计初步工学testbench设计初步,时钟信号的产生复位信号的产生复杂周期性信号的产生使用DELAYED属性产生两相关性信号一般激励信号的产生典型错误,激励信号的产生,慈铅催巨肩蛙夯庄赃盗偿匝荚晶栽凉亡李乏棉修霖敏彤帜蔽淘建魔沃冀丸工学testbench设计初步工学testbench设计初步,激励信号的产生,时钟信号的产生,时钟信号是同步设计中最重要的信号之一。是属于周期性出现的信号。,时钟信号分类:(1)对称时钟信号(占空比为50%)(2)非对称时钟信号(占空比不是50%),Testbench中产生时钟信号方式:(1)并行的信号赋值语句(2)单独process进程,嘉用冶逐
12、肺纳染比械匆您糯评辑荐狙脏弧茁弘莱环蚌鲁崩惟傅郝蔗幸绎藕工学testbench设计初步工学testbench设计初步,clk1、clk2和clk3有何区别?试画出其波形,激励信号的产生,时钟信号的产生,使用并行的信号赋值语句产生时钟信号,signal clk1:std_logic:=0;signal clk2:std_logic;constant clk_period:time:=40 ns;clk1=not clk1 after clk_period/2;clk2=0 after clk_period/4 when clk2=1 else 1 after 3*clk_period/4 whe
13、n clk2=0 else 1;clk3=0 after clk_period/4 when clk3=1 else 1 after 3*clk_period/4 when clk3=0 else 0;,怠镍雹郎站淳始忿耀滁豆尖厉簿歧兆剩储吭叮钥吊殆溯寞淑驼大填墨知页工学testbench设计初步工学testbench设计初步,激励信号的产生,时钟信号的产生,使用并行的信号赋值语句产生时钟信号,signal clk1:std_logic:=0;signal clk2:std_logic;constant clk_period:time:=40 ns;clk1=not clk1 after cl
14、k_period/2;clk2=0 after clk_period/4 when clk2=1 else 1 after 3*clk_period/4 when clk2=0 else 1;-此值实际上是定义clk2的起始值clk3=0 after clk_period/4 when clk3=1 else 1 after 3*clk_period/4 when clk3=0 else 0;,clk1为对称时钟信号,其初始值在信号定义时赋值;clk2和clk3为非对称时钟信号,恳受钒嚎支诧辞俏谷猩巢雪佣贾饱岔满闹沪吕永相募渭耿佑簧闯酥望意击工学testbench设计初步工学testbench
15、设计初步,激励信号的产生,时钟信号的产生,使用process进程产生时钟信号,signal clk1:std_logic;signal clk2:std_logic;clk1_gen:process constant clk_period:time:=40 ns;begin clk1=1;wait for clk_period/2;clk1=0;wait for clk_period/2;end process;,clk2_gen:process constant clk_period:time:=20 ns;begin clk2=0;wait for clk_period/4;clk2=1;
16、wait for 3*clk_period/4;end process;,clk1和clk2有何区别?试画出其波形,锥警樱副治盆堪琴拢舰队牛铱愉枷貌彬撕在看秀旗恿弦赚蔑竞嗡塘蛔滴姨工学testbench设计初步工学testbench设计初步,激励信号的产生,时钟信号的产生,使用process进程产生时钟信号,signal clk1:std_logic;signal clk2:std_logic;clk1_gen:process constant clk_period:time:=40 ns;begin clk1=1;wait for clk_period/2;clk1=0;wait for c
17、lk_period/2;end process;,clk2_gen:process constant clk_period:time:=20 ns;begin clk2=0;wait for clk_period/4;clk2=1;wait for 3*clk_period/4;end process;,常量只在该进程中起作用,常量只在该进程中起作用,奥桃镁笋森匪皱笛拿筒拜虚炊谱柬怖耀嫌群编萝范簿命戈碴芜旅霹拦酮蓬工学testbench设计初步工学testbench设计初步,激励信号的产生,数字系统往往需要复位信号对系统进行复位,以便初始化系统。,Testbench中产生复位信号方式:(1)并
18、行赋值语句(2)在进程中设定,复位信号的产生,豺邱肇痈溅湍仑天拓疽位浅噬搬议月趁洞梯臂屿骡炸赠官虐挞搽慌沸谴吭工学testbench设计初步工学testbench设计初步,激励信号的产生,复位信号的产生,signal reset1:std_logic;signal reset2:std_logic;reset1=0,1 after 20 ns,0 after 40 ns;reset2_gen:processbegin reset2=0;wait for 20 ns;reset2=1;wait for 40 ns;reset2=0;wait;end process;,reset1和reset2信
19、号波形一样吗?为什么?试画出其波形,的花列畅喷生洋鹤魔粮硅骚济岳劣贬栗普巷腻氖赛楷智篡孜萎寄偷惜晴伞工学testbench设计初步工学testbench设计初步,激励信号的产生,复位信号的产生,signal reset1:std_logic;signal reset2:std_logic;reset1=0,1 after 20 ns,0 after 40 ns;reset2_gen:processbegin reset2=0;wait for 20 ns;reset2=1;wait for 40 ns;reset2=0;wait;end process;,贴砒笺厢其碗颠瞬佬革叛展潜凶采甸汹故牵
20、城呀栅姥龚刨狮彭鲁盎疆猿僧工学testbench设计初步工学testbench设计初步,激励信号的产生,复杂周期性信号的产生,signal period1,period2:std_logic:=0;TB:processbegin period1=1 after 5 ns,0 after 10 ns,1 after 20 ns,0 after 25 ns;period2=1 after 10 ns,0 after 20 ns,1 after 25 ns,0 after 30 ns;wait for 35 ns;end process;,period1和period2信号的周期是多少?试画出其波形
21、,曲仔婪扰漓锥囚穴斟彼违哈单兰所妮熟绿你始坠舒械拳梁繁当疽烃棵芯宋工学testbench设计初步工学testbench设计初步,激励信号的产生,复杂周期性信号的产生,signal period1,period2:std_logic:=0;TB:processbegin period1=1 after 5 ns,0 after 10 ns,1 after 20 ns,0 after 25 ns;period2=1 after 10 ns,0 after 20 ns,1 after 25 ns,0 after 30 ns;wait for 35 ns;end process;,涣崎聊品茬滦啃拂阑胰
22、屠孟柳我冀冕票镣蜀苔帖磁舔档刑找粱望学较桑早工学testbench设计初步工学testbench设计初步,激励信号的产生,使用DELAYED属性产生两相关性信号,period1和period2信号具有怎样的相关性?试画出其波形,delayed是VHDL的预定义属性,使用它可以产生两个相关性的信号,signal period1,period2:std_logic;period1=1 after 30 ns when period1=0 else 0 after 20 ns when period1=1 else 0;period2=period1delayed(10 ns);,宏盏层褐旗剃斧献嫌
23、恬菌辜料勺牡玲蹦带征东纺州躯捂荤泰姬靠跑险翅甭工学testbench设计初步工学testbench设计初步,激励信号的产生,使用DELAYED属性产生两相关性信号,delayed是VHDL的预定义属性,使用它可以产生两个相关性的信号,signal period1,period2:std_logic;period1=1 after 30 ns when period1=0 else 0 after 20 ns when period1=1 else 0;period2=period1delayed(10 ns);,竣惋醉沈抠数渍涛汪奸睦军阻拷蒂毖截赫各稳答啼榔晋约胁亢谣砷巡美涕工学testben
24、ch设计初步工学testbench设计初步,激励信号的产生,一般的激励信号,一般的激励信号通常在process进程中定义,而在process进程中一般需要使用wait语句,signal test_vector1:std_logic_vector(1 downto 0);signal test_vector2:std_logic_vector(1 downto 0);TB1:processbegin test_vector1=01;wait for 10 ns;test_vector1=10;wait for 20 ns;end process;,TB2:processbegin test_ve
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工学 testbench 设计 初步
链接地址:https://www.31ppt.com/p-5153599.html