2010年8月アーカイブ
先月、早めの夏休みをいただき、New Yorkに行って来ました。
その旅で感じたことを少し書きたいと思います。
横浜のランドマークタワーを見慣れているので、摩天楼などたいした事は無いと思っていたのですが・・・その高層ビルの密度には驚かされました。
図 1の様にDFFに入力するCLKの位相(エッジのタイミング)を変えることで、出力Qのデータが変化するタイミングを変えることができます。
この仕組みは、入力されたデータの変化するタイミングを、自分の都合の良いタイミングに変更する事に使われ、デジタル電子回路のあらゆるところに使われています。
ではこの機能に制限はないかというと、残念ながら制限があって、それが
“セットアップ・ホールドタイム”
です。
図 2は、DATA(10交番)とCLKの周波数をわずかにずらしてシミュレーションした結果です。(回路は前回の図4です)
出力Qの様子がおかしい(10交番が出ていない)箇所があります。
この部分を拡大してみると、
今年も横浜港で神奈川新聞や、開港記念の花火大会が開催されました。
ここで気になるのは、“立下りを遅らせると立上りも遅れるが・・・良いのか?”ということです。
- スレーブラッチが新しいデータを取り込むのは、CLK2の立上がりが決めています。
- マスターラッチがデータをラッチするのは、CLK3の立上がりが決めています。
なので、スレーブが新しいデータを取り込んだ後に、マスターがラッチする事になります。
入力データは雑音の影響を分かりやすくするために小さくし、雑音を入れました。
図 3の結果を見ると、CLK2の立上り~CLK3の立上り間、出力Qに入力Dの雑音がそのまま出力されてしまっています。
これは、スレーブが取り込む新しいデータにラッチがかかっていないために入力がそのまま出力につながり、入力信号に雑音やヒゲが入っていたら、そのまま出力に出てしまうことになります。これではDFFとしての役目を果たしていません。
ではどうすれば良いかというと、マスターがラッチしたデータをスレーブが取り込む。つまり、CLK3の立ち上がりの後、CLK2の立ち上がりが来る必要があります。
簡単にいうと、CLK2はDutyを細く、CLK3はDutyを広くすると良いのです。
CLK回路にNANDと遅延回路を使った図 4の回路で実現できます。
(上記は一例であって、他にもDutyを意図的にずらす回路はあります)

CLKのDutyを適切に調整することで、入力雑音が出力に出てこなくなりました。
実際のDFFで図 4の様にNANDを使うことは消費電力やサイズの面で不利なので、Pch/NchのL/W長を調整して閾値を意図的に変えて、Dutyの調整をすることが多い様に思います。
次回は、セットアップ・ホールドタイムについて触れたいと思います。
