通常のクロック入力を設定するにはどうすればよいですか?
-
27-10-2019 - |
質問
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 ...
組み合わせとシーケンシャルの回路(ロジックゲートとフリップフロップ)を使用して、その出力を取得するにはどうすればよいですか?トピックやWebページをお勧めしますか?
解決
さて、シーケンスは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
, 、しかし、Karnaugh Mapを使用できます。
これで、wolframalpha.comを検索できます。 logic circuit b && ! c
.
したがって、3つの要素をカウンターして出力を使用するには、3つのJKトリガーを作成する必要があります。 {a, b, c}
そして、あなただけが必要です b
と c
出力。講義ノートを調べて、それらを接続する方法を確認できます。
JKトリガーといくつかのバイナリロジックを使用したシンプル4ビット2ウェイカウンター。
- アッパー
and
カウントアップ時にオペレーターパスが使用されます。 - 以下のパスをカウントダウンするときに使用されます。
or
要素はそれらを結合するために使用されます。- 余分なロジック入力と
inverse
カウントする方法を決定するために使用されます。
他のヒント
出力にパターンが表示されますか?それはほとんどです 0 0 1 1 0 0 1 1 0 0 1 1 0 0 ...
. 。それはどのように見えますか?
ヒント:時計をカウントし、カウントをバイナリ番号として表します...
時計から上記の出力を取得できるようになったので、目的の出力を取得するために以前の出力をキャンセルするために使用できる別のビットを取得できないかどうかを確認してください。
ヒント:上記のヒントをさらに見てください...
このページのサーキットは役立つはずです。 http://www.play-hookey.com/digital/synchronous_counter.html
「A」状態はあなたの時計と同じです: