2回目の研修が終わりました。

今回は、論理回路(組み合わせ回路)の設計を行って貰ったのですが、苦戦していたようです。
もう少し詳しい説明が必要だったかなと思っています。

皆さん、業務で設計は経験していると思いますが、設計の手順は機構設計でも、ソフトウェア設計でもいきなり設計は行うことはないと思います。
大体、要件定義→概要設計→詳細設計→実装の工程によって、抽象的な要求を細分化し、具体的にしていると思います。
回路設計でも同じで、要求された機能を細分化し、具体化すれば単機能を集まりになるため、簡単に設計できると思います。

組み合わせ回路の要素は、否定、論理積、否定論理積、論理和、否定論理和、排他的論理和、否定排他的論理和があります。
この単機能要素になるまで、要求された機能を分解すれば、論理回路の設計はできます。

例えば、半加算器の真理値表は以下のようになります。

AとBは入力、Sは加算結果(Sum)、Cは繰り上がり(Carry)です。
このまま考えると難しいのですが、この真理値表を換算結果と繰り上がりの出力に分解します。

こうすると、加算結果は排他的論理和、繰り上がりは論理積になっていることが分かります。
したがって、回路は以下のようになります。

このように考えれば、全加算器も入力信号の加算回路、加算結果と下の桁からの繰り上がりとの加算に分けて考えることができます。
マルチプレクサ回路は、一つの入力信号が選択される場合のパターンが分かれば、条件を変えながら複数の同じ回路を組み合わせることで設計できます。