




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、? ?数字逻辑数字逻辑? ?第第7 7章时序逻辑章时序逻辑电路电路2第第7章章 时序逻辑电路时序逻辑电路 本章介绍时序逻辑电路的描述方法和分析方法,具体本章介绍时序逻辑电路的描述方法和分析方法,具体介绍介绍FSMFSM、存放器、移位存放器、计数器等常用时序逻辑、存放器、移位存放器、计数器等常用时序逻辑电路的工作原理、逻辑功能及使用方法,时序逻辑电路电路的工作原理、逻辑功能及使用方法,时序逻辑电路和数字系统的和数字系统的HDLHDL设计方法。设计方法。v 概述概述 v 有限状态机有限状态机 v 数码存放器和移位存放器数码存放器和移位存放器v 计数器计数器v 基于基于Verilog HDL的时序逻
2、辑电路设计的时序逻辑电路设计57.1.1 时序逻辑电路的描述方法时序逻辑电路的描述方法数数字字逻逻辑辑组合逻辑组合逻辑由门电路构成,没有存储电路和反馈电路由门电路构成,没有存储电路和反馈电路时序逻辑时序逻辑由组合逻辑电路和存储电路构成由组合逻辑电路和存储电路构成程序逻辑程序逻辑由控制电路由控制电路( (硬件硬件) )和程序数据和程序数据( (软件软件) )构成构成可编程逻辑可编程逻辑由用户定制构成各种类型的电路由用户定制构成各种类型的电路v 按存储单元状态改变的特点分类按存储单元状态改变的特点分类v 同步时序逻辑电路同步时序逻辑电路: 构成时序逻辑电路的各级触发器受一构成时序逻辑电路的各级触发
3、器受一个系统时钟统一控制。个系统时钟统一控制。 v 异步时序逻辑电路异步时序逻辑电路: 构成时序逻辑电路的各级触发器可以构成时序逻辑电路的各级触发器可以有各自的时钟信号,不受系统时钟统一控制。有各自的时钟信号,不受系统时钟统一控制。v 脉冲异步电路:记忆元件是触发器,电路的输入是脉冲脉冲异步电路:记忆元件是触发器,电路的输入是脉冲信号信号v 电位异步电路:记忆元件由带反响的门电路组成,电路电位异步电路:记忆元件由带反响的门电路组成,电路的输入是电平信号的输入是电平信号v 按输出信号的特点分类按输出信号的特点分类v 摩尔摩尔Moore型型时序电路的输出信号仅与电路当前状时序电路的输出信号仅与电路
4、当前状态有关态有关v 米里米里Mealy型型时序电路的输出信号与电路当前状态时序电路的输出信号与电路当前状态及输入信号有关及输入信号有关v 按时序电路的逻辑功能分类按时序电路的逻辑功能分类v 数码存放器,移位存放器,数码存放器,移位存放器,计数器计数器6时序逻辑电路分类时序逻辑电路分类7时序逻辑电路的描述方法时序逻辑电路的描述方法) 3 . 7(),()2 . 7(),() 1 . 7(),(1nnQZhQQXgZQXfYv 时序逻辑电路可以用逻辑关系表达式方程组来描述。时序逻辑电路可以用逻辑关系表达式方程组来描述。v X为电路的输入,为电路的输入,Y为电路的输出,为电路的输出, Q为存储电路
5、的输出,式为存储电路的输出,式(7.1)称为输出方程:电路输出端的逻辑表达式;称为输出方程:电路输出端的逻辑表达式;v Z为存储电路的输入,式为存储电路的输入,式(7.2)称为驱动方程鼓励方程:构称为驱动方程鼓励方程:构成存储电路的触发器输入端的表达式;成存储电路的触发器输入端的表达式;v 式式(7.3)称为状态方程:表示触发器的状态变化特性,由驱动方称为状态方程:表示触发器的状态变化特性,由驱动方程代入触发器的特性方程得到。程代入触发器的特性方程得到。X0X1Xi-1Y0Y1Yj-1组合逻辑电路组合逻辑电路存储电路存储电路Q0Ql-1Z0Zk-1v 其他描述方法:其他描述方法:状态转换表状态
6、转换表、状态转换图状态转换图、时序图时序图同步时序逻辑电路举例同步时序逻辑电路举例1+XCPYDQQ组合逻组合逻辑电路辑电路存储电路存储电路输出方程:输出方程:Y=XQn驱动鼓励方程:驱动鼓励方程:D=XQn+XQn=X QnD FF特性方程特性方程:Qn+1=D8状态特征方程:状态特征方程:Qn+1=XQn+XQn=X Qn同步时序逻辑电路举例同步时序逻辑电路举例29Y=AQ1nQ2nAQ1nQ2n=AQ1nQ2n+AQ1nQ2nD2=A Q1n Q2nD1=Q1n输出方程:输出方程:驱动方程:驱动方程:v 同步同步时序逻辑电路时序逻辑电路: 有一个公共的时钟信号,电路中各记忆元件受它统一有
7、一个公共的时钟信号,电路中各记忆元件受它统一控制。控制。 只有该时钟信号到来时,记忆元件的状态才能发生变化,从而使时只有该时钟信号到来时,记忆元件的状态才能发生变化,从而使时序电路的输出发生变化。序电路的输出发生变化。v 每来一次时钟信号,记忆元件的状态和时序电路的输出才可能变化一次。每来一次时钟信号,记忆元件的状态和时序电路的输出才可能变化一次。Q2n+1=A Q1n Q2nQ1n+1=Q1n状态方程:状态方程:.脉冲异步电路举例脉冲异步电路举例时钟方程时钟方程: : CP0 = CP2= CP CP1=Q0 K0Q0Q0J0K0Q0J1K1Q1Q1J2K2Q2Q2.CP驱动方程驱动方程:J
8、0=Q2n J1=Q0n J2=Q1nQ0nK0=1 K1=1 K2=1状态方程:状态方程: Q1n+1=Q1nQ0n (Q0 )Q2n+1=Q2nQn1Q0n (CP ) Q0n+1=Q2nQ0n (CP ) 10脉冲异步电路的分析过程脉冲异步电路的分析过程3状态转换图状态转换图000001010011100101110111结论:电路为异步五进制加法计数器结论:电路为异步五进制加法计数器2状态转换表状态转换表 Q2nQ1nQ0nQ2n+1 Q1n+1 Q0n+1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 0
9、1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 Q1n+1=Q1nQ0n (Q0 )Q2n+1=Q2nQn1Q0n (CP ) Q0n+1=Q2nQ0n (CP ) 111状态方程:状态方程:原态按照从小到大的顺原态按照从小到大的顺序列出全部取值组合序列出全部取值组合127.1.2 时序逻辑电路的分析方法时序逻辑电路的分析方法时序逻辑电路的分析方法:时序逻辑电路的分析方法:根据电路结构,写出方程式根据电路结构,写出方程式时钟方程异步时序电路时钟方程异步时序电路、输出方程、驱动方程和状态方程将驱动方程代入、输出方程、驱动方程和状态方程将驱动方程代入触发器的特性方程得到。触发器的特
10、性方程得到。将输入变量和触发器初态的各种取值组合按从小到大的将输入变量和触发器初态的各种取值组合按从小到大的顺序,代入状态方程和输出方程,计算出各级触发器顺序,代入状态方程和输出方程,计算出各级触发器的次态值和电路的输出值,得到状态转换表。的次态值和电路的输出值,得到状态转换表。根据状态转换表,画状态转换图或时序图。根据状态转换表,画状态转换图或时序图。根据状态转换图和时序图,说明电路的逻辑功能。根据状态转换图和时序图,说明电路的逻辑功能。v 时序逻辑电路的分析时序逻辑电路的分析u找出给定电路的逻辑功能,即找出在输入信号和时钟信号作找出给定电路的逻辑功能,即找出在输入信号和时钟信号作用下的电路
11、状态和输出信号的变化规律。用下的电路状态和输出信号的变化规律。【例】分析下面电路的逻辑功能【例】分析下面电路的逻辑功能 CP D CP D CP DCPQ2Q1Q0QQQ1 1写出驱动方程、状态方程和输出方程写出驱动方程、状态方程和输出方程根据电路结构,写出驱动方程;根据电路结构,写出驱动方程;将驱动方程代入触发器的特性方程得到状态方程;将驱动方程代入触发器的特性方程得到状态方程;由于该电路的输出就是各触发器的输出,所以输出方程同状由于该电路的输出就是各触发器的输出,所以输出方程同状态方程态方程D2Q1nD1Q0nD0Q2n驱动方程驱动方程D触发器的特性方程触发器的特性方程Q2n+1=D2=Q
12、1nQ1n+1=D1=Q0nQ0n+1=D0=Q2n13状态方程状态方程QQQ画出状态转换表画出状态转换表2状态转换表状态转换表Q2nQ1nQ0nQ2n+1Q1n+1Q0n+10 0 00 0 10 0 10 1 10 1 01 0 10 1 11 1 11 0 00 0 01 0 10 1 01 1 01 0 01 1 11 1 014按按从小到大从小到大的顺序的顺序写出触发器初态的写出触发器初态的各种取值组合各种取值组合画出状态转换图画出状态转换图假设假设Q2Q1Q0初初始状态始状态: 0 0 0000001110111011100010101有效有效循环循环无效循环无效循环153状态转换
13、图状态转换图v 根据状态转换表,画出根据状态转换表,画出状态转换图状态转换图u从从初始状态初始状态000画,在次态输出列中找到其对应下一状态的取画,在次态输出列中找到其对应下一状态的取值,画出;值,画出;u然后将其作为初态,在原态输出列中找到它,再在次态输出然后将其作为初态,在原态输出列中找到它,再在次态输出列中找到其对应下一状态的取值,画出;列中找到其对应下一状态的取值,画出;u确保每个状态在确保每个状态在状态转换图中都应出现一次,且仅有一次。状态转换图中都应出现一次,且仅有一次。计数器相关概念计数器相关概念16v几个概念几个概念v有效状态编码状态有效状态编码状态设计时选中进入计数循环的设计
14、时选中进入计数循环的状态状态v无效状态非编码状态无效状态非编码状态设计时未选中进入计数循设计时未选中进入计数循环的状态环的状态010、101v死循环无效循环死循环无效循环由无效状态构成的循环由无效状态构成的循环v自启动自启动不存在死循环,计数循环以外的状态,都能不存在死循环,计数循环以外的状态,都能回到计数循环中来回到计数循环中来4时序图时序图CPQ0Q1Q2电路功能:同步电路功能:同步3位格雷码计数器或位格雷码计数器或同步六进制计数器同步六进制计数器u由于计数循环以外的状态不能回到计数循环里由于计数循环以外的状态不能回到计数循环里来,所以该计数器来,所以该计数器不能自启动不能自启动17Q2Q
15、1Q0000 001 011 111 110 100 000【例】分析下面电路的逻辑功能【例】分析下面电路的逻辑功能D D 触 发 器 的触 发 器 的特性方程特性方程18 QCP DQ QCP D QCP DCPQ2Q1Q0QQ.驱动方程驱动方程D2=Q1nD1=Q0nD0=Q0nQ1nQ2n=(Q0n+Q1n)Q2n状态方程状态方程Q2n+1=Q1nQ1n+1=Q0nQ0n+1=Q0nQ1nQ2n=(Q0n+Q1n)Q2n状态转换表和状态图状态转换表和状态图19状态转换表状态转换表Q2nQ1nQ0nQ2n+1Q1n+1Q0n+10 0 00 0 10 0 10 1 10 1 01 0 00
16、 1 11 1 11 0 00 0 01 0 10 1 01 1 01 0 01 1 11 1 0000001101110111010011100Q2Q1Q0状态转换图状态转换图能够回到计能够回到计数循环中来数循环中来最终状态图和电路功能最终状态图和电路功能20整理后的状态转换图整理后的状态转换图u电路功能:能够自行进入工作循环的同步电路功能:能够自行进入工作循环的同步3位格雷码位格雷码计数器同步六进制计数器计数器同步六进制计数器u由于计数循环以外的状态都能回到计数循环里来,所由于计数循环以外的状态都能回到计数循环里来,所以称该计数器为能自启动的同步六进制计数器以称该计数器为能自启动的同步六进
17、制计数器000001110111101011010100217.2 有限状态机有限状态机 7.2.1 有限状态机概述有限状态机概述7.2.2 Moore型有限状态机型有限状态机7.2.3 Mealy型有限状态机型有限状态机7.2.1 有限状态机概述有限状态机概述v有限状态机有限状态机Finite State Machine,FSM是表示有限个是表示有限个状态以及这些状态之间的转移和动作等行为的离散数学模型状态以及这些状态之间的转移和动作等行为的离散数学模型。v有限状态机是组合逻辑和存放器逻辑的特殊组合。组合逻辑有限状态机是组合逻辑和存放器逻辑的特殊组合。组合逻辑局部包括次态逻辑根据现态和输入产
18、生次态和输出逻辑局部包括次态逻辑根据现态和输入产生次态和输出逻辑,分别用于状态译码和产生输出信号;存放器逻辑局部用于,分别用于状态译码和产生输出信号;存放器逻辑局部用于存储状态。存储状态。22输出输出现态现态次态次态现态现态输入输入次态次态逻辑逻辑状态状态寄存器寄存器输出输出逻辑逻辑Moore型状态机典型结构型状态机典型结构组合逻辑组合逻辑组合逻辑组合逻辑存放器逻辑存放器逻辑v FSM常用于常用于时序逻辑电路时序逻辑电路设计,尤其适于设计数字系统的控设计,尤其适于设计数字系统的控制模块。具有速度快、结构简单、可靠性高、逻辑清晰、复制模块。具有速度快、结构简单、可靠性高、逻辑清晰、复杂问题简单化
19、的优点。杂问题简单化的优点。v 根据输出信号产生的机理不同,状态机可以分成两类:根据输出信号产生的机理不同,状态机可以分成两类:w摩尔摩尔(Moore)型状态机型状态机-输出信号仅与当前状态有关输出信号仅与当前状态有关w米里米里(Mealy)型状态机型状态机-输出信号与当前状态及输入信号输出信号与当前状态及输入信号有关有关有限状态机的分类有限状态机的分类23输出输出现态现态次态次态现态现态输入输入次态逻次态逻辑辑状态状态寄存器寄存器输出逻输出逻辑辑Mealy型状态机的典型结构型状态机的典型结构有限状态机的表示方法有限状态机的表示方法24v状态机有状态机有3 3种表示方法种表示方法v状态图状态图
20、State DiagramState Diagram、状态表、状态表State State TableTable和流程图和流程图v三者等价,可以相互转换三者等价,可以相互转换 000/0001/0010/0011/0100/1CQQQ/012状态转换图状态转换图Q2nQ1nQ0nQ2n+1Q1n+1Q0n+1C0 0 00 0 100 0 10 1 000 1 00 1 100 1 11 0 001 0 00 0 01状态转换表状态转换表有限状态机的设计方法有限状态机的设计方法v 实用的状态机一般都设计为同步时序逻辑电路,它在实用的状态机一般都设计为同步时序逻辑电路,它在同一个时钟信号的触发下
21、,完成各状态之间的转移。同一个时钟信号的触发下,完成各状态之间的转移。 v 状态机设计步骤:状态机设计步骤: 1. 分析设计要求,列出全部可能状态;分析设计要求,列出全部可能状态; 2. 画出状态转移图;画出状态转移图; 3. 用用Verilog HDL语言描述状态机,主要采用语言描述状态机,主要采用always块语句,完成块语句,完成3项任务:项任务:v 1定义起始状态敏感信号为时钟和复位信号;定义起始状态敏感信号为时钟和复位信号;v 2用用case或或if-else语句描述出状态的转移根语句描述出状态的转移根据现态和输入产生次态;据现态和输入产生次态;v 3用用case或或if-else语
22、句描述状态机的输出信号语句描述状态机的输出信号敏感信号为现态敏感信号为现态 。 25状态机的设计要点状态机的设计要点v 起始状态的选择起始状态的选择 v 起始状态指电路复位后所处的状态,选择一个合理的起始状态指电路复位后所处的状态,选择一个合理的起始状态将使整个系统简捷高效。有限状态机必须有时钟起始状态将使整个系统简捷高效。有限状态机必须有时钟信号和复位信号建议采用异步复位!信号和复位信号建议采用异步复位!v 状态编码方式状态编码方式v 二进制编码顺序编码二进制编码顺序编码 :采用顺序的二进制数编码每个状:采用顺序的二进制数编码每个状态,态,N N个状态用个状态用log2Nlog2N个触发器来
23、表示个触发器来表示节省逻辑资源,但节省逻辑资源,但可能产生毛刺可能产生毛刺v 格雷编码格雷编码Gray CodeGray Code: N N个状态用个状态用log2Nlog2N个触发器来表示,个触发器来表示,在状态的顺序转换中,相邻状态每次只有一个比特位产生变在状态的顺序转换中,相邻状态每次只有一个比特位产生变化化节省逻辑资源;又防止产生毛刺节省逻辑资源;又防止产生毛刺v 一位热码编码一位热码编码One-Hot EncodingOne-Hot Encoding:采用:采用N N位二进制数位二进制数N N个触发器编码个触发器编码N N个状态,每个状态下只有个状态,每个状态下只有1 1位为位为“1
24、“1,其余,其余位为位为“0“0。相邻状态每次只有一个比特位产生变化。相邻状态每次只有一个比特位产生变化防止防止产生毛刺;但耗用逻辑资源多产生毛刺;但耗用逻辑资源多26对对8个状态三种编码方式的比照个状态三种编码方式的比照状态状态二进制编码二进制编码格雷编码格雷编码一位热码编码一位热码编码 state000000000000001 state100100100000010 state201001100000100 state301101000001000 state410011000010000 state510111100100000 state611010101000000 state71
25、1110010000000v 采用一位热码编码,虽然使用触发器较多,但可以有效节省和采用一位热码编码,虽然使用触发器较多,但可以有效节省和简化组合逻辑电路。简化组合逻辑电路。v FPGA有丰富的存放器资源,门逻辑相对缺乏,采用一位热码有丰富的存放器资源,门逻辑相对缺乏,采用一位热码编码可以有效提高电路的速度和可靠性,也有利于提高器件资编码可以有效提高电路的速度和可靠性,也有利于提高器件资源的利用率。源的利用率。27状态编码的状态编码的HDL定义定义v 状态编码的定义状态编码的定义有两种方式:有两种方式:parameter和和 define语句语句【例例】为为state0, state1 ,st
26、ate2 ,state3四个状态四个状态定义码字为:定义码字为:00,01 ,11,10parameter state0=2 b00 , state1=2 b01, state2=2 b11, state3=2 b10; case (state) state0:; state1:; define state0=2 b00 /不要加分号不要加分号 define state1=2 b01 define state2=2 b11 define state3=2 b10case (state) state0:; state1:; 方式一:用方式一:用parameter参数定义参数定义用用n个个para
27、meter常量表示常量表示n个状态个状态方式二:用方式二:用 define语句定义语句定义用用n个宏名表示个宏名表示n个状态个状态28状态转换的描述状态转换的描述v 一般用一般用case、casez或或casex语句,比用语句,比用if-else语句语句更清晰明了!更清晰明了!v 实用的状态机都应设计为由唯一的实用的状态机都应设计为由唯一的时钟边沿时钟边沿触发的触发的同同步步运行方式运行方式29v多余状态有效状态之外的状态的处理多余状态有效状态之外的状态的处理v在在case语句中用语句中用default分支语句决定如果进入无效状分支语句决定如果进入无效状态应采取的措施如返回到起始状态;态应采取
28、的措施如返回到起始状态;v编写必要的编写必要的Verilog代码明确指定进入无效状态所采取代码明确指定进入无效状态所采取的行为。的行为。30有限状态机的描述风格有限状态机的描述风格1/3v 状态机设计中主要包含状态机设计中主要包含3个对象个对象v 当前状态,现态当前状态,现态Current State;v 下一个状态,次态下一个状态,次态 Next State ;v 输出逻辑。输出逻辑。最常用最常用31有限状态机的描述风格有限状态机的描述风格2/3v 状态机的状态机的Verilog描述建议采用风格描述建议采用风格C双过程描述:双过程描述:一个过程描述现态和次态时序逻辑;另一个过程描述输一个过程
29、描述现态和次态时序逻辑;另一个过程描述输出逻辑组合逻辑。这样写结构清晰;将时序逻辑和出逻辑组合逻辑。这样写结构清晰;将时序逻辑和组合逻辑分开描述,便于修改。组合逻辑分开描述,便于修改。v 描述包括描述包括2个个always块:块:v 1 always(posedge clk or posedge reset) v if(reset) state=;/复位时回到初始状态;复位时回到初始状态;v else /状态的转移;状态的转移;v 2 always(state) /状态机的输出状态机的输出u次态逻辑指实现状态的转换根据现态和输入产生次态;次态逻辑指实现状态的转换根据现态和输入产生次态;u状态存
30、放器指根据复位信号定义起始状态以及在时钟上升沿时将状态存放器指根据复位信号定义起始状态以及在时钟上升沿时将次态赋给现态次态赋给现态present=next;;u输出逻辑指输出逻辑指Moore型状态机根据现态产生输出信号,或者型状态机根据现态产生输出信号,或者Mealy型状态机根据现态和输入产生输出信号。型状态机根据现态和输入产生输出信号。32有限状态机的描述风格有限状态机的描述风格3/3v 有时也采用风格有时也采用风格B单过程描述方式,即将状态机的现态、次单过程描述方式,即将状态机的现态、次态和输出逻辑放在一个态和输出逻辑放在一个always块中进行描述。块中进行描述。v 其优点是采用时钟信号
31、来同步输出信号,可以克服输出信号出现其优点是采用时钟信号来同步输出信号,可以克服输出信号出现毛刺的问题,适于输出信号作为控制逻辑的场合使用,有效防止毛刺的问题,适于输出信号作为控制逻辑的场合使用,有效防止了因输出信号带有毛刺而产生错误的控制逻辑了因输出信号带有毛刺而产生错误的控制逻辑.v 缺乏是输出信号会比双过程描述方式中的输出信号延迟一个时钟缺乏是输出信号会比双过程描述方式中的输出信号延迟一个时钟周期的时间。周期的时间。v 描述只有描述只有1个个always块:块:v always(posedge clk or posedge reset) v if(reset) state=;/复位时回到
32、初始状态;复位时回到初始状态;v else /状态的转移和状态机的输出状态的转移和状态机的输出v case(state)v Moore型有限状态机型有限状态机33输出输出现态现态次态次态现态现态输入输入次态次态逻辑逻辑状态状态寄存器寄存器输出输出逻辑逻辑Moore型状态机典型结构型状态机典型结构输入输入现态现态输出输出次态次态输出输出Moore型状态图的表示型状态图的表示 v Moore型状态机,其输出只为状态机型状态机,其输出只为状态机当前状态当前状态的的函数,而与外部输入无关。函数,而与外部输入无关。v 外部输出是内部状态的函数。外部输出是内部状态的函数。34第第1 1步:分析设计要求,列
33、出全部可能状态步:分析设计要求,列出全部可能状态: : 未收到一个有效位未收到一个有效位0 0:S0S0收到一个有效位收到一个有效位1 1:S1S1连续收到两个有效位连续收到两个有效位1111:S2S2连续收到三个有效位连续收到三个有效位110110:S3 S3 连续收到四个有效位连续收到四个有效位11011101 :S4S4v 由于序列检测器的输出只为状态机当前状态的函由于序列检测器的输出只为状态机当前状态的函数,而与外部输入无关,所以为数,而与外部输入无关,所以为Moore型状态机型状态机Moore型有限状态机设计举例型有限状态机设计举例1【例【例7.3】设计一个序列检测器。要求检测器连续
34、收到串行】设计一个序列检测器。要求检测器连续收到串行码码1101后,输出检测标志为后,输出检测标志为1,否那么输出检测标志为,否那么输出检测标志为0。序列序列1101S0/0S1/0S2/0S4/1S3/01101010100Si/ZOiData_INi35第第2步:画出状态图步:画出状态图只有在只有在S4状态下输出状态下输出zo置置1,其他状态下其他状态下zo为为0,且,且输出与外部输出与外部输入无关输入无关36第第3步:用步:用Verilog语言描述状态机语言描述状态机v 在程序的开头定义状态机状态的编码形式在程序的开头定义状态机状态的编码形式v 用用parameter或或 define语
35、句语句v 复位时回到起始状态复位时回到起始状态v 敏感信号为时钟和复位信号敏感信号为时钟和复位信号v 状态转换描述状态转换描述v 用用case或或if-else语句描述出状态的转移根据现态和输语句描述出状态的转移根据现态和输入产生次态,可与复位时回到起始状态的语句放在同一入产生次态,可与复位时回到起始状态的语句放在同一个个always块中,即敏感信号为时钟和复位信号块中,即敏感信号为时钟和复位信号v 输出信号描述输出信号描述v 用用case语句语句Mealy型状态机还要用到型状态机还要用到if-else语句描述语句描述状态机的输出信号单独放在一个状态机的输出信号单独放在一个always块中,敏
36、感信块中,敏感信号为现态号为现态 module monitor(clk,clr,data,zo,state); parameter S0=3b000, S1=3b001, S2=3b010,S3=3b011,S4=3b100; /状态编码的定义状态编码的定义 input clk,clr,data; output zo; output2:0 state; /状态机状态机 reg 2:0 state; reg zo; always (posedge clk or posedge clr) begin if (clr) state=S0; /1复位时回到初始状态复位时回到初始状态 else begi
37、n case (state)/ 2状态的转移状态的转移 S0: if (data=1b1) state=S1; else state=S0; S1: if (data=1b1) state=S2; else state=S0; S2: if (data=1b0) state=S3; else state=S2; S3: if (data=1b1) state=S4; else state=S0; S4: if (data=1b1) state=S1; else state=S0; default: state=S0; endcase zo=(state=S4)?1b1:1b0; /3状态机的输
38、出信号状态机的输出信号 end endendmodule37序列检测器源程序序列检测器源程序 Moore型状态机型状态机在在S4时给时给zo置置1输出只为状态机输出只为状态机当前状态的函数,当前状态的函数,而与外部输入无关而与外部输入无关38状态机的输出信号描述状态机的输出信号描述 v 如果输出表达式很简单,可以单独用一条赋值语句写出如果输出表达式很简单,可以单独用一条赋值语句写出v 最好将状态机的输出语句单独写在另一个最好将状态机的输出语句单独写在另一个always块中纯块中纯组合逻辑,这样逻辑清晰,不易出错:组合逻辑,这样逻辑清晰,不易出错:v 语句语句“zo=(state=S4)?1b1
39、:1b0;去掉,换成如去掉,换成如下下always块组合逻辑,块组合逻辑, monitor_good.v :v always (state) /3状态机的输出信号状态机的输出信号v beginv case (state) v S0: zo=1b0; v S1: zo=1b0; v S2: zo=1b0; v S3: zo=1b0; v S4: zo=1b1; v default: zo=1b0;v endcase v end返回返回39序列检测器的仿真波形序列检测器的仿真波形1101返回返回40Moore型有限状态机设计举例型有限状态机设计举例2v设计思路:电路采用状态机来设计,一共包括设计思
40、路:电路采用状态机来设计,一共包括3个状态个状态vS0:判断被除数是否大于除数,假设是,得到第:判断被除数是否大于除数,假设是,得到第1次的商次的商和余数,跳转到和余数,跳转到S1;假设不是,那么商为;假设不是,那么商为0,余数等于被,余数等于被除数,跳转到除数,跳转到S2vS1:进行除法运算,当余数小于被除数时,跳转到:进行除法运算,当余数小于被除数时,跳转到S2vS2:得到运算结果,然后返回:得到运算结果,然后返回S0【例【例7.4】用有限状态机设计】用有限状态机设计4位二进制数的除法电路位二进制数的除法电路单过程单过程40除法电路源程序除法电路源程序module division(a,
41、b, clk, reset, result, yu, state); input3:0 a, b;/ 被除数和除数被除数和除数 input clk, reset; output reg3:0 result, yu; / 最终结果:商和余数最终结果:商和余数 output reg1:0 state; reg3:0 m, n;/ 每步除法运算的商和余数每步除法运算的商和余数 parameter S0=2b00, S1=2b01, S2=2b10;/状态编码顺序编码状态编码顺序编码 always (posedge clk or posedge reset) beginif(reset) begin
42、m=4b0000; n=4b0000; result=4b0000; yu=4b0000; state=b) begin m=4b0001; n=a-b; state=S1; end else begin m=4b0000; n=a; state=b) begin m=m+1b1; n=n-b; state=S1; end else begin state=S2; end endS2: begin /得到运算结果得到运算结果 result=m; yu=n; state=S0; end default: state 1;/实现右移操作实现右移操作 q7 = dir; end /存放器的最高位接收
43、串行右移输入信号存放器的最高位接收串行右移输入信号 else begin q = q 1;/实现左移操作实现左移操作 q0 = dil; end /存放器的最低位接收串行左移输入信号存放器的最低位接收串行左移输入信号 endendmodule1518位双向移位存放器的仿真波形位双向移位存放器的仿真波形1510000_00010000_0011复位复位预置预置串入右移串入右移0000_0110串入左移串入左移0010_01000001_00101527.5.3 计数器的设计计数器的设计1、十进制同步计数器异步去除、十进制同步计数器异步去除CT74160【例【例7.23】用】用always块语句设
44、计十进制块语句设计十进制同步计数器同步计数器CT74160并行数据输入端:并行数据输入端:D3-D0 时钟输入端:时钟输入端:CP,上升沿有效,上升沿有效 状态输出端:状态输出端: Q3-Q0, Q3、Q2、Q1和和Q0的权值依次为的权值依次为23、22、21和和20异步复位输入端:异步复位输入端:CRN,低电平有效,低电平有效同步预置控制输入端:同步预置控制输入端:LDN,低电平有,低电平有效效使能控制输入端:使能控制输入端:EP和和ET,高电平有效,高电平有效,均为均为1时计数器工作,只要有时计数器工作,只要有1个信号个信号为为0,那么计数器保持,那么计数器保持进位输出端进位输出端: OC
45、, Q3Q2Q1Q0=1001且且ET=1时,时,OC=1功能:异步复位;同功能:异步复位;同步预置;计数;保持步预置;计数;保持153 CT74160的的HDL设计设计module CT74160(LDN,D3,D2,D1,D0,CP,CRN,EP,ET,Q3,Q2,Q1,Q0,OC); inputLDN,D3,D2,D1,D0,CP,CRN,EP,ET; output Q3,Q2,Q1,Q0,OC; reg Q3,Q2,Q1,Q0,OC; reg3:0 Q_TEMP; always(posedge CP or negedge CRN ) begin if (!CRN) Q_TEMP = 4
46、b0000; /异步异步复位复位 else begin if (!LDN) Q_TEMP = D3,D2,D1,D0; /同步同步预置预置 else if (EP & ET)/计数计数 if (Q_TEMP 4b1001) Q_TEMP = Q_TEMP + 1; else Q_TEMP = 4b0000; else Q_TEMP = Q_TEMP; /保持保持 end end 异步异步复位复位最大只计到最大只计到9154 CT74160的的HDL设计续设计续 always/产生进位输出和对最终输出赋值产生进位输出和对最终输出赋值 begin if (Q_TEMP = 4b1001 &
47、amp; ET = 1b1) OC = 1b1; else OC = 1b0; Q3,Q2,Q1,Q0 = Q_TEMP; endendmodule返回返回74161的设计的设计组合逻辑组合逻辑155CT74160的仿真波形图的仿真波形图同步预置同步预置计数计数保持保持ET=0 时保持时保持异步复位异步复位156【例【例7.24】二进制同步计数器】二进制同步计数器CT74161(异步去除异步去除)【例【例7.24】用】用always块语句设计二进制同步计块语句设计二进制同步计数器数器CT74161并行数据输入端:并行数据输入端:D3-D0时钟输入端:时钟输入端:CP,上升沿有效,上升沿有效状态
48、输出端:状态输出端: Q3-Q0, Q3、Q2、Q1和和Q0的的权值依次为权值依次为23、22、21和和20异步复位输入端:异步复位输入端:CRN,低电平有效,低电平有效同步预置控制输入端:同步预置控制输入端:LDN ,低电平有效,低电平有效使能控制输入端:使能控制输入端:EP和和ET,高电平有效,均,高电平有效,均为为1时计数器工作,只要有时计数器工作,只要有1个信号为个信号为0,那,那么计数器保持么计数器保持进位输出端:进位输出端:OC, Q3Q2Q1Q0=1111且且ET=1时,时,OC=12、4位二进制同步计数器异步去除位二进制同步计数器异步去除CT74161157CT74161的的H
49、DL设计设计module CT74161(LDN,D3,D2,D1,D0,CP,CRN,EP,ET,Q3,Q2,Q1,Q0,OC); input LDN,D3,D2,D1,D0,CP,CRN,EP,ET; output Q3,Q2,Q1,Q0,OC; reg Q3,Q2,Q1,Q0,OC; reg3:0 Q_TEMP; always(posedge CP or negedge CRN ) begin if (!CRN) Q_TEMP = 4b0000; /异步异步复位复位 else begin if (!LDN) Q_TEMP = D3,D2,D1,D0; /同步同步预置预置 else if
50、(EP & ET) Q_TEMP = Q_TEMP + 1; /计数计数 else Q_TEMP = Q_TEMP; /保持保持 end end与与CT74160的区的区别别:不必判断计数不必判断计数最大值为多少,最大值为多少,每来一个时钟脉每来一个时钟脉冲,都加冲,都加1计数计数158CT74161的的HDL设计续设计续always/产生进位输出和对最终输出赋值产生进位输出和对最终输出赋值 begin if (Q_TEMP = 4b1111 & ET = 1b1) OC = 1b1; else OC = 1b0;Q3,Q2,Q1,Q0 = Q_TEMP; endendmodu
51、le与与CT74160的区别的区别CT74160源程序源程序159CT74161的仿真波形图的仿真波形图毛刺毛刺异步复位异步复位最大计到最大计到(1111)2160【例【例7.25】同步计数器】同步计数器CT74163同步去除同步去除3、4位二进制同步计数器位二进制同步计数器CT74163【例【例7.25】用】用always块语句设计二进制同步计块语句设计二进制同步计数器数器CT74163 同步去除同步去除 并行数据输入端:并行数据输入端:D3-D0; 时钟输入端:时钟输入端:CP,上升沿有效;,上升沿有效; 状态输出端:状态输出端: Q3-Q0, Q3、Q2、 Q1和和Q0的权值依次为的权值
52、依次为23、22、21和和20同步复位输入端:同步复位输入端:CRN,低电平有效,低电平有效同步预置控制输入端:同步预置控制输入端:LDN ,低电平有效,低电平有效使能控制输入端:使能控制输入端:EP和和ET,高电平有效,均,高电平有效,均为为1时计数器工作,只要有时计数器工作,只要有1个信号为个信号为0,那么计数器保持那么计数器保持进位输出端:进位输出端:OC, Q3Q2Q1Q0=1111且且ET=1时,时,OC=1161CT74163的的HDL设计设计module CT74163(LDN,D3,D2,D1,D0,CP,CRN,EP,ET,Q3,Q2,Q1,Q0,OC); inputLDN,
53、D3,D2,D1,D0,CP,CRN,EP,ET; outputQ3,Q2,Q1,Q0,OC; regQ3,Q2,Q1,Q0,OC; reg3:0 Q_TEMP; always(posedge CP ) beginif (!CRN) Q_TEMP = 4b0000; /同步同步复位复位else if (!LDN) Q_TEMP = D3,D2,D1,D0; /同步同步预置预置else if (EP & ET) Q_TEMP = Q_TEMP + 1; /计数计数else Q_TEMP = Q_TEMP; /保持保持 end always beginif (Q_TEMP = 4b1111
54、 & ET = 1b1) OC = 1b1;else OC = 1b0;Q3,Q2,Q1,Q0 = Q_TEMP; endendmodule 程序与程序与CT74161有何区别?有何区别?162CT74163的设计的仿真波形图的设计的仿真波形图同步复位同步复位1634、同步加、同步加/减计数器减计数器CT74191【例例7.26】4位二进制同步加位二进制同步加/减计数器减计数器CT74191u并行数据输入端:并行数据输入端:D3-D0u 时钟输入端:时钟输入端:CP,上升沿有效,上升沿有效u状态输出端:状态输出端: Q3-Q0, Q3、Q2、 Q1和和Q0的权值依次为的权值依次为23、
55、22、21和和20u加加/减控制输入端:减控制输入端:M,M=0时,计数器加计数;时,计数器加计数;M=1时,计数器减计数时,计数器减计数u使能控制输入端:使能控制输入端:SN,低电平有效,低电平有效u同步预置控制输入端:同步预置控制输入端:LDN,低电平有效,低电平有效u进位进位/借位输出端:借位输出端:OC_OB,加法计数时,当,加法计数时,当Q3Q2Q1Q0=1111时,时,OC_OB=1;减法计数;减法计数时,当时,当Q3Q2Q1Q0=0000时,时,OC_OB=1 ;uOC_OB的反相输出端的反相输出端: OCN,输出脉冲宽度为,输出脉冲宽度为半个时钟周期低电平段半个时钟周期低电平段
56、164CT74191的的HDL设计设计module CT74191(LDN,D3,D2,D1,D0,CP,M,SN, Q3,Q2,Q1,Q0,OC_OB,OCN); input LDN,D3,D2,D1,D0,CP,M,SN; output Q3,Q2,Q1,Q0,OC_OB,OCN; reg Q3,Q2,Q1,Q0,OC_OB,OCN; reg3:0 Q_TEMP; always (posedge CP ) /1处理加处理加/减操作减操作 begin if (!LDN) Q_TEMP = D3,D2,D1,D0; /同步预置同步预置 else if (!SN) /计数器工作计数器工作 if
57、(!M) Q_TEMP = Q_TEMP + 1; /假设假设M为为0,做加,做加法法 else Q_TEMP = Q_TEMP - 1; /假设假设M为为1,做减,做减法法 else Q_TEMP = Q_TEMP;/计数器保持计数器保持 end165CT74191的的HDL设计续设计续always /2处理进位处理进位/借位操作借位操作 begin if (Q_TEMP = 4b1111 & M = 1b0) begin OC_OB = 1b1;/产生进位产生进位 OCN = (OC_OB & CP); end else if (Q_TEMP = 4b0000 &
58、M = 1b1) begin OC_OB = 1b1; /产生借位产生借位 OCN = (OC_OB & CP); end else OC_OB = 1b0; Q3,Q2,Q1,Q0 = Q_TEMP; endendmodule166CT74191的仿真波形图的仿真波形图M=1时时, 减减计数计数SN=0时,工作时,工作SN=1时时保持保持借位借位预置预置进位进位M=0时时, 加加计数计数167计数器同步清零与异步清零计数器同步清零与异步清零u通常采用异步清零通常采用异步清零只要清零信号有效,那么无论有无时钟脉只要清零信号有效,那么无论有无时钟脉冲到来,计数器输出立刻被清零。冲到来,计
59、数器输出立刻被清零。 always (posedge CP or negedge CRN) begin if (!CRN) /异步清零异步清零 Q=4b0000; end 异步清零异步清零168计数器同步清零与异步清零续计数器同步清零与异步清零续u只有在时钟周期很小或清零信号为电平信号时容易捕捉到清只有在时钟周期很小或清零信号为电平信号时容易捕捉到清零信号采用同步清零零信号采用同步清零当清零信号有效时,假设来一个时当清零信号有效时,假设来一个时钟脉冲,那么计数器输出被清零。钟脉冲,那么计数器输出被清零。always (posedge CP) begin if (!CRN) /同步清零同步清零
60、Q=4b0000; end同步清零同步清零1697.5.4 顺序脉冲发生器的设计顺序脉冲发生器的设计 v 在时钟脉冲的控制下,各触发器输在时钟脉冲的控制下,各触发器输出端顺序产生脉冲信号的电路称为出端顺序产生脉冲信号的电路称为顺序脉冲发生器。顺序脉冲发生器。v 顺序脉冲发生器由多个触发器构成顺序脉冲发生器由多个触发器构成v 4位顺序脉冲发生器,由位顺序脉冲发生器,由4个状态构个状态构成,每个状态编码中成,每个状态编码中“1的个数都的个数都是是1个,表示每个时钟周期内只有一个,表示每个时钟周期内只有一个触发器的输出端为高电平脉个触发器的输出端为高电平脉冲,而且是轮流出现,因而生成冲,而且是轮流出现,因而生成顺序脉冲信号。顺序脉冲信号。 4 4位顺序脉冲发生器的状态图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业家精神代际传递-洞察及研究
- 第八单元《词义的辨析和词语的使用》教案(表格式)统编版高中语文必修上册
- 2025企业租赁合同协议书模板
- 党史教育线上考试题库及答案
- 2025【合同范本】铁路运输合同范本
- 2025养殖场山地租赁合同
- 冲压安全生产培训资料课件
- 2025租赁合同模板示例
- 八月快递安全培训总结课件
- 2025化工卧式泵买卖合同书
- 化学奇妙之旅
- 《化工仪表知识培训》课件
- 第十八届地球小博士全国地理知识科普大赛介绍宣传组织动员备赛课件
- 《汽车文化(第二版)》中职全套教学课件
- 物业管理服务流程与标准手册
- DB3502∕T 090-2022 居家养老紧急事件应急助援规范
- 精微广大-绘画的功能和种类 课件-2024-2025学年高中美术人美版(2019)选择性必修1 绘画
- 腰椎间盘突出症护理查房课件
- 数据退役方案
- 山东科学技术出版社小学一年级上册综合实践活动教案
- 2024口腔医学专业考核标准
评论
0/150
提交评论