用脉冲同步时序逻辑设计寄存器/计数器解答 |
送交者: 粱远声 2012年10月10日17:39:11 于 [灵机一动] 发送悄悄话 |
用脉冲同步时序逻辑设计寄存器/计数器解答
设计一个3位的寄存器/计数器。这个电路有3个数据输入I2,I1,I0,有一个控制输入S。 当S=0时,电路是个寄存器,下一个脉冲,把(I2,I1,I0)的值写入寄存器。 当S=1时,电路是个计数器,下一个脉冲,把寄存器当前的内容加1。 例如: 当S=0,(I2,I1,I0) = (011),下一个脉冲后,寄存器的状态是(011)。 然后S=1(被置成1), 下一个脉冲后,寄存器的状态是(100),再下一个脉冲后, 寄存器的状态是(101)。这时,如果让S=0,(I2,I1,I0) = (001),下一个脉冲后, 寄存器的状态是(001)。 解答: 一般地设计脉冲同步时序电路,要把输入,当前状态作为自变量来求输入方程。也 就是说,输入方程表达式是输入和当前状态的函数。以本题为例,输入方程应该是 I2,I1,I0,S,Q2,Q1,Q0的函数。这里有7个自变量。用卡诺图化简已经很困难 了。本题只是一个3位的例子。那么,如果是16位,32位的寄存器/计数器,怎么去 设计呢?有人可以说用计算机算法化简。如果是这样,我们就不在灵机一动出这道 题了。 假设用D触发器设计这个电路。 现在,只讨论n位的计数器。设第n位的当前状态是Qn,下一个状态Dn。 只有当(Qn-1,Qn-2,...,Q0) = (1,1,...,1)的时候,计数器最末位加1,才能使Qn改 变状态。让 X = Qn-1Qn-2...Q0 也就是说,只有 X=1的时候,Qn才能在计数器最末位加1的时候改变状态。列表 Qn X Dn 0 0 0 0 1 1 1 0 1 1 1 0 很明显是异或关系,下一个状态 Dn = Qn(+)X = Qn(+)Qn-1Qn-2...Q0 ( D0 = Q0(+)1 = /Q0 ) 现在,只讨论n位的寄存器。很明显 Dn = In 把输入方程按控制输入S列表得: S Dn 0 In 1 Qn(+)Qn-1Qn-2...Q0 最终的输入方程为: Dn = S(Qn(+)Qn-1Qn-2...Q0) + /SIn 按Dn接出的电路满足寄存器/计数器的设计要求。 |
|
|
|
实用资讯 | |