質問

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.

enter image description here

したがって、3つの要素をカウンターして出力を使用するには、3つのJKトリガーを作成する必要があります。 {a, b, c} そして、あなただけが必要です bc 出力。講義ノートを調べて、それらを接続する方法を確認できます。

JKトリガーといくつかのバイナリロジックを使用したシンプル4ビット2ウェイカウンター。enter image description here

  • アッパー 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」状態はあなたの時計と同じです:

enter image description here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top