JK-FF
2009年8月9日
JKタイプのフリップフロップの勉強。これを今まであまりよく理解していなかった。もしかしたら便利な場面が出てくるかもしれないので…。
まず、Wikipediaに載っている最も簡単な回路を再現してみた。

回路図中でNANDゲートにHやLが有るのは、シミュレーション開始時にデフォルトでHやLを出力するように改変した特殊なもの。これを入れることで、無事にシミュレーションが開始する。
ところが、どうもうまくいかない。j=Hのときにクロックを与えると(この回路では、短い幅のクロックを与えないといけないらしい)ちゃんと設定される。しかし、k=Hのときだと、どんな形のクロックを与えても、必ず発振してしまう。
上記回路は、クロックに幅の短いパルスを与えないといけない回路なので、そうではない、つまりクロックの下がりでデータを変更できるタイプのものをデータシートから拾ってきて、組んでみた。
ところが、これのシミュレーションもどうもうまくいかない。やはり、k=Hのときにクロックを与えると、発振してしまう。
最近のCMOSのjkffでは、<%media(20090810-jkff3.zip|以下のような回路)%>になっている(一部、switchの部分を3-stateに置き換えている)。

これだと、クロック幅を極端に小さく取らない限り、うまく働く。JK-FFを使うときは、この回路を参考に考えてみたい(トランジスタでJK-FFを組むときも)。
まず、Wikipediaに載っている最も簡単な回路を再現してみた。

回路図中でNANDゲートにHやLが有るのは、シミュレーション開始時にデフォルトでHやLを出力するように改変した特殊なもの。これを入れることで、無事にシミュレーションが開始する。
ところが、どうもうまくいかない。j=Hのときにクロックを与えると(この回路では、短い幅のクロックを与えないといけないらしい)ちゃんと設定される。しかし、k=Hのときだと、どんな形のクロックを与えても、必ず発振してしまう。
上記回路は、クロックに幅の短いパルスを与えないといけない回路なので、そうではない、つまりクロックの下がりでデータを変更できるタイプのものをデータシートから拾ってきて、組んでみた。

ところが、これのシミュレーションもどうもうまくいかない。やはり、k=Hのときにクロックを与えると、発振してしまう。
最近のCMOSのjkffでは、<%media(20090810-jkff3.zip|以下のような回路)%>になっている(一部、switchの部分を3-stateに置き換えている)。

これだと、クロック幅を極端に小さく取らない限り、うまく働く。JK-FFを使うときは、この回路を参考に考えてみたい(トランジスタでJK-FFを組むときも)。