Доброго времени суток!
Есть 2 задачи, нужно "решить" на всех видах проектирования:
Определитель четности \ нечетности чисел
4-х входовый И-НЕ
Почитал Уэйкерли Дж.Ф., получились следующие варианты:
Задача 1:
library IEEE;
use IEEE.std_logic_1164.all;
entity ex1 is
port ( N: in STD_LOGIC_VECTOR (3 downto 0);
F: out STD_LOGIC; )
end ex1;
Потоковое проектирование:
architecture potok1_arch of ex1 is
begin
with CONV_INTEGER(N) select
F <= '1' when 0|2|4|6|8|10|12|14,
'0' when others;
end potok1_arch;
Поведенческое проектирование:
architecture poved1_arch of ex1 is
begin
process(N)
variable NI:INTEGER;
begin
NI:=CONV_INTEGER(N);
if NI mod2=0 then F <= '1';
else F<='0';
end if;
end process;
end poved1_arch;
Структурное проектирование:
В процессе, но особо идей нет, возможно ли вообще такое написать на структурном?
Задача 2:
library IEEE;
use IEEE.std_logic_1164.all;
entity ex2 is
port ( N: in STD_LOGIC_VECTOR (3 downto 0);
F: out STD_LOGIC; )
end ex2;
Потоковое проектирование:
architecture potok2_arch of ex2 is
signal N0, N1, N2, N3: STD_LOGIC;
begin
N0 <= not N(0);
N1 <= not N(1);
N2 <= not N(2);
N3 <= not N(3);
F <= N0 or N1 or N2 or N3;
end potok2_arch;
Поведенческое проектирование:
architecture poved2_arch of ex2 is
begin
process(N)
variable N0, N1, N2, N3: STD_LOGIC;
begin
N0:=not N(0);
N1:=not N(1);
N2:=not N(2);
N3:=not N(3);
F <= N0 or N1 or N2 or N3;
end process;
end poved2_arch;
Структурное проектирование:
architecture strukt2_arch of ex2 is
signal N3_L, N2_L, N1_L, N0_L:STD_LOGIC;
component INV port (I: in STD_LOGIC; O: out STD_LOGIC); end component;
component OR4 port (I0,I1,I2,I3: in STD_LOGIC; O: out STD_LOGIC); end component;
begin
U1: INV port map (N(3),N3_L);
U2: INV port map (N(2),N2_L);
U3: INV port map (N(1),N1_L);
U4: INV port map (N(0),N0_L);
U5: OR4 port map (N3_L, N2_L, N1_L, N0_L, F);
end strukt2_arch;
Прошу проверить корректность кода и подсказать что исправить, если есть ошибки. Заранее спасибо!