Академический Документы
Профессиональный Документы
Культура Документы
LAB - 6
MATERIAL
-
DURACIN
1 sesin.
LAB - 6
INTRODUCCIN
En esta prctica se va a disear un circuito para multiplicar dos nmeros de 5 bits. Tambin
se usar el bloque BinA7Seg diseado en la prctica 4.
El diagrama de bloques del circuito a disear es el siguiente:
DESARROLLO PRCTICO
Para desarrollar esta prctica, organice en QuartusII un proyecto con el nombre Practica6.
El diagrama general de bloques de la prctica estar compuesto por tres decodificadores de
7 segmentos BinA7Seg y el bloque Multiplicador5Bits, adems de 10 interruptores (SW9SW0) y 3 displays de 7 segmentos (Display0, Display1 y Display2). La Ilustracin 1 nos
muestra este diagrama general de bloques.
A su vez, el multiplicador de 5 bits ha de implantarse a partir del expuesto en clase usando
bucles para generar los productos parciales.
Tenga en cuenta que la salida del multiplicador est formada por un nmero de 10 bits. Este
nmero ha de dividirse en tres grupos de 4 bits para visualizarlo en los displays. Por tanto
ser necesario aadir dos ceros por la izquierda.
Como primer paso, arranque QuartusII y genere un proyecto con el nombre Practica6.
Proceda a continuacin con la descripcin en VHDL del bloque Multiplicador5Bits.vhd.
Copie el archivo BinA7Seg.vhd de la prctica 4 y genere el componente.
LAB - 6
A continuacin, abra una hoja nueva de tipo diagrama con el mismo nombre del proyecto
(Practica6) para colocar los componentes y su conexionado definitivo en la placa en el top
level del proyecto, tal como se refleja en la Ilustracin 1.
A continuacin ha de consultar el Manual de la Tarjeta DE1 para identificar el pin de la
FPGA con el correspondiente puerto de entrada y de salida:
Seal
a(0)
a(1)
a(2)
a(3)
a(4)
b(0)
b(1)
b(2)
b(3)
b(4)
d_a(6)
d_a(5)
d_a(4)
d_a(3)
d_a(2)
d_a(1)
d_a(0)
d_b(6)
d_b(5)
d_b(4)
d_b(3)
d_b(2)
d_b(1)
d_b(0)
d_c(6)
d_c(5)
d_c(4)
d_c(3)
d_c(2)
d_c(1)
d_c(0)
Tipo
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Componente
SW0
SW1
SW2
SW3
SW4
SW5
SW6
SW7
SW8
SW9
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Pin FPGA
0[a]
0[b]
0[c]
0[d]
0[e]
0[f]
0[g]
1[a]
1[b]
1[c]
1[d]
1[e]
1[f]
1[g]
2[a]
2[b]
2[c]
2[d]
2[e]
2[f]
2[g]
LAB - 6
salida del multiplicador P[9..0] como salida del circuito, aunque no es necesario definir sus
nmeros de patillas.
Finalmente realice el volcado a la placa del circuito diseado para su comprobacin por el
profesor.
Ejercicio opcional
Realice una descripcin estructural del nivel superior de la jerarqua, es decir, describa en
VHDL el esquema de la Ilustracin 1. Escriba para ello un archivo denominado
Practica6.vhd e instancie en ella todos los componentes.
Anexo A
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity Multipl5Bits_vhd_tst is
end Multipl5Bits_vhd_tst;
architecture Multipl5Bits_arch of Multipl5Bits_vhd_tst is
-- signals
signal a : std_logic_vector(4 downto 0);
signal b : std_logic_vector(4 downto 0);
signal p : std_logic_vector(9 downto 0);
component Multipl4BitsAN
port (
a : in std_logic_vector(4 downto 0);
b : in std_logic_vector(4 downto 0);
p : out std_logic_vector(9 downto 0)
);
end component;
begin
i1 : Multipl5BitsAN
port map (
-- list connections between master ports and signals
a => a,
b => b,
p => p
);
init : process
-- variable declarations
begin
-- code that executes only once
wait;
end process init;
always : process
-- optional sensitivity list
-- (
)
-- variable declarations
begin
-- code executes for every event on sensitivity list
for i in 0 to 31 loop
a <= std_logic_vector(to_unsigned(i, 5));
for j in 0 to 31 loop
b <= std_logic_vector(to_unsigned(j, 5));
wait for 100 ns;
assert unsigned(p) = i*j
report "fallo en la multiplicacion."
severity failure;
end loop;
end loop;
wait;
end process always;
end Multipl5Bits_arch;