2010年8月アーカイブ

<DFF(その5)>

| | コメント(0)

先月、早めの夏休みをいただき、New Yorkに行って来ました。
その旅で感じたことを少し書きたいと思います。

横浜のランドマークタワーを見慣れているので、摩天楼などたいした事は無いと思っていたのですが・・・その高層ビルの密度には驚かされました。
 

20100816_1_misaizu.jpg

横浜と違って、マンハッタン島は岩盤が古く、7億年ほど前にできた安定陸塊の岩盤層になっているとのことです。地殻変動もない古い岩盤なので、地震も殆どない事がさらに高層ビル建設に拍車をかけたのだと思います。
我先に空を目指すビルは、光を求めて枝や葉をのばす深い森の様に感じました。

  

20100816_2_misaizu.jpg

 

 

 

 

 

 

 

 

 

 

 

高層ビルの根元は、夏休みということもあって、USAの地方や海外からの観光客でごった返していました。そんな中、VIPを乗せたリムジンがクラクションを鳴らし続けながら、人ごみやタクシーを押しのけて前に前に進んでいく(写真上)のを見て“嫌な感じ”を受けました。
この町ではお金がすごく重要で、その為にはたいていの事は犠牲にすると言った“嫌なエネルギー”に溢れている印象を受けたのは、僕だけでは無いと思います。

 

20100816_3_misaizu.jpg

 

 

 

 

 

 

 

 

 

 

 

泊まったホテルは、マンハッタンの中央から少し西側にずれた所にあり、あまり治安が良いとは言えないエリアでした(後で知ったのですが(汗))。
食事はホテル近くの24時間営業のコンビニ(写真上)でサンドイッチやお菓子を色々と買い込んで、ホテルで済ませるパターンが多かったですが、意外とおいしいしボリュームもあり、十分満足でした。
このお店の店員は(おそらく)メキシコ人で、顔は怖いのですが話すと意外とやさしく、2度目に行った時は“日本人?”、“何しにきた?”などと話しかけてきたので、“日本人だよ”、“夏休みで観光に来た”と答えたら、“ここらは日本人が来ないから、珍しいよ”、“昨日このサンドイッチ買っただろ? こっちのバーベキューも美味いぞ”などと・・・そのバーベキューは重そうなので避けていたのに、買って帰ることになりました・・・意外と美味かったです。

New Yorkは、リッチで冷酷な摩天楼と、お金は無いけど暖かいコンビニがある町が、通りひとつで背中合わせになっていて、でもこれらが交じり合う事は無いだろうと感じる街でした。

最後に、お休みの間フォローしていただいた仲間に深く感謝いたします。
ありがとうございました。

 

今回は、セットアップ・ホールドタイムについて触れたいと思います。

DFFの役目は、

「入力されたデータを意図したタイミングで‘1’or‘0’に判別する」

です。(1ビットのA/Dコンバータとも言えます)では、どのタイミングで判別するか?と言うと、“マスターラッチが入力されたデータをラッチするタイミング”で判別が行われます。
CLKの“立上り”や“立下り”と表現することが多いのですが、動作原理からは“マスターラッチ回路がデータをラッチする時に、‘1’、‘0’に判別しています。

‘1’、‘0’に判別することも重要な役目なのですが、DFFの出力データは“意図したタイミング”で出力されることも重要な役目です。
つまり、判別するCLKのエッジを変化させることで、データが変化するのタイミングを変えることができます。

20100816_4_misaizu.PNG

 

 

 

 

 

 

 

 

 

図 1の様にDFFに入力するCLKの位相(エッジのタイミング)を変えることで、出力Qのデータが変化するタイミングを変えることができます。
この仕組みは、入力されたデータの変化するタイミングを、自分の都合の良いタイミングに変更する事に使われ、デジタル電子回路のあらゆるところに使われています。

ではこの機能に制限はないかというと、残念ながら制限があって、それが
“セットアップ・ホールドタイム”
です。

20100816_5_misaizu.PNG

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

図 2は、DATA(10交番)とCLKの周波数をわずかにずらしてシミュレーションした結果です。(回路は前回の図4です)
出力Qの様子がおかしい(10交番が出ていない)箇所があります。
この部分を拡大してみると、

20100816_6_misaizu.PNG

 

 

 

 

 

 

 

 

 

 

 

 

 

20100816_7_misaizu.PNG

 

 

 

 

 

 

 

 

 

 

上の図は、DATAが変化する直前にCLKのエッジが来るようになった場合を示しています。
①と②では正しく動作していますが、③では正常な動作ができていません。
データの変化に対してどのくらい前にCLKエッジがいるかをホールドタイムと言います。
CLKエッジが入力されマスターラッチ回路がデータをラッチする、つまりホールド(つかむ)のに必要な時間です。この時間を確保した後に入力変化させないと、ラッチができずに正しい動作ができなくなってしまいます。

20100816_8_misaizu.PNG

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20100816_9_misaizu.PNG

 

 

 

 

 

 

 

 

 

逆に上の図は、DATAの変化直後にCLKのエッジが来るようになった場合を示しています。⑥以降では正しく動作していますが、④では正常な動作ができていません。
データの変化のどのくらい後にCLKエッジがいるかをセットアップタイムと言います。
データが変化した後、ラッチの準備が整うまでの時間、つまりセットアップ(準備)の時間です。この時間を待ってやらないと、マスターラッチ回路が十分な準備ができず正しく動作できなくなってしまいます。

セットアップ・ホールドタイムを確保しないとDFFが正しく動作しないので、DFFの出力Qはどうなるか分かりません。上のシミュレーションの様に‘1’や‘0’になってくれれば良いのですが、場合に依っては‘1’‘0’の繰り返しが出力されたり、最悪の場合は、中間電位でとまってしまう場合があります。
DFF出力に余計な10交番が混じったり、中間電位でとまってしまうと後段に及ぼす影響は計り知れません。特に中間電位と待ってしまうと後段のデジタル回路に貫通電流が流れ、デバイス自体にダメージを与えかねません。

こう言った現象を“メタステーブル”と言います。
メタステーブルの一番厄介な所は、必ず発生するとは限らないからです。
また、電源電圧や温度、トランジスタのバラツキや入力データ/クロックの波形などにも依存し、回路設計で「メタステーブルの発生を100%防止することは非常に困難」です。

この厄介な現象を確実に防止するには、セットアップ・ホールドタイムをきちんと確保することです。その為には、入力データの変化タイミングとクロックエッジの関係が確定していなくてはなりません。つまり、同期式の回路でなくてはいけない事になります。
しかし、実際には全ての回路を同期式に設計することが出来ず、外部との接続で必ず非同期の部分(例えばリセット回路など)が出てきます。

次回は、このメタステーブルが発生しても、その波及度を最小限にとどめるための回路を紹介したいと思います。

 

<DFF(その4)>

| | コメント(0)
暑い日が続いて夏真っ盛りです。夏と言えば“花火”
今年も横浜港で神奈川新聞や、開港記念の花火大会が開催されました。

20100802_1_misaizu.jpg

 

この花火の写真を撮るのは、結構大変なのです。

花火は夜の撮影なるので三脚は必須です。できるだけ前に出て、余分な人の頭などが写らないようにするためには、まだ明るいうちに場所をキープしないといけません。

まず、どこにカメラを向けるか?
事前に打ち上げ場所を調べておいたとしても、当日の風の向きや様々な状況に依って変更されている場合もあります。
結局は実際に打ち上げた花火を見て、向ける方向を確認します。

ピントはどうするか?
真っ暗なので、どこに合わせれば良いやら・・・こんな時は、花火を打ち上げる辺りと同じくらいの距離にある船や防波堤の光にピントを合わせて、そのままのピントの状態で画面を狙う方向に向けます。または、目測+マニュアルです。

ズームをどうするか?
これはどのくらいの大きさに見えるかに合わせて、ズームしたり引いたりするのですが、これも実際に打ちあがった花火を見て決めます。

シャッタースピードをどうするか?
発射から爆発までは、1、2、3、4・・・、自分で時間を計って決めます。
だいたい5~7秒くらいにすると、打ち上げられていく玉の線も含めて撮れると思いますが、これも何度か実際に打ちあがった花火で試してから決めます。

絞りはどうするか?
真っ暗の中ではまったく見当が付かないので、何枚か撮ってみるしかありません。
デジタルカメラの良いところは、すぐに出来が分かる所です。
これも何度か実際に打ちあがって花火で何度か試してから決めます。

こんな事をしながらカメラの設定を終える頃には、花火大会自体も終わってしまって・・・結局いいのは一枚も取れなかったなんて事もありました。

最近のデジタルカメラはあらゆる事を自動でやってくれるので、オートのままでも結構良い写真が取れます。でも、マニュアルで自分の目と勘(感)を信じて苦労して撮った写真がやっぱり一番だと思いつつ、今日の技術ネタに行きたいと思います。

 

前回は、“入力CLKのTr/Tfが遅くなるとDFFは誤動作を起こしてしまうので、Tr/Tfに制限をつける必要がある”ことを紹介しました。今回はもうちょっとこの辺りを掘り下げてみたいと思います。

DFFを安定に動作させるには、“前の状態をラッチした後、D1Xが変化する”ようにすれば良いことを前回は説明しました。

  • スレーブがデータをラッチするのは、CLK2の立下りが決めています。
  • マスターが新しいデータを取り込むのは、CLK3の立下がりが決めています。

つまり、前の状態をラッチした後に、D1Xが変化するようにするには、CLK2の立下りの後にCLK3の立下りが来れば良いことになります。


 

20100802_2_misaizu.png

 

 

 

 

 

 

 

ここで気になるのは“立下りを遅らせると立上りも遅れるが・・・良いのか?”ということです。

  •  スレーブラッチが新しいデータを取り込むのは、CLK2の立上がりが決めています。
  •  マスターラッチがデータをラッチするのは、CLK3の立上がりが決めています。

なので、スレーブが新しいデータを取り込んだ後に、マスターがラッチする事になります。


 

20100802_3_misaizu.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

前回の回路に思いっきり遅延回路を追加して確認してみたいと思います。


 

20100802_4_misaizu.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

入力データは雑音の影響を分かりやすくするために小さくし、雑音を入れました。
図 3の結果を見ると、CLK2の立上り~CLK3の立上り間、出力Qに入力Dの雑音がそのまま出力されてしまっています。

これは、スレーブが取り込む新しいデータにラッチがかかっていないために入力がそのまま出力につながり、入力信号に雑音やヒゲが入っていたら、そのまま出力に出てしまうことになります。これではDFFとしての役目を果たしていません。

 
ではどうすれば良いかというと、マスターがラッチしたデータをスレーブが取り込む。つまり、CLK3の立ち上がりの後、CLK2の立ち上がりが来る必要があります
簡単にいうと、CLK2はDutyを細く、CLK3はDutyを広くすると良いのです。

20100802_5_misaizu.png

処理の順番は、
(1) CLK3の立上り:マスターラッチがデータをラッチ。
(2) CLK2の立上り:マスターラッチの出力をスレーブが取り込み、Qに出力
(3) CLK2の立下り:スレーブラッチが出力したデータをラッチ
(4) CLK3の立下り:マスターラッチが新しい入力データを取り込む

このようにDutyを意図的ずらすクロックはSCF(Switched Capacitor Filter)などで、スイッチを同時にONさせたくない場合などに、よく使います。


 

20100802_6_misaizu.png

 

 

 

 

 

 

 

 

 

 

 


 

CLK回路にNANDと遅延回路を使った図 4の回路で実現できます。
(上記は一例であって、他にもDutyを意図的にずらす回路はあります)

20100802_7_misaizu.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CLKのDutyを適切に調整することで、入力雑音が出力に出てこなくなりました。
実際のDFFで図 4の様にNANDを使うことは消費電力やサイズの面で不利なので、Pch/NchのL/W長を調整して閾値を意図的に変えて、Dutyの調整をすることが多い様に思います。

次回は、セットアップ・ホールドタイムについて触れたいと思います。