最少数量的D触发器

时间:2011-11-09 20:30:52

标签: computer-science computer-architecture flip-flop

我遇到了以下问题,无法确定答案。你有任何建议,任何帮助将不胜感激。

Fibonacci序列F(n)由F(1)= 1,F(2)= 1和Fn = F(n-2)+ F(n-1)定义,对于所有整数n> = 3什么是所需的D触发器的最小数量(以及组合逻辑)来设计一个输出前七个斐波那契数字(即F1到F7)然后环绕的计数器电路?

(A)3(B)4(C)5(D)6(E)7

提前致谢

3 个答案:

答案 0 :(得分:1)

获得七种不同输出所需的最小触发器数量仅为3。但是它涉及许多组合电路,用于将七个唯一输出解码为所需的斐波那契序列。其中一个解码电路使用四个4:1 mux,其中每个mux输出代表斐波那契序列的一位。

但是使用4个触发器我们可以得到一个同步计数器,它只通过这些状态1,1,2,3,5,8,13并且四处乱转。我认为这个过程涉及的不那么重要。应该注意区分1次出现两次,这可以通过使用额外的nand门来完成。

答案 1 :(得分:0)

首先,您需要能够计数到7.这是触发器进来的地方,因为它们具有您需要能够记住计数的记忆。一个简单的方法是构造一个环形缓冲区,但由于你被允许使用无限组合逻辑,你可以通过构造一个二进制计数器来改进它。

现在你有一个提供7个独特输出的电路,你可以用更多的组合逻辑来扩充它,将这些输出解码为你选择的7个值。

答案 2 :(得分:0)

您可以使用线性反馈移位寄存器:

-- .--------/---------------------.
-- |        4             +----+  |
-- |          .-----------| __ |  |
-- |          |           | \  |--*-/-- F(n)
-- |  +--+    |  +--+     | /_ |    4
-- '--|  |--/-*--|  |--/--|    |
--    |> |  4    |> |  3  +----+
--    +--+       +--+
--   F(n-1)     F(n-2)

你需要总共7次失败(4 + 3)。

因为你的范围很小,你要添加的最大数字是8和5来得到F(7)= 13

现实世界的设计也会注册F(n)输出(出于时间原因)。

没有必要计数到7本身 - 这个系统可以自由运行,并且增加的舞台宽度可以高达你喜欢的数量。如果你想要一个固定长度的序列,它需要一个触发值来重置自己。