• ベストアンサー

電験三種 論理回路の考え方

いつもお世話になります。 電験三種の勉強をしているのですが、論理回路の考え方についてどうも理解出来ませんのでご教示をお願いいたします。 過去問で、添付画像の論理回路のタイムチャートで、入力、出力の組み合わせが正しいは1~5のうちどれかという問題なんですが、 一つずつ出力を順を追って考えていけばわかる問題だとは思うのですが、どうも私の場合こういう類の問題が苦手です。 わかりやすい問題の解き方はないでしょうか? たとえばこういったフリップフロップが含まれている回路をブール代数をつかって表す事も可能なのでしょうか? 以上ご教示お願い致します。

質問者が選んだベストアンサー

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

こんにちは 知識や経験が全くないと、質問者様のおっしゃる様に「一つずつ出力を順に追って考える」しかありませんが、少しの知識と経験(特徴判別)があれば、そんな事をしなくても簡単にわかる場合があります。 ブール代数で表現できるのは、フリップフロップの様な記憶素子や微分素子が含まれている場合は、一つの式では記述出来ないと思います。(場合分けごとに式が必要) あと、論理式が圧縮されると機械(例えばFPGAやASICのコンパイラ)ならかまいませんが、人間の頭では意味がわからなくなります。 わかりやすい問題の解き方は、論理回路に限りませんが複雑な場合は 「特徴を見い出して、ある範囲毎に機能を把握して、それらを組み合わせれば」 全体の動きを簡略化できるのではと思います。 前述の「一つずつ出力を順に追っていませんが」ぱっと見た目、この回の特徴は 1) D及びEはNAND型のフリップフロップ(FF)の出力である 2) そのD及びBのFFは入力A、B、Cに対して対象になっている⇒A及びCに対し同じ動作をする 3) NAND型FFとするとのD及びE出力に対してB_(負論理入力)はリセット入力になる 4)そうなるとD及びEのNAND型FFの逆の入力はS_入力になるが、その前にNANDゲートがあって、Bのリセット入力がイネーブルLになるとNANDゲート出力は必ずHになり、D及びEのFFはセット入力が入らず禁止されっる⇒リセット優先FF という特徴を持ちます 5)入力A及びBにあるANDゲートは、最終的にはD及びEのFFのS_入力につながっていますが、同じ動作をする逆のFFかのQ_出力でAND(ブロック)されています⇒片方のFFがセット(=H)されると、逆のFFのS_入力はブロックされる(排他的動作)になります。 6) 4)よりA及びBからの信号はNANDゲートでひっくり返されるので、5)と合わせて考えると正論理入力になります。 話が長くなりましたが、上記1)~6)の特徴から 7) AはDのFFの正論理セット入力 8) CはEのFFの正論理セット入力 9) BはD及びEのFFの優先的負論理リセット入力 10) D及びEのFFはお互いに排他的動作(一旦セットされると他をブロック)する この7)から10)がわかればタイムチャートA,B,Cの入力の変化点だけを追えば、D及びEの出力がわかります。 質問者様も、もう各ゲートの入出力をステップ毎にいちいち書いていかなくても、結果はおわかりだと思います。 昔はこんなことを一生懸命繰り返して膨大な論理回路を設計して、チェックも随分かかりましたが、それでも発生する論理間違いやタイミング誤差、時間的なスキが多く誤動作確率が高かったりして、随分痛い目にあいました。 最近はツールが発達しているのでチェックも容易ですね。 最後に、実際の回路の 9)及び10)の特徴は、質問のタイムチャートのように同期化された場合にのみ成り立ちます。 非同期入力信号の場合は、論理ゲート素子の動作速度の組合せ範囲内で、成り立たない場合が存在します。 例えば、D 及び E のFFの両方が両方ともセットされる場合があります。 これはFPGAのクロックのスキューや非同期入力のメタステーブルと同じですね。

sabbath666
質問者

お礼

回答ありがとうございます。 なかなかすんなり入ってきませんが頑張って慣れて行きたいと思います。 ちなみにこういった知識は実際の仕事の場ではどのような場面で使われるのでしょうか?試験勉強ですとなかなかリアルな場面が想像しにくいです。

すると、全ての回答が全文表示されます。

その他の回答 (1)

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

おはようございます。 昔だったら、前の回答の 7)から10)の実現したい動作から、 1)から6)のロジックを考えて、ご質問の回路を実現させていました。 私も学生時代だったら、ご質問の様な回路の動作の理解はとても難しかったと思いますが、今なら見ただけで入出力の論理は自信ないけれど、動作は瞬間的にわかります。 今の論理回路作成は複雑な場合が多いので、ご質問の中にあった様に代数式又は実現したい動作をVHDLやverilog-HDL、superC等々の記述言語で表現して、ツールを使って回路を作成します。 前に回答した記憶素子や微積分動作は、場合分けして式や動作を入力し、ツールで論理合成させます。 ご質問の様な組合せ論理回路は、現在では回路設計時に使用するICや、マイコン類の内部動作を説明する為の等価回路、マイコンでは間に合わない簡単な回路等で使われる位です。 仕事ではあまり登場しませんが、論理回路自体は絶対に必要な基本的な技術です。 言語記述だと読まないと動作がわかりませんし、複数の記述の関連性がわかりにくいと思います。 それに比して論理回路表現だと(慣れると)見ただけで動作が直感的にわかるので、わかりやすいと思います。 少し慣れが必要かと思います。

sabbath666
質問者

お礼

回答ありがとうございます。 回路を理解するための基礎中の基礎と言う事なんですね。 しっかり理解しておきたいと思います。

すると、全ての回答が全文表示されます。