琉球大学情報工学科 和田 知久
- 真理値表
入力信号 出力信号 A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1
- ブール式
S = A xor B ;
C = A and B ;
リスト4.1(コピー)
リスト4.1(オリジナル)
ライブラリ宣言 | library IEEE; use IEEE.std_logic_1164.all; |
ライブラリ宣言、STD_LOGICを使用する場合に必要 いつもSTD_LOGICを使用するのでいつも必要! |
ENTITY宣言 回路の名前と 入出力信号 |
entity HALF_ADDER is | エンティティ宣言 |
port ( A, B : in std_logic; S, C : out std_logic ); |
ポート宣言(入出力信号と信号のデータタイプを定義) | |
end HALF_ADDER; | エンティティ終了。";"忘れるな! | |
回路の中味の記述 | architecture STRUCTURE of HALF_ADDER is | アーキテクチャ宣言 |
begin S <= A xor B; C <= A and B; end STRUCTURE; |
同時処理文! コンピュータプログラムとは違う この場合4つの同時動作するゲートに対応 |
リスト4.12(コピー)
リスト4.12(オリジナル)
ライブラリ宣言 | library IEEE; use IEEE.std_logic_1164.all; |
ライブラリ宣言、STD_LOGICを使用する場合に必要 いつもSTD_LOGICを使用するのでいつも必要! |
エンティティ | entity TESTBENCH_HA is end TESTBENCH_HA; |
エンティティ宣言 -- テストベンチのエンティティは空 |
アーキテクチャ | architecture SIM_DATA of TESTBENCH_HA is | |
component HALF_ADDER port ( A, B : in std_logic; S, C : out std_logic ); end component; |
以下の用いる回路部品(コンポーネント)の宣言 | |
signal SA, SB, SS, SC : std_logic; | 新たに使用する信号の宣言 | |
begin -- 検証対象回路のインスタンス化 M1 : HALF_ADDER port map (SA, SB, SS, SC); -- テストベクトル P1 : process begin SA <= '0'; wait for 50 ns; SA <= '1'; wait for 50 ns; end process; P2 : process begin SB <= '0'; wait for 100 ns; SB <= '1'; wait for 100 ns; end process; end SIM_DATA; |
実際のテストベンチ回路 | |
-- configuration宣言(最上位階層では必須) configuration CFG_HA of TESTBENCH_HA is for SIM_DATA end for; end CFG_HA; |
VHDLではひとつのエンティティに複数のアーキテクチャを持たせることができるので、その割り当ての宣言。 必ず最上位階層に記述する必要がある。 |
1) VHDLアナライザ(vhdlan)でハーフアダーの構文解析をする。
% vhdlan hadder.vhd
エラーメッセージ等があればエラーを修正して、再コンパイルする。
コンパイル後に、.sim, .mra 等のファイルができるので確認する。
2) テストベンチファイル hadder_test.vhdの内容を理解し、構文解析をする。
% vhdlan hadder_test.vhd
3) Sciroccoコンパイラを用いてシミュレーション用実行ファイル scsim を作成する。コンパイラの引数は、テストベンチで宣言したコンフィグレーション名を用いる。
% scs CFG_HA
****** 以上でシミュレーションの準備は終了 *****
4) VHDLシステムシミュレータを Scirocco を起動する。
% scirocco
5) Scirocco を起動すると Menu Window が現れるので、 Interactive ボタンを押す。
6) Interactive ボタンを押すと、Simulator Invocation Dialog Window が現れるので、Type メニューから Scirocco を選びOKボタンを押す。この時、Interactive Window が現れる。
7) Menu Window の Hierarchy ボタンおよび Waveformボタンを押し、Hierarcy WindowとWaveform Windowを開く。
8) Hierarchy WindowのHierarchy欄で、テストベンチのentity名を選択すると、Signal欄に信号線名が表示される。そこから必要な信号を選択し、Waveform Windowへドラッグ&ドロップする。
9) Interactive Windowのシミュレーションタイムを適当な値(20)に設定して、すぐ右のOKボタンを押すと、Waveform Windowにシミュレーション波形が表示される。
10) Menu Window のExitボタンで全てを終了できる。
11) hadder.vhdのあるディレクトリに移動し、hadder.vhdを合成せよ!
以上