VHDLで基本ゲートを作る

動かしてわかる CPUの作り方10講, pp.376ff.

ファイルを作るときに[Block Diagram/Schematic File]ではなく[VHDL FIle]を選ぶのを除けば、書き込みまでの全体の手順は回路図エディタのときと同じであった。
f:id:ti-nspire:20201214110249p:plain:h300

-- ダブルハイフンでコメントアウト

-- #include <stdio.h>のようなものとの由。
library IEEE;
use IEEE.std_logic_1164.all;

-- 入出力ポートを宣言する。
-- std_logicは1ビットのデータ型。H、LのほかにHi-Zなど全部で9値をとるとの由。
entity basic_gates is           -- エンティティ名はファイル名に合わせる。
    port
    (                            -- {}ではなく()。
        A       : in  std_logic;
        B       : in  std_logic;
        Z_AND   : out std_logic;
        Z_NAND  : out std_logic;
        Z_OR    : out std_logic;
        Z_NOR   : out std_logic;
        Z_XOR   : out std_logic;
        Z_NOT_A : out std_logic    -- 最後の要素にはセミコロンをつけない。
    );
end basic_gates;

-- 入出力の関係を定義する。
architecture RTL of basic_gates is
begin
    Z_AND   <= A and  B;
    Z_NAND  <= A nand B;
    Z_OR    <= A or   B;
    Z_NOR   <= A nor  B;
    Z_XOR   <= A xor  B;
    Z_NOT_A <= not A;
end RTL;

f:id:ti-nspire:20201214111026j:plain:h300 f:id:ti-nspire:20201214111253p:plain:h300