14. 電子回路の復習
様々な論理回路
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=A?
B
(2) Z=A+B
(3) Z=A’
(4) Z=A’B+AB’
16. 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つの設
計単位を表現し、回路名(エ
ンティティ名)と外部のイン
ターフェイスを定義します。
17. 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に入力する必要あり。
19. 動作確認のための、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を定義する。
信号名とデータ?タイプを指定する。
21. 続:動作確認のための、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に信号を与える。
テストベンチを停止するコマンド。