<DFF(その3)>

| | コメント(0)

栃木県足利市に“足利フラワーパーク”という公園があります。名前の通り花がたくさんある公園で、一年中どの季節でも何かの花が咲いています。

中でも有名なのが“大藤”と呼ばれる800畳分の藤棚を持つ樹齢140年の大樹で、幹の周りは3.6mもあります。満開のときに藤棚の下から見上げると圧巻で感動ものです。

20100705_1_misaizu.jpg

 

この大藤は1996年2月、日本の女性樹木医第一号 塚本園長によって足利市の早川農園からこの地に移植されたとのことです。

当時、藤は60cm以上の太さになると移植はできないと言われているのに、この大藤は120cm以上もの太さだったので、切るしかないと言われていたそうです。

インタビューで成功の理由をこう答えていました。
「次の世代に命をバトンタッチすると言う感性や意思があったからだと思います。どうしたらこの木は次の子供や孫の世代にもっと大きくなって、色んな人たちに勇気や感動を与えてくれるだろうかを考え続けました。」

塚本さんの次世代に繋ぐという強い意志を大藤も感じて、不可能を可能にしたのだと思います。

今年も綺麗に咲きほこっていました。来年も、10年後も、そして僕の孫やそのまた孫が同じ場所に立ったときも同じように、いやもっと大きくなって綺麗に咲きほこっている事を想像しつつ、今日の技術ネタに行きたいと思います。

 

 

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

DFFに入れるCLKのTr/Tf を遅くした波形を図1に示します。


20100705_2_misaizu.png

DFFの出力V(Q)の動作がおかしくなっています。クロックV(C)の立上がりだけではなく、立下りでも変化してしまっています。これは、スレーブラッチが正しく動作しなくなっているために起きている現象です。
スレーブがデータを取り込んで(図ではD1Xの“L”を取り込んで)、これをラッチする(32usecのちょっと前のCLKの立下り)事ができず、入力データD1Xの変化がそのまま出力Qに現れてしまっています。

問題の部分を拡大してみると・・・

20100705_3_misaizu.png

図 2の拡大図を見ると分かるように、ほんの僅かですがD1Xの立ち上がりのほうが早くなっています。
本来の動作は、CLKの立下りの後、D1Xが変化しないといけないのですが、CLK波形のTr/Tf が遅くなったため順番が逆になってしまったのです。

D1Xの立ち上がりを遅くするためにマスターラッチ用のクロックを遅くしてみました。

 


 

20100705_4_misaizu.png

 これでうまくいくはずだったのですが・・・

20100705_5_misaizu.png

 残念ながら直っていません(T_T)。何で?と拡大してみると。。。
20100705_6_misaizu.png

まだ、D1Xのほうが早く動いてしまっています。
単純なインバータで遅延を作ったのがまずかったようで、CLK2(遅らせたいCLK)の方が後ろにあるのですが、利得が高くなっているために先に動作してしまっています。
それならばという事で、更にインバータを追加してみます。

20100705_7_misaizu.png

 

 
20100705_8_misaizu.png
今度はうまく行った様です。拡大してみると・・・

20100705_9_misaizu.png

確かに、D1Xの方が遅くなっています。。。しかし、その差は500psec以下!!
実際の回路では寄生容量など回路図にはないデバイスの影響もあるので、このくらいの差はひっくり返ってしまうこともあります。

以上の様に入力CLKのTr/Tf が遅くなるとDFFは誤動作を起こしてしまうので、Tr/Tf に制限をつける必要があります。

次回は、入力データとクロックの位相関係について触れたいと思います。

コメントする

このブログ記事について

このページは、dclueblogが2010年7月 5日 15:34に書いたブログ記事です。

ひとつ前のブログ記事は「<DFF(その2)>」です。

次のブログ記事は「<DFF(その4)>」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01