こんにちは
知識や経験が全くないと、質問者様のおっしゃる様に「一つずつ出力を順に追って考える」しかありませんが、少しの知識と経験(特徴判別)があれば、そんな事をしなくても簡単にわかる場合があります。
ブール代数で表現できるのは、フリップフロップの様な記憶素子や微分素子が含まれている場合は、一つの式では記述出来ないと思います。(場合分けごとに式が必要)
あと、論理式が圧縮されると機械(例えば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のクロックのスキューや非同期入力のメタステーブルと同じですね。
お礼
回答ありがとうございます。 なかなかすんなり入ってきませんが頑張って慣れて行きたいと思います。 ちなみにこういった知識は実際の仕事の場ではどのような場面で使われるのでしょうか?試験勉強ですとなかなかリアルな場面が想像しにくいです。