ある論理回路設計者のライブラリ

論理回路設計に関する知識を書き溜めていきます。

03_組み合わせ回路 2/2

こんにちは、筆者です。
今回は「論理回路設計の基礎知識」として組み合わせ回路について書きます。
本記事が2回目です。

組み合わせ回路の例

 前回組み合わせ回路とはから簡単な組み合わせ回路の例を使い、タイムチャートの紹介までしました。
 今回はもう少し複雑な組み合わせ回路の例を見ます。
 以下の回路を例に説明します。

f:id:kinchan8434:20220315214813p:plain
組み合わせ回路例
 この回路のタイムチャートは以下の通りです。
f:id:kinchan8434:20220315214928p:plain
タイムチャート
 信号が増えて複雑に見えますが、一つ一つ見ていきます。

 まず、この回路全体としてはa、b、c、dを入力、gを出力とする回路です。
 この回路を分解すると構成している要素は以下の通りです。

  • a、bを入力、eを出力とするAND演算
  • c、dを入力、fを出力とするOR演算
  • e、fを入力、gを出力とするAND演算

 タイムチャートに目を移すとa、b、c、dの16通りの入力に対して、gが一意に定まることが分かります。
 例えばa=0、b=1、c=1、d=0の時、g=0になります。
 これまでの例のように、「出力がその時点の入力によって一意に決定する回路」を組み合わせ回路といいます。

 次回は順序回路について書きます。

本記事は以上です。

02_組み合わせ回路 1/2

こんにちは、筆者です。
今回は「論理回路設計の基礎知識」として組み合わせ回路について書きます。
本記事から2回に渡って書きます。今回が1回目です。

組み合わせ回路とは

 組み合わせ回路は「出力がその時点の入力によって一意に決定する回路」です。
 もう少し雑な表現をすると、「フリップ・フロップ(記憶回路)を含まない回路」です。

タイムチャートとは

 この先の記事でもこの「タイムチャート」は多く出てきます。都度説明を入れますが、どのようなものかここで確認しておきましょう。

 「タイムチャート」は横軸を時間として動作を記述したい信号がどのような動作をするか規定した図(表)です。

 簡単な組み合わせ回路を例としてタイムチャートを見てみます。
 「01_論理演算」にて紹介した「AND演算(論理積)」の信号の動作をタイムチャートにて表現してみます。
 「AND演算(論理積)」の論理記号と真理値表を以下に再掲します。

f:id:kinchan8434:20220308222526p:plain
AND演算 論理回路記号
f:id:kinchan8434:20220308222556p:plain
AND演算 真理値表
 上記の「AND演算(論理積)」の信号の動作をタイムチャートで表現すると以下の図の通りです。
f:id:kinchan8434:20220314232816p:plain
AND演算 タイムチャート
 タイムチャートは左から右に向かって、時間の経過を表します。
 タイムチャートの左から見ていきます。すると以下の動作をしていることが分かります。

  • a=0、b=0が入力されたとき、c=0が出力される。
  • a=1、b=0が入力されたとき、c=0が出力される。
  • a=0、b=1が入力されたとき、c=0が出力される。
  • a=1、b=1が入力されたとき、c=1が出力される。

 上記真理値表通りの動作です。

 一番初めのタイムチャートの使用のため、値まで記載しましたが、以降は値は記載せず以下の図のように表現します。

f:id:kinchan8434:20220314231249p:plain
AND演算 タイムチャート(値未記載版)

 次回はもう少し複雑な組み合わせ回路の例について書きます。

本記事は以上です。

01_論理演算

こんにちは、筆者です。
今回は「論理回路設計の基礎知識」として論理演算について書きます。

論理演算の種類

 基本的な論理演算は以下の6種類です。

  1. AND演算(論理積)
  2. OR演算(論理和)
  3. NOT演算(否定)
  4. NAND演算(否定論理積)
  5. NOR演算(否定論理和)
  6. XOR演算(排他的論理和)

 以降は上記6種類の論理式、論理回路記号、真理値表を記載します。

論理式

 先に示した論理演算の論理式を以下に示します。
 a、b、cを1bit信号と定義します。

  1. AND演算(論理積)
    a  {\land} b = c
  2. OR演算(論理和)
    a  {\lor} b = c
  3. NOT演算(否定)
     {\lnot}a = b
  4. NAND演算(否定論理積)
     {\overline{\text{a} \land \text{b}}} = c
  5. NOR演算(否定論理和)
     {\overline{\text{a} \lor \text{b}}} = c
  6. XOR演算(排他的論理和)
    a  {\oplus} b = c

 次にこれらの論理回路記号を記載します。

論理回路記号

 当ブログでは論理演算の論理回路記号を以下のように示します。実際に学術的な本や技術書に載っているものとは似ていますが、少し違う部分もありますのでご留意ください。

  1. AND演算(論理積)
    f:id:kinchan8434:20220308222526p:plain
    AND演算 論理回路記号
  2. OR演算(論理和)
    f:id:kinchan8434:20220308222743p:plain
    OR演算 論理回路記号
  3. NOT演算(否定)
    f:id:kinchan8434:20220308223012p:plain
    NOT演算 論理回路記号
  4. NAND演算(否定論理積)
    f:id:kinchan8434:20220308223109p:plain
    NAND演算 論理回路記号
  5. NOR演算(否定論理和)
    f:id:kinchan8434:20220308223146p:plain
    NOR演算 論理回路記号
  6. XOR演算(排他的論理和)
    f:id:kinchan8434:20220308223215p:plain
    XOR演算 論理回路記号
真理値表

 先に示した論理演算の論理式を以下に示します。
 論理式で示した6つの式に対して、左辺の1bit変数を変化させた場合の右辺の結果を表にまとめたものです。

  1. AND演算(論理積)
    f:id:kinchan8434:20220308222556p:plain
    AND演算 真理値表
  2. OR演算(論理和)
    f:id:kinchan8434:20220308223841p:plain
    OR演算 真理値表
  3. NOT演算(否定)
    f:id:kinchan8434:20220308223919p:plain
    NOT演算 真理値表
  4. NAND演算(否定論理積)
    f:id:kinchan8434:20220308223946p:plain
    NAND演算 真理値表
  5. NOR演算(否定論理和)
    f:id:kinchan8434:20220308224109p:plain
    NOR演算 真理値表
  6. XOR演算(排他的論理和)
    f:id:kinchan8434:20220308224137p:plain
    XOR演算 真理値表

 次回は組み合わせ回路について書きます。

本記事は以上です。

はじめに

自己紹介

はじめまして、当ブログの筆者です。
仕事にて現役で論理回路設計に携わっています。
皆さんどうぞよろしくお願いします。

内容

本ブログでは主に以下の事柄を書こうと思います。

  • 論理回路設計の基礎知識
  • ハードウェア記述言語(HDL:Hardware Description Language)について(Verilog HDL、VHDL)
  • 論理回路設計に関わりの深い技術
  • 備忘録

対象

本ブログは以下の読者を想定して書きます。

  • 論理回路に興味があるが、勉強はしたことない全くの初心者
  • 論理回路を勉強している学生
  • 経験の浅い(1-3年目くらい)論理回路設計を仕事にするエンジニア