最新の10件を表示しています。 コメントページを参照

  • すいません、D-FFの回路図が違っていました・・・(クロックとインバータの位置が違っていました)修正しました〜 -- akita? 2015-01-21 (水) 09:15:57
お名前:

※ここにおいてあるファイルは、GitHub?にもおいてあります→https://github.com/akita11/mklsi/tree/master/FlipFlop

Dフリップフロップ(D-FF)の設計

論理回路の醍醐味は順序回路、で、そのためにはフリップフロップ!というわけで、D-FFをつくってみたいとおもいます。

D-FFの中身もいろいろありますが、ここは「準スタティック型」と呼ばれるやつを使ってみます。

DFFsch.png

詳しい方なら、「お?マスタースレーブ式か?」と思われるかもしれませんが、基本的にはそうです。↓のクロックト・インバータというやつを使っています。

cinv_sch.png

これは、CK=0/CKb=1のときはふつうのインバータと同じですが、CK=1/CKb=0のときは出力がHigh-Zとなる、というやつです。

これをレイアウトするとこんな感じになります。 インバータを1個つくって、そいつをいじってクロックト・インバータをつくって、それを横に並べながらつないでいくと、案外簡単につくれます。 なおCKbはCKの反転なので、インバータでCKからつくっています。

ちなみに電源(VDD/GND)や端子が同じところのMOSトランジスタはコンタクトを共有する、というテクニックを何か所かでつかっています。(たとえば図中の赤丸のところは、左右のトランジスタでVDDやN1を共有しています)

DFF.png

続いて、シミュレーションしてみましょう。回路抽出して*.spファイルをつくって、電源や入力波形を与える電圧源を追加してみます。

DFFsim.png

で、シミュレーション。 緑がクロックCK、青がD、赤が出力Qです。 CKの立ち上がりで、Dの値がQに反映さえる、というD-FFの動作をしていますね!

Tフリップフロップ(T-FF)の設計

Lチカのためには、リングオシレータだけだと周波数が高すぎるので分周しなきゃ、そのためにはT-FF!というわけで、T-FFもつくってみましょう。 といっても、もうD-FFはできているので、簡単です。 D-FFのQBをDにつなげば、T-FFになります。 というわけで、さきほどのD-FFのQBとDをML2でつないでみます。

TFF.png

で、シミュレーション。入力はクロックCKだけです。ここでは20ns周期(50MHzですね)の方形波にしています。

TFFsim.png

たしかにCK(緑)の立ち上がりごとに、出力Q(青)が反転していて、T-FFの動作、つまりCKの半分の周波数の信号が得られています。 これを何段もつなげれば、どんどん周波数を落として、Lチカにできそうですね!


添付ファイル: fileDFFsch.png 813件 [詳細] fileDFF.png 710件 [詳細] filecinv_sch.png 865件 [詳細] fileDFFsch_150120.png 345件 [詳細] fileTFF.gex 590件 [詳細] fileDFF.gex 598件 [詳細] fileTFFsim.png 940件 [詳細] fileTFF.png 835件 [詳細] filetestTFF.sp 597件 [詳細] filetestDFF.sp 596件 [詳細] fileDFFsim.png 987件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-01-21 (水) 10:33:30 (2940d)