Académique Documents
Professionnel Documents
Culture Documents
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity prob1 is
Port ( sal : out STD_LOGIC:='0';
X1,X2,X3,X4 : in STD_LOGIC);
end prob1;
begin
case x is
when "0001" | "0010" | "0100" | "0101" | "1010" | "1011" | "1100" => sal <= '1';
when others => sal <= '0';
end case;
end process;
end Behavioral;
1
29 de enero
EXAMEN PARCIAL 1 – MICROPROCESADORES SOLUCIÓN
de 2009
entity karnaugh is
port (x: in bit_vector(0 to 3); z: out bit);
end;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity prob2 is
Port ( x : in bit_vector (0 to 3);
z : out bit);
end prob2;
begin
process(x)
begin
if (x = "0010") then
z <= '1';
else
if (x = "0100") then
z <= '1';
else
if (x = "0101") then
z <= '1';
else
if (x = "1010") then
z <= '1';
else
2
29 de enero
EXAMEN PARCIAL 1 – MICROPROCESADORES SOLUCIÓN
de 2009
if (x = "1011") then
z <= '1';
else
if (x = "1100") then
z<= '1';
else
z <= '0';
end if;
end if;
end if;
end if;
end if;
end if;
end process;
end Behavioral;
3
29 de enero
EXAMEN PARCIAL 1 – MICROPROCESADORES SOLUCIÓN
de 2009
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity prob3 is
Port ( E : in STD_LOGIC;
A : in STD_LOGIC_VECTOR (2 downto 0);
Y : out STD_LOGIC_VECTOR (7 downto 0));
end prob3;
begin
Process(E,A) is
begin
if E='0' then
Y <= "ZZZZZZZZ";
else
case A is
when "000" => Y <= X"01";
when "001" => Y <= X"02";
when "010" => Y <= X"04";
when "011" => Y <= X"08";
when "100" => Y <= X"10";
when "101" => Y <= X"20";
when "110" => Y <= X"40";
when "111" => Y <= X"80";
when others => null;
end case;
end if;
end process;
end Behavioral;
4
29 de enero
EXAMEN PARCIAL 1 – MICROPROCESADORES SOLUCIÓN
de 2009
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity prob4_tb is
Port ( A : in STD_LOGIC_VECTOR (3 downto 0);
sal : out STD_LOGIC_VECTOR (6 downto 0));
end prob4_tb;
begin
process(A) is
begin
case A is ; gfedcba
when "0000" => sal <= "1000000";
when "0001" => sal <= "1111001";
when "0010" => sal <= "0100100";
when "0011" => sal <= "0110000";
when "0100" => sal <= "0011001";
when "0101" => sal <= "0010010";
when "0110" => sal <= "0000010";
when "0111" => sal <= "1111000";
when "1000" => sal <= "0000000";
when "1001" => sal <= "0010000";
when others => sal <= "1111111";
end case;
end process;
end Behavioral;