0

次の質問に遭遇しましたが、答えがわかりません。何か提案はありますか、どんな助けでも大歓迎です。

フィボナッチ数列 F(n) は、n>= 3 のすべての整数に対して、F(1)=1、F(2)=1、および Fn=F(n-2) + F(n-1) によって定義されます。最初の 7 つのフィボナッチ数 (つまり、F1 から F7 ) を出力してからラップアラウンドするカウンター回路を設計するために (組み合わせロジックと共に) 必要な D フリップフロップの最小数は?

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

前もって感謝します

4

3 に答える 3

0

線形フィードバック シフト レジスタを使用できます。

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

合計 7 フロップ (4+3) が必要です。

範囲が狭いため、F(7)=13 を得るために追加する最大の数値は 8 と 5 です。

実際の設計では、(タイミング上の理由から) F(n) 出力も登録されます。

それ自体を 7 までカウントする必要はありません。このシステムは自由に実行でき、ステージ幅を増やして好きなだけカウントできます。固定長のシーケンスが必要な場合は、それ自体をリセットするためのトリガー値が必要です。

于 2011-12-05T19:15:28.790 に答える
0

まず、7 まで数えられるようにする必要があります。これがフリップフロップの出番です。フリップフロップには、カウントを記憶できるようにするために必要なメモリがあるからです。簡単なアプローチはリング バッファーを構築することですが、無限の組み合わせロジックが許可されているため、バイナリ カウンターを構築することでこれを改善できます。

これで、7 つの固有の出力を提供する回路ができたので、それをさらに組み合わせロジックで拡張して、これらの出力を選択した 7 つの値にデコードできます。

于 2011-11-09T20:54:13.460 に答える