精华内容
下载资源
问答
  • 常用的时序逻辑电路
    2021-07-22 00:30:24

    数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。而时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。

    中文名

    时序逻辑电路外文名

    sequential logic circuit

    分    类

    组合电路、时序电路

    9cf7be18ec39f63b8994b6fd3f3595d6.gif

    结构图

    时序逻辑电路简介

    语音

    时序逻辑电路是数字逻辑电路的重要组成部分,时序逻辑电路又称时序电路,主要由存储电路和组合逻辑电路两部分组成。它和我们熟悉的其他电路不同,其在任何一个时刻的输出状态由当时的输入信号和电路原来的状态共同决定,而它的状态主要是由存储电路来记忆和表示的。同时时序逻辑电路在结构以及功能上的特殊性,相较其他种类的数字逻辑电路而言,往往具有难度大、电路复杂并且应用范围广的特点[1]

    在数字电路通常分为组合逻辑电路和时序逻辑电路两大类,组合逻辑电路的有关内容在前面的章节里已经作了介绍,组合逻辑电路的特点是输入的变化直接反映了输出的变化,其输出的状态仅取决于输入的当前的状态,与输入、输出的原始状态无关,而时序电路是一种输出不仅与当前的输入有关,而且与其输出状态的原始状态有关,其相当于在组合逻辑的输入端加上了一个反馈输入,在其电路中有一个存储电路,其可以将输出的状态保持住,我们可以用下图的框图来描述时序电路的构成。

    从上面的图上可以看出,其输出是输入及输出前一个时刻的状态的函数,这时就无法用组合逻辑电路的函数表达式的方法来表示其输出函数表达式了,在这里引入了现态(Present state)和次态(Next State)的概念,当现态表示现在的状态(通常用Qn来表示),而次态表示输入发生变化后其输出的状态 (通常用Qn 1表示),那么输入变化后的输出状态表示为

    Qn 1=f(X,Qn)

    其中:X为输入变量。

    下面通过两个波形图来帮助建立时序电路中存储器的概念:

    从上图a图中可以看出,其图中有四段输入RS都为0的情况,但其输出Q的状态不同,这取决于输出的原始状态;而b图中的输入与图a相同,但多了一个CP,这时输出Q不仅取决于输入RS、输出Q的原始状态,而且取决CP的状态,仅当CP为高电平时,输入的状态才能影响输出的状态。通常将上面的两种类型分为两种形式的存储器电路:锁存器(Latch)和触发器(Flip-flop),其两者的区别在于其输出状态的变化是否取决于CP(时钟脉冲Clock Pulse)。将图a所有的电路称为锁存器,而b图所示的电路称为触发器电路。

    时序逻辑电路的特点:任意时刻的输出不仅取决于该时刻的输入,而且还和电路原来的状态有关,所以时序电路具有记忆功能。

    时序逻辑电路三种逻辑器件

    语音

    时序逻辑电路应用很广泛,根据所要求的逻辑功能不同进行划分,它的种类也比较繁多。在具体的授课环节中,主要选取了应用较广、具有典型时序逻辑电路特征的三种逻辑器件进行比较详细地介绍[1]

    1.计数器

    一般来说,计数器主要由触发器组成,用以统计输入计数脉冲CP的个数。计数器的输出通常为现态的函数。计数器累计输入脉冲的最大数目称为计数器的“模”,用M表示。如M=6计数器,又称六进制计数器。所以,计数器的“模”实际上为电路的有效状态数[1]

    同步七进制加法计数器的逻辑图计数器的种类很多,特点各异。主要分类如下:按计数进制可分为:二进制计数器、十进制计数器、任意进制计数器。按计数增减可分为:加法计数器、减法计数器、加/减计数器,又称可逆计数器。按计数器中触发器翻转是否同步可分为:异步计数器和同步计数器[1]

    2.寄存器

    寄存器是存放数码、运算结果或指令的电路,移位寄存器不但可存放数码,而且在移位脉冲作用下,寄存器中的数码可根据需要向左或向右移位。寄存器和移位寄存器是数字系统和计算机中常用的基本逻辑部件,应用很广。一个触发器可存储一位二进制代码, n个触发器可存储n位二进制代码。因此,触发器是寄存器和移位寄存器的重要组成部分。对寄存器中的触发器只要求它们具有置0或者置1功能即可,无论是用同步结构的触发器,还是用主从结构或者边沿触发的触发器,都可以组成寄存器[1]

    3.顺序脉冲发生器

    顺序脉冲是指在每个循环周期内,在时间上按一定先后顺序排列的脉冲信号。产生顺序脉冲信号的电路称为顺序脉冲发生器。在数字系统中,常用以控制某些设备按照事先规定的顺序进行运算或操作[1]

    时序逻辑电路特点

    语音

    时序逻辑电路其任一时刻的输出不仅取决于该时刻的输入,而且还与过去各时刻的输入有关。常见的时序逻辑电路有触发器、计数器、寄存器等。由于时序逻辑电路具有存储或记忆的功能,检修起来就比较复杂。

    带有时序逻辑电路的数字电路主要故障分析:

    1. 时钟:时钟是整个系统的同步信号,当时钟出现故障时会带来整体的功能故障。时钟脉冲丢失会导致系统数据总线、地址总线或控制总线没有动作。时钟脉冲的速率、振幅、宽度、形状及相位发生变化均可能引发故障。

    2. 复位:含有微处理器(MPU)的设备,即使是最小系统,一般都具有复位功能。复位脉冲在系统上电时加载到MPU上,或在特定情况下使程序回到最初状态(例如,看门狗Watchdog程序)。当复位脉冲不能发生、信号过窄、信号幅度不对、转换中有干扰或转换太慢时,程序就可能在错误的地址启动,导致程序混乱。

    3. 总线:总线传递指令系列和控制事件,一般有地址总线、数据总线和控制总线。当总线即使只有一位发生错误时,也会严重影响系统功能,出现错误寻址、错误数据或错误操作等。总线错误可能发生在总线驱动器中,也可能发生在接收数据位的其它元件中。

    4. 中断:带微处理器(MPU)的系统一般都能够响应中断信号或设备请求,产生控制逻辑,以暂时中断程序执行,转到特殊程序,为中断设备服务,然后自动回到主程序。中断错误主要是中断线路粘附(此时系统操作非常缓慢)或受到干扰(系统错误响应中断请求)。

    5. 信号衰减和畸变:长的并行总线和控制线可能会发生交互串扰和传输线故障,表现为相邻的信号线出现尖峰脉冲(交互串扰),或驱动线上形成减幅振荡(相当于逻辑电平的多次转换),从而可能加入错误数据或控制信号。发生信号衰减的可能原因比较多,常见的有高湿度环境、长的传输线、高速率转换等。而大的电子干扰源会产生电磁干扰(EMI),导致信号畸变,引起电路的功能紊乱。

    时序逻辑电路检修方法

    语音

    在检修时序逻辑电路之前应尽可能熟悉系统的结构原理和电路,然后是分析故障的表征特性,尽可能地缩小故障产生的范围。较高档的医疗设备一般带有自诊断程序,可充分利用它查找故障,将故障定位到较小范围。

    时序逻辑电路检查电源

    时序逻辑电路较常采用±5V、±15V、±12V电源。当电源对地短路或电源稳定性差都可能导致系统故障,表现为系统无反应、系统程序紊乱等。一般来说,电源对地短路是因为电容(去耦电容)短路产生的,找到故障电容最好的办法是采用电流跟踪仪跟踪短路电流,没有电流跟踪仪的就只好将电路分单元查找替换。

    时序逻辑电路检查时钟

    时钟电路一般由石英晶体电路组成(也有采用RC振荡电路的)。根据经验,石英晶体较易损坏。可用示波器测试时钟信号的频率、振幅、相位,或简单地用逻辑探针检测时钟脉冲的有无。对各个单元电路的时钟均应检测,以防断线、松脱、干扰等引起时钟脉冲的不正确。

    时序逻辑电路检查总线

    用逻辑探针检查总线上是否有脉冲活动。若总线上没有脉冲活动,可继续检查总线驱动器输入端有无脉冲信号、驱动器是否在允许状态、驱动器是否响应激励等,来确定故障是否是由于总线驱动器引起的,然后轮流检查每一个总线接收者。另外,可以关掉电源,用多用表检查总线各线的对地电阻,如果所有线的阻值一样,那么总线估计正常;如果一条或多条线的阻值与其余的不同,那么该线值得怀疑;如果有两根线的阻值相同,而又高于或低于其它的线,那么这两条线可能相互短路了。

    时序逻辑电路检查关键的脉冲信号

    用逻辑探针、示波器或逻辑分析仪观察复位、使能、选通、读写、中断、读内存等控制信号,可以较好地判断集成电路(IC)是否正常工作。当复位信号有效时,IC输出应被清零或置位,程序应回到初始状态运行;当使能信号有效而时钟脉冲正常时,IC数据线上应有脉冲活动;当逻辑探针连到读内存线上,而指示灯没有闪烁显示(即读内存线上没有脉冲活动),说明微处理器可能在程序的某处卡住了,因为每一条指令读地址处存储器时,读内存线上通常是应有脉冲信号的;对于中断信号,可用逻辑探针来观察是否发生中断线路粘附,也可通过外加直流电压或低电平来控制(允许或禁止)被测试的中断。

    时序逻辑电路检查接口

    接口卡、印刷板与插座插接时可能松脱或偏离中心导致接触不良而引发故障,实际上很多故障的确是由此产生的,对此可用无水酒精擦拭清洁接口后再重新插接固定。另外数字系统还常常通过外部通信线路(RS232、MODEM、IEEE-488等)与其它系统连接,而连接线通常很长,还可能暴露于电子干扰源下,例如继电器、电机、变压器、大型X线机、阴雨天闪电等,连接口接触不良和电子干扰源的电磁干扰(EMI)均可能会产生错误的数据传送,甚至损坏相关的元件。对电磁干扰最好找出干扰源后排除它,其次可改善工作环境(如湿度和温度等),加强屏蔽,或改用屏蔽性能好的连接线。

    时序逻辑电路的检修有许多方法技巧,必须通过长期实际工作摸索总结经验,才能更好地诊断、发现、排除故障,提高时序逻辑电路的维修技术水平。

    bb768476fd684c97b0887eb65cd0afb8.gif

    真值表

    词条图册

    更多图册

    参考资料

    1.

    时序逻辑电路教学方法浅析

    .中国知网[引用日期2015-02-24]

    更多相关内容
  • 计算机逻辑结构与基础课件:3_4常用时序逻辑电路模块2new.ppt
  • 计算机逻辑结构与基础课件:3_4常用时序逻辑电路模块1new.ppt
  • 【数电】常用时序逻辑电路模块总结

    千次阅读 多人点赞 2021-01-10 19:59:23
    时序逻辑电路的设计 一. 移位寄存器 移位寄存器具有存储代码、移位、数据转换、数值运算、数据处理等功能。 I. D触发器构成的4位移位寄存器 由边沿触发方式的D触发器组成的4位移位寄存器,第一个触发器的输入端D1...

    同步置零和异步置零

    同步置零、异步置零是相对于触发器内的数据的变化而言的。所谓的同步和异步其实就是是否和时钟脉冲同步置零即清零,同步置零就是一定要等到时钟脉冲CLK有效(等于0或者等于1)的时候才能清零,异步清零就是不用看时钟脉冲CLK,只要给置零端信号就能立刻实现置零。同步要考虑时钟脉冲,异步不考虑时钟脉冲
     

    同步预置数和异步预置数

    同步置数在输入端获得置数信号后,只是为置数创造了条件,还需要再输入一个计数脉冲CP,计数器才能将预置数置入异步置数与时钟脉冲没有任何关系,只要异步置数控制端出现置数信号,并行数据便立刻被置入。

     

    一. 移位寄存器

    移位寄存器具有存储代码、移位、数据转换、数值运算、数据处理等功能。

    I. D触发器构成的4位移位寄存器

    由边沿触发方式的D触发器组成的4位移位寄存器,第一个触发器的输入端D1接收输入信号,其余的每个触发器输入端D均与前一个触发器的输出端Q相连。其可以实现将原有的代码依次右移1位,利用这个性质还可以实现代码的串行-并行转换

    右移一位即乘2,左移一位即除以2。

    【电路图】

    在这里插入图片描述
     

    II. 双向移位寄存器 74HC194

    双向移位寄存器74HC194在普通移位寄存器的基础上,又增加了数据右移串行输入端DIR、数据左移串行输入端DIL、数据并行输入端D0 ~ D3、数据并行输出端Q0 ~ Q3、工作状态控制端S0和S1、异步置零端RD’。因此,74HC194具有左/右移、并行输入、保持、异步置零等功能

    【功能表】

    在这里插入图片描述

    【逻辑框图】

    在这里插入图片描述

    以74HC147为基础,可以利用多片74HC147接成多位双向移位寄存器。例如,用两片74HC147连接成八位双向移位寄存器,只需要将第一片的Q3连接至第二片的DIR、第二片的Q0连接至第一片的DIL、同时将两片的S0、S1、CLK和RD’分别并联即可

    在这里插入图片描述
     

    二. 计数器

    计数器不仅能用于对时钟脉冲进行计数,还可以用于分频、定时、产生节拍脉冲、产生脉冲序列、进行数字运算等。

    I. 同步计数器

    i. 同步二进制计数器

    1. 同步二进制加法计数器 74161

    同步计数器由T触发器构成,每次的CLK信号到达时,使得该翻转的触发器的Ti=1,不该翻转的触发器的Ti=0。则加法计数器的第i位触发器的输入端的逻辑式为:

    在这里插入图片描述

    按照这个原理,我们可以接成4位二进制同步加法计数器。

    【驱动方程】

    T0 = 1
    T1 = Q0
    T2 = Q0 Q1
    T3 = Q0 Q1 Q2

    【状态方程】

    Q0 * = Q0’
    Q1 * = Q0 Q1’ + Q0’ Q1
    Q2 * = Q0 Q1 Q2’ + (Q0 Q1)’ Q2
    Q3 * = Q0 Q1 Q2 Q3’ + (Q0 Q1 Q2)’ Q3

    【输出方程】

    C = Q0 Q1 Q2 Q3

    【状态转换图】

    在这里插入图片描述
    从状态转换图可以看出,同步二进制加法计数器每输入16个计数脉冲工作一个循环,并最终在Q3产生一个进位输出信号,因此同步二进制加法计数器又称为十六进制计数器。

    【时序图】

    在这里插入图片描述
    从时序波形图我们可以看出,同步二进制加法计数器具有分频功能。设输入脉冲的频率为f0,则Q0、Q1、Q2、Q3端输出脉冲的频率依次为 f0/2、f0/4、f0/8、f0/16。

    74161在此基础上还加入了同步预置数控制端LD’、数据输入端D0~D3、进位输出端C、异步置零端RD’、工作状态控制端EP和ET

    【逻辑框图】

    在这里插入图片描述

    【功能表】

    在这里插入图片描述
     

    2. 同步二进制减法计数器

    与加法计数器相反,减法计数器的第i位触发器的输入端的逻辑式为:

    在这里插入图片描述
    我们也可以像构成同步二进制加法计数器那样构成同步二进制减法计数器,在此不多赘述。
     

    3. 同步加/减计数器 74LS191 74LS193

    加减计数器实现了将加法计数器和减法计数器的电路的合并,有两种构成加减计数器的方式:单时钟方式和双时钟方式。
     

    (1)单时钟方式

    单时钟方式的特点是电路只有一个CLK信号,且加减仅由U’/D的电平决定。74LS191是利用单时钟方式构成的同步加减计数器。其输入端的逻辑式为:

    在这里插入图片描述

    【功能表】

    在这里插入图片描述

    从功能表可以看出,当U’/D = 0时做加法计数,U’/D = 1时做减法计数。LD’ = 0时电路为异步预置数状态,S’为总开关

     
    74LS191为异步预置数,而74161为同步预置数,但两者同为异步置零。
     

    (2)双时钟方式

    双时钟方式的特点是加法脉冲和减法脉冲来自两个不同的脉冲源。74LS193就是由这种方法构成的加减计数器,74LS193也具有异步置零和异步置数的功能。

    在这里插入图片描述
    在这里插入图片描述
     

    ii. 同步十进制计数器

    1. 同步十进制加法计数器 74160

    在四位同步二进制计数器的基础上稍加修改,使其计数到1001时即返回0000,这样就制成了同步十进制加法计数器。

    【驱动方程】

    T0 = 1
    T1 = Q0 Q3’
    T2 = Q0 Q1
    T3 = Q0 Q1 Q2 + Q0 Q3

    【状态转换表】

    在这里插入图片描述

    74160在此基础上,又添加了同步预置数、异步置零和保持的功能。

    【逻辑框图】

    在这里插入图片描述

    【功能表】

    在这里插入图片描述
     

    2. 同步十进制减法计数器

    T0 = 1
    T1 = Q0’ (Q1’ Q2’ Q3’)’
    T2 = Q0’ Q1’ (Q1’ Q2’ Q3’)’
    T3 = Q0’ Q1’ Q2’

    【状态转换图】

    在这里插入图片描述
     

    II. 异步计数器

    1. 异步二进制计数器

    异步计数器中的各个触发器不是同步翻转的,在末位+1时,从低位到高位逐位进行进位。异步二进制加法计数器和异步二进制减法计数器均采用了将低位触发器的一个输出端接入到高位触发器的时钟输入端的方法

    【电路图】

    在这里插入图片描述

    在这里插入图片描述

    由于触发器的新状态的建立要比CLK下降沿滞后一个传输延迟时间,故其时序波形图如下:

    在这里插入图片描述
    在这里插入图片描述
     

    2. 异步十进制计数器 74LS290

    异步十进制计数器74LS290便是由4位异步二进制计数器连接而成的。其电路图如下:

    在这里插入图片描述

    异步计数器与同步计数器相比,结构更为简单,但是异步计数器的工作效率较低,且在译码时会产生竞争-冒险现象。
     

    III. 移位寄存器型计数器

    1. 环形计数器

    将移位寄存器首尾相接(D0=Q3)即可构成环形计数器,此环形计数器在连续脉冲作用下可以实现数据的循环右移。环形计数器的优点是电路结构极其简单,且不需要译码器,它的缺点是没有充分利用电路的状态

    在这里插入图片描述
    在这里插入图片描述

    从状态转换图可以看出,普通的环形计数器不能实现自启动,只能取由1000、0100、0010、0001为有效循环,通常我们可以接入适当的反馈逻辑电路让环形计数器能够实现自启动。
     

    2. 扭环形计数器

    我们可以通过改变反馈逻辑电路来增加环形计数器的电路状态利用率。若令D0=Q3’,则此环形计数器被改造成了扭环形计数器。普通扭环形计数器有两个状态循环,其中一个为无效循环,无法自启动。若又令D0 = Q1 Q2’ + Q3’,则该扭环形计数器可以自启动。

    在这里插入图片描述
    在这里插入图片描述

    使用n位移位寄存器的扭环形计数器可以得到2n个有效状态的循环,其状态利用率是环形计数器的两倍,且不会产生竞争-冒险现象。
     

    IV. 任意进制计数器的构成方法

    若已有N进制计数器,需要得到M进制计数器,则此时应分为M<N和M>N这两种情况来讨论。

    1. M < N的情况

    这种情况下,我们必须设法让M~N中间的状态跳过,才可以得到M进制计数器。实现这种跳跃的方法有置零法和置数法两种。

    (1) 置零法

    置零法适用于有置零输入端的计时器。置零法不需要考虑D端,对于进位信号的产生,则需要根据实际情况来判断是否需要进位输出端C,若不需要C则进位脉冲由Q端直接输出

    对于异步置零的计数器,当它从全0状态S0开始计数并接收了M个计数脉冲后,电路进入SM状态,将此时的SM状态译码成一个置零信号加到置零输入端即可将计数器返回S0状态,从而得到M进制计数器。电路一进入SM状态即被置成S0状态,所以SM状态出现时间极短,故在稳定的状态中不含有SM状态。稳定的状态为S 0 ~ S M-1

    对于同步置零的计数器,由于必须等下一个时钟信号到达后才可以被置零,所以只需要从S M-1状态译码出同步置零信号即可,S M-1也包含在稳定循环当中

    例如,用置零法将异步置零的同步十进制计数器74160接成同步六进制计数器,在状态为0110时立即被置为0000,从而实现0000~0101的六进制循环。为了增加电路可靠性,我们还可以增加一个SR锁存器维持置零信号,用锁存器的Q’端连接RD’端,用Q端连接进位信号输出端

    【状态转换图】
    在这里插入图片描述
    【示意图】

    在这里插入图片描述
     

    (2) 置数法

    置数法也叫置位法,适用于有预置数功能的计数器,它通过给计数器重复置入某个数值的方法来跳跃M~N这些状态,从而获得M进制计数器。

    对于异步预置数的计数器,只要LD’=0的信号一出现,则数据会立即置入计数器中,不受CLK信号控制,所以预置数信号应该从S i+1开始译出。S i+1只在很短的时间内存在,不包含在稳定循环中。

    对于同步预置数的计数器,预置数信号应该从Si状态开始译出,等到下一个CLK信号到来时才将要置入的数据置入计数器中。

    例如,用置数法将同步预置数的同步十进制计数器74160接成同步六进制计数器,从D端置入循环开始状态,从Q端译码输出循环结束状态

    如果预置数为0000,计数循环结束时为0101,则无法从C端产生进位脉冲,故进位脉冲只能从Q2端进位输出。

    在这里插入图片描述
    在这里插入图片描述
    当然,若预置数为1001,则计数循环结束时为0100,此时再返回1001即可产生进位信号,即进位信号从C端输出。

    在这里插入图片描述
     

    2. M > N的情况

    此时则必须用多片N进制计数器组合成M进制计数器。各片之间的连接方式有串行进位方式、并行进位方式、整体置零方式和整体置数方式四种。

    (1) 串行进位方式

    串行进位方式中以低位片的进位输出信号作为高位片的时钟输入信号

    例如,用串行进位方式将74160接成一百进制计数器:

    在这里插入图片描述
     

    (2) 并行进位方式

    并行进位方式中以低位片的进位输出信号作为高位片的工作状态控制信号,且两片的CLK输入端同时接入计数输入信号

    例如,用并行进位方式将74160接成一百进制计数器:

    在这里插入图片描述
    在N1和N2不等于N时,可以先将两个N进制计数器用置零或置数法分别接成N1和N2进制计数器,再用并行或串行进位方式连接起来。

     

    (3) 整体置零方式

    当M为素数时,就不能采用串行进位或并行进位的方法了,必须采用整体置零或整体置数的方式。

    整体置零方式就是先将两片N进制计数器按串行或并行接成一个大于M进制的计数器,再用置零法将相应置零端置零。但整体置零法可靠性差,通常还需要加译码电路才能正常使用。第一片为个位,第二片为十位。整体置零数就是进制数

    例如,用两片同步十进制计数器74160接成一个二十九进制计数器:

    29 = 2×10 + 9×1
    在这里插入图片描述
     

    (4) 整体置数方式

    整体置数方式就是先将两片N进制计数器按串行或并行接成一个大于M进制的计数器,再用置数法的原理跳过多余的状态,从而获得M进制计数器。整体置数输出端Q的值要比进制数少一。

    例如,用两片同步十进制计数器74160接成一个二十九进制计数器:

    29 = 2×10 + 8×1 + 1
    在这里插入图片描述

    展开全文
  • Multisim设计一个简易交通灯控制电路实验报告
  • 常见时序逻辑电路

    千次阅读 2022-04-05 22:19:21
    用Verilog描述常见的时序逻辑电路


    与组合逻辑电路不同,时序逻辑电路的输出不仅与当前时刻输入变量的取值有关,而且与电路的原状态(即过去的输入情况有关)。
    时序逻辑电路的结构框图如下:
    在这里插入图片描述

    • 与组合电路相比,时序逻辑电路有两个优点:
    1. 时序逻辑电路包括组合逻辑电路和存储电路两部分,存储电路具有记忆功能,通常由触发器组成。
    2. 存储电路的状态反馈到组合逻辑电路输入端,与外部输入信号共同决定组合逻辑电路的输出。组合逻辑电路的输出除包括外部输出外,还包含连接到存储电路的内部输出,它将控制存储电路状态的转移。
    • 时序逻辑电路按状态变化的特点,可分为同步时序逻辑电路和异步时序逻辑电路。在同步时序逻辑电路中,电路状态的变化在同一时钟脉冲作用下发生,即各触发器状态的转换同步完成。在异步时序逻辑电路中,没有统一的时钟脉冲信号,即各触发器状态的转换是异步完成的。
    • 对时序逻辑电路功能的描述方式主要有三种:逻辑方程,状态转移表和状态转移图,时序图。
    • 对时序逻辑电路的设计进行描述也有不同的方式,主要有三种:状态转移图描述,基于状态化简的结构性描述,VerilogHDL抽象描述。

    触发器

    触发器是时序逻辑电路的最基本电路单元,主要有D触发器、JK触发器、T触发器和RS触发器等。根据功能要求的不同,触发器还具有置位、复位、使能、选择等功能。

    D触发器

    最简D触发器

    D触发器的逻辑符号如下所示:
    在这里插入图片描述
    图中D为信号输入端,clk为时钟控制端,Q为信号输出端。这种触发器的逻辑功能是:不论触发器原来的状态如何,输入端的数据D(无论D=0,还是D=1)都将在时钟clk的上升沿被送入触发器,使得Q=D。其真值表如下所示:
    在这里插入图片描述
    代码如下:

    module DFF (q, clk, data_in);
        output q;
        input clk, data_in;
        reg q;
        always @(posedge clk)   q <= data_in;
    endmodule
    

    带复位端的D触发器

    在D触发器的实际使用中,有时需要一个复位端(也称清零端)。带有复位端的D触发器的逻辑符号如下所示:
    在这里插入图片描述
    电路上电时,电路的逻辑处于不定状态,复位脉冲的到来将电路初始化为Q=0的状态。随后,在时钟的控制下,输入端D的数据在每个时钟上升沿被置到输出端Q。同步清0的D触发器的代码如下:

    module DFF_rst (q, clk, reset, data_in);
        output q;
        input clk, reset, data_in;
        reg q;
        always @(posedge clk) 
            if (!reset)  q <= 0;
            else         q <= data_in;
    endmodule
    

    异步清0的D触发器的代码如下:

    module DFF_srst (q, clk, reset, data_in);
        output q;
        input clk, reset, data_in;
        reg q;
        always @(posedge clk or negedge reset)//只要接收到复位信号,立马复位
        	if(!reset)  q <= 0;
        	else        q <= data_in;
    endmodule
    
    

    可以看到,同步清0和异步清0的电路代码只是在always后的敏感向量表上有所不同。对于同步清0,并不是清0信号一变化电路马上就会被置0,清0信号有效后需等待时钟的有效边沿到来后电路才会有动作,因此不应该把清0信号写入敏感向量表中。而异步清0时,只要清0信号有效,电路就会马上更新,输出置0,因此对于异步电路,清0信号有必要写入敏感向量表中。

    T触发器

    T触发器的逻辑符号如下所示:
    在这里插入图片描述
    其逻辑功能为:当时钟的有效边沿到来时,如果T=1,则触发器翻转;如果T=0,则触发器的状态保持不变。reset为复位端,异步复位,低电平有效。代码如下:

    module TFF (data_out, T, clk, reset);
        output data_out;
        input T, clk, reset;
        reg data_out;
        always @(posedge clk or negedge reset)
       	   if (!reset)     data_out <= 1'b0;
     	   elseif(T)       data_out <= ~data_out;  
    endmodule
    

    计数器

    计数器是应用最广泛的逻辑部件之一。计数器可以统计输入脉冲的个数,具有计时、计数、分频、定时、产生节拍脉冲等功能、
    根据计数器中触发器时钟端的链接方式,分为同步计数器和异步计数器;根据计数方式分为二进制计数器、十进制计数器和任意进制计数器;根据计数器中的状态变化规律,分为加法计数器、减法计数器和加/减计数器。

    二进制计数器

    采用D触发器实现的二进制计数器的逻辑电路图如下:
    在这里插入图片描述
    代码如下:

    module comp2bit (Q, clk, reset);
        output  q;
        input clk, reset;
        reg Q;
        always @(posedge clk or negedge reset)
        	if (!reset)
       			Q <= 1'b0;
       		else   
      	   	    Q <= ~Q;
    endmodule
    
    

    任意进制计数器

    对于M进制的计数器,首先应确定计数器所需触发器的个数。N个触发器对应了2的N次方个状态,其应大于M。
    以十一进制计数器为例,最少需要4个触发器。采用反馈清零法设计的十一进制计数器的代码如下:

    module comp_11 (count, clk, reset);
        output [3:0]count;
        input clk, reset;
        reg [3:0]count;
        always @(posedge clk)
            if(reset)   count <= 4'b0000;//复位
            else
                if (count == 4'b1010)//一个技术循环结束
                    count <= 4'b0000;
                else
                    count <= count + 1;
    endmodule
    

    移位寄存器

    移位寄存器 可以用来实现数据的串并转换,也可以构成移位计数器,进行计数、分频,还可以构成序列码发生器、序列码检测器等。
    以环形移位寄存器为例,N位环形寄存器由N个移位寄存器组成,它可以实现环形移位,如下图所示:
    在这里插入图片描述
    其将每个寄存器的输出作为下一位寄存器的输入,并将高位寄存器的输出作为循环的输入,代码如下:

    module shiftregist1 (D, clk, reset);
        parameter shiftregist_width = 4;
        output [shiftregist_width-1:0]D;//[3:0]D
        input clk, reset;
        reg[shiftregist_width-1:0]D;
        always @(posedge clk)
        	if (!reset)
        		D <= 4'b0000;
            else
                D <= {D[shiftregist_width-2:0], D[shiftregist_width-1]};
                    //D[2:0], D[3]
    endmodule
    

    序列信号发生器

    序列信号发生器是能够产生一组或多组序列信号的时序电路,它可以由纯时序电路构成,也可以由包含时序逻辑和组合逻辑的混合电路构成。
    以一个产生100111序列的信号发生器为例,可以采用不同的方法:

    1. 由移位寄存器构成
      采用循环移位寄存器,在电路工作前,将所需的序列码置入移位寄存器中,然后循环移位,就可以不断地产生需要的序列。由于移位寄存器输入和输出信号之间没有组合电路,不需要进行组合逻辑的反馈运算,因此所占用的电路的面积很大,结构框图如下:
      在这里插入图片描述
      代码如下:
    module signal_maker (out, clk, load, D);
        parameter M = 6;
        output out;
        input clk, load;
        input [M-1:0]D;  
        reg [M-1:0]Q;
        initial     Q = 6'b100111;
        always @(posedge clk)
       		if(load)    Q <= D;
      	    else        Q <= [Q[M-2:0], Q[M-1]];//移位  Q[4:0]+Q[5]
        assign out = Q[M-1]
    endmodule
    
    
    1. 由移位寄存器和组合逻辑电路构成
      反馈移位寄存器型序列信号发生器的结构框图如下所示:
      在这里插入图片描述
      它由移位寄存器和组合反馈网络组成,从移位寄存器的某一输出端可以得到周期性的序列码。
      代码如下:
    module signal_maker2 (out, clk, load, D);
        parameter M = 4;
        output out;
        input clk, load;
        input [M-1:0]D;
        reg [M-1:0]Q;
        wire w1;
        always @(posedge clk)//时序电路部分,移位寄存器
            if(load)        Q <= D;
            else            Q <= {Q[M-2:0], w1};
        assign w1 = (~Q[3])|(~Q[1]&(~Q[0]))|(Q[3]&(~Q[2]));//组合逻辑电路,反馈网络
        assign out = Q[M-1];
    endmodule
    

    有限同步状态机

    有限状态机是时序电路的通用模型,任何时序电路都可以表示为有限状态机。

    • 根据输出信号的产生方式,有限状态机可以分为米利型(Mealy)和摩尔型(Moore)。Mealy型状态机的输出与当前状态和输入有关,Moore型状态机的输出仅依赖于当前状态,而与输入无关。结构如下所示:
      在这里插入图片描述
    • 状态机的编码方式很多,由此产生的电路也各不相同。常见的编码方式有三种:二进制编码、格雷编码和一位独热编码。
    1. 二进制编码:其状态寄存器是由触发器组成的。N个触发器可以构成2的N次方个状态。二进制编码的优点是使用的触发器个数较少,节省了资源;缺点是状态跳转时可能有多个bit(位)同时变化,引起毛刺,造成逻辑错误。
    2. 格雷编码:与二进制编码类似。格雷编码状态跳转时只有一个bit(位)发生变化,减少了产生毛刺和一些暂态的可能。
    3. 一位独热(One Hot)编码:这是对于n个状态采用n个bit(位)来编码,每个状态编码中只有一个bit(位)为1,如0001、0010、0100、1000。One Hot编码增加了使用触发器的个数,但该种编码方式为以后的译码提供了方便,能有效地节省和简化组合电路。
    • 有限状态机的描述方法有两段式和三段式两种。
      1.两段式描述方法:
    //第一个进程,同步时序always块,格式化描述次态寄存器迁移到现态寄存器
    always@(posedge clk or negedge rst_n)//异步复位
    	if(!rst_n)	current_state <= IDLE;
    	else		current_state <= next_state;//非阻塞赋值
    //第二个进程,组合逻辑always模块,描述状态转移条件判断
    always@(current_state or 输入信号)//电平触发
    	begin
    		next_state = x;//初始化,使得系统复位后能进入正确的状态
    		    case(current_state)
    		    	S1:if(...)
    		    	next_state = S2;//阻塞赋值
    		    	out <= 1'b1;//非阻塞逻辑
    		    ...
    		    endcase
    	 end
    

    2.三段式描述方法:

    //第一个进程,同步时序always模块,格式化描述次态寄存器迁移到现态寄存器
    always@(posedge clk or negedge rst_n)//异步复位
    	if(!rst_n)	current_state <= IDLE;
    	else		current_state <= next_state;//非阻塞赋值
    //第二个进程,组合逻辑always模块,描述状态转移条件判断
    always@(current_state or 输入信号)//电平触发
    	begin
    		next_state = x;//初始化,使得系统复位后能进入正确的状态
    		    case(current_state)
    		    	S1:if(...)
    		    	next_state = S2;
    		    	...
    		    endcase
    	 end
    //第三个进程,同步时序always模块,格式化描述次态寄存器输出
    always@(posedge clk or negedge rst_n)
    	begin
    	...//
    		case(next_state or 输入信号)
    			S1: out1 <= 1'b1;
    			S2: out1 <= 1'b0;
    			default:...   //default免除综合工具综合出锁存器
    		endcase
    	end		
    

    三段式并不是一定要写三个always块,如果状态机更为复杂,always块也会相应增加。

    接下来以两个时序电路来说明有限同步状态机的应用。

    顺序脉冲发生器

    顺序脉冲发生器又称脉冲分配器,其将高电平脉冲依次分配到不同的输出上,保证在每个时钟周期内只有一路输出高电平,不同时钟上的高电平脉冲依次出现在所有输出端。
    以4位顺序脉冲发生器为例,其有4路输出S0、S1、S2、S3,每路输出上高电平脉冲依次出现,输出在1000、0100、0010、0001之间循环。4位顺序脉冲发生器的状态转移图如下所示:
    在这里插入图片描述
    代码如下:

    module state4 (OUT, clk, rst_n);
        output [3:0]OUT;
        input clk;
        input rst_n;
        reg [3:0]OUT;
        reg [1:0]STATE, next_STATE;
        always @(STATE)
            case(STATE)
                2'b00;
                    begin
                        OUT <= 4'b1000;
                        next_STATE <= 2'b01;
                    end
                2'b01;
                    begin
                        OUT <= 4'b0100;
                        next_STATE <= 2'b10;
                    end
                2'b10:
                    begin
                        OUT <= 4'b0010;
                        next_STATE <= 2'b11;
                    end
                2'b11;
                    begin
                        OUT <= 4'b0001;
                        next_STATE <= 2'b00;
                    end
            endcase
        always @(posedge clk or negedge rst_n)
            if (!rst_n)     STATE <= 2'b00;
            else            STATE <= next_STATE;
    endmodule
    

    “11010”序列检测器

    序列检测器就是将一个指定的序列从数字码流中检测出来。当输入端出现序列11010时,输出为1,否则输出为0。在此不考虑重复序列,即出现指定序列后就重新开始序列检测,不再考虑以前的数据。该序列检测器的状态转移图如下所示:
    在这里插入图片描述
    代码如下:

    module seqdet (D_out, D_in, rst_n, clk);
        parameter IDLE = 3'd0, A = 3'd1, B = 3'd2, C = 3'd3, D = 3'd4, E = 3'd5;
        output D_out;
        input D_in, rst_n, clk;
        reg [2:0]state, next_state;
        wire D_out;
        assign D_out = (state == E)?1:0;
        always @(state or D_in)
            case(state)
                IDLE:if(D_in)   next_state = A;
                     else       next_state = IDLE;
                A:  if(D_in)    next_state = B;
                    else        next_state = IDLE;
                B:  if(D_in)    next_state = B;
                    else        next_state = C;
                C:  if(D_in)    next_state = D;
                    else        next_state = IDLE;
                D:  if(D_in)    next_state = B;
                    else        next_state = E;
                E:  if(D_in)    next_state = IDLE;
                    else        next_state = A;
                 default:    next_state = IDLE;
    		endcase
    	always @(posedge clk)
    		state <= next_state;
    endmodule
    
    展开全文
  • 你了解如何如何分析组合逻辑电路与时序逻辑电路吗?  数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。  逻辑电路的特点  ...
  • 时序逻辑电路的设计与介绍
  • 数字电路:第六章 时序逻辑电路 6.4 时序逻辑电路的设计方法.ppt
  • 电工电子技术:第10章 触发器和时序逻辑电路.ppt
  • 随着计算机技术的发展, 电子电路的设计与分析方法发生了重大变革, 可以通过计算机辅助分析和仿真技术来完成。EDA 技术是在电子CAD 技术基础上发展起来的通用软件系统, 是指以计算机为工作平台, 融合了应用电子...
  • 数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。 1.组合逻辑概念组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该...
  • 数字电子技术基础:第六章 时序逻辑电路 6.4 时序逻辑电路的设计方法.ppt
  • 5.1 概述 5.2 时序逻辑电路的分析方法 5.3 若干常用时序逻辑电路 5.4 时序逻辑电路的设计方法 5.5 时序逻辑电路中的竞争-冒险现象
  • 包括D触发器逻辑功能测试1、D触发器逻辑功能测试2、D触发器逻辑功能测试3、利用74LS161设计BCD5421码十进制计数器,multisim模拟电路完全正常
  • 第六章 时序逻辑电路的分析与设计
  • 本文主要讲解了时序逻辑电路的特点及逻辑图分析方法,希望对你的学习有所帮助。
  • 时序逻辑电路练习题.docx时序逻辑电路练习题.docx时序逻辑电路练习题.docx时序逻辑电路练习题.docx时序逻辑电路练习题.docx时序逻辑电路练习题.docx时序逻辑电路练习题.docx时序逻辑电路练习题.docx
  • 一个不错的时序电路逻辑设计与特殊组合函数
  • 触发器是数字电路的记忆单元,它有两个稳定状态,在外信号作用下,这连个稳定状态可相互转换。因此,触发器常用来存储二进制信息和组成计数器等时序逻辑电路。”
  • 异步时序逻辑电路.zip

    2019-11-14 09:12:45
    该压缩文件中包含11个异步时序逻辑电路, 均为本人设计. 读者可通过电路源文件与本人博客中的解析, 完整地学习这部分的设计.
  • 数字电路与逻辑设计:第6章 时序逻辑电路 2.ppt
  • 常用时序逻辑部件

    2020-12-09 09:16:28
    这一章主要是介绍常用时序逻辑功能部件。如计数器、移位寄存器的分析与设计方法以及集成计数器、集成移位寄存器的原理及应用。它是本课程的重点内容之一,我们一定要掌握好! 在学习时要注意同步、异步计数器...
  • 包含1.十进制计数器实验。2、六分频电路实验。3、移位寄存器实验。 4、多位十进制计数器实验。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,599
精华内容 11,439
热门标签
关键字:

常用的时序逻辑电路