2

如何实现生成以下序列的序列生成器

0000 1000 0001 0011 0110 1101 1110 1111

使用通用移位寄存器?我需要使用的移位寄存器是下图所示的 74LS194 型号,其中输入 S1、S0 控制移位模式。

如果 (S1,S0) = (0,0),则当前值被锁定到下一个状态。如果 (1,0),则向右移动。如果 (0,1),它向左移动,并且 (1,1) 表示从并行数据输入并行加载。

如果要求只是使用我选择的触发器而不是移位寄存器,我认为这将是一个简单的问题,但是有了这个要求,我不知道从哪里开始。即使我为每个数字绘制了 4 张卡诺图,我似乎也没有掌握任何线索。任何帮助,将不胜感激。提前致谢!

通用移位寄存器 74LS194:

通用移位寄存器 74LS194


编辑:我接受了建议并用输入信号编写了下一个状态表。我注意到在绘制下一个状态表时需要考虑的输入变量太多。您必须考虑每个下一个状态 Qd、Qc、Qb、Qa 的 Qd Qc Qb Qa、CLR、S1、S0、RIn、LIn 信号,这意味着每个 Q 都有一个 9 变量卡诺图,我知道这很荒谬。我在这里错过了什么吗?

4

1 回答 1

1

首先要做的是弄清楚换档模式(S1,S0)。在所有情况下,只有一个班次可以工作:

0000, 1101, 1110 => shift right
1000, 0001, 0011, 0110 => shift left
1111 => load all zeros

由于不是 Q0-Q3 的所有组合都在序列中使用,因此从 Q0-Q3 到 S0、S1 有许多有效函数。我注意到您可以根据 1 的位数做出决定。

现在您知道每个代码如何移位,您可以计算输入位(LSI/RSI)

0000, 1101, 1110 => LSI=1
1000, 0001, 0110 => RSI=1
0011 => RSI=0

看起来 LSI 总是可以为 1。

有很多函数对 RSI 有效。RSI=NOT(Q0&Q1) 有效。

于 2018-06-09T02:59:21.140 回答