设万维读者为首页 广告服务 技术服务 联系我们 关于万维
简体 繁体 手机版
分类广告
版主:
万维读者网 > 灵机一动 > 帖子
用脉冲同步时序逻辑设计寄存器/计数器解答
送交者: 粱远声 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接出的电路满足寄存器/计数器的设计要求。

0%(0)
0%(0)
标 题 (必选项):
内 容 (选填项):
实用资讯
回国机票$360起 | 商务舱省$200 | 全球最佳航空公司出炉:海航获五星
海外华人福利!在线看陈建斌《三叉戟》热血归回 豪情筑梦 高清免费看 无地区限制
一周点击热帖 更多>>
一周回复热帖
历史上的今天:回复热帖
2010: 毒酒问题,我先给大家一个新的思路 (896
2010: 分割毒酒的唯一准则