Доброго времени суток! Есть 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;
|
Прошу проверить корректность кода и подсказать что исправить, если есть ошибки. Заранее спасибо!
|