Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M....

15
José Manuel Mendías Cuadros Dpto. Arquitectura de Computadores y Automática Universidad Complutense de Madrid Laboratorio 1: Lógica combinacional aritmética y acceso a dispositivos elementales de E/S Diseño automático de sistemas

Transcript of Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M....

Page 1: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

José Manuel Mendías CuadrosDpto. Arquitectura de Computadores y AutomáticaUniversidad Complutense de Madrid

Laboratorio 1:Lógica combinacionalaritmética y acceso a dispositivos elementales de E/S

Diseño automático de sistemas

Page 2: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

2

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18

Diseñar una ALU combinacional de 8 bits capaz de sumar, restar, multiplicar y calcular el opuesto. 

Tomará los operandos y visualizará los resultados del siguiente modo:o El operando derecho lo tomará de los 4 switches menos significativos de la placa XST.o El operando izquierdo lo tomará de los 4 switches más significativos de la placa XST.o El código de operación lo tomará de los 2 pulsadores de la placa XSA‐3S:

• "00" : Suma, "01" : Resta, "10" : Opuesto del operando derecho, "11" : Multiplica

o El resultado se visualizará en hexadecimal en los displays 7‐segs de la placa XST.o La código de operación se visualizará en decimal en el display 7‐segs de la placa XSA‐3S.o El estado de los switches se visualizará en binario en los leds de la placa XST.

Lab1(ALU)

switches_n8

leds8

upSegs8

leftSegs8

pbs_n2

rightSegs8

Page 3: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

3

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18 diagrama RTL

×+

Page 4: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

4

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18 diagrama RTL

×+

switches_n8

4

4

leds

Page 5: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

5

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18

4

4

diagrama RTL

switches_n

04

4

8

×

0

+

8

8

leds

Page 6: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

6

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18

4

4

diagrama RTL

switches_n

04

4

8

0 31 2

×

2pbs_n

8

leds

0

+

8

8

Page 7: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

7

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18

4

4

diagrama RTL

switches_n

04

4

8

0 31 2

×

4

rightSegs

8

bin2segs

4 0

leftSegs

8

bin2segs

upSegs

2pbs_n

8

leds

0

+

8

8

0 4 0

8

bin2segs

0

22

Page 8: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

8

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18

4

4

diagrama RTL

switches_n

04

4

8

0 31 2

×

4 0

rightSegs

8

bin2segs

4 0

leftSegs

8

bin2segs

4 0

upSegs

8

bin2segs

0

22

2pbs_n

8

leds

0

+

8

8

Page 9: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

9

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18 bin2segs.vhd

library ieee;use ieee.std_logic_1164.all;

entity bin2segs isport (-- host sidebin : in std_logic_vector(3 downto 0); -- codigo binariodp : in std_logic; -- punto-- leds sidesegs : out std_logic_vector(7 downto 0) -- codigo 7-segmentos

);end bin2segs;

architecture syn of bin2segs isbeginsegs(7) <= ...;with bin selectsegs(6 downto 0) <= "1111110" when X"0","......." when X"1",

..."......." when others;

end syn;

segs(1)

segs(0)

segs(2)

segs(5)

segs(4)

segs(6)

segs(3) segs(7)

visualiza el 0

Page 10: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

10

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18 common.vhd

library IEEE;use IEEE.std_logic_1164.all;

package common is

constant YES : std_logic := '1';constant NO : std_logic := '0';constant HI : std_logic := '1';constant LO : std_logic := '0';constant ONE : std_logic := '1';constant ZERO : std_logic := '0';

-- Calcula el logaritmo en base-2 de un numero.function log2(v : in natural) return natural;-- Selecciona un entero entre dos.function int_select(s : in boolean; a : in integer; b : in integer) return integer;

-- Convierte codigo binario a codigo 7-segmentoscomponent bin2segs

port(

-- host sidebin : in std_logic_vector(3 downto 0); -- codigo binariodp : in std_logic; -- punto-- leds sidesegs : out std_logic_vector(7 downto 0) -- codigo 7-segmentos

);end component;

end package common;

declaración de componentes reusables

Page 11: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

11

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18 common.vhd

package body common is

function log2(v : in natural) return natural isvariable n : natural;variable logn : natural;

beginn := 1;for i in 0 to 128 loop

logn := i;exit when (n >= v);n := n * 2;

end loop;return logn;

end function log2;

function int_select(s : in boolean; a : in integer; b : in integer) return integer isbegin

if s thenreturn a;

elsereturn b;

end if;return a;

end function int_select;

end package body common;

funciones orientadas a trabajar con argumentos constantesen expresiones computables

Page 12: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

12

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18 lab1.vhd

library ieee;use ieee.std_logic_1164.all;

entity lab1 isport (

switches_n : in std_logic_vector(7 downto 0);pbs_n : in std_logic_vector(1 downto 0);leds : out std_logic_vector(7 downto 0);upSegs : out std_logic_vector(7 downto 0);leftSegs : out std_logic_vector(7 downto 0);rightSegs : out std_logic_vector(7 downto 0)

);end lab1;

library ieee;use ieee.numeric_std.all;use work.common.all;

architecture syn of lab1 is

signal opCode : std_logic_vector(3 downto 0); signal leftOp : signed(7 downto 0);signal rightOp : signed(7 downto 0);signal result : signed(7 downto 0);

begin...

end syn;

permite usar las utilidades y las componentes

declaración de los tipos de las señales internas 

Page 13: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

13

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18 lab1.vhd

begin

opCode <= ...;leftOP <= ...;rightOp <= ...;

ALU:with opCode select

result <= ...;

leftConverter : bin2segs port map ( bin => ..., dp => ..., segs => ... );

rigthConverter : bin2segsport map ( bin => ..., dp => ..., segs => ... );

upConverter : bin2segsport map ( bin => ..., dp => ..., segs => ... );

leds <= ...;

end syn;

adapta puertos de entrada a señales internas

núcleo operativo

adapta y convierte señales internas a puertos de salida

usar siempre asociación por nombre

Page 14: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

14

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18

1. Crear el directorio DAS y en ella el subdirectorio common2. Crear el proyecto lab1 en el directorio DAS 3. Descargar de la Web los ficheros:

o common.vhd y bin2segs.vhd en el directorio commono lab1.vhd y lab1.ucf en el directorio lab1

4. Completar el código omitido en los ficheros:o bin2segs.vhd y lab1.vhd

5. Añadir al proyecto los ficheros:o common.vhd, bin2segs.vhd, lab1.vhd y lab1.ucf

6. Sintetizar, implementar y generar el fichero de configuración.7. Conectar la placa y encenderla.8. Descargar el fichero lab1.bit

Page 15: Laboratorio 1: Lógica combinacional - Fdi Ucm · 2 DAS laboratorio 1: Lógica combinacional J.M. Mendías 2018 Diseñar una ALU combinacional de 8 bitscapaz de sumar, restar, multiplicar

15

DAS

labo

ratorio

 1:

Lógica com

bina

cion

alJ.

M. M

endí

as20

18

Licencia CC (Creative Commons)o Ofrece algunos derechos a terceras personas bajo ciertas 

condiciones. Este documento tiene establecidas las siguientes:

Más información: https://creativecommons.org/licenses/by‐nc‐sa/4.0/

Reconocimiento (Attribution): En cualquier explotación de la obra autorizada por la licenciahará falta reconocer la autoría. 

No comercial (Non commercial): La explotación de la obra queda limitada a usos no comerciales.

Compartir igual (Share alike):La explotación autorizada incluye la creación de obras derivadas siempre que mantengan la misma licencia al ser divulgadas.