bpc-los_08 - Metastabilita, VHDL-popis sekv. obvodů
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY And4 IS PORT(
a: IN std_logic_vector(3 DOWNTO 0);
);
END And4;
ARCHITECTURE Behavioral OF And4 IS
BEGIN PROCESS (a) -- Proces s citlivost. seznamem na signál a
y: BUFFER std_logic;
&
y
a0
a1
a2
a3
BEGIN y <= '1';
FOR i IN a'range LOOP y <= a(i) AND y;
END LOOP;
END PROCESS;
END Behavioral;
Procesy v jazyce VHDL - chybný příklad
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY And4 IS PORT(
a: IN std_logic_vector(3 DOWNTO 0);
);
END And4;
ARCHITECTURE Behavioral OF And4 IS
BEGIN PROCESS (a) -- Proces s citlivost. seznamem na signál a
-- Odložené přiřazení do y !!!
-- Odložené přiřazení do y !!!
y: BUFFER std_logic;
&
y
a0
a1
a2
a3
BEGIN y <= '1';
FOR i IN a'range LOOP y <= a(i) AND y;
END LOOP;
END PROCESS;
END Behavioral;
Procesy v jazyce VHDL - chybný příklad
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY And4 IS PORT(
a: IN std_logic_vector(3 DOWNTO 0);
);
END And4;
ARCHITECTURE Behavioral OF And4 IS
BEGIN PROCESS (a) -- Proces s citlivost. seznamem na signál a
-- Odložené přiřazení do y !!!
-- Odložené přiřazení do y !!!
y: BUFFER std_logic;
&
y
a0
a1
a2
a3
Procesy v jazyce VHDL - opravený příklad
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY And4 IS PORT(
a: IN std_logic_vector(3 DOWNTO 0);
);
END And4;
ARCHITECTURE Behavioral OF And4 IS
BEGIN PROCESS (a) -- Proces s citlivost. seznamem na signál a
y: BUFFER std_logic;
&
y
a0
a1
a2
a3
VARIABLE var_y: std_logic;
BEGIN var_y := '1';
FOR i IN a'range LOOP var_y := a(i) AND var_y;
END LOOP;
y <= var_y;
END PROCESS;
END Behavioral;
Procesy v jazyce VHDL - opravený příklad
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY And4 IS PORT(
a: IN std_logic_vector(3 DOWNTO 0);
);
END And4;
ARCHITECTURE Behavioral OF And4 IS
BEGIN PROCESS (a) -- Proces s citlivost. seznamem na signál a
y: BUFFER std_logic;
&
y
a0
a1
a2
a3
VARIABLE var_y: std_logic;
BEGIN var_y := '1';
FOR i IN a'range LOOP var_y := a(i) AND var_y;
END LOOP;
y <= var_y;
END PROCESS;
END Behavioral;
Procesy v jazyce VHDL - opravený příklad
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY And4 IS PORT(
a: IN std_logic_vector(3 DOWNTO 0);
);
END And4;
ARCHITECTURE Behavioral OF And4 IS
BEGIN PROCESS (a) -- Proces s citlivost. seznamem na signál a
y: BUFFER std_logic;
-- Okamžité přiřazení do var_y
-- Odložené přiřazení do signálu y
-- Okamžité přiřazení do var_y
-- Definice proměnné var_y
&
y
a0
a1
a2
a3
VARIABLE var_y: std_logic;
BEGIN var_y := '1';
FOR i IN a'range LOOP var_y := a(i) AND var_y;
END LOOP;
y <= var_y;
END PROCESS;
END Behavioral;