|
プロセス文で組み合わせロジックを生成させるためには、センシティビティ・リストにすべての入力信号を記述する必要があります。
以下にプロセス文を使用したセレクタの記述を示します。
内容は一目でわかる通りSが"H"のときAを、それ以外(すなわち"L")ならBをYに出力します。
このようにif文を使用して記述すると論理式よりもわかりやすく記述する事ができます。
わかりやすく記述できるということは、単に難しい論理設計から設計者を解放するだけのものではなく、設計した後時間が経過しても解読しやすくデバックにも有利になります
library IEEE;
use IEEE:std_logic_1164.all;
entity SEL is
port (
A : in std_logic; 入力信号A
B : in std_logic; 入力信号B
S : in std_logic; セレクト信号
Y : out std_logic; 出力信号
);
end SEL;
architecture SEL1 of SEL is
begin
process(A,B,S)begin
if(S='1')then if〜else文
Y <= A;
else
Y <= B;
end if;
end process;
end SEL1;
組み合わせロジックを生成するプロセス文の重要点
上記のようにプロセス文で組み合わせロジックを生成するのは簡単です。
しかし以下の点を注意してください。
@ すべての入力信号はセンシティビティ・リストに記述すること。
A すべての条件式をプロセス内に記述すること。
特にAを忘れるとラッチ動作(保持回路)になってしまいます。
例えば上記の記述ではelse(それ以外)がすべての条件を記述しています。 |
|