从0学习数字电路(6)

在这一章,我们重点学习下时序电路。时序电路在功能上,任意时刻的输出不仅取决于该时刻的输入,还与电路原来的状态有关;在结构上,时序逻辑电路包含储存电路,时序电路的基本单元是触发器;组合逻辑电路是以门电路为基本单元的。

其次我们要知道,时序逻辑电路的基本方程组有3个,分别是输出方程,驱动方程以及状态方程;

输出方程是输出变量和输入变量和状态变量之间的关系;驱动方程是每个触发器的输入信号和外部的输入信号以及状态之间的关系;状态方程是次态和初态以及输入之间的关系。

我们要知道,输出方程和驱动方程就是普通的组合逻辑函数式,没有设计初态和次态的关系。

时序逻辑电路的分类

时序逻辑电路可以分成同步时序逻辑电路和异步时序逻辑电路:同步时序逻辑电路指的是所有触发器收到一个时钟信号控制;异步时序电路指的式各个触发器的时钟信号不完全一致。

还可以分成Mealy型时序电路以及Moore型时序电路:Mealy型时序电路指的式输出信号不仅仅取决于电路状态,还取决于输入信号;而Moore型时序电路指的是输出信号仅仅取决于电路状态而与输入无关。如果一个电路没有外部输入信号,那么他一定是Moore型电路;但是Moore型时序电路并不是指没有外部输入信号,而是说电路的输出方程里面没有输入变量。

时序逻辑电路的分析方法

1.根据给定的逻辑电路图写出每个触发器的驱动方程,即每个触发器的输入信号的表达式

2.将每个触发器的驱动方程带入其特性方程,就得到其状态方程

3.根据给定的逻辑电路图写出输出方程

4.根据基本方程组列出状态转化表

5.根据状态转化表绘制状态转化图

这里我门重新回顾下触发器的特性方程

 下面举个例子:分析下列时序逻辑电路图

的首先经过判断我们得知,这是一个同步时序逻辑电路,其次没有输入信号,这是一个Moore型电路,有三个jk触发器并且都是下降沿动作。

我们可以看到状态转化表和真值表类似:真值表左边是输入变量,右边是输出变量;而状态转化表左边是输入变量和初态,右边是输出变量和次态。因为本题美哟u输入变量,所以左边只有三个初态,我们再将状态和输出变量放在一起可以看到,没有一个下降沿到达,就会发生一个变化,将000带到次态里面就是001;将001带到次态里面就是010.。。。当把110带到次态里面就是000,即每7个就是一个循环,一共有8个状态

 我们要知道在状态图中每一个圆圈就代表一个状态,则n个变量就应该有2^n个状态,即2^n个圆圈。而箭头就表示状态转化的方向,箭头胖著注明状态转换前的输入变量和输出变量。平且在时序逻辑电路中至少要存在一个环,这个环叫做有效循环。我们还要知道,便是各个状态转换的箭头标注的输出对应的都是转换前的输出,因为输出方程式一个组合逻辑函数时,根本就不涉及次态,输出方程中的状态变量带入的式Q而不是Q*,因此两个圈一个箭头表示的是在这个初态下出入x,输出为Y,状态转换为次态。

刚才在上面提到了一个有效状态,无效状态,有效循环,无效循环的概念,这就涉及到时序逻辑电路中的自启动的问题:如果我们的电路能够从给定的任何一个初始状态下将纳入主循环就叫做有效循环,则此时这个时序逻辑电路称他可以自启动;但是如果存在没有办法进入主循环而是自行成环的的无效状态,就称此时的时序逻辑电路无法自启动。

 下面再举一个例子:

是和上一题不同,这道题有了一个输入变量,我们要知道,再将检查的时候,如果有2个变量,就应该有2^n个状态,如果还有m个输入变量,那应该有2^(m+n)个箭头

同步时序逻辑电路的基本分析思路是:基本方程组;状态转化表;状态转化图;描述逻辑功能。

寄存器

我们知道,存储一组二值代码的电路模块是寄存器,由于一个N位的二进制代码最多可以表示2^n种状态,每个触发器可以存储1位二进制代码,所以由N个触发器构成的寄存器能够存储N的二值代码,即N位寄存器。因为寄存器只需要实现存1或者存0的功能,因此使用的触发器是D触发器。而T触发器一定不行。不论是电平触发还是边沿触发都可以实现。这些数据回一同出现在输入端,一同出现在输出端,特点是数据并行输入并行输出,但是一旦位数高的话,就会浪费数据线。

移位寄存器

 可以看到移位寄存器由边沿触发的D触发器组成,第一个触发器接受的是来子最左边的输入信号,其他触发器的输入i新年好是前一个触发器的状态。当时钟上升沿到来的时候,每个触发器按照前一个触发器原来的状态机进行翻转,因此电路中各个触发器的状态效果就是数据不但的右移。注意移位寄存器只能够使用边沿触发,因为电平触发的话时间远大于边沿触发的时间没数据一下子就过去了,不能实现移位的操作

 举个例子

 好比在第一个触发器种输入了1011这个四位的二进制代码,数据和时钟之间应该有一个配合,即早来晚走,在时钟的边沿之前就让数据保持稳定,在时钟的边沿之后,我还要保证数据维持一段时间后再变化。下面进行详细的分析:

再第一个时钟上升沿之前,D1=1,因此在第一个时钟上升沿的时候,将Q0置1

在第二个时钟上升沿的时候,Q1按照Q0的状态,也置1,而Q0继续接受数据,被置0;

在第三个时钟上升沿的时候,Q2按照Q1的状态置1,Q1按照10的状态置0,Q0被置1

因此宏观来看,数据发生了移位,并且整体数据在输入端D是按照串行的方式进行的,但是在每一个触发器输出端式并行输出,我们可以看到在第四个时钟上升沿的地方触发器刚好是1011,再过三个时钟周期Q3就是1011.

假如在第一个触发器输入端串输入了N位代码,经过N个时钟脉冲后,数据会在各个触发器的输出端接受到完整的并行输出的代码,再经过2N-1个时钟脉冲,数据回全部被移出。

移位寄存器芯片-74LS194(四位双向位移寄存器)

 D的作用是直接去改变每个第一个触发器的状态,外部让你是多少,你就是多少。S1和S0是我的工作控制端,一共四种个工作摸式,我可以通过设置两位的S来控制四种不同的工作摸式。其实很简单,如果像报保持的话,就让输入状态是他自己的状态,即Q=Q*;如果想左移,就让后面的触发器的输出状态作为我的输入状态;Q1*=Q2;如果想右移,就让左边触发器的输入作为我这个触发器的输出:Q1*=Q0;如果想并行输入的话,就让Q*=外部的输入。

这其中,我们将四个不同来源的信号根据功能需求选择其中一个作为触发器的输入,其实这就是一个数据选择器,附加控制diamagneticS1S0就是地址码,赋予S1S0不同的状态编码含义,即对应四种工作摸式,根据地址码S1S0选择每个触发器的输入。

计数器

首先计数器是数字电路中最重要,使用最广泛的时序电路。

根据内部触发器是否同一动作可以分为同步计数器或者异步计数器;

按照计数过程中的数字增减情况可以分为加法计数器,减法计数器,可逆计数器(加减法计数器);

按照计数器的计数容量可以分为:十进制计数器;十二进制计数器;60进制计数器;

按照计数器中的数字的编码方式可以分为:而二进制计数器,21进制计数器;格雷码计数器等等

计数器的特点

 

当T触发器(只有保持和翻转的功能)是1的时候,时钟下降沿到来的时候进行翻转,因为电路时异步时序逻辑电路,每个触发器的状态就是下一个触发器的时钟信号,因此Q0就会按照01010101的方式进行翻转,但是Q1只会在Q0的下降沿进行翻转,因此Q1按照00110011的方式翻转,一次类推Q2会按照000111的方式进行翻转,Q0是最低位,Q2是最高位,因此每个触发器的状态正好对应二进制涮熟运算从000到111的每一位变化i情况,即电路是一个八进制的加法计数器,每8个时钟周期为一个循环。对于最原始的时钟信号(f0)进行分频,Q0的频率是f0/2;Q1的频率是f0/4;Q2的频率是f0/8.即八进制的计数器最高可以实现8分频。

如果我们在此电路中引出一个输出信号C=Q0Q1Q2,那么只有当Q0Q1Q2=111的时候C=1;且该信号只能维持一个时钟周期,这个i新年好就是计数器的进位信号,因此该电路可以对应时钟脉冲计数。即这个脉冲信号也可以对应时间,即电路可以实现定时的功能;计数器的本质是计时间脉冲的数!!!!!!!!!!!!!!!!!!!!

同步二进制加法计数器

这里的二进制表示按照二进制进行编码的。只有当Q3Q2Q1Q0=1111的时候才会出现一个脉冲信号,当Q3Q2Q1Q0=0的时候,进位信号就变成0,因为我第一个触发器一直要翻,因此T0一直等于1,而后面的触发器按照二进制加法运算原则,应该前面全是1时,下一个时钟沿才会进翻转,因此Ti=Qi-1Qi-2.....Q0

四位同步二进制加法计数器芯片-74161

这里的LD指的是当LD‘为1的时候,才允许D3D2D1D0输入去改变我Q3Q2Q1Q0的状态,当RD’=1的时候开始复位,当RD'=0的时候,Q3Q2Q1Q0全部置0

 同步二进制减法计数器

和同步二进制加法计数器类似,第一个触发器的输入信号恒为1,即该触发器一直在010101翻转,后面的触发器按照二进制减法运算规则,当所有的低位触发器都是0的时候,在下一个时钟脉冲沿此触发器的状态才翻转。

同步二进制可逆计数器

 我们要引入一个附加的控制输入端A,当A=0的时候进行加法计数,A=1的时候进行加法计数。

同步二进制计数器一般都是由T触发器构成,其实现方式有两种,一种是同一个时钟控制每个触发器的输入信号,另一种是第一个触发器的输入信号恒为1进而去控制其他区触发器的信号。

同步十进制加法计数器

十进制计数即每是个护照那个太一个u想你还,如果采用8421码的编码方式,就要用0000-1001这是个状态来表示,而我们的设计思路就是在1001这个状态后,回到0000而并不是1010,体哦啊过原本循环中的6个无关状态。

当 Q=1001时:原本的1001要转变成1010,而现在的设计目标时将其修正为0000,因此需要修正FF3和FF0这两个触发器的输入信号以及进位输出信号:

对于FF3,原本的T为0即保持,而现在要变成1,让1变成0;对于FF1原本的状态是1要反转,但是我们不能让他翻转,因此要让T=0让他保持0.这里实际上涉及到了译码的思想。

以上的思想是完全译码的思想T3原本=001,或上1110就变成1,T1原本=1,我让他与上1001就是0.

还有一种思想是不完全译码,即000-1001这10个状态中,由于9是1001时Q3=Q1=1的时候时第一次出现,因此用Q3Q0着一项也可以实现上面的思想。

同步十进制减法器

思想和加法器i写那个他,但是我要让0000的下一个状态是1001而并非1111,即T2原本状态是1我要让他保持不变,要变成0,T0的原本状态是1,而我要让他保持不变T0=0

 异步二进制计数器

只利用T触发器T=1翻转的功能特点,让每一个T触发器的输入信号恒为1,每个触发器的状态作为下一个触发器的输入信号,N个级联的触发器就实现了N位二进制数的计数。

异步二进制计数器的特点是电路结构设计简单们不用其他的门电路,但是传输延迟大,容易产生竞争冒险的现象。

环形计数器

如果我们将四位移位寄存器的Q3直接反馈给D0,那么在连续的时钟信号下,移位寄存器的数据会循环右移,如果选定初态是1000,则按照状态可以有1000-0100-0010--0001-1000进行循环。他的优点是结构简单,缺点是N位寄存器一共有2^N个状态,但是环形计数器值用了N种状态,没有充分利用,并且无法自启动。

扭环形计数器

将一个四位移位寄存器的Q3'直接给D0,得到纽环形计数器,着会有8个状态,即对于n个移位寄存器来说,纽环形计数器可以得到2n种状态。

 如果给定的是一个N进制的计数器器件,设计目标是M进制计数器,该怎么办?一般的芯片都有置0和预置数的功能,因此设计的方法分为置0法和置数法。进一步可以分为异步置0法,同步置0法,异步置数法,同步置数。

M<N的情况

用同步10进制计数器采用置0法来设计同步6进制计数器(使用异步置0法)

现在有个10进制计数器设计成6进制计数器,即在0000-0001-0011-0100-0101-0000,置0法就是让她在某个状态出回到0000即可,因为采用的方法是异步置0,即无需等到时钟信号边沿就立即置0,如果我们选择在0101即5的地点去译码产生置0信号,那么这个状态只会在很短很短的时间出现,所以在设计是应该用0110这和状态去译码,即在0110出跳变回0000,而0110置式瞬间出现,因此不会出现在稳定的M个有效循环中。我们还要注意,因为现在的进位输出信号是9进位的机内输出(在1001的时候输出,持续一个周期),到那时这个电路应该在0101(5)进行进位。

 而采用同步置0的方式,即需要等到下一个时钟信号上升沿到达之后才置0,因此应该选择在0101(5)的时候进行置0,这样0101这个状态可以稳定一个时钟信号周期,在下一个上升沿到达之后回到0000.对于异步置0来说,同步置0持续的时间长,更加可靠。而且进位也是0101。

同步置数法

采用置数法进行设计的时候,将预置数设置为0000,那么同步置数法事实上就是同步置0,区别在于译码i新年好要接到同步预置数控制端LD而并非置0端RD。当然置数法还有个好处,不管将置数端设置成什么,只要由M个数,就可以进行循环,而不必一定是0000。

M>N的情况

当M>N的时候,次啊用多片计数器芯片进行拓展即可

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值