Проектирование цифровых устройств с помощью языка описания аппаратуры VHDL. Бобрешов А.М - 11 стр.

UptoLike

Составители: 

11
Пример 3. Защелка на основе D-триггеров
library IEEE;
use IEEE.std_logic_1164.all;
entity D_LATCH is
port (D, E: in std_logic;
Q: out std_logic);
end D_LATCH;
architecture D_LATCH_ARCH of D_LATCH is
begin
process (D, E)
begin
if E=’1’ then
Q<=D;
end if;
end process;
end D_LATCH_ARCH;
Пример 4. Приоритетный шифратор
library IEEE;
use IEEE.std_logic_1164.all;
entity MY_IF is
port (C,D,E,F: in std_logic;
S: in std_logic_vector(1 downto 0);
POUT: out std_logic);
end MY_IF;
architecture MY_IF_ARCH of MY_IF is
begin
process(S,C,D,E,F)
begin
if S=”00” then POUT<=C;
elsif S=”01” then POUT <=D;
elsif S=”10” then POUT <=E;
else POUT <=F;
end if;
end process;
end MY_IF_ARCH;
D
E
Q
C
POUT
E
F
D
S=00
S=01
S=10
                                        11
                    Пример 3. Защелка на основе D-триггеров

library IEEE;
use IEEE.std_logic_1164.all;

entity D_LATCH is
  port (D, E: in std_logic;
 Q: out std_logic);
end D_LATCH;

architecture D_LATCH_ARCH of D_LATCH is                   D                Q
  begin
    process (D, E)                                        E
      begin
        if E=’1’ then
          Q<=D;
        end if;
      end process;
end D_LATCH_ARCH;



                       Пример 4. Приоритетный шифратор

library IEEE;
use IEEE.std_logic_1164.all;

entity MY_IF is
  port (C,D,E,F: in std_logic;
  S: in std_logic_vector(1 downto 0);
  POUT: out std_logic);
                                                      F
end MY_IF;
                                                      E                    POUT
architecture MY_IF_ARCH of MY_IF is                          D
                                                          S=10      C
  begin
                                                                 S=01
    process(S,C,D,E,F)                                                  S=00
     begin
      if S=”00” then     POUT<=C;
      elsif S=”01” then  POUT <=D;
      elsif S=”10” then  POUT <=E;
      else               POUT <=F;
      end if;
    end process;
end MY_IF_ARCH;