|
VHDLでは、外部とのインタフェース部分(エンティティ)と内部の動作(アーキテクチャ)を別々に記述します。
エンティティ宣言は、回路図におけるシンボルのようなものと考えてください。そしてシンボルの中身はアーキテクチャ宣言で記述します。また1つのエンティティ宣言は、複数のアーキテクチャ宣言を持つことができます。すなわち、ビヘービア・レベルの記述とRTLでの記述、ゲート・レベルでの記述など、異なるレベルの記述が1つのエンティティでカバーできるわけです。
1つのエンティティ宣言に対し、どのアーキテクチャ宣言を選択するかはコンフィグレーション宣言で選択します。
・エンティティ
entity エンティティ名 is
[ジェネリック文]
[ポート文]
end [エンティティ名];
・ポート
port(ポート名{,ポート名}:方向 データ・タイプ名;
.
.
ポート名{,ポート名}:方向 データ・タイプ名);
・アーキテクチャ
architecture アーキテクチャ名 of エンティティ名 is
<宣言部文> -- signal,constant,type,functionなど
begin
<同時処理文>
end [アーキテクチャ名];
[例:ハーフアダー]
library IEEE;
use IEEE std_logic_1164.all;
entity HALH_ADDER is
port(
A :in std_logic;
B :in std_logic;
S :out std_logic;
CO :out std_logic );
end HALF_ADDER;
architecture DATAFLOW of HALF_ADDER is
signal C:std_logic;
signal D;std_logic;
begin
C <= A or B;
D <= A nand B;
CO <= not D;
S <= C and D;
end DATAFLOW; |