3. 電子回路の復習
様々な論理回路
A B Z
L L L
L H L
H L L
H H H
A B Z
L L L
L H H
H L H
H H H
A B Z
L L L
L H H
H L H
H H L
A Z
L H
H L
(1) Z=AB (2) Z=A+B
(3) Z=A’
(4) Z=A’B+AB’
8. NOT回路(not_gate.vhdl) ①
1: library IEEE;
2: use IEEE.STD_LOGIC_1164.all;
3:
4: entity NOT_GATE is
5: port(
6: A : in std_logic;
7: Z : out std_logic);
8: end NOT_GATE;
9:
ライブラリ名
パッケージ名
エンティティ部は、1つ
の設計単位を表現し、回
路名(エンティティ名)と外
部のインターフェイスを
定義します。
9. NOT回路(not_gate.vhdl) ②
10: architecture NOT_GATE_A of NOT_GATE is
11: begin
12: Z <= not A;
13: end NOT_GATE_A;
アーキテクチャーは、
エンティティ定義され
た回路の内部動作を定
義する。
アーキテチャー
名
エンティティ
名
ここまでは、AとZの関係を定義したのみ。
動作確認には、Aに入力する必要あり。
11. 動作確認のための、Testbenchの作成 ①
(not_gate_tb.vhdl)
1: library IEEE;
2: use IEEE.STD_LOGIC_1164.all;
3:
4: entity NOT_GATE_TB is
5: end NOT_GATE_TB;
6:
7: architecture SIM of NOT_GATE_TB is
8: signal A : std_logic;
9: signal Z : std_logic;
空のエンティティ
シミュレーション用のアーキテクチャー
名SIMを定義する。
信号名とデータ・タイプを指定する。
13. 続:動作確認のための、Testbenchの作成 ③
(not_gate_tb.vhdl)
17: begin
18: not_gate0: NOT_GATE port map(A, Z);
19:
20: process begin
21: A <= ‘0’; wait for 10 us;
22: A <=‘1’; wait for 10 us;
23: A <=‘0’; wait for 10 us;
24: assert (false) report “Simulation
End!” severity failure;
25: end process;
26: end SIM;
ポートAに信号を与える。
テストベンチを停止するコマンド。