• 締切済み

論理回路

論理回路シュミレーションソフト(Logisim)を用いて画像のようなJKフリップフロップを作成しました. しかし,実際にこれを動作させてみるとJ=1,K=1でクロックを立ち上げたときに正しく動作しません. 原因を調べていると,あるサイトで以下のような記述を見つけました. In real life, this circuit would would also have an oscillation, but variations in signal time lead to the circuit eventually settling to a reasonable state. But Logisim doesn't have these physical variations, and so it gets stuck in indefinite oscillation. (http://sourceforge.net/p/circuit/bugs/16/) これでだいたいの原因は理解できたのですが,これについてもう少し詳しく教えていただきたいです. 具体的には,なぜ実際の回路では発振が起こっても信号の時間のずれによって,結果的に正しい状態に落ち着くのか,シュミレーション上ではなぜ物理的なずれがないことにより,発振が起こって不定な値になってしまうのか,そもそもここでいう"variation"とはなにを意味しているのか,といったところです.お願いします.

みんなの回答

  • cyclone3
  • ベストアンサー率62% (22/35)
回答No.1

こんにちは 回路設計者です。 このLogisimというシュミレータは今まで見たことも使ったこともありませんが、調べてみると学生さん向けの論理回路勉強用のシュミレータみたいですね。 したがって、実際の論理回路で起こる一番やっかいな信号波形、それに伴う信号遅延(propagation delay)などは考慮していません。 あくまで「論理」の組合せを勉強するものらしいです。 したがって、フリップフロップなどの順序回路の認識は行わないので、用意されたライブラリから引用するらしいですね。 さて、今回の現象は2つの問題からシュミレーション出来ないのでは? と思っております。 1)前述の信号遅延が考慮できない 2)信号波形のシュミレーションできない 実際の回路で発振するしないは、「発振回路」&「発振条件」で検索すればわかると思います(AΒ値による)。 信号の遅延(波形立上り、立下り)により帰還ループ内でどんどん減衰していき収束するはずです。 お尋ねのvariationは、どこぞのQAサイトでの初学者向けに誰かがイメージしやすく表現したものと思います。 正確にはpropagation delay time です。 世の中に回路シュミレーションツールはいろいろありますが、目的に応じて使い分けるしかありません。 論理回路を普通のアナログ回路用のシュミレータで検証すると、信号の変化速度があまりに速いので、高い時間分解能が要求され、膨大な演算時間がかかるので、限定された小規模な部分しかシュミレーションできなくなります。 そこで、論理の勉強用にはこういった時間軸を簡略化されたツールが存在するのだと思います。 繰り返しますが、発振するしないは別のアナログ的な条件ですので、そちらを参照してください。

参考URL:
http://www.cburch.com/logisim/docs/2.3.0/guide/prop/delays.html
ryo442266
質問者

お礼

返信が遅くなってすいませんm(__)m 詳しい解説ありがとうございました! おかげでよく理解できました.

関連するQ&A