You are on page 1of 27

Cuaderno de pr´acticas de la asignatura Laboratorio de Tecnolog´ıa de Computadores

Jos´e Luis Risco Mart´ın Jos´e Miguel Montanana

ii

´

Indice general

1. Sumador/Restador

 

1

1.1. Objetivos

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1

1.2. Realizaci´on

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1

1.3. Simulaci´on .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1

1.4. Pruebas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

2

2. Conversor de c´odigo

 

3

2.1. Objetivo .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

3

2.2. Realizaci´on

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

3

2.3. Simulaci´on .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

3

2.4. Pruebas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

3

2.5. Anexo: C´odigo Gray

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

3. Reconocedor de secuencias

 

5

3.1. Objetivo .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

5

3.2. Realizaci´on

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

5

3.3. Simulaci´on .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

3.4. Pruebas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

4. Generador de secuencias

 

7

4.1. Objetivo .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

4.2. Realizaci´on

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

4.3. Simulaci´on .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

5. Ascensor

9

iii

 

´

iv

INDICE GENERAL

 

5.1. Objetivo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

9

5.2. Realizaci´on

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

9

5.3. Simulaci´on .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

9

5.4. Pruebas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

6.

N´umeros primos y m´ultiplos de siete

 

11

6.1. Objetivo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11

6.2. Realizaci´on

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11

6.3. Simulaci´on .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11

6.4. Pruebas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

12

7.

Generador de secuencias

 

13

7.1. Objetivo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

7.2. Realizaci´on

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

7.3. Simulaci´on .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

7.4. M´odulos disponibles

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

14

8.

M´aquina tragaperras

 

15

8.1. Objetivo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

8.2. Realizaci´on

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

8.3. Simulaci´on .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

16

8.4. M´odulos disponibles

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

16

9.

Algor´ıtmico

17

9.1. Objetivo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

17

9.2. Realizaci´on

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

17

9.3. Simulaci´on .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

18

9.4. M´odulos disponibles

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

18

9.5. Algoritmos necesarios

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

19

10.Circuito as´ıncrono

 

21

 

10.1. Objetivo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

21

10.2. Realizaci´on

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

21

´

INDICE GENERAL

v

10.3. Simulaci´on .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

21

vi

´

INDICE GENERAL

Pr´actica 1

Sumador/Restador

1.1. Objetivos

1. Dise˜nar una red iterativa combinacional que realice la suma de 2 n´umeros de 2 bits en binario.

2. Dise˜nar un sumador/restador para n´umeros de 4 bits en complemento a 2 usando un sumador binario.

1.2. Realizaci´on

1. El dise˜no constar´a de 2 celdas iguales, cada una para realizar la suma de uno de los bits. Para realizar el circuito vamos a utilizar puertas l´ogicas: XOR (7486) y NAND (7400,

7410).

2. Usaremos un sumador binario de 4 bits (7483) y puertas l´ogicas para la funci´on de com- plemento en caso de resta y para el desbordamiento: XOR, NAND, NOT (7404).

1.3. Simulaci´on

Hacer el dise˜no en papel y luego implementarlo utilizando Xilinx para ejecutar varias simula- ciones. En el caso del apartado a), dise˜nar primero un elemento de la red iterativa, generar un s´ımbolo a partir de este, y dise˜nar entonces el sumador final combinando dos s´ımbolos.

Cuando se obtenga el resultado esperado, realizar el dise˜no en el entrenador. Los s´ımbolos necesarios para dise˜nar los esquem´aticos son:

XOR: XOR2dise˜no en el entrenador. Los s´ımbolos necesarios para dise˜nar los esquem´aticos son: NAND: NAND2, NAND3 NOT:

NAND: NAND2, NAND3el dise˜no en el entrenador. Los s´ımbolos necesarios para dise˜nar los esquem´aticos son: XOR: XOR2 NOT:

NOT: INVen el entrenador. Los s´ımbolos necesarios para dise˜nar los esquem´aticos son: XOR: XOR2 NAND: NAND2, NAND3

1

2

2 1.4. ´ PR ACTICA 1. SUMADOR/RESTADOR Sumador de 4 bits: ADD4. El sumador ADD4 incorpora,

1.4.

´

PR ACTICA 1. SUMADOR/RESTADOR

Sumador de 4 bits: ADD4. El sumador ADD4 incorpora, al contrario que el CI 7483, una salida de desbordamiento llamada OFL. Ignorar esta salida.

Pruebas

Realizar las siguientes pruebas, tanto en el simulador como en el entrenador, para verificar que todo funciona correctamente:

1. Verificar primero un elemento de la red iterativa (el s´ımbolo generado en el caso de Xilinx), para todos los posibles valores de las entradas. Finalmente, verificar el dise˜no completo, con los siguientes valores:

1 + 1 = 2, 1 + 2 = 3, 3 + 3 = 2 (acarreo de salida)

2. Verificar el dise˜no con las siguientes pruebas:

3

+ 4 = 7, 5 + (-2) = 3, (-3) + (-4) = -7, 3 - (-4) = 7, 5 - 2 = 3, (-3) - 4 = -7

6

+ 3 = 9 (Desbordamiento), (-7) + (-7) = -14 (Desbordamiento)

6

- (-3) = 9 (Desbordamiento), (-7) - 7 = -14 (Desbordamiento)

Pr´actica 2

Conversor de c´odigo

2.1. Objetivo

Dise˜nar un sistema combinacional que realice la conversi´on de c´odigo Gray de 4 bits a binario.

Conversor codigo Gray a binario

4
4

Y

4
4

Z

2.2. Realizaci´on

Para realizar el circuito utilizaremos multiplexores 4 a 1 (74153) y puertas NAND (7400).

2.3. Simulaci´on

Los s´ımbolos necesarios para dise˜nar el esquem´atico son:

Multiplexores 4 a 1: M4 1Es´ımbolos necesarios para dise˜nar el esquem´atico son: Entradas constantes: VCC, GND El resto de s´ımbolos

Entradas constantes: VCC, GNDdise˜nar el esquem´atico son: Multiplexores 4 a 1: M4 1E El resto de s´ımbolos est´an enumerados

El resto de s´ımbolos est´an enumerados en pr´acticas anteriores.Multiplexores 4 a 1: M4 1E Entradas constantes: VCC, GND 2.4. Pruebas Comprobar las 16 conversiones,

2.4. Pruebas

Comprobar las 16 conversiones, tanto en el simulador como en el entrenador, para verificar que todo funciona correctamente. Por ejemplo:

3

4

2.5. Anexo: C´odigo Gray

´

´

PR ACTICA 2. CONVERSOR DE C ODIGO

Entrada

Salida

0100

0111

1000

1111

1100

1000

El C´odigo Gray es un caso particular de c´odigo binario (patentado por Frank Gray en 1953). Consiste en una ordenaci´on de 2 n n´umeros binarios de tal forma que cada n´umero s´olo tenga un d´ıgito binario distinto a su predecesor.

Un c´odigo Gray de 2 bits ser´ıa:

00

01

11

10

Una forma sencilla de construir un c´odigo Gray de n bits es utilizar un c´odigo Gray de n 1 bits y a˜nadirle un cero por la izquierda. A continuaci´on para completar el c´odigo Gray a˜nadiremos un 1 por la izquierda al c´odigo Gray de n 1 bits empezando por el ultimo´ elemento. De este modo, podremos obtener un c´odigo Gray de 3 bits a partir del c´odigo de 2 bits definido arriba.

0

0

0

0

1

1

1

1

00

01

11

10

10

11

01

00

Esta t´ecnica de codificaci´on se origin´o cuando los circuitos l´ogicos digitales se realizaban con v´alvulas de vac´ıo y dispositivos electromec´anicos. Los contadores necesitaban potencias muy elevadas a la entrada y generaban picos de ruido cuando varios bits cambiaban simult´aneamente. El uso de c´odigo Gray garantiz´o que en cualquier transici´on variar´ıa tan s´olo un bit.

En la actualidad, el c´odigo Gray se sigue empleando para el dise˜no de cualquier circuito electr´oni- co combinacional mediante el uso de un Mapa de Karnaugh, ya que el principio de dise˜no de buscar transiciones m´as simples y r´apidas entre estados sigue vigente, a pesar de que los proble- mas de ruido y potencia se hayan reducido.

Pr´actica 3

Reconocedor de secuencias

3.1. Objetivo

Dise˜nar un reconocedor de n´umeros de 4 bits que pertenezcan al intervalo 0100-1011.

bit

reset

Reconocedor

0100−1011

estadoal intervalo 0100-1011. bit reset Reconocedor 0100−1011 salida clk 3.2. Realizaci´on Se trata de dise˜nar un

salida0100-1011. bit reset Reconocedor 0100−1011 estado clk 3.2. Realizaci´on Se trata de dise˜nar un circuito

0100-1011. bit reset Reconocedor 0100−1011 estado salida clk 3.2. Realizaci´on Se trata de dise˜nar un circuito

clk

3.2. Realizaci´on

Se trata de dise˜nar un circuito secuencial capaz de reconocer si la entrada (un n´umero de 4 bits que se recibe a trav´es de una l´ınea serie durante 4 ciclos consecutivos) est´a en el intervalo 0100-1011. Para realizar el dise˜no se estudiar´an dos posibilidades seg´un el orden de llegada de los bits: que el primer bit sea el m´as significativo o que sea el menos significativo. Se realizar´an las m´aquinas de estados de cada caso y se seleccionar´a la m´as sencilla para realizar la implementaci´on final.

La llegada de los bits est´a sincronizada por una se˜nal de reloj. La salida ser´a 1 cuando se produzca la llegada del cuarto bit y el n´umero est´e en el intervalo especificado. En todos los dem´as casos ser´a cero.

5

6

´

PR ACTICA 3. RECONOCEDOR DE SECUENCIAS

Cada cuatro pulsos de reloj el circuito volver´a autom´aticamente al estado inicial. El circuito debe tener una entrada as´ıncrona (reset) que permita llevarlo al estado inicial. El estado del circuito se podr´a visualizar en los leds para facilitar la depuraci´on.

Para la pr´actica se pueden utilizar cualquier tipo de puertas de 2 y 3 entradas, biestables tipo D (7474) e inversores. Para las entradas tanto la serie, como la de reloj, como la de reset se deben utilizar los conmutadores. Los pulsos de reloj tambi´en se introducir´an utilizando un conmutador.

3.3. Simulaci´on

Hacer el dise˜no en papel y luego implementarlo utilizando Xilinx para ejecutar varias simulacio- nes. Cuando se obtenga el resultado esperado, realizar el dise˜no en el entrenador. Los s´ımbolos necesarios para dise˜nar los esquem´aticos son:

Biestable D, con clear y preset: FDCPnecesarios para dise˜nar los esquem´aticos son: Puertas AND, OR, NOT, : AND2, AND3, OR2, OR3, INV,

Puertas AND, OR, NOT,esquem´aticos son: Biestable D, con clear y preset: FDCP : AND2, AND3, OR2, OR3, INV, El

: AND2, AND3, OR2, OR3, INV,

El resto de s´ımbolos est´an enumerados en pr´acticas anteriores.FDCP Puertas AND, OR, NOT, : AND2, AND3, OR2, OR3, INV, 3.4. Pruebas Realizar cuatro pruebas

3.4. Pruebas

Realizar cuatro pruebas al azar, de forma que dos de ellas pertenezcan al intervalo y las otras dos no.

Pr´actica 4

Generador de secuencias

4.1. Objetivo

Dise˜nar un generador de secuencia s´ıncrono.

4.2. Realizaci´on

Utilizando biestables JK (7476), dise˜nar un contador s´ıncrono descendente m´odulo 10 con en-

trada reset que genere la cuenta (en binario) 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 9, 8,

deber´a coincidir con el estado, es decir, que si el estado actual es S 7 , la salida ser´a 0111. Al pulsar reset, el contador volver´a a 9.

Utilizando el contador anterior y a˜nadiendo las puertas l´ogicas necesarias, realice un generador de secuencia s´ıncrono que produzca, de forma c´ıclica, la siguiente secuencia de salida Z = 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1,

La salida

4.3. Simulaci´on

Hacer el dise˜no en papel y luego implementarlo utilizando Xilinx para ejecutar una simulaci´on. Cuando se obtenga el resultado esperado, realizar el dise˜no en el entrenador. Los s´ımbolos necesarios para dise˜nar los esquem´aticos son:

Biestable JK: El CI 7476 contiene JKs con se˜nales clear y preset as´ıncronas. Por ello, en Xilinx habr´a que combinar el uso de FJKC y FJKP, dependiendo de si el JK se quiere poner a 0 al pulsar reset (FJKC) o si se quiere poner a 1 (FJKP).necesarios para dise˜nar los esquem´aticos son: El resto de s´ımbolos est´an enumerados en pr´acticas

El resto de s´ımbolos est´an enumerados en pr´acticas anteriores.uso de FJKC y FJKP, dependiendo de si el JK se quiere poner a 0 al

7

8

´

PR ACTICA 4. GENERADOR DE SECUENCIAS

Pr´actica 5

Ascensor

5.1. Objetivo

Dise˜no modular de un sistema secuencial s´ıncrono que funciona como un ascensor.

5.2. Realizaci´on

Utilizando un contador ascendente/descendente (74169) y puertas l´ogicas habr´a que construir un circuito secuencial que act´ue como un ascensor. El bloque b´asico del sistema ser´a el contador, cuya salida S coincide con la salida del circuito. El ascensor constar´a, adem´as, de una entrada externa A de 3 bits.

En todo momento la entrada es comparada con la salida, de modo que:

Si A=S, el contador no har´a nada, lo que es equivalente a decir que el ascensor se encuentra en el piso en el que estamos.momento la entrada es comparada con la salida, de modo que: Si A > S, el

Si A> S, el ascensor tiene que subir, con lo cual se activar´a la cuenta ascendente >S, el ascensor tiene que subir, con lo cual se activar´a la cuenta ascendente del contador hasta que A=S, par´andose en ese momento.

Si A< S, entonces el ascensor tendr´a que bajar, de modo que se activar´a la cuenta <S, entonces el ascensor tendr´a que bajar, de modo que se activar´a la cuenta descen- dente del contador de nuevo hasta que A=S.

Mostrar la salida y la entrada del circuito en los displays 7 segmentos.

Para comparar las entradas A y S se puede utilizar un sumador de 4 bits (7483).

5.3. Simulaci´on

Hacer el dise˜no en papel y luego implementarlo utilizando Xilinx para ejecutar varias simulacio- nes. Cuando se obtenga el resultado esperado, realizar el dise˜no en el entrenador. Los s´ımbolos necesarios para dise˜nar los esquem´aticos son:

9

10

Contador ascendente/descendente: CB4CLED10 ´ PR ACTICA 5. ASCENSOR El resto de s´ımbolos est´an enumerados en pr´acticas anteriores. 5.4.

´

PR ACTICA 5. ASCENSOR

El resto de s´ımbolos est´an enumerados en pr´acticas anteriores.ascendente/descendente: CB4CLED ´ PR ACTICA 5. ASCENSOR 5.4. Pruebas Realizar las siguientes peticiones al ascensor

5.4.

Pruebas

Realizar las siguientes peticiones al ascensor (tanto en el simulador como en el entrenador), en el orden dado: 0, 7, 0, 3, 3, 6, 1

Pr´actica 6

N´umeros primos y m´ultiplos de siete

6.1. Objetivo

Dise˜no modular de un sistema secuencial s´ıncrono usando m´odulos est´andar.

6.2. Realizaci´on

La pr´actica constar´a de dos partes:

1. Dise˜nar un sistema secuencial utilizando un registro de desplazamiento (74194). El sistema tendr´a una entrada serie A (el primer bit que entra es el menos significativo) que tras 4 ciclos de reloj aparecer´a almacenada en el registro. Una vez cargado el registro, comprobar si su salida corresponde a un n´umero primo o a un n´umero m´ultiplo de 7. Las salidas de ambos reconocedores deber´an ir cada una a un led de modo que ´este se iluminar´a tras 4 pulsos de reloj si el n´umero es primo o si es m´ultiplo de 7.

2. Introducir en el circuito anterior una entrada de control externa C, que tras 4 pulsos de reloj, har´a que si C=0 y el n´umero es primo se incremente un contador (74169) en una unidad, y si C=1 y el n´umero es m´ultiplo de 7 se decremente el contador. La salida del contador ser´a otra de las salidas del sistema y se visualizar´a en uno de los displays 7 segmentos.

6.3. Simulaci´on

Hacer el dise˜no en papel y luego implementarlo utilizando Xilinx para ejecutar varias simulacio- nes. Cuando se obtenga el resultado esperado, realizar el dise˜no en el entrenador. Los s´ımbolos necesarios para dise˜nar los esquem´aticos son:

Registro de desplazamiento: SR4CLEDnecesarios para dise˜nar los esquem´aticos son: El resto de s´ımbolos est´an enumerados en pr´acticas

El resto de s´ımbolos est´an enumerados en pr´acticas anteriores.en el entrenador. Los s´ımbolos necesarios para dise˜nar los esquem´aticos son: Registro de desplazamiento: SR4CLED 11

11

12

6.4.

Pruebas

´

´

´

PR ACTICA 6. N UMEROS PRIMOS Y M ULTIPLOS DE SIETE

Realizar las siguientes pruebas, tanto en el simulador como en el entrenador 1 :

1. 0000 (0-0), 0010 (1-0), 0011 (1-0), 0100 (0-0), 0111 (1-1), 1110 (0-1)

2. C=0, 0000 (0-0-0000), 0001 (0-0-0000), 1011 (1-0-0001), 0010 (1-0-0010)

3. C=1, 0011 (1-0-0010), 0111 (1-1-0001), 1110 (0-1-0000), 0111 (1-1-????)

1 Los n´umeros se representan en orden (de m´as a menos significativo). La salida se indica entre par´entesis (primo, m´ultiplo de 7, estado del contador en el apartado 2)

Pr´actica 7

Generador de secuencias

7.1. Objetivo

Dise˜no e implementaci´on de un sistema secuencial s´ıncrono sobre FPGAs.

7.2. Realizaci´on

La pr´actica constar´a de dos partes:

1. Generador de secuencias en los leds: Se debe dise˜nar un circuito que genere una secuencia de tal forma que se visualice en la placa un led encendido que va desplaz´andose al siguiente cada segundo. Para saber cu´ando ha pasado un segundo se utilizar´a un divisor de frecuen- cias que se encuentra disponible en el Campus Virtual. Las entradas del circuito ser´an reset, reloj y cambio y las salidas los 8 leds. Al empezar todos los leds estar´an apagados, al detectarse un flanco de cambio se encender´a el primer led, pasado un segundo el segundo led, y as´ı sucesivamente mientras no se detecte ning´un flanco en la entrada cambio. Un flanco en la entrada cambio retornar´ıa el sistema al estado inicial (todos los leds apagados).

2. Generador de secuencias en un display 7-segmentos: Se debe a˜nadir al circuito anterior la posibilidad de elegir entre dos secuencias a visualizar. La primera secuencia es la explicada en el apartado anterior. La segunda secuencia es sobre un display 7-segmentos, mostrando un segmento encendido, que va rotando al segmento adyacente cada segundo. Inicialmente todos los leds y segmentos del display estar´an apagados. Al detectarse un flanco en cambio se comenzar´a a visualizar la primera secuencia. Al siguiente flanco se pasar´a a la segunda y un tercer flanco retornar´ıa el sistema al estado inicial.

7.3. Simulaci´on

Hacer el dise˜no en papel y luego sintetizarlo utilizando la herramienta ISE. Es imprescindible realizar una simulaci´on de cada uno de los apartados, durante la cual se pueda demostrar que

13

14

´

PR ACTICA 7. GENERADOR DE SECUENCIAS

funciona para todas las posibles combinaciones de las entradas. Se recuerda que para simular es necesario quitar el divisor de frecuencias, y s´olo cuando se haya terminado de simular y se est´e seguro de que el circuito funciona, se a˜nadir´a el divisor de frecuencias y se generar´a el mapa de bits para volcarlo sobre la FPGA.

7.4. M´odulos disponibles

Para la realizaci´on de los circuitos se dispone de los siguientes m´odulos:

Pads de entrada salida IBUF y OBUF (no utilizar IBUF4 ni OBUF4)de los circuitos se dispone de los siguientes m´odulos: Biestables D con se˜nal de clear as´ıncrona

Biestables D con se˜nal de clear as´ıncrona FDCde entrada salida IBUF y OBUF (no utilizar IBUF4 ni OBUF4) Registros de 4 bit con

Registros de 4 bit con se˜nal de reset s´ıncrona y capacitaci´on CE (se˜nal de carga) FD4RE y entrada paralela de 4 bits.ni OBUF4) Biestables D con se˜nal de clear as´ıncrona FDC Contadores m´odulo 16 con se˜nal de

Contadores m´odulo 16 con se˜nal de reset s´ıncrona y se˜nal de cuenta (RE) CB4RE.CE (se˜nal de carga) FD4RE y entrada paralela de 4 bits. Descodificador de 3 entradas D3

Descodificador de 3 entradas D3 8E.se˜nal de reset s´ıncrona y se˜nal de cuenta (RE) CB4RE. Registro con desplazamiento de 8 bits

Registro con desplazamiento de 8 bits con se˜nal de capacitaci´on y reset s´ıncrono SR8RE.de cuenta (RE) CB4RE. Descodificador de 3 entradas D3 8E. Multiplexores del tama˜no necesario (M2 1E,

Multiplexores del tama˜no necesario (M2 1E, M4 1E, M8 1E)con se˜nal de capacitaci´on y reset s´ıncrono SR8RE. Puertas l´ogicas. (AND, INV, OR, XOR ) Pueden

Puertas l´ogicas. (AND, INV, OR, XORMultiplexores del tama˜no necesario (M2 1E, M4 1E, M8 1E) ) Pueden utilizarse otros m´odulos disponibles

)

Pueden utilizarse otros m´odulos disponibles en las bibliotecas de Xilinxs´ıncrono SR8RE. Multiplexores del tama˜no necesario (M2 1E, M4 1E, M8 1E) Puertas l´ogicas. (AND, INV,

Pr´actica 8

M´aquina tragaperras

8.1. Objetivo

Dise˜no e implementaci´on de un sistema secuencial s´ıncrono modular sobre FPGAs.

8.2. Realizaci´on

La pr´actica constar´a de dos partes:

1. M´aquina tragaperras con 2 premios: Se debe dise˜nar un circuito que genere tres n´umeros aleatorios de 2 bits. Las entradas del circuito ser´an jugar, reset, y reloj y las salidas Num1, Num2, Num3 (de 2 bits cada uno, que se visualizan en el banco de leds) y dos premios Premio grande y Premio medio (que se visualizan en los display 7 segmentos). La se˜nal de reset inicializa todos los registros y contadores a 0.

reset

   
2
2

Num1

2
2

Num2

jugar

2
2

Num3

Premio_grande

Premio_medio

reloj

El flanco de bajada de la entrada jugar se utiliza para generar tres n´umeros aleatorios:

el primer flanco de bajada genera el 1er n´umero (Num1 ), el segundo flanco de bajada el segundo (Num2 ) y el 3er flanco de bajada el 3er n´umero (Num3 ). Los 3 n´umeros se visualizan en los leds (2 bits por numero, en total 6 leds). Los premios por la jugada son:

15

16

´ ´

PR ACTICA 8. M AQUINA TRAGAPERRAS

Premio grande: los 3 n´umeros son iguales16 ´ ´ PR ACTICA 8. M AQUINA TRAGAPERRAS Premio medio: hay 2 n´umeros iguales Si

Premio medio: hay 2 n´umeros igualesTRAGAPERRAS Premio grande: los 3 n´umeros son iguales Si el premio es el grande se enciende

Si el premio es el grande se enciende el segmento superior de un display 7 segmentos. Si el premio es el medio se enciende s´olo el segmento central. Hasta que no se generan los 3 n´umeros no se visualiza el premio. Se puede jugar de nuevo volviendo a generar un flanco de bajada de la entrada jugar.

2. M´aquina tragaperras con luces intermitentes: Hay que modificar el dise˜no anterior para que si el premio es el grande se encienden y apagan todos los leds del display 7 segmentos menos el central con una frecuencia de aproximadamente 1Hz. Si el premio es el medio se enciende y apaga s´olo el segmento central.

8.3. Simulaci´on

Hacer el dise˜no en papel y luego sintetizarlo utilizando la herramienta ISE. Es imprescindible realizar una simulaci´on de cada uno de los apartados, durante la cual se pueda demostrar que funciona para todas las posibles combinaciones de las entradas. Se recuerda que para simular es necesario quitar el divisor de frecuencias, y s´olo cuando se haya terminado de simular y se est´e seguro de que el circuito funciona, se a˜nadir´a el divisor de frecuencias y se generar´a el mapa de bits para volcarlo sobre la FPGA.

8.4. M´odulos disponibles

Para la realizaci´on de los circuitos se dispone de los siguientes m´odulos:

Pads de entrada salida IBUF y OBUF (no utilizar IBUF4 ni OBUF4) y BUFG IBUF y OBUF (no utilizar IBUF4 ni OBUF4) y BUFG

Biestables D con se˜nal de clear as´ıncrona y capacitaci´on FDCE FDCE

Contadores m´odulo 4 con se˜nal de clear as´ıncrona, se˜nal de cuenta (CE) y se˜nal de carga (L) CB2CLE . CB2CLE.

Comparador de 2 bits COMP2se˜nal de cuenta (CE) y se˜nal de carga (L) CB2CLE . Puertas l´ogicas. (AND, INV, OR,

Puertas l´ogicas. (AND, INV, OR, XORy se˜nal de carga (L) CB2CLE . Comparador de 2 bits COMP2 ) Divisor de frecuencias

)

Divisor de frecuencias para generar una frecuencia de 1Hzde 2 bits COMP2 Puertas l´ogicas. (AND, INV, OR, XOR ) Registro con desplazamiento de 4

Registro con desplazamiento de 4 bits con se˜nal de capacitaci´on y clear as´ıncrono SR4CE SR4CE

Pr´actica 9

Algor´ıtmico

9.1. Objetivo

Dise˜no algor´ıtmico con FPGAs.

9.2. Realizaci´on

3 Dir 8 Dato 8 L/E Dato[Dir] Modo Reset
3
Dir
8
Dato
8
L/E
Dato[Dir]
Modo
Reset

Reloj

Dise˜nar un sistema que deber´a ser capaz de realizar las siguientes operaciones:

En un modo interactivo , el usuario podr´a introducir cuatro valores de 8 bits (A, B, C y interactivo, el usuario podr´a introducir cuatro valores de 8 bits (A, B, C y D). Los elementos se ubicar´an en las posiciones de memoria de la 0 a la 3. En este modo el usuario podr´a leer cualquier dato de la memoria visualiz´andolo en los LEDS.

En un modo de ejecuci´on , la ruta de datos realizar´a cuatro c´alculos sobre los valores anteriores, almacenados en ejecuci´on, la ruta de datos realizar´a cuatro c´alculos sobre los valores anteriores, almacenados en las posiciones de memoria de la 4 a la 7, estos son:

M´aximo com´un divisor de A y B

M´aximo de C y D

M´ınimo de C y D

Suma de C y D

17

18

´

´

PR ACTICA 9. ALGOR ITMICO

Los cuatro resultados se podr´an inicializar a cero de forma manual en el modo interactivo. Algunas consideraciones:

El modo (interactivo/ejecuci´on) viene determinado por la entrada Modo . Modo.

Se podr´a escribir un dato en la direcci´on de memoria especificada cuando, estando en modo interactivo, se detecte un flanco en la entrada L/E . Esta entrada vendr´a dada por un conmutador (switch). L/E. Esta entrada vendr´a dada por un conmutador (switch).

Hacer el dise˜no en papel. cada grupo deber´a presentar al profesor una planificaci´on de las operaciones, en la que se describa cuantos ciclos se necesitan para realizar las operaciones y qu´e puntos de control se activan en cada ciclo. Posteriormente sintetizar el dise˜no utilizando la herramienta ISE.

9.3. Simulaci´on

Se recuerda que para simular es necesario quitar el divisor de frecuencias, y s´olo cuando se haya terminado de simular y se est´e seguro de que el circuito funciona, se a˜nadir´a el divisor de frecuencias y se generar´a el mapa de bits para volcarlo sobre la FPGA. Realizar las siguientes pruebas, tanto en el simulador como en la FPGA:

(A,B,C,D) = (32, 64, 65, 129), RAM(4-7) = (32, 129, 65, 194)siguientes pruebas, tanto en el simulador como en la FPGA: (A,B,C,D) = (103, 113, 96, 18),

(A,B,C,D) = (103, 113, 96, 18), RAM(4-7) = (1, 96, 18, 114)(A,B,C,D) = (32, 64, 65, 129), RAM(4-7) = (32, 129, 65, 194) (A,B,C,D) = (120, 96,

(A,B,C,D) = (120, 96, 13, 13), RAM(4-7) = (24, 13, 13, 26)(A,B,C,D) = (103, 113, 96, 18), RAM(4-7) = (1, 96, 18, 114) 9.4. M´odulos disponibles La

9.4. M´odulos disponibles

La ruta de datos de este sistema puede implementarse con los siguientes elementos:

Memoria RAM con 16 palabras de 8 bits (RAM16X8S ). En este m´odulo la lectura de los elementos es as´ıncrona. RAM16X8S). En este m´odulo la lectura de los elementos es as´ıncrona.

Sumadores (ADD8 ), para calcular la suma de los elementos y el c´alculo del m´aximo com´un ADD8), para calcular la suma de los elementos y el c´alculo del m´aximo com´un divisor.

2 Comparadores (COMPM8 ), para calcular valores m´ınimos y m´aximos. COMPM8), para calcular valores m´ınimos y m´aximos.

Registros (FD8CE ) FD8CE)

Contadores), para calcular valores m´ınimos y m´aximos. Registros ( FD8CE ) Multiplexores, biestables D y puertas

Multiplexores, biestables D y puertas l´ogicascom´un divisor. 2 Comparadores ( COMPM8 ), para calcular valores m´ınimos y m´aximos. Registros ( FD8CE

9.5.

ALGORITMOS NECESARIOS

19

9.5. Algoritmos necesarios

Algoritmo

del

m´aximo

com´un

divisor:

//

Versi´on

recursiva

 

int

mcd(int

a,

int

b)

{

if(a==b)

 
 

return

a;

else

if(a>b)

 
 

return

mcd(a-b,b);

 

else

 
 

return

mcd(b,b-a);

 

}

//

Versi´on

iterativa

 

int

mcd(int

a,

int

b)

{

int

t;

while

(a!=b)

{

 

if(a>b)

 
 

a

=

a

-

b;

 

else

{

 

t =

a;

 

a =

b;

b =

b

-

t;

 

}

}

return

a;

}

20

´

´

PR ACTICA 9. ALGOR ITMICO

Pr´actica 10

Circuito as´ıncrono

10.1. Objetivo

Dise˜no e implementaci´on de un sistema as´ıncrono en el entrenador.

10.2. Realizaci´on

Un circuito as´ıncrono controla la barrera de entrada a un aparcamiento. El circuito recibe dos entradas: el Bot´on de apertura de la barrera y el Sensor que detecta si el coche est´a pasando a trav´es de la barrera. El sistema tiene una salida Abierta, que vale 0 si la barrera est´a cerrada y 1 si est´a abierta (considerar que se abre y cierra instant´aneamente).

El comportamiento del sistema es el siguiente: la barrera est´a cerrada hasta que se pulse el Bot´on. Entonces se abre la barrera y se queda abierta hasta que detecte que el coche ha terminado de entrar. Cuando el coche ha entrado se cierra la barrera y se puede volver a pulsar el Bot´on si otro coche quiere entrar.

Nota: no puede pasar un coche si la barrera est´a cerrada. Se supone que el Bot´on se deja de pulsar antes de que el coche empiece a entrar.

Hacer la tabla de flujo primitiva, minimizar el n´umero de estados y presentar la tabla de flujo final donde se especifiquen las transiciones de estado y las salidas. A continuaci´on implementarlo con inversores, puertas and de 2 entradas (7408) y or de 2 entradas (7432) eliminando las carreras y riesgos est´aticos.

10.3. Simulaci´on

Hacer el dise˜no en papel y luego implementarlo utilizando Xilinx para ejecutar varias simula- ciones. Cuando se obtenga el resultado esperado, realizar el dise˜no en el entrenador. S´olo se necesitan utilizar puertas INV, AND y OR.

21