デジタル回路設計のブール代数

デジタル回路設計のブール代数

 ブール代数はデジタル回路設計の基礎ともなる代数定理です。ブールさんが提唱した数学的アプローチで論理を扱うものです。

 要約すると”0″と”1″の二値だけで処理を行います。ブールさんは数学者です。なので、これまで小学校、中学校で学んだ算数・数学がそのまま当てはまります。

 コンピュータ論や電子工学の教科書にはブール代数の規則というのが載っていますが、わざわざ覚える必要はありません。だって、普通の算数・数学なんですから。誰だって 2×3=3×2 っていうことぐらい知ってますよね。それに論理が複雑になった時に式を簡単にする計算(論理圧縮)なんて、コンピュータに任せましょう。

 デジタル回路は”0″と”1”で成り立っているので、このブール代数っていうのは非常に相性が良い考えだっと思います。そこで、デジタル回路設計ではブール代数を用いて設計します。おそらく、日頃回路設計を行っているエンジニアはブール代数が数学だという事を忘れて、回路記号だとかHDL(デジタル回路設計用言語)だと思っているぐらいだと思います。

 ブール代数で覚えなくてはいけないのは4つです。AND(アンド)、OR(オア)、NOT(ノット)、ExOR(エクスクルーシブオア)の4つです。教科書によると、ブール代数は3つ(AND,OR,NOT)から成り立つ。という事ですが、4つ覚えてください。

 これから、その4つを解説するわけですが、ルールがあります。図記号と論理式と真理値表です。デジタル回路エンジニアとして見ると、回路図、論理式、入出力というように置き換える事ができます。これらはすべて覚えるしかありません。でも 無理やり覚えなくても、別に試験があるわけでもないので、ノートにメモをしておいて、使うたびに真理値表を見れば良いのです。そのうち覚えてしまいます。一気に覚えられない。という人は真理値表を先に覚えてください。次に図記号、論理式です。論理式は覚えなくてもデジタル回路の設計はできます。

<AND> ANDは論理積と呼ばれています。単純に”アンド”で覚えて良いのですが、この「論理積」っていう言葉は意外にツボになっています。論理式を見てください。「・」になっていませんか? 掛け算(乗算)は「・」で書くってどこかで習いませんでしたか? 論理積は積=乗算なんです。

 覚え方はスイッチです。入力Aを入力BでON/OFFする感じです(逆でも良い)。ON=1,OFF=0とすれば、Bが1の時にはAの値がそのままYに現れます。Bが0の時にはAの値はYに現れません。

<OR> ORは論理和と呼ばれています。記号も+ですね。

 ORの覚え方は「どっちかでも1なら1」です。AとBのどっちかでも1ならYも1です。逆に「どっちも0の時は0」それ以外は1なので、そのように覚えても良いです。

<ExOR> ExORはANDとORの組み合わせで作る事ができるので、ブール代数としては最低限にはなりません。しかし、デジタル回路設計において非常に重要な論理なので、覚えてしまいましょう。

 ExORは「エクスクルーシブオア」と読みます。日本語では排他的論理和です。このExORは書き方が人によってまちまちで、XORと書いたり、EX-ORと書いたりEORと書く人もいます。読み方はどれも「エクスクルーシブオア」です。

 ExORの覚え方は「同じ時は0。違う時は1」です。AとBが同じ時にはY=0です。

<NOT> NOT(ノット)は簡単です。入力の反転(はんてん)です。反転というのは聞きなれない言葉ですが、真理値表を見れば理解できると思います。エンジニア同士の会話では「入力を反転してくれる?」というように使います。「入力をノットしてくれる?」とは言わないのです。「AとBのアンドとってくれる?」とか「AとBのオア」「AとBのエクスクルーシブオア」などはいうのですが、不思議ですね。

 以上がブール代数です。すべてのデジタル回路はこの4つとDフリップフロップで設計できる。と言っても間違いないぐらいに重要です。

 さて、初心者は図記号の「向き」が理解できない事が多い様です。上に書いた向きは「普通」の書き方です。回路図に描く時には、信号は左から右に流れるように書きます。これが普通の書き方です。なので、上の説明の図記号も信号が左から右に流れる向きに書いてあります。

 もちろん、右から左に書いても良いです。その場合、図記号も逆になります。つまり、図記号の入力と出力は決まっていると覚えてください。これは結構重要です。

 ※右の出力信号をもう一度入力側に接続する。などの特別な理由がない限り、回路図は左から右に描くようにしましょう。

 図記号の経験のある方は、正論理(せいろんり)だけの説明? と思うでしょう。確かに論理を考える上で、負論理(ふろんり)もあります。図記号も負論理の図記号があります。しかし、昨今のHDLを用いたデジタル回路設計では負論理を扱う事は稀です。初心者は負論理の事を気にしないで設計していく事をお勧めします。そのうち、負論理を扱う事になると思いますが、その頃には負論理の存在を意識しないで負論理の設計ができる様になっています。