第一种方法:
顺序脉冲发生器:(1000...000类序列):假如长度为L,然后写出L个有效状态,注意,不能重复,构成一个循环。电路的接法就是以开始状态为基准点,然后用一个或门来实现。(就像下面的一个例子,以1000为基准点,然后用一个或门将Q2,Q1,Q0一开始的值0相加在取反变成1让LIN有效,开始计数。当Q2,Q1,Q0有1存在是,输出为0,LIN无效。当下一次LIN有效时,又表示重新回到了1000,从而实现了1000脉冲序列的产生。注意这里是任何一个Q输出)
第二种方法:
扭环计数器设计“11110000”序列发生器:首先这是一个序列长度为8,因为这是连续的4位,用三个肯定会出现重复的状态,因此,这里使用了4位长度。写出8个有效圈,然后构成一个循环。见下图
经验总结:例如设计一个110100序列信号发生器:利用D触发器设计,利用计数器和多路复用器设计,利用移位寄存器和反馈组合电路(分立门电路,译码器,多路复用器)设计。
用D触发器:首先观察产生序列的长度,假设为L。然后写出L个有效状态,而且输出信号为序列的样子。就是序列是110100,那么S0-S5的Y值输出也是110100。S0-S5是从000-101这6个状态。然后列出状态转换输出表,这个表必须要有现态和次态,还有输出值。然后分别画出三个次态和输出状态Y的卡诺图,取值为现态的值,写出三个次态的表达式和输出信号Y的表达式,然后检查电路的自启能力。再刚才画卡诺圈的时候,注意使用了哪些无效状态,需要将这些无效状态在状态图中显示出来(用该现态的输出Y值来判断是否为有效途径到状态图)。电路图尽量用与非门实现。或者这里直接用序列号来实现,什么意思呢?就是用序列进行左移实现L长度序列长度的输出,但是要确保状态两两互不相等。这样最高位的输出序列就为产生的序列。在画状态图的时候,你是需要画出原状态和新状态,就是现态和次态,那么输出D就是新状态的最后一个位,(这里其实可以通过观察可以看出),这里只不过是为了保证状态可以实现循环。然后写出D的表达式,参考值是原状态(现态)的值。然后你用了多少长度的QnQn-1Qn-2...Q0,就是n+1个D触发器。然后接上同一个脉冲信号,因为这里我们写出的是D0的表达式,因此我们这里让D0作为一个总输出端,用与非们构造电路。(因为表达式你是用卡诺图写出来的。如果设计到无关项,需要检查电路的自启能力。)这样,任何一个D触发器的输出均可得到所需序列。
用计数器和多路复用器构成序列信号发生器:a.如果序列长度为L,则将计数器接成L进制的计数器:“n-n+L”(置数法或清零法);b.将多路复用器的数据输入“Dn-Dn+L”接成要产生序列的信号;c.将计数器的输出端接到多路复用器的地址输入端。首先根据序列的长度产生一个相同长度进制的计数器,然后假如序列长度小于8,就可以直接根据序列1和0的位置确定3-8上D0-D7的接法,然后Y端输出序列信号。(如果是大于8,下面继续讨论。)
利用移位寄存器和反馈组合电路实现序列发生器:根据要产生的序列得到串行输入表达式,再根据此表达式得到串行输入的电路,这是一个组合电路,可以用逻辑门电路实现,也可以用译码器或者多路复用器实现。首先确定移位寄存器的位数, 设序列信号的长度为L,则要求移位寄存器的位数n 满足条件:2^n≥L,首先选择满足此条件的最小值N1,根据数据左移,画出状态图(序列信号的长度为L,则画出的状态图中一定有L个状态),检查状态图中的L个状态是否两两不同,如果是,则N1可以用,否则就需要不断扩大位数。(下面会介绍另一种方法来解决这个方法)然后再根据状态图画出状态转换表,有现态和次态,求出左移时最低位输入的卡诺图,并求出其表达式。如果有无关项,还要求检查电路的自起动能力。最后根据最低位输入表达式,用分立门电路,或者译码器,或者多路复用实现反馈输入的组合电路。(移位寄存器的某位即为所要求的序列号)
用一个计数器和多路复用器构成序列信号发生器:首先根据序列长度写出相对应的状态图,注意不能两两相同,应该都不一样才可以。然后写出状态图,有现态和次态,然后输出端也为最低输入位,然后画出最低输入位的卡诺图,并且表明0和d,就是无关项和0项都要在卡诺图中表现出来。如果无法构成卡诺圈,就逐个状态的表达式都写出来,并且进行对使用了无关项进行处理,判断电路是否具有自启动能力。全0的无关项的移入量是随意的,因为它是基本点。但是其他的无关项就需要根据状态图中的次态的输出最低位的量进行移入。然后根据卡诺图,写出表达式。写出的表达式的个数肯定小于8.因此,我们首先要写出多路复用器的输出表达式。因为多路复用器只有3个输入端,因此我们必须将前者计数器的一个输出端作为一个控制端。怎么做呢?(下面举例)
-
- D0-D7的值怎么确定呢?根据那句话所说的假设是整个题目的关键部分。然后写出多路复用选择器的输出表达式:
-
- 如上面所说,这里3个口接收4个输出端,必须有一个输出口作为状态输入,而且是接上了CBA,就是只有A2A1A0。写出0,2,4,5,7,11,14的二进制(4位,因为是前面产生),只看前面三位。0的前面三位是000,对应Y的第一项,因此D0=Q0’,2:前三位是001,对应Y的第二项,因此D1=Q0’,4,5的前三位是010,因为是D2=1(这里难道是两个状态就使用了1吗?),7的前三位是011,对应Y的第四项,D3=Q0,11的前三位是101,对应Y的第六项,D5=Q0,14的前三项:111,对应Y的第八项,D7=Q0’,D4和D6没有到便使用0。
线性反馈移位寄存器(LFSR)计数器的应用:
注意以上两幅图,A都接在LIN处。
可以看出,输出的序列是0100101。然后开始是从0101-111,就是前面对应一个11进制的计数器或者脉冲。因为不是从0000开始,因此QD接A2,QB接A1,QA接A0,这样就会形成一个000-111这样一个序列。然后在D处分写按顺序从D1-D7写下来,因为没有000,所以D0=0,D1=0,D2=1,D3=0,D6=0,D7=1。(按照F输出来照搬)然后你从列出可以看出当QC=4=5取反,因此将D4,D5(取反)作为QC。
从上面看出,为什么要用这种方法。因为我试过4位,5位,都有状态重复。因此只能构造一个序列。F输出直接为题所要求,然后计数器的输出端QD,QC,QB,QA从高位到低位写好。然后按照计数器0101-1111这11种状态写下去。然后剩下就找规律了。(就不确定了)
最后总结对于以上的题目,可以通过画状态图来实现。通常11位,我们是以4位为基础的,然后画出11个状态之后,发现1001,0010,0101这三个状态重复了两次。因此,需要将状态图进行简化(如下图)。然后QDQCQBQA按顺序写好,并且写出输出的序列。如果一个状态有两个输出值,也要写出来。这里采用的是移位型序列信号发生器的组成。有移位寄存器和组合电路组成,组合电路的输出,作为移位寄存器的串行输入。有n位移位寄存器构成的序列信号发生器所产生的序列信号的最大长度为:P=2n。观察电路图得到结论,首先对于74194N,设置好左移模式,然后四个输出端与74150N四个输入端相连接。然后根据表个中序列,找到相对应的号码,然后在QDQCQBQA中找与F相同的数字连起,然后在驱动JK触发器就可以了。