【VHDL】パリティ回路とセンシティビティリスト
パリティ回路
-- Even Parity Circuit library IEEE; use IEEE.std_logic_1164.all; entity ParityNbit is generic (N : integer := 4); port ( A : in std_logic_vector(N - 1 downto 0); P : out std_logic ); end ParityNbit; architecture RTL of ParityNbit is begin process(A) variable tmp : std_logic; begin -- even parity -> tmp := '0' -- odd parity -> tmp := '1' tmp := '0'; for I in 0 to N - 1 loop tmp := tmp xor A(I); end loop; P <= tmp; end process; end RTL;
今回のパリティ回路ではXORを使って,パリティビットを決定する.
手計算を行えば,理屈はわかると思うが, 偶数パリティの時,
tmp := '0';
奇数パリティの時,
tmp := '1';
とすればよい.
センシティビティリスト
センシティビティリストは,process文の機能で,
process(A) begin --<順次処理文> end process;
という風に使用する.
この機能は,信号名をカンマで区切って並べたリストで,
ここに記述された信号に変化があると以下の式が活性化されて実行される.