• ベストアンサー

レジスタ間の値の同時交換

正エッジトリガDフリップフロップ、A、Bについて。 Aの出力はBの入力に、 Bの出力はAの入力に繋がっている状況を考えます。 (初期値はA=1, B=0)とします。 手元にある教科書によると、この2値を同時に交換できると書いてあるのですが、疑問があります。 _■_■_■_■_■_ ←クロック _■■__■■__■■ ←Aの出力 ___■■__■■__ ←Bの出力 2つめのクロックの立ち上がりの瞬間にどちらも出力が変化しますが、その出力が相手の入力に影響を与えてしまうことはないのでしょうか?(わかりずらい表現でごめんなさい) http://www.di.takuma-ct.ac.jp/~matusita/GuenCAD/QandA/ff/ms_vs_et/ のサイトによれば、 「クロックのエッジにて、入力のデータを取り込んだ瞬間、入力は遮断される」 そしてこちらのサイトのグラフからよみとれば、 http://bw-www.ie.u-ryukyu.ac.jp/~wada/digcir01/latch.html 「実際に出力が変化するのはエッジの微妙に後(アクセスタイム)」 実際のクロックのエッジは斜めなので、その斜めの部分でどうなっているかが気になります。 これらの2つの理由が関係しているのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Teleskope
  • ベストアンサー率61% (302/489)
回答No.1

    >> 2つめのクロックの立ち上がりの瞬間にどちらも出力が変化しますが、その出力が相手の入力に影響を与えてしまうことはないのでしょうか? <<  ↓ 意訳 >> クロック立上がりの瞬間に出力が変化しますが、その出力が瞬間的に次段に取り込まれてしまうことはないのでしょうか? <<  市販のICは、それが起きないように設計してあります。IC内部では、受入れ段が受け入れを閉じたあとに出力段に渡すように 前後関係をつけて設計してます。  御質問の FF-A と FF-B に与えるクロックがズレていると 市販のICでも起きてしまいます。  大規模なIC回路では、チップ内で多数のFFを直列接続する場合は エッジトリガ FF 回路の代わりに 普通の RS-FF回路を並べて クロックを下図のように2相にすることもあります。もともとエッジトリガ FF は内部が RS-FF2段構成なので 回路規模は同じです。   …─ FF ─ FF ─ FF ─ FF ─ FF ─…       |   |   |   |   |      φa  φb  φa  φb  φa クロック波形(細いパルス) φa _|__|__|__|__|_ φb __|__|__|__|__ >> 実際のクロックのエッジは斜めなので、その斜めの部分でどうなっているかが気になります。 <<  市販ICのクロック入力には 波形を整形するゲート回路が付いてるので、ダラダラした波形を与えても中ではシャキッとした形になってます。 前記の「入力側と出力側の時間差を確保してある」は、内部クロックが L→H,H→L と変化する時間をも含んで考えてます。    

ytse
質問者

お礼

なるほど、納得できました。 詳しいご回答、ありがとうございました。 これで先へ進めそうです。

その他の回答 (3)

  • guuman
  • ベストアンサー率30% (100/331)
回答No.4

長い文章よく読んでないのですが レーシング現象のことでしょうか? LSIを設計する場合に クロックスピードに余裕があるときには確実に動作するようにするために2相クロックにします クロックを限界まで早くしている場合には(LSIの)配線に気をつけ1相クロックにします 真に同時にたたいた場合には出力が変化するのに時間がかかるのでレーシングが起きないのです できるだけ同時にたたくように配線に気をつけるわけです

ytse
質問者

お礼

>レーシング現象 ちょっとこのことはわからないので、調べてみますね。 ありがとうございました。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.3

基本的にNO1の方の回答で正解と思います。 あなたの挙げられている2つのサイトの説明については どちらもその通りです。 >入力のデータを取り込んだ瞬間、入力は遮断される  エッジトリガのFFが暴走しない為の基本条件です。  エッジを検知→エッジ遮断→出力→次にエッジ待ち となります。 >エッジの微妙に後  これもその通りで前の条件を組み込む事により当然このようになります。 >実際のクロックのエッジは斜めなので  ytseさんの言われているのはこう言う事ではないと思いますが、  故意にクロック波形を三角波にしてやると、時においては  予想外の動きをすることがあります。  基本的には、クロックは方形波を入れることが前提になっていて  エッジ傾斜については(うろ覚えですが)規定されていた様におもいます。  規定値をクリアしていれば、内部の成形で問題無く動作させられます。  no2の方も言っておられる様に、これ以上のことは気に  すべき内容ではないと思います。  

ytse
質問者

お礼

丁寧なご回答、ありがとうございます。 >no2の方も言っておられる様に、これ以上のことは気に すべき内容ではないと思います ご指摘いただいたとおり、なるべくこの部分は気にしないで先に進もうと思います。 (私自身情報系で、デバイス系ではないので^^;)

  • DIGAMMA
  • ベストアンサー率44% (620/1404)
回答No.2

影響しません。 ポジエッジ入力から、出力が変化するまでにナノセコンド単位の時間がかかるからです。 ナノセコンドは極めて短い時間単位ですが、それでもIC/LSIの世界では、「う~んと長い時間」なのです。 つまり、AもBも、相手の状態を知ってから、「う~んと長い時間」を経過してから、自分の出力が変わるのです。 だから、影響しません。 但しクロックのポジエッジへの変化の間隔(クロック周期)が、「う~んと長い時間」より、さらに長いという条件はあります。 追伸:配線長遅延や内部素子の不均衡による誤動作は確かに存在しますが、それはまだ勉強しなくてもよい範囲(半導体素子設計実務レベルです)と思いますので詳細は割愛します。

ytse
質問者

お礼

>ナノセコンドは極めて短い時間単位ですが、それでもIC/LSIの世界では、「う~んと長い時間」なのです そうだったんですね。 これでわりきって先へ進めそうです。 ありがとうございました。

関連するQ&A