JK-FF
2009年8月9日
JKタイプのフリップフロップの勉強。これを今まであまりよく理解していなかった。もしかしたら便利な場面が出てくるかもしれないので…。
まず、Wikipediaに載っている最も簡単な回路を再現してみた。
![20090810-jkff1.png](/jeans/skins/media/1/20090810-jkff1.png)
回路図中でNANDゲートにHやLが有るのは、シミュレーション開始時にデフォルトでHやLを出力するように改変した特殊なもの。これを入れることで、無事にシミュレーションが開始する。
ところが、どうもうまくいかない。j=Hのときにクロックを与えると(この回路では、短い幅のクロックを与えないといけないらしい)ちゃんと設定される。しかし、k=Hのときだと、どんな形のクロックを与えても、必ず発振してしまう。
上記回路は、クロックに幅の短いパルスを与えないといけない回路なので、そうではない、つまりクロックの下がりでデータを変更できるタイプのものをデータシートから拾ってきて、組んでみた。![20090810-jkff2.png](/jeans/skins/media/1/20090810-jkff2.png)
ところが、これのシミュレーションもどうもうまくいかない。やはり、k=Hのときにクロックを与えると、発振してしまう。
最近のCMOSのjkffでは、<%media(20090810-jkff3.zip|以下のような回路)%>になっている(一部、switchの部分を3-stateに置き換えている)。
![20090810-jkff3.png](/jeans/skins/media/1/20090810-jkff3.png)
これだと、クロック幅を極端に小さく取らない限り、うまく働く。JK-FFを使うときは、この回路を参考に考えてみたい(トランジスタでJK-FFを組むときも)。
まず、Wikipediaに載っている最も簡単な回路を再現してみた。
![20090810-jkff1.png](/jeans/skins/media/1/20090810-jkff1.png)
回路図中でNANDゲートにHやLが有るのは、シミュレーション開始時にデフォルトでHやLを出力するように改変した特殊なもの。これを入れることで、無事にシミュレーションが開始する。
ところが、どうもうまくいかない。j=Hのときにクロックを与えると(この回路では、短い幅のクロックを与えないといけないらしい)ちゃんと設定される。しかし、k=Hのときだと、どんな形のクロックを与えても、必ず発振してしまう。
上記回路は、クロックに幅の短いパルスを与えないといけない回路なので、そうではない、つまりクロックの下がりでデータを変更できるタイプのものをデータシートから拾ってきて、組んでみた。
![20090810-jkff2.png](/jeans/skins/media/1/20090810-jkff2.png)
ところが、これのシミュレーションもどうもうまくいかない。やはり、k=Hのときにクロックを与えると、発振してしまう。
最近のCMOSのjkffでは、<%media(20090810-jkff3.zip|以下のような回路)%>になっている(一部、switchの部分を3-stateに置き換えている)。
![20090810-jkff3.png](/jeans/skins/media/1/20090810-jkff3.png)
これだと、クロック幅を極端に小さく取らない限り、うまく働く。JK-FFを使うときは、この回路を参考に考えてみたい(トランジスタでJK-FFを組むときも)。