input
clk ( clock ) :
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ...
required output :
F :
0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 ...
組み合わせ回路と順序回路(論理ゲートとフリップフロップ)を使用してその出力を取得するにはどうすればよいですか?トピックやウェブページをお勧めできますか?
input
clk ( clock ) :
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ...
required output :
F :
0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 ...
組み合わせ回路と順序回路(論理ゲートとフリップフロップ)を使用してその出力を取得するにはどうすればよいですか?トピックやウェブページをお勧めできますか?
出力にパターンが表示されますか? ほぼ0 0 1 1 0 0 1 1 0 0 1 1 0 0 ...
です。それはどのように見えますか?
ヒント: 時計を数える、カウントを 2 進数で表す...
クロックから上記の出力を取得できるようになったので、目的の出力を取得するために前の出力をキャンセルするために使用できる別のビットを取得できないかどうかを確認してください。
ヒント: 上記のヒントをさらに見てください...
さて、シーケンスは 8 ビットごとに繰り返されます0 0 1 1 0 0 0 0
。log_2(8)=3
これは、出力関数を備えた 3 つの要素カウンターが必要であることを意味します。
0 0 0 = 0
0 0 1 = 0
0 1 0 = 1
0 1 1 = 1
1 0 0 = 0
1 0 1 = 0
1 1 0 = 0
1 1 1 = 0
今私は個人的に使用しています:
fun = BooleanMinimize[
BooleanFunction[{{0, 0, 0} -> 0, {0, 0, 1} -> 0, {0, 1, 0} ->
1, {0, 1, 1} -> 1, {1, 0, 0} -> 0, {1, 0, 1} -> 0, {1, 1, 0} ->
0, {1, 1, 1} -> 0}][c, b, a]]
出力は:b && ! c
ですが、カルノー マップを使用できます。
これで、wolframalpha.com で以下を検索できますlogic circuit b && ! c
。
したがって、3 つの JK トリガーを作成して 3 つのエレメント カウンターを作成し、出力{a, b, c}
を使用する必要がb
ありc
ます。講義ノートを調べて、それらを接続する方法を確認できます。
JK トリガーといくつかのバイナリ ロジックを使用したシンプルな 4 ビット 2 ウェイ カウンター。
and
カウントアップするときは、上の演算子パスが使用されます。or
要素はそれらを組み合わせるために使用されます。inverse
どのようにカウントするかを決定するために使用されます。