verilog~論理演算~

初めに

皆さん、こんにちは。Keymaleです。育児に奮闘しつつ、verilogの記載方法について皆さんにわかりやすく説明していけばと思っております。

今回は論理演算について説明します。そもそものverilogの始め方等についてはこちらをご参考ください。いろいろな回路moduleについての記事を書いてきましたが、そもそもの基本的なところを記載したほうがいいのではないかと思いまして、今回の記事を書こうかと思いました。まずは論理演算とは何ぞや的なところから始めます。

論理演算の真理値表

とりあえず以下にverilgoで使う論理演算記載していきます。

  • NOT(否定)
  • AND(論理積)
  • NAND(論理積の否定)
  • OR(論理和)
  • NOR(論理和の否定)
  • XOR(排他的論理和)
  • XNOR(排他機論理和の否定)

上記のうち、verilogで専用の記号として登録されているものはNOT、AND、OR、XORで、あとは組み合わせで実装してきます。以下に真理値表を記載していきます。

NOT(否定)

入力 出力
0 1
1 0


AND(論理積)

入力1 入力2 出力
0 0 0
1 0 0
0 1 0
1 1 1


NAND(論理積の否定)

入力1 入力2 出力
0 0 1
1 0 1
0 1 1
1 1 0


OR(論理和)

入力1 入力2 出力
0 0 0
1 0 1
0 1 1
1 1 1


NOR(論理和の否定)

入力1 入力2 出力
0 0 1
1 0 0
0 1 0
1 1 0


XOR(排他的論理和)

入力1 入力2 出力
0 0 0
1 0 1
0 1 1
1 1 0


XNOR(排他機論理和の否定)

入力1 入力2 出力
0 0 1
1 0 0
0 1 0
1 1 1

 

論理演算 verilogでの表記

真理値表は上に表記したので、次はverilogでの表記方法を記載します。以下にその表をまとめました。

論理記号 verilogでの表記
NOT ~A
AND A & B
NAND ~(A & B)
OR A | B
NOR ~(A | B)
XOR A ^ B
XNOR ~(A ^ B)

 

以上がverilogでの論理演算の表記となります。
基本はNOT、AND、OR、XORでの記号を用いて、あとはその組み合わせとなりますので、今回紹介していない論理や、2入力だけでなく、3入力、4入力等もこれで表記可能です。

最後まで読んで下さりありがとうございました。
よろしければコメントを頂ければ幸いです。