JKフリップフロップで初めてQとQ 'はどのように決定されますか?
私の経歴はコンピュータサイエンスであり、エレクトロニクスSEに投稿するのはこれが初めてです。JKフリップフロップの回路図です。

回路が最初にオンになったとき、最初はどのように機能するのかわかりません。私の理解では、QとQ 'にはまだ値がありませんが、回路はどのように進行しますか?私はこのウェブサイトから読んでいました。さらに3つのWebサイトを試しましたが、説明が見つかりませんでした。
回答
JKフロップはどちらの状態でもパワーアップできます。ゲートが完全に一致している場合、各州のオッズは50〜50になります。既知の望ましい状態に初期化するか、それを気にしないかは、システムの残りの部分次第です。Dフロップについても同じことが言えます。
これは、プログラムに初期化されていない変数があるのと同じです。変数が設定されるまで、変数に依存する値(それ自体を含む)は不明です。
このフロップのハードウェアシミュレーションは、0または1がクロックインされるまで、「X」状態として表示されます。それ以外の場合、JとKの両方が0(ホールド)または1(トグル)の場合、「X」のままになります。
実際のハードウェア(ソフトウェアなど)では、不明な状態の出力の使用方法によっては、不明なことが発生する可能性があります。
このフロップのバリアントには、個別の信号(リセットなど)で初期状態を強制するための直接セットおよびクリア入力があります。その場合、起動動作を定義できます。
詳細:JKについて示されている論理図はがらくたです。これは実際にはゲート付きJKラッチであり、J入力とK入力の両方が「1」でクロックがハイの場合に危険があります。「レースアラウンド」の問題によりリングオシレータになります。
残念ながら、リンクされた記事ではこれについて説明していますが、「レースアラウンド」の問題を回避するために非常に狭いクロックパルスを使用することについて口のきけない答えを提供しています。これは非常に誤解を招く恐れがあります。集積回路ベースのJKフロップは、2ステージ(「マスタースレーブ」または「エッジトリガー」)として配線された1対のラッチを使用し、レースアラウンドの問題はありません。
別の苦情。74xx73タイプJKに与えられた論理図は、不完全である(セット/リセットを表示しない)だけでなく、間違っています(74xx73は、ゲートラッチではなく、2ラッチの「マスタースレーブ」設計を使用しています)。彼らがそれを修正するためのページ作成者。
この回答では、JKゲートラッチの問題について詳しく説明します。SRFlipFlopの質問
そしてここに:JKラッチ、ベンイーターエラーの可能性?
最初に電源が入ったとき、これはデジタル回路として理解することはできません。実際の物理回路では、入力と出力は1から0の間、またはそれを超えることもあります。ロジックプリミティブの設計の一部は、これを高レベルの設計から隠すことですが、これは「リークのある抽象化」です。次の簡単な例を考えてみましょう。

この回路をシミュレートする–CircuitLabを使用して作成された回路図
今、はっきり、場合デジタル回路は、通りOut1
である0
、Out2
である1
、またはその逆、永遠に。では、電源投入時に何が起こりますか?
電源投入時に、Out1
とOut2
が両方であると想像してください0
。その状態では、Not1
とNot2
に向かってその出力を殺します1
。しかし、どこかの間に0
と1
、彼らはに向けて背中を駆動し、切り替えます0
。現在、回路は完全なバランスで構築されることはなく、熱雑音も存在し、このプロセスにランダムに影響を与えます。したがって、2つのインバーターの1つは、もう1つよりも先に出力極性を切り替えて、への競争に勝ち1
ます。それはもう一方をゼロに追いやる。回路は一時的にぶつかり、ブール論理としては動作しませんが、すぐに明確に定義された論理状態に落ち着きます。実際の回路では、一般に、偏ったランダムな動作が発生します。一方の状態が他方よりも優先されますが、ある程度のランダム性があります。
QとQ 'にはまだ値がありませんが、回路はどのように進行しますか?
それは正しいです。回路がどのように進行するかを知る方法はありません。
これを修正するには、非同期または同期のRESETまたはPRESET入力を使用して、出力を既知の状態に設定します。非同期入力はクロックに依存しませんが、同期入力はクロックに依存します。
これは、非同期リセットおよびセット入力を備えたマスタースレーブJKフリップフロップのリファレンス回路です。
非同期のRESETおよびSET入力を備えたJKフリップフロップ

これは、非同期RESETとPRESETを備えたJKフリップフロップの回路です。非同期RESET入力のHIGHは、Qをに設定しLOW
、Q 'をHIGH
に設定します。この動作はクロックに依存しません。同様HIGH
に、非同期PRESET入力のaは、Qをに設定しHIGH
、Q 'をに設定しLOW
ます。
ワーキング:
RESET入力がの場合、HIGH
NOTゲート(U11)の出力はになりますLOW
。NANDゲート(U12)の出力はHIGH
、入力の1つがであるためになりLOW
ます。これにより、NANDゲート(U13)Qの出力がに設定されLOW
ます。同様に、他のケースも分析でき、読者の練習問題として残されています。
注意:
PRESETとRESETの両方HIGH
が許可されていない(そして意味がない)場合の動作は定義されていません。
参考文献
Clifford Cummings、Don Mills、Steve Golsonによるこの論文のセクション2は特に関連性があるので、ここで引用します。
個々のASICの場合、リセットの主な目的は、シミュレーションのためにASIC設計を既知の状態に強制することです。ASICが構築されると、ASICにリセットを適用する必要性は、システム、ASICのアプリケーション、およびASICの設計によって決定されます。たとえば、多くのデータパス通信ASICは、入力データストリームに同期し、データを処理してから出力するように設計されています。同期が失われた場合、ASICはルーチンを実行して同期を再取得します。このタイプのASICが正しく設計されていて、すべての未使用状態が「同期の取得開始」状態を指している場合、システム内でリセットされることなく正しく機能できます。ASICのステートマシンが合成フェーズ中に「ドントケア」ロジック削減を利用した場合、そのようなASICの電源投入時にシステムリセットが必要になります。
一般に、ASICのすべてのフリップフロップは、システムで必要かどうかに関係なく、リセット可能である必要があると考えています。場合によっては、パイプラインフリップフロップ(シフトレジスタフリップフロップ)が高速アプリケーションで使用されると、より高性能な設計を実現するために、一部のフリップフロップからリセットが排除されることがあります。このタイプの環境では、ASICを既知の状態にするために、リセットアクティブ期間中に所定のクロック数が必要です。
ASIC:特定用途向け集積回路