综合建模与仿真.ppt
《综合建模与仿真.ppt》由会员分享,可在线阅读,更多相关《综合建模与仿真.ppt(67页珍藏版)》请在三一办公上搜索。
1、第七讲 综合建模与仿真,内容:常用模块建模(设计)实例基于同步状态机的建模(设计)存储器建模仿真平台设计仿真激励信号产生功能仿真实例,在数字逻辑系统的设计中,从电路结构来看,基本上可分为组合逻辑电路和时序逻辑电路两大类。1.组合逻辑电路 组合逻辑电路的输出只与当时的输入信号有关,而与电路过去的状态无关,也即它的输出完全由输入信号和输出函数决定。在手工设计电路时期,组合逻辑主要设计优化工具是卡若图,在目前EDA时期则是综合工具软件;设计者只需正确描述电路功能,具体电路的优化由综合工具完成。最常用的组合逻辑电路有编码器、译码器、数据选择器、加法器和比较器等。,组合逻辑设计实例,(a)符号;(b)功
2、能表,1)2/4译码器,2/4译码器的功能描述,module decode2_4(d,s);input 1:0 s;output 3:0 d;reg3:0 d;always(s)/电平敏感变量表 case(s)2b00:d=4b0001;2b01:d=4b0010;2b10:d=4b0100;2b11:d=4b1000;endcaseendmodule,条件S的选项要完备,否则综合工具将综合出意外的锁存器。,可用缺省default代替 2b11。,2/4译码器的功能描述,module decode2_4(d,s);input 1:0 s;output 3:0 d;reg3:0 d;always
3、(s)/电平敏感变量表 if(s=2b00)/if语句实现有优先级,条件要完备 d=4b0001;else if(s=2b01)d=4b0010;else if(s=2b10)d=4b0100;else d=4b1000;endmodule,(a)符号;(b)内部逻辑电路,2)相等比较器,同或:相同为1,相等比较器的功能描述,module compare(f,a,b);input 3:0 a,b;output f;reg f;always(a or b)/电平敏感变量表 if(a=b)/其它关系的比较器?f=1b1;else f=1b0;endmodule,(a)4选1开关操作;(b)功能表,
4、3)4选1多路复用器(多路选择器),多路复用器的功能描述,module mux4_1(F,P,S);input 1:0 S;input 3:0 P;output F;assign F=(S=2b00)?P0:(S=2b01)?P1:(S=2b10)?P2:P3;endmodule,条件赋值语句F(条件)?A:B功能:条件为真(1),AF,否则 BF。,(a)14 DEMUX的操作;(b)功能表,4)多路输出选择器,多路输出选择器的功能描述,module decode2_4(p,s,x);input 1:0 s;input x;output 3:0 p;reg3:0 p;always(s or
5、x)/电平敏感变量表 case(s)2b00:p=3b0,x;/000 x 2b01:p=2b0,x,1b0;/00 x0 2b10:p=1b0,x,2b0;/0 x00 default:p=x,3b0;/x000 endcaseendmodule,本例中X是信号,5)算术运算电路 算术运算电路是能够完成二进制数运算的器件,最基本的算术运算电路有半加器和全加器两种。半加器电路不考虑来自低位的进位,能完成两个一位二进制数的加法运算。,全加器是一种考虑来自低位的进位的二进制加法运算电路,它可以实现多位二进制数的加法运算。,全加器的功能描述,module adder4(cout,sum,ina,in
6、b,cin);output3:0 sum;output cout;input3:0 ina,inb;input cin;assign cout,sum=ina+inb+cin;endmodule,组合运算符,组合逻辑的verilog描述方法小结:用assign赋值语句。用电平敏感的always语句。,数字系统的电路通常由组合逻辑、时序逻辑或者两者混合构成。对于时序逻辑电路,其基本结构如图所示。,时序逻辑设计基础,同步时序逻辑电路 异步时序逻辑电路,时序逻辑电路按其工作方式可分为同步时序逻辑和异步时序逻辑。同步时序电路中,全部时钟并联在一起,统一受系统时钟的控制,各个触发器是同步动作的;异步时序
7、电路中各级触发器的连接不是完全相同的,状态变化也不是同步的。异步时序电路设计较为复杂,目前主要是人工设计;同步时序电路设计主要有状态机和状态流程图方法。,(a)D触发器;(b)8位寄存器,1)基本的8位寄存器,(a)D触发器;(b)串行载入移位寄存器,2)移位寄存器,移位寄存器verilog描述,moduleshifter(d,clk,q);input clk;inputd;output7:0q;reg7:0 q;/reg变量类型always(posedge clk)begin q7=d;q6=q7;q5=q6;q4=q5;,q3=q4;q2=q3;q1=q2;q0=q1;end endmod
8、ule问题:带复位端的移位寄存器描述?,一个简单的二进制计数器,3)计数器,计数器verilog描述,module counter(D,CLK,A);inputCLK;input1:0D;output1:0A;reg1:0 A;always(posedge CLK)A=A+1;/计数到2b11后,返回endmodule,模200的加法计数器设计实例,module my_counters(clk,clear,qn);input clk,clear;output 7:0 qn;reg 7:0 qn;/A modulus 200 up counter always(posedge clk or ne
9、gedge clear)begin if(clear=0)qn=0;else if(qn=200)qn=0;else qn=qn+1;endendmodule,异步复位,基于同步状态机的建模,有限状态机是由寄存器组和组合逻辑构成的硬件时序电路;其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态;究竟转向哪一状态不但取决于各个输入值,还取决于当前状态。(这里指的是米里Mealy型有限状态机,而莫尔Moore型有限状态机究竟转向哪一状态只决于当前状态)状态机可用于产生在时钟跳变沿时刻开关的复杂的控制逻辑,是数字逻辑的控制核心。,mea
10、ly型时序电路模型,有限状态机是时序电路的通用模型。当电路的输出是输入和现态的函数,称作Mealy型状态机;,次态,现态,moore型状态机输出仅仅与电路以前的状态有关,而与输入无关,它是mealy模型的一种特例。,moore型时序电路模型,有限状态机设计的一般步骤:1)逻辑抽象,得出状态转换图 就是把给出的一个实际逻辑关系表示为时序逻辑函数,可以用状态转换表来描述,也可以用状态转换图来描述。这就需要:分析给定的逻辑问题,确定输入变量、输出变量以及电路的状 态数。通常是取原因(或条件)作为输入变量,取结果作为输出变量。定义输入、输出逻辑状态的含意,并将电路状态顺序编号。按照要求列出电路的状态转
11、换表或画出状态转换图。这样,就把给定的逻辑问题抽象到一个时序逻辑函数了。,2)状态化简 如果在状态转换图中出现这样两个状态,它们在相同的输入下转换到同一状态去,并得到一样的输出,则称它们为等价状态。显然等价状态是重复的,可以合并为一个。电路的状态数越少,存储电路也就越简单。状态化简的目的就在于将等价状态尽可能地合并,以得到最简的状态转换图。3)状态分配 状态分配又称状态编码。通常有很多编码方法,编码方案选择得当,设计的电路可以简单,反之,选得不好,则设计的电路就会复杂许多。实际设计时,需综合考虑电路复杂度与电路性能之间的折衷,在触发器资源丰富的FPGA或ASIC设计中采用独热编码(one-ho
12、t-coding)既可以使电路性能得到保证又可充分利用其触发器数量多的优势。,4)选定触发器的类型并求出状态方程、驱动方程和输出方程。5)按照方程得出逻辑图 用Verilog HDL来描述有限状态机,可以充分发挥硬件描述语言的抽象建模能力,使用always块语句和case(if)等条件语句及赋值语句即可方便实现。具体的逻辑化简及逻辑电路到触发器映射均可由计算机自动完成,上述设计步骤中的第2步及4、5步不再需要很多的人为干预,使电路设计工作得到简化,效率也有很大的提高。,用Verilog HDL语言设计可综合的状态机的指导原则:1)因为大多数FPGA内部的触发器数目相当多,又加上独热码状态机(o
13、ne hot state machine)的译码逻辑最为简单,所以在设计采用FPGA实现的状态机时往往采用独热码状态机(即每个状态只有一个寄存器置位的状态机)。2)建议采用case,casex或casez语句来建立状态机的模型,因为这些语句表达清晰明了,可以方便地从当前状态分支转向下一个状态并设置输出。不要忘记写上case语句的最后一个分支default,并将状态变量设为bx,这就等于告知综合器:case语句已经指定了所有的状态,这样综合器就可以删除不需要的译码电路,使生成的电路简洁,并与设计要求一致。,3)如果将缺省状态设置为某一确定的状态(例如:设置default:state=state1
14、)行不行呢?回答是这样做有一个问题需要注意。因为尽管综合器产生的逻辑和设置default:state=bx时相同,但是状态机的Verilog HDL模型综合前和综合后的仿真结果会不一致。为什么会是这样呢?因为启动仿真器时,状态机所有的输入都不确定,因此立即进入default状态,这样的设置便会将状态变量设为state1,但是实际硬件电路的状态机在通电之后,进入的状态是不确定的,很可能不是state1的状态,因此还是设置default:state=bx与实际情况相一致。但在有多余状态的情况下还是应将缺省状态设置为某一确定的有效状态,因为这样做能使状态机若偶然进入多余状态后任能在下一时钟跳变沿时返
15、回正常工作状态,否则会引起死锁。,4)状态机应该有一个异步或同步复位端,以便在通电时将硬件电路复位到有效状态,也可以在操作中将硬件电路复位(大多数FPGA结构都允许使用异步复位端)。目前大多数综合器往往不支持在一个always块中由多个事件触发的状态机(即隐含状态机),为了能综合出有效的电路,用Verilog HDL描述的状态机应明确地由唯一时钟触发。目前大多数综合器不能综合采用Verilog HDL描述的异步状态机。异步状态机是没有确定时钟的状态机,它的状态转移不是由唯一的时钟跳变沿所触发。5)千万不要使用综合工具来设计异步状态机。因为目前大多数综合工具在对异步状态机进行逻辑优化时会胡乱地简
16、化逻辑,使综合后的异步状态机不能正常工作。如果一定要设计异步状态机,我们建议采用电路图输入的方法,而不要用Verilog HDL输入的方法。6)Verilog HDL中,状态必须明确赋值,通常使用参数(parameters)或宏定义(define)语句加上赋值语句来实现。,状态机设计例,例:用于空调控制的有限状态机。它有两个输入,分别与传感器相连,用于检测室内温度。如果温度在设定的范围内,如18 23度,则两个温度输入t_high和t_low为低(0)。如果室内温度超过最高设定温度(23度),则输入t_high变为高(1);如果室内温度低于最低设定温度(18度),则输入t_low变为高(1)。
17、空调控制器输出为加热信号heat和制冷信号cool,当二者其一为高时,空调进行加热和制冷。,空调控制有限状态机,状态,状态转移条件,状态转移优先级,空调有限状态机的verilog描述1,module my_state(t_high,t_low,heat,cool,clk,reset);/input ports input t_high;input t_low;/output ports output heat;reg heat;output cool;reg cool;/input ports input clk;input reset;parameter 1:0 right=2b00,too
18、_cold=2b01,too_hot=2b10;reg 1:0 current_state;,空调有限状态机的verilog描述1,always(posedge clk or negedge reset)if(reset=1b0)current_state=right;else case(current_state)right:begin if(t_high=1)current_state=too_hot;else if(t_low=1)current_state=too_cold;else current_state=right;end,空调有限状态机的verilog描述1,too_cold
19、:begin if(t_high=1)current_state=too_hot;else if(t_high=0 end,空调有限状态机的verilog描述1,too_hot:begin if(t_low=1)current_state=too_cold;else if(t_high=0 endcase,空调有限状态机的verilog描述1,always(current_state)case(current_state)right:begin heat=1b0;cool=1b0;end too_hot:begin heat=1b0;cool=1b1;end too_cold:begin he
20、at=1b1;cool=1b0;end endcase endmodule,空调有限状态机的verilog描述2,输入逻辑过程,状态转移过程,输出逻辑过程,空调有限状态机的verilog描述2,module my_state(t_high,t_low,heat,cool,clk,reset);/input ports input t_high;input t_low;/output ports output heat;reg heat;output cool;reg cool;/input ports input clk;input reset;parameter 1:0 right=2b00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合 建模 仿真

链接地址:https://www.31ppt.com/p-6333514.html