4.1実用的な組み合わせ回路 P57

琉球大学情報工学科 和田 知久


半加算器

入力信号 出力信号
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 ;


VHDLによる半加算器の設計 (演習4.1) 

リスト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.3.2テストベンチによる検証 P82

リスト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記述の構文解析(1)

1) VHDLアナライザ(vhdlan)でハーフアダーの構文解析をする。

% vhdlan hadder.vhd

エラーメッセージ等があればエラーを修正して、再コンパイルする。
コンパイル後に、.sim, .mra 等のファイルができるので確認する。

2) テストベンチファイル hadder_test.vhdの内容を理解し、構文解析をする。

% vhdlan hadder_test.vhd

3) Sciroccoコンパイラを用いてシミュレーション用実行ファイル scsim を作成する。コンパイラの引数は、テストベンチで宣言したコンフィグレーション名を用いる。

% scs CFG_HA

****** 以上でシミュレーションの準備は終了 *****


実習1 VHDLシステムシミュレータでの動作確認(2)

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ボタンで全てを終了できる。


実習1 回路を合成する(3)

11) hadder.vhdのあるディレクトリに移動し、hadder.vhdを合成せよ!


オンライン中間試験(1)

次回講義10/28日は上記と近いレベルの回路シミュレーション・合成をする オンライン 試験を実施します。

有線LAN接続、

CADツール

の準備をお願いします!

以上