电工电子工程基础II4同步时序电路.ppt
数字逻辑与FPGA同步时序电路,内容,时序逻辑电路的结构及特点 时序逻辑电路逻辑功能的描述方法 同步电路逻辑功能的分析 计数器(二进制、十进制、N进制)同步计数器的建模方法 参数化模块 实验任务,时序电路的一般化模型,基本概念电路由组合电路和存储电路组成电路的输出不仅与当时的输入有关,而且还与电路原来的状态有关,输入信号,输出信号,存储电路的输入,输出状态,时序电路的分类,从控制时序状态的脉冲源来分:同步:存储电路里所有触发器有统一的时钟源,它们的状态在同一时刻更新。异步:没有统一的时钟脉冲,触发器的状态更新不是同时发生的。,时序逻辑电路的描述方法,描述方法一般有四种逻辑方程式,状态表状态表是反映时序逻辑电路的输出Z、输入X、次态Qn+1以及现态 Qn 之间的对应取值关系的表格。,时序逻辑电路的描述方法,状态图:反映时序逻辑电路状态转换规律及相应输入、输出取值关系的图形,Q1Q0,X/Z,00,01,1/0,0/1,1/1,0/0,该图表示Q1Q0的状态转换情况,斜线上方是输入信号X,斜线下方是输出信号Z,连线及箭头表示转换的方向。,时序逻辑电路的描述方法,时序图能直观地描述电路输入信号、输出信号以及CP,在时间上的对应关系,也称波特图。,0,0,0,1,0,0,0,1,0,1,1,1,0 0 0 0,1 1 1 1,0,0,0,1,1,1,0,1,0,1,0,0,时序逻辑电路的描述方法,同步时序逻辑电路的分析,时序逻辑电路分析按照给定的时序逻辑电路,分析它在输入信号的作用下,其状态和输出信号变化的规律,进而确定电路的逻辑功能。分析过程的主要表现形式时序电路的逻辑功能是由其状态和输出信号的变化规律呈现出来的。所以,分析过程主要是列出电路状态表或画出状态图、工作波形图。分析同步时序逻辑电路的一般步骤根据给定的时序逻辑电路,写出各触发器的激励方程和时序逻辑电路的输出方程将驱动方程代入相应触发器的特性方程,求出触发器的次态方程(状态方程)根据状态方程和输出方程,列出状态转换表、画出状态图或时序图确定和说明电路的逻辑功能,同步时序逻辑电路的分析举例,所以,属Moore型,例1 试分析下图所示时序电路的逻辑功能。,解:由电路图可知,此为同步时序逻辑电路,无输入信号,1.写出各触发器的驱动方程和输出方程。,Y2,输出方程:,驱动方程:,同步时序逻辑电路的分析举例,得:,2.将驱动方程代入JKFF的特性方程,求JKFF的的次态方程。,JKFF的特性方程:,3.列状态表,画状态图和时序图。,现 态,触发器输入,次 态,代入法。将 代入特性方程,得到再将01代入得到10,列表有两种方法:列出所有FF的输入状态,根据FF功能可得次态。,0101,1100,1111,1111,0,100,1,000,00011011,画状态图和时序图,Q2Q1,4.由状态图和时序图可确定:,该时序电路为同步三进制计数器。,计数器的分类,同步,按数值增减趋势,加计数器 Up Counter,减计数器 Dou Counter,可逆计数器 Up/Dou Counter,按FF状态更新时刻,异步,-所有FF的状态同时更新,共用一个CP,-所有FF的状态不同时更新,不共用一个CP,按状态变量使用的编码,二进制计数器 Binary,二-十进制计数器 BCD,N 进制计数器 Another,二进制计数器,异步二进制加计数器,FF0,FF1,FF2,二进制计数器,同步二进制计数器为了提高计数速度,我们将CP脉冲同时接到所有FF,使FF的状态变换与CP脉冲同步。这种方式的计数器称为同步计数器。该计数器的速度比异步计数器提高很多最短输入脉冲周期为一级FF的传输延迟时间:Tmin=tpd,非二进制计数器,十进制计数器是非二进制计数器中使用最多的,它同样有同步、异步之分和加、减、可逆之分。任意进制计数器反馈清零法:利用清零端。把计数过程中的某个状态反馈到清零端。反馈置数法“置0”-数据并入端D3-D0置成0000。把计数过程中的某个状态反馈到置数端,使计数器并入并出。“置最小数”-数据并入端D3-D0置成计数状态中的最小数,当计数器计到1111时,产生进位信号TC PE端,使其重新从最小数开始计数。,异步清零、同步置数、可逆计数、保持,module cntr(q,aclr,clk,func,d);input aclr,clk;input 7:0 d;/Controls the functionality input 1:0 func;output 7:0 q;reg 7:0q;,always(posedge clk or posedge aclr)begin if(aclr)q=8h00;else case(func)2b00:q=d;/Loads the counter 2b01:q=q+1;/Counts up 2b10:q=q-1;/Counts down 2b11:q=q;endcaseendendmodule,建议:时序电路的行为描述采用非阻塞赋值。,实验任务,Lab6(异步清零/异步置数)使用Verilog语言实现10进制计数器设计仿真波形1:使用basys2开发板下载、验证(使用4位发光二极管即可)2:在basys2开发板的数码管上显示0-9,计数时钟可以使用Lab7的1HzLab7使用Verilog语言实现分频器设计(50MHz1Hz),得到秒脉冲仿真波形可选:使用basys2开发板下载、验证(使用1位发光二极管即可)Lab8(同步清零/同步置数)使用Verilog语言实现模8可逆计数器设计和3/8译码器设计 仿真波形可选:使用basys2开发板下载、验证(自行设计测试方案),