VHDLの基本的な論理演算と型(VHDL入門その1)

VHDLの基本的な論理演算

構文 意味
A<=B AにBを代入
A and B AとBの論理積
A or B AとBの論理和
A xor B AとBの排他的論理和
not A Aの否定
A nand B not ( A and B )
A nor B not ( A or B)
A xnor B not (A xor B)

VHDLとデータ型

VHDLでは様々なデータ型が用意されているが、標準で用意されているものとライブラリ(パッケージ)を読み込む必要があるものがあるので、以下にその一覧をまとめる。
なお、VHDLでは文字列以外で大文字小文字の区別がない。

標準で用意されている型

データ型 内容
integer 32ビット符号付き整数
real 浮動小数
bit ’0’/‘1’
bit_vector bitのベクトル型
boolean true/false
character ASCII文字
time 時間の物理タイプ*1
severity level メッセージタイプ*2
natural(positive) integerのサブセット*3
string 文字列

IEEE.STD_LOGIC_1164で定義される型

データ型 内容
std_logic ’0’や’1’、不定値’X’など
std_logic_vector std_logicのベクトル型

std_logicについて

EEE.STD_LOGIC_ARITH

データ型 内容
signed 符号付き整数
unsigned 符号なし整数

IEEE.STD_LOGIC_ARITHは複数あるらしい? 参考サイト *4

STD.TEXTIOパッケージで定義される型

データ型 内容
line
text
side
width

STDはいまのところ使う予定がないので保留…

GHDLでパッケージstd_logic_arith, std_logic_signed, std_logic_unsigned, std_logic_textio. を使うときは—ieee=synopsysのオプションをつける必要がある

*1:fs、ps、ns、us、ms、sec、min、hr

*2:NOTE、WARNING、ERROR、FAILURE

*3:nturalは0以上の整数、positiveは1以上の整数

*4:std_logic_arith_syn.vhd