第八讲-综合建模与仿真课件

上传人:ni****g 文档编号:568338850 上传时间:2024-07-24 格式:PPT 页数:57 大小:839KB
返回 下载 相关 举报
第八讲-综合建模与仿真课件_第1页
第1页 / 共57页
第八讲-综合建模与仿真课件_第2页
第2页 / 共57页
第八讲-综合建模与仿真课件_第3页
第3页 / 共57页
第八讲-综合建模与仿真课件_第4页
第4页 / 共57页
第八讲-综合建模与仿真课件_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《第八讲-综合建模与仿真课件》由会员分享,可在线阅读,更多相关《第八讲-综合建模与仿真课件(57页珍藏版)》请在金锄头文库上搜索。

1、第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系第七讲第七讲综合建模与仿真综合建模与仿真内容:v常用模块建模(设计)实例v基于同步状态机的建模(设计)v存储器建模v仿真平台设计v仿真激励信号产生v功能仿真实例第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系在数字逻辑系统的设计中,从电路结构来看, 基本上可分为组合逻辑电路和时序逻辑电路两大类。 1. 1. 组合逻辑电路组合逻辑电路v 组合逻辑电路的输出只与当时的输入信号有关, 而与电路过去的状态无关, 也即它的输出完全由输入信号和输出函数决定。v在手工设计电路时期,组合逻辑主要设计优化工具是卡若图,在目前EDA时

2、期则是综合工具软件;设计者只需正确描述电路功能,具体电路的优化由综合工具完成。v最常用的组合逻辑电路有编码器、 译码器、 数据选择器、 加法器和比较器等 。组合逻辑设计实例组合逻辑设计实例第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系(a)符号;(b)功能表1)2/4译码器译码器第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系2/4译码器译码器的功能的功能描述描述moduledecode2_4(d,s);input1:0s;output3:0d;reg3:0d;always(s)/电平敏感变量表case(s)2b00:d=4b0001;2b01:d=4b001

3、0;2b10:d=4b0100;2b11:d=4b1000;endcaseendmodule条件S的选项要完备,否则综合工具将综合出意外的锁存器。可用缺省default代替2b11。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系2/4译码器译码器的功能的功能描述描述moduledecode2_4(d,s);input1:0s;output3:0d;reg3:0d;always(s)/电平敏感变量表if(s=2b00)/if语句实现有优先级,条件要完备d=4b0001;elseif(s=2b01)d=4b0010;elseif(s=2b10)d=4b0100;elsed=4b1

4、000;endmodule第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系(a)符号;(b)内部逻辑电路2)相等比较器相等比较器同或:相同为1第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系相等比较器相等比较器的功能的功能描述描述modulecompare(f,a,b);input3:0a,b;outputf;regf;always(aorb)/电平敏感变量表if(a=b)/其它关系的比较器?f=1b1;elsefF,否则BF。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系(a)14DEMUX的操作;(b)功能表4)多路输出选择器多路输出选择器

5、第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系多路输出选择器多路输出选择器的功能的功能描述描述moduledecode2_4(p,s,x);input1:0s;inputx;output3:0p;reg3:0p;always(sorx)/电平敏感变量表case(s)2b00:p=3b0,x;/000x2b01:p=2b0,x,1b0;/00x02b10:p=1b0,x,2b0;/0x00default:p=x,3b0;/x000endcaseendmodule本例中X是信号第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系 5)算术运算电路算术运算电路算术运算电

6、路是能够完成二进制数运算的器件,最基本的算术运算电路有半加器和全加器两种。半半加加器器电电路路不不考考虑虑来来自自低低位位的的进进位位,能能完完成成两两个个一位二进制数的加法运算。一位二进制数的加法运算。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系全加器是一种考虑来自低位的进位的二进制加法全加器是一种考虑来自低位的进位的二进制加法运算电路运算电路,它可以实现多位二进制数的加法运算它可以实现多位二进制数的加法运算。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系全加器全加器的功能的功能描述描述moduleadder4(cout,sum,ina,inb,cin)

7、;output3:0sum;outputcout;input3:0ina,inb;inputcin;assigncout,sum=ina+inb+cin;endmodule组合运算符组合逻辑的verilog描述方法小结:v用assign赋值语句。v用电平敏感的always语句。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系数字系统的电路通常由组合逻辑、 时序逻辑或者两者混合构成。 对于时序逻辑电路, 其基本结构如图所示。时序逻辑设计基础时序逻辑设计基础第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系同步时序逻辑电路异步时序逻辑电路组合逻辑存储元件X1XnZ1Z

8、mY1y1yr存储元件Yr时钟脉冲组合逻辑存储元件X1XnZ1ZmY1y1yr存储元件Yrv时序逻辑电路按其工作方式可分为同步时序逻辑和异步时序逻辑。v 同步时序电路中,全部时钟并联在一起,统一受系统时钟的控制, 各个触发器是同步动作的; 异步时序电路中各级触发器的连接不是完全相同的,状态变化也不是同步的。v异步时序电路设计较为复杂,目前主要是人工设计;同步时序电路设计主要有状态机和状态流程图方法。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系(a)D触发器;(b)8位寄存器1)基本的基本的8位寄存器位寄存器第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系(a

9、)D触发器;(b)串行载入移位寄存器2)移位寄存器移位寄存器第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系移位寄存器移位寄存器verilogverilog描述描述module shifter(d,clk,q);inputclk;inputd;output7:0q;reg7:0q;/reg变量类型always(posedgeclk)beginq7=d;q6=q7;q5=q6;q4=q5;q3=q4;q2=q3;q1=q2;q0=q1;endEndmodule问题:带复位端的移位寄存器描述?第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系一个简单的二进制计数器3)

10、计数器计数器CLKD1D0上升沿00上升沿01上升沿10上升沿11上升沿00第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系计数器计数器verilogverilog描述描述modulecounter(D,CLK,A);inputCLK;input1:0D;output1:0A;reg1:0A;always(posedgeCLK)A=A+1;/计数到2b11后,返回endmodule第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系模模200200的加法的加法计数器设计实例计数器设计实例modulemy_counters(clk,clear,qn);inputclk

11、,clear;output7:0qn;reg7:0qn;/Amodulus200upcounteralways(posedgeclkornegedgeclear)beginif(clear=0)qn=0;elseif(qn=200)qn=0;elseqn=qn+1;endendmodule异步复位第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系基于同步状态机的建模基于同步状态机的建模有限状态机是由寄存器组和组合逻辑构成的硬件时序电路;其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态;究竟转向哪一状态不但取决于各个

12、输入值,还取决于当前状态。(这里指的是米里Mealy型有限状态机,而莫尔Moore型有限状态机究竟转向哪一状态只决于当前状态)状态机可用于产生在时钟跳变沿时刻开关的复杂的控制逻辑,是数字逻辑的控制核心。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系mealy型时序电路模型有限状态机是时序电路的通用模型。当电路的输出是输入和现态的函数,称作Mealy型状态机;次态现态第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系moore型状态机输出仅仅与电路以前的状态有关,而与输入无关,它是mealy模型的一种特例。moore型时序电路模型第七讲第七讲 综合综合建模与仿真建

13、模与仿真西安邮电学院通信工程系有限状态机设计的一般步骤有限状态机设计的一般步骤: :1)逻辑抽象,得出状态转换图逻辑抽象,得出状态转换图 就是把给出的一个实际逻辑关系表示为时序逻辑函数,可以用状态转换表来描述,也可以用状态转换图来描述。这就需要: 分析给定的逻辑问题,确定输入变量、输出变量以及电路的状 态数。通常是取原因(或条件)作为输入变量,取结果作为输出变量。 定义输入、输出逻辑状态的含意,并将电路状态顺序编号。 按照要求列出电路的状态转换表或画出状态转换图。这样,就把给定的逻辑问题抽象到一个时序逻辑函数了。 第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系2)状态化简状态

14、化简如果在状态转换图中出现这样两个状态,它们在相同的输入下转换到同一状态去,并得到一样的输出,则称它们为等价状态。显然等价状态是重复的,可以合并为一个。电路的状态数越少,存储电路也就越简单。状态化简的目的就在于将等价状态尽可能地合并,以得到最简的状态转换图。3)状态分配状态分配状态分配又称状态编码。通常有很多编码方法,编码方案选择得当,设计的电路可以简单,反之,选得不好,则设计的电路就会复杂许多。实际设计时,需综合考虑电路复杂度与电路性能之间的折衷,在触发器资源丰富的FPGA或ASIC设计中采用独热编码(one-hot-coding)既可以使电路性能得到保证又可充分利用其触发器数量多的优势。第

15、七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系4)选定触发器的类型并求出状态方程、驱动方程和输出方程。选定触发器的类型并求出状态方程、驱动方程和输出方程。5)按照方程得出逻辑图按照方程得出逻辑图用VerilogHDL来描述有限状态机,可以充分发挥硬件描述语言的抽象建模能力,使用always块语句和case(if)等条件语句及赋值语句即可方便实现。具体的逻辑化简及逻辑电路到触发器映射均可由计算机自动完成,上述设计步骤中的第2步及4、5步不再需要很多的人为干预,使电路设计工作得到简化,效率也有很大的提高。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系用用Veril

16、ogHDL语言设计可综合的状态机的指导原则语言设计可综合的状态机的指导原则:1)因为大多数FPGA内部的触发器数目相当多,又加上独热码状态机(onehotstatemachine)的译码逻辑最为简单,所以在设计采用FPGA实现的状态机时往往采用独热码状态机(即每个状态只有一个寄存器置位的状态机)。2)建议采用case,casex或casez语句来建立状态机的模型,因为这些语句表达清晰明了,可以方便地从当前状态分支转向下一个状态并设置输出。不要忘记写上case语句的最后一个分支default,并将状态变量设为bx,这就等于告知综合器:case语句已经指定了所有的状态,这样综合器就可以删除不需要的

17、译码电路,使生成的电路简洁,并与设计要求一致。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系3)如果将缺省状态设置为某一确定的状态(例如:设置default:state=state1)行不行呢?回答是这样做有一个问题需要注意。因为尽管综合器产生的逻辑和设置default:state=bx时相同,但是状态机的VerilogHDL模型综合前和综合后的仿真结果会不一致。为什么会是这样呢?因为启动仿真器时,状态机所有的输入都不确定,因此立即进入default状态,这样的设置便会将状态变量设为state1,但是实际硬件电路的状态机在通电之后,进入的状态是不确定的,很可能不是state1

18、的状态,因此还是设置default:state=bx与实际情况相一致。但在有多余状态的情况下还是应将缺省状态设置为某一确定的有效状态,因为这样做能使状态机若偶然进入多余状态后任能在下一时钟跳变沿时返回正常工作状态,否则会引起死锁。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系4)状态机应该有一个异步或同步复位端,以便在通电时将硬件电路复位到有效状态,也可以在操作中将硬件电路复位(大多数FPGA结构都允许使用异步复位端)。目前大多数综合器往往不支持在一个always块中由多个事件触发的状态机(即隐含状态机),为为了了能能综综合合出出有有效效的的电电路路,用用VerilogHDL

19、描描述述的的状状态态机机应应明明确确地地由由唯唯一一时时钟钟触触发发。目前大多数综合器不能综合采用VerilogHDL描述的异步状态机。异步状态机是没有确定时钟的状态机,它的状态转移不是由唯一的时钟跳变沿所触发。5)千千万万不不要要使使用用综综合合工工具具来来设设计计异异步步状状态态机机。因为目前大多数综合工具在对异步状态机进行逻辑优化时会胡乱地简化逻辑,使综合后的异步状态机不能正常工作。如如果果一一定定要要设设计计异异步步状状态态机机,我我们们建建议议采采用用电电路路图图输入的方法,而不要用输入的方法,而不要用VerilogHDL输入的方法。输入的方法。6)VerilogHDL中,状态必须明

20、确赋值中,状态必须明确赋值,通常使用参数(parameters)或宏定义(define)语句加上赋值语句来实现。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系状态机设计例状态机设计例例:用于空调控制的有限状态机。它有两个输入,分别与传感器相连,用于检测室内温度。如果温度在设定的范围内,如1823度,则两个温度输入t_high和t_low为低(0)。如果室内温度超过最高设定温度(23度),则输入t_high变为高(1);如果室内温度低于最低设定温度(18度),则输入t_low变为高(1)。空调控制器输出为加热信号heat和制冷信号cool,当二者其一为高时,空调进行加热和制冷。

21、第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系空调控制有限状态机空调控制有限状态机状态状态转移条件状态转移优先级t_hight_low控制器heatcool第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系空调有限状态机的空调有限状态机的verilogverilog描述描述modulemy_state(t_high,t_low,heat,cool,clk,reset);/inputportsinputt_high;inputt_low;/outputportsoutputheat;regheat;outputcool;regcool;/inputportsinp

22、utclk;inputreset;/定义空调的三种状态parameter1:0right=2b00,too_cold=2b01,too_hot=2b10;reg1:0current_state;第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系空调有限状态机的空调有限状态机的verilogverilog描述描述always(posedgeclkornegedgereset)if(reset=1b0)current_state=right;elsecase(current_state)/判断空调当前的状态right:beginif(t_high=1)current_state=to

23、o_hot;elseif(t_low=1)current_state=too_cold;elsecurrent_state=right;end第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系空调有限状态机的空调有限状态机的verilogverilog描述描述too_cold:beginif(t_high=1)current_state=too_hot;elseif(t_high=0&t_low=0)current_state=right;elseif(t_low=1)current_state=too_cold;elsecurrent_state=too_cold;end第七讲

24、第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系空调有限状态机的空调有限状态机的verilogverilog描述描述too_hot:beginif(t_low=1)current_state=too_cold;elseif(t_high=0&t_low=0)current_state=right;elseif(t_high=1)current_state=too_hot;elsecurrent_state=too_hot;enddefault:current_state=right;endcase第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系空调有限状态机的空调有限

25、状态机的verilogverilog描述描述always(current_state)/驱动空调进行加热或制冷case(current_state)right:beginheat=1b0;cool=1b0;endtoo_hot:beginheat=1b0;cool=1b1;endtoo_cold:beginheat=1b1;cool=1b0;endendcaseendmodule第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系存储器建模存储器建模v简单ROM建模v简单RAM建模v双向端口建模第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系简单简单ROMROM描述

26、描述v下面的ROM描述中使用二维寄存器组定义了一个存储器mem。ROM的数据单独保存在文件my_rom_data中,如右边所示。通常用这种方法使ROM数据独立于ROM描述。timescale 1ns/10psmodule myrom (read_data, addr, read_en_); input read_en_; input 3:0 addr; output 3:0 read_data; reg 3:0 read_data; reg 3:0 mem 0:15; initial $readmemb (my_rom_data, mem); always ( addr or read_en_

27、) if (! read_en_) read_data = memaddr;endmodulemy_rom_data000001011100001111010010001111111000100110000001110110100001第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系简单的简单的RAMRAM描述描述vRAM描述比ROM略微复杂,因为必须既有读功能又有写功能,而读写通常使用同一数据总线。这要求使用新的处理双向数据线的建模技术。在下面的例子中,若读端口未使能,则模型不驱动数据总线;此时若数据总线没有写数据驱动,则总线为高阻态Z。这避免了RAM写入时的冲突。times

28、cale 1ns /1nsmodule mymem (data, addr, read, write); inout3:0data; input 3:0 addr; input read, write; reg 3:0 memory 0:15; / 16*4/ 读读 assign data = read ? memoryaddr : 4bz;/ 写写 always ( posedge write) memoryaddr = data;endmoduledata作为输出data作为输入第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系存储器数据装入存储器数据装入可以使用循环或系统任

29、务给存储器装入初始化数据v用循环给存储器的每个字赋值 for (i= 0; i memsize; i = i+ 1) / initialize memory mema i = wordsize 1b1;v调用系统任务$readmem $readmemb(mem_file. txt, mema);第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系双向端口建模双向端口建模v用关键词inout声明一个双向端口,声明遵循下列规则:inout7:0databus;vinout端口不能声明为寄存器类型,只能是wire类型。这样仿真器若有多个驱动时可以确定结果值。v对inout端口可以从任意一

30、个方向驱动数据。v在同一时间应只从一个方向驱动inout端口。-在RAM模型中,如果使用双向数据总线读取RAM数据,同时在数据总线上驱动写数据,则会产生逻辑冲突,使数据总线变为未知。-必须设计与inout端口相关的逻辑以确保正确操作。当把该端口作为输入使用时,必须禁止输出逻辑。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系双向端口建模双向端口建模两端为双向端口两端为双向端口module bus_xcvr( bus_a, bus_b, en_a_b, en_b_a); inout bus_a, bus_b; input en_a_b, en_b_a; bufif1 b1 (bu

31、s_b, bus_a, en_a_b); bufif1 b2 (bus_a, bus_b, en_b_a);/ Structural module logicendmodule若若en_a_b=1,基本单元,基本单元b1使使能,能,bus_a数据传送到数据传送到bus_b若若en_b_a=1,基本单元,基本单元b2使使能,能,bus_b数据传送到数据传送到bus_a信号信号en_a_b和和en_b_a控制使能控制使能第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系双向端口建模双向端口建模两端为双向端口两端为双向端口module bus_xcvr( bus_a, bus_b, e

32、n_a_b, en_b_a); inout bus_a, bus_b; input en_a_b, en_b_a; assign bus_b = en_a_b ? bus_a : bz; assign bus_a = en_b_a ? bus_b : bz;/ Structural module logicendmodule若若en_a_b=1,赋值语句,赋值语句驱动驱动bus_a数据到数据到bus_b若若en_b_a=1,赋值语句,赋值语句驱动驱动bus_b值到值到bus_a信号信号en_a_b和和en_b_a控制使能控制使能第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系双

33、向端口建模双向端口建模单端为双向端口单端为双向端口module ram_cell( databus, rd, wr); inout databus; input rd, wr; reg datareg; assign databus = rd ? datareg : bz; always ( negedge wr) datareg = databus;endmodule当当rd=1时,时,datareg的的值赋值值赋值databus在在wr下降沿,下降沿,databus数据写入数据写入datareg单向输出单向输入第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系注:上页存储单元

34、在wr的下降沿到达时存入数据。上页模块在wr处于高电平时,通过数据总线写入数据,但必须保证wr的的高电平维持时间长于数据的写入时间。在rd处于高电平时,上述存储单元通过数据总线读出数据。由于此模型为单口存储模型,因此wr和rd不能同时为高电平,否则就得不到预期的结果。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系仿真平台设计仿真平台设计虚线表示编译时检测输入文件是否存在及可读并允许生成输出文件。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系仿真平台建立仿真平台建立stimulus要验证的设计激励验证结果要验证的设计v简单的test bench向要验证的设计提

35、供向量,人工验证输出。v复杂的test bench是自检测的,其结果自动验证。 第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系仿真激励信号产生仿真激励信号产生产生激励常用的方法有产生激励常用的方法有:v从一个initial块中施加线激励v从一个循环或always块施加激励v从一个向量或整数数组施加激励v记录一个仿真过程,然后在另一个仿真中回放施加激励第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系线性激励线性激励线性激励特性:线性激励特性:v只有变量的值改变时才列出v易于定义复杂的时序关系v对一个复杂的测试,测试基准(testbench)可能非常大module

36、 inline_ tb; reg 7: 0 data_ bus, addr; wire 7: 0 results; DUT u1 (results, data_ bus, addr); initial begin data_bus = 8h00; addr = 8h3f; #10 data_ bus = 8h45; #5 addr = 8hf0; #25 data_ bus = 8h0f; #15 $finish; endendmodule第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系用并行块产生仿真激励信号用并行块产生仿真激励信号vforkjoin块在测试文件中很常用。他们

37、的并行特性使用户可以说明绝对时间,并且可以并行的执行复杂的过程结构,如循环或任务。module inline_ tb; reg 7: 0 data_ bus; / instance of DUT initial fork data_bus = 8b00; #10 data_bus = 8h45; #20 repeat (10) #10 data_bus = data_bus + 1; #25 repeat (5) #20 data_bus = data_bus 1; #140 data_bus = 8h0f; joinendmodule上面的两个repeat循环从不同时间开始,并行执行。象这样

38、的特殊的激励集在单个的beginend块中将很难实现。Time|data_bus0|8b0000_000010|8b0100_010130|8b0100_011040|8b0100_011145|8b1000_111050|8b1000_111160|8b1001_000065|8b0010_000070|8b0010_000180|8b0010_001085|8b0100_010090|8b0100_0101100|8b0100_0110105|8b1000_1100110|8b1000_1101120|8b1000_1110125|8b0001_1100140|8b0000_1111第七讲

39、第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系循环激励循环激励从循环产生激励特性从循环产生激励特性:v在每一次循环,修改同一组激励变量v时序关系规则v代码紧凑 module loop_tb; reg clk; reg 7:0 stimulus; wire 7:0 results; integer i; DUT u1 (results, stimulus); alwaysbegin/clockgenerationclk=1;#5clk=clk;end initial begin for (i = 0; i 1; i = i - 1) / 循环激励 #50 stimulus = sti

40、m_arrayi ; #30 $finish; endendmodule第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系空调有限状态机测试平台空调有限状态机测试平台module testbench;wire heat, cool; reg t_high, t_low, clk, reset;my_state U1(.t_high(t_high), .t_low(t_low), .heat(heat), .cool(cool), .clk(clk), .reset(reset);initial begin t_high=0; t_low=0; clk=0; reset=0; #3

41、 reset=1; endalways #5 clk=clk;initial fork #12 t_high=1; /too heat 1 #32 t_high=0; #42 t_low=1; / too cool 1 #72 t_low=0; #92 t_high=1; / too heat 2 #102 t_low=1; #102 t_high=0; #122 t_high=0; #122 t_low=0; #142 t_low=1; /too cool 2 #152 t_high=1; #152 t_low=0; #172 t_high=0; #172 t_low=0; #182 t_h

42、igh=1; / error 1 #202 t_low=1; #222 t_high=0; #222 t_low=0; #242 t_low=1; / error 2 #252 t_high=1; #272 t_high=0; #272 t_low=0;joinendmodule第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系空调有限状态机仿真结果空调有限状态机仿真结果v仿真测试平台对六种工作状态进行了功能测试,实现测试目标。v当温度太高和太低同时出现时,设计不合理,需改进设计。第七讲第七讲 综合综合建模与仿真建模与仿真西安邮电学院通信工程系上机上机设计一个串行数据检测器。要求:连续4个或4个以上的1时,输出为1,其他输入情况为0;(有限状态机)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号