フリップフロップは通常、クロックの立ち上がりエッジでトリガーされるのはなぜですか?


14

通常、デジタル設計では、1から0への遷移(ネガティブエッジトリガー)ではなく、0から1へのクロック信号遷移(ポジティブエッジトリガー)でトリガーされるフリップフロップを扱います。私は順序回路に関する私の最初の研究以来、この慣習を知っていましたが、今までそれを疑問視していませんでした。

ポジティブエッジトリガーとネガティブエッジトリガーの選択は任意ですか?または、ポジティブエッジトリガーフリップフロップが支配的になった実用的な理由はありますか?


2
これらの種類のほとんどが起こる方法は、誰かがそれを1つの方法で行い、他の誰かがハードウェアと互換性を持たせる必要があり、同じことを行い、数年後には偶然の基準になります。
コナーウルフ

1
私は、ほとんどが立ち下がりエッジでトリガーされるフリップフロップを使用しています。正反対の質問がありました!
スワナンド

回答:


10

最良の推測:ポジティブエッジトレンドは、1970年代以前に可能な限り小さな領域/部品を使用しようとする設計の副産物です。ウェーハあたりのチップ数を増やすことによる生産のコスト削減策。現代のpos / neg-edge DFFは総面積が等しいことが多いため、ポジティブエッジトレンドはレガシープラクティスです。

面積節約は、「クラシック」なDフリップフロップ設計から生まれました。Dフリップフロップの最新のマスター/スレーブコンポーネントは、2つの5トランジスタラッチを使用できます。特許WO1984003806 A1およびUS4484087 Aは両方とも1984年3月23日に出願されました。US3641511 A。簡単にするため、SR / SnRnラッチに基づく設計は、前述のDラッチ/ Sセル特許を使用する設計では「クラシック」および「モダン」と呼ばれます。

IC設計では、NMOSゲートは、NMOSおよびPMOSの特性のために、NORゲートよりも使用する面積が少なくなります。そこに、面積節約サイズの傾向カスケードがあります。SnRnラッチからのDラッチは、SRラッチからのものよりも小さくなります。従来のDフリップフロップの設計は、これらの論理ゲートに基づいています。いくつかのデザインを検索した後、古典的なポジティブエッジデザインは常に古典的なネガティブエッジデザインよりも小さくなります。モダンへの移行は、チップのコストが有利になったときに起こりました。面積の節約とロイヤルティ料金です。


エリアの違いを示すためにもう少し掘り下げます。

古典的なポジティブエッジDフリップフロップ:回路図ベースのウィキペディアの古典的なポジティブエッジトリガーDフリップフロップの説明と、5つのNAND2と1つのNAND3を使用した。これは、合計13個のNMOSと13個のPMOSを使用します。

回路図

この回路のシミュレーションCircuitLabを使用して作成された回路

私が見つけることができる最高の古典的なネガティブエッジDフリップフロップは、2つのDラッチと2つのインバーターを使用しています。回路図参照フォームhttp://students.cs.byu.edu/~cs124ta/labs/L02-FSM/HowToUseMasterSlave.html。これは、合計18個のNMOSと18個のPMOSを使用します。上記の古典的なポーズにインバーターを配置すると、この設計のトランジスター数が減ります。どちらの場合も、古典的なネガティブエッジはポジティブエッジ設計よりも大きくなります。

回路図

この回路をシミュレートする

最新のDフリップフロップの設計は、特許WO1984003806 A1およびUS4484087の 5トランジスタDラッチの説明に基づいて次のようになります。これは、合計5つのNMOSと1つのPMOSを使用します。クラシカルに比べて大きな面積の節約。マスター/スレーブの順序を逆にすると、同じサイズのネガティブエッジのフリップフロップが作成されます。

回路図

この回路をシミュレートする

私は可能な限り最小の設計を示しています。設計は、設計要件、許可された標準セルライブラリ、リセット/プリセット機能、またはその他の理由に非常に基づいています。


それは良い点です。私はクロック分配から問題に近づいていましたが、DFFアーキテクチャがどのように異なるかを見ることができます。ただし、ネガティブエッジトリガーフロップもNANDベースのアーキテクチャを持つことができると思います。あなたが話しているアーキテクチャの概略図を追加できますか?
トラビスバートリー

1
@ trav1s、例といくつかの特許調査で回答を更新しました。
グレッグ

外部から適用されるクロックのエッジに基づいて動作する必要のあるラッチに、チップがどの程度使用しているのでしょうか?たとえば、2相クロッキングとセミダイナミックロジックを使用すると、フロップあたりの必要なトランジスタ数を7に減らすことができます[完全に動的なアプローチは6ですが、7番目のトランジスタを追加すると、完全に静的な「ホールド」状態を追加できます]。
supercat

@グレッグ、素晴らしい仕事。あなたの発見は、まさに私が期待したものです。最後の10Tトランジスタは美しいものです。
トラビスバートリー

興味深い答えと非常に洞察力。ポーズの傾向は70年代より前に来たと言っていますが、これは私の調査結果と一致していません(私の答えを参照)。この日付を思いついたきっかけは何ですか?単なる推測、または追加情報がありますか?後者の場合、参照を取得して喜んでいます(自分の答えを改善するために:))
Vasiliy

3

ここには、別の投稿でカバーされたいくつかの基本的な仮定があります(今は見つかりません)。

配置されたロジックエレメントとクロックロジックの合計数(出荷されたFFの合計数)を数えると、おそらくプロセッサとマイクロプロセッサ、Intel、DECなどになります。何十年にも及ぶ設計を担当する人々/チームであり、内部の仕組みについてはあまり詳しくありません。

逆に、多くの異なるチームがASICフローに取り組んでおり、より多くのプロジェクトがありますが、対応するボリュームは少なくなります。

ほとんどのプロセッサデザインは、実際にはポジティブまたはネガティブエッジクロックではありませんが、ダブルラッチ、NOC(Non Overlapped Clock)相補クロックスキームを使用して設計されています。

したがって、入力->(ロジッククラウド)->クロックからのラッチ->ロジッククラウド->クロックスキームからのラッチになります。これは、ロジックが内部に詰め込まれたマスタースレーブFFの標準形式です。

この種の設計方法には、いくつかの利点がありますが、複雑さが増します。

もう1つの不幸な点は、この設計方法論がほとんどの大学で教えられていないことです。Intel x86のデザインはすべて、この種のものです(インターフェイスの外部操作と内部操作を混同しないでください)と、モバイルハンドセット用に設計されている注目すべき合成可能なSOCコアです。

これに関する優れた談話は、「ダリー、ウィリアムJ.、およびジョンW.ポールトン」にあります。デジタルシステム工学。1998年、ケンブリッジ大学出版局。セクション9.5では、「開ループ同期タイミング」<-章のタイトルについて説明します。しかし、「エッジトリガータイミングは、クロックスキューに依存する最小サイクルタイムをもたらすため、ハイエンドのマイクロプロセッサおよびシステム設計ではほとんど使用されません」と引用します。

はい、まったくつまらない答えです。しかし、これらの設計(ロットとロット)に合計トランジスタがいくつあるかを考慮すると、あまり知られていない重要な方法論です。


これを3回読みましたが、これがOPの質問にどのように関連するのかまだわかりません...
Vasiliy

1
また、CPUがラッチのみから構築されていると言うのは少し誇張されています(「ビット」ではないかもしれません)。ラッチは、パフォーマンスが重要なロジック(主にデータパス)で使用されますが、まだ多くのフリップフロップが存在します。ラッチの主な欠点は、タイミング解析の難しさです。ラッチベースデザインの「時間借用」機能(このデザインを「高速」にする同じ機能)により、タイミングクロージャのラッチベースデザインをテストすることは非常に困難です。CPUの重要ではない部分では、主にFFが使用されます。
ヴァシリー

タイトルのキーワードは「通常」です-1)設計されたさまざまな種類のチップの総数-その後、ASICフローとエッジトリガーが通常になります。2)出荷されたロジックエレメント/トランジスタのCPU設計の合計数が勝ってからラッチベースのダブルクロックが勝った場合、ステートメントは無効です。
プレースホルダー

1
これらのチップのインターフェースを見て、内部動作が何であるかを判断することはできません。前述のとおり、マスタースレーブフリップフロップは、2フェーズクロックのダブルロジッククラウドラッチベースデザインの単純化バージョンです。タイミング解析は難しくありません。実際、単純化されています。クロックドメインを確実に把握してください。
プレースホルダー

1
いいえ、キーワードは「フリップフロップ」と「クロックのエッジ」です。ラッチはエッジに敏感ではないレベルに敏感なデバイスです。リンゴとオレンジの男-オレンジがオレンジである理由を知りたい場合、リンゴを好む人が多いという事実は完全に無関係です。
ヴァシリー

2

現在のCMOS技術の性能(電力/面積/速度/コストの観点から)は、使用されるトリガー方式に影響されないようです。

上記の声明を厳密に証明することはできません。多くの予備知識と研究が必要であり、証拠の要約でさえ答えには長すぎるでしょう。私の知る限り、違いはありません。そのため、そうであると仮定します。

フリップフロップが通常クロックのポジティブエッジでトリガーされるという説明が正しいかどうかはわかりません(そうだと思います)。これは、次の説明の目的にも正しいと仮定します。

上記のすべての仮定の下で、2つの可能性があります。

  • ポジティブエッジトリガーは、過去のある時点で明確な利点があったため、標準になりました。この利点を活用したテクノロジーが時代遅れになった後も、ポジティブエッジトリガーは依然として事実上の標準でした。
  • ポジティブエッジトリガーは、エンジニアリングの正当性なしで標準になりました。つまり、過去の論理ファミリやテクノロジーノードでは利点がありませんでした。

ポジティブエッジトリガーがいつ標準になったのかを確認するために、IntelのCPUクロッキングスキーム進化を追うことにしました。

  1. ϕ2
  2. 8086:データ出力のラッチはCLKのネガティブエッジで行われました。
  3. 80386:CLK2のポジティブエッジを使用。
  4. 80486:CLKのポジティブエッジを使用。
  5. Pentium:CLKのポジティブエッジを使用...

Intelはネガティブエッジトリガーから始めたようですが(この用語が最初のCPUに適用される場合)、386からポジティブエッジトリガーに切り替えました。

8086はHMOSテクノロジー(ある種の空乏負荷NMOSロジック)を使用しましたが、80386はCHMOS(CMOSの一種)でした。CMOSテクノロジーの採用と並行して、ポジティブエッジトリガーの採用が行われたようです。CMOSがポジティブエッジトリガーに利点を提供しないと仮定したため、この規則はarbitrary意的であると思われます。

ただし、次の3つの点に留意する必要があります。

  • 現在の CMOS技術には利点がないと想定しました。
  • 上記の仮定は、いかなる形でも証明または議論されていません。
  • データシートから、データエッジがラッチされるエッジは明確ですが、これは内部実装を表していない場合があります。

明らかに、追加の研究の余地がある。つづく...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.