Cuaderno de pr acticas de la asignatura Laboratorio de ... un contador ascendente/descendente...

27
Cuaderno de pr´ acticas de la asignatura Laboratorio de Tecnolog´ ıa de Computadores Jos´ e Luis Risco Mart´ ın Jos´ e Miguel Montanana

Transcript of Cuaderno de pr acticas de la asignatura Laboratorio de ... un contador ascendente/descendente...

Cuaderno de practicas de laasignatura Laboratorio de Tecnologıa

de Computadores

Jose Luis Risco MartınJose Miguel Montanana

ii

Indice general

1. Sumador/Restador 1

1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Realizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.3. Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.4. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2. Conversor de codigo 3

2.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2. Realizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3. Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.4. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.5. Anexo: Codigo Gray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3. Reconocedor de secuencias 5

3.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.2. Realizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.3. Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.4. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4. Generador de secuencias 7

4.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4.2. Realizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4.3. Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

5. Ascensor 9

iii

iv INDICE GENERAL

5.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5.2. Realizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5.3. Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5.4. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6. Numeros primos y multiplos de siete 11

6.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

6.2. Realizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

6.3. Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

6.4. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

7. Generador de secuencias 13

7.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

7.2. Realizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

7.3. Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

7.4. Modulos disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

8. Maquina tragaperras 15

8.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

8.2. Realizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

8.3. Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

8.4. Modulos disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

9. Algorıtmico 17

9.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

9.2. Realizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

9.3. Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

9.4. Modulos disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

9.5. Algoritmos necesarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

10.Circuito asıncrono 21

10.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

10.2. Realizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

INDICE GENERAL v

10.3. Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

vi INDICE GENERAL

Practica 1

Sumador/Restador

1.1. Objetivos

1. Disenar una red iterativa combinacional que realice la suma de 2 numeros de 2 bits enbinario.

2. Disenar un sumador/restador para numeros de 4 bits en complemento a 2 usando unsumador binario.

1.2. Realizacion

1. El diseno constara de 2 celdas iguales, cada una para realizar la suma de uno de los bits.Para realizar el circuito vamos a utilizar puertas logicas: XOR (7486) y NAND (7400,7410).

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

1.3. Simulacion

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

Cuando se obtenga el resultado esperado, realizar el diseno en el entrenador. Los sımbolosnecesarios para disenar los esquematicos son:

XOR: XOR2

NAND: NAND2, NAND3

NOT: INV

1

2 PRACTICA 1. SUMADOR/RESTADOR

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

1.4. Pruebas

Realizar las siguientes pruebas, tanto en el simulador como en el entrenador, para verificar quetodo 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 diseno completo,con los siguientes valores:

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

2. Verificar el diseno 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)

Practica 2

Conversor de codigo

2.1. Objetivo

Disenar un sistema combinacional que realice la conversion de codigo Gray de 4 bits a binario.

Za binario

Conversor codigo Gray4Y

4

2.2. Realizacion

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

2.3. Simulacion

Los sımbolos necesarios para disenar el esquematico son:

Multiplexores 4 a 1: M4 1E

Entradas constantes: VCC, GND

El resto de sımbolos estan enumerados en practicas anteriores.

2.4. Pruebas

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

3

4 PRACTICA 2. CONVERSOR DE CODIGO

Entrada Salida0100 01111000 11111100 1000

2.5. Anexo: Codigo Gray

El Codigo Gray es un caso particular de codigo binario (patentado por Frank Gray en 1953).Consiste en una ordenacion de 2n numeros binarios de tal forma que cada numero solo tenga undıgito binario distinto a su predecesor.

Un codigo Gray de 2 bits serıa:

00011110

Una forma sencilla de construir un codigo Gray de n bits es utilizar un codigo Gray de n−1 bitsy anadirle un cero por la izquierda. A continuacion para completar el codigo Gray anadiremosun 1 por la izquierda al codigo Gray de n − 1 bits empezando por el ultimo elemento. De estemodo, podremos obtener un codigo Gray de 3 bits a partir del codigo de 2 bits definido arriba.

0 000 010 110 101 101 111 011 00

Esta tecnica de codificacion se origino cuando los circuitos logicos digitales se realizaban convalvulas de vacıo y dispositivos electromecanicos. Los contadores necesitaban potencias muyelevadas a la entrada y generaban picos de ruido cuando varios bits cambiaban simultaneamente.El uso de codigo Gray garantizo que en cualquier transicion variarıa tan solo un bit.

En la actualidad, el codigo Gray se sigue empleando para el diseno de cualquier circuito electroni-co combinacional mediante el uso de un Mapa de Karnaugh, ya que el principio de diseno debuscar transiciones mas simples y rapidas entre estados sigue vigente, a pesar de que los proble-mas de ruido y potencia se hayan reducido.

Practica 3

Reconocedor de secuencias

3.1. Objetivo

Disenar un reconocedor de numeros de 4 bits que pertenezcan al intervalo 0100-1011.

clk

Reconocedor

0100−1011

bit

estado

salida

reset

3.2. Realizacion

Se trata de disenar un circuito secuencial capaz de reconocer si la entrada (un numero de 4bits que se recibe a traves de una lınea serie durante 4 ciclos consecutivos) esta en el intervalo0100-1011. Para realizar el diseno se estudiaran dos posibilidades segun el orden de llegada de losbits: que el primer bit sea el mas significativo o que sea el menos significativo. Se realizaran lasmaquinas de estados de cada caso y se seleccionara la mas sencilla para realizar la implementacionfinal.

La llegada de los bits esta sincronizada por una senal de reloj. La salida sera 1 cuando seproduzca la llegada del cuarto bit y el numero este en el intervalo especificado. En todos losdemas casos sera cero.

5

6 PRACTICA 3. RECONOCEDOR DE SECUENCIAS

Cada cuatro pulsos de reloj el circuito volvera automaticamente al estado inicial. El circuitodebe tener una entrada asıncrona (reset) que permita llevarlo al estado inicial. El estado delcircuito se podra visualizar en los leds para facilitar la depuracion.

Para la practica 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 debenutilizar los conmutadores. Los pulsos de reloj tambien se introduciran utilizando un conmutador.

3.3. Simulacion

Hacer el diseno en papel y luego implementarlo utilizando Xilinx para ejecutar varias simulacio-nes. Cuando se obtenga el resultado esperado, realizar el diseno en el entrenador. Los sımbolosnecesarios para disenar los esquematicos son:

Biestable D, con clear y preset: FDCP

Puertas AND, OR, NOT, ...: AND2, AND3, OR2, OR3, INV, ...

El resto de sımbolos estan enumerados en practicas anteriores.

3.4. Pruebas

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

Practica 4

Generador de secuencias

4.1. Objetivo

Disenar un generador de secuencia sıncrono.

4.2. Realizacion

Utilizando biestables JK (7476), disenar un contador sıncrono descendente modulo 10 con en-trada reset que genere la cuenta (en binario) 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 9, 8, . . . La salidadebera coincidir con el estado, es decir, que si el estado actual es S7, la salida sera 0111. Alpulsar reset, el contador volvera a 9.

Utilizando el contador anterior y anadiendo las puertas logicas necesarias, realice un generadorde 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, . . .

4.3. Simulacion

Hacer el diseno en papel y luego implementarlo utilizando Xilinx para ejecutar una simulacion.Cuando se obtenga el resultado esperado, realizar el diseno en el entrenador. Los sımbolosnecesarios para disenar los esquematicos son:

Biestable JK: El CI 7476 contiene JKs con senales clear y preset asıncronas. Por ello, enXilinx habra que combinar el uso de FJKC y FJKP, dependiendo de si el JK se quiereponer a 0 al pulsar reset (FJKC) o si se quiere poner a 1 (FJKP).

El resto de sımbolos estan enumerados en practicas anteriores.

7

8 PRACTICA 4. GENERADOR DE SECUENCIAS

Practica 5

Ascensor

5.1. Objetivo

Diseno modular de un sistema secuencial sıncrono que funciona como un ascensor.

5.2. Realizacion

Utilizando un contador ascendente/descendente (74169) y puertas logicas habra que construirun circuito secuencial que actue como un ascensor. El bloque basico del sistema sera el contador,cuya salida S coincide con la salida del circuito. El ascensor constara, ademas, de una entradaexterna A de 3 bits.

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

Si A=S, el contador no hara nada, lo que es equivalente a decir que el ascensor se encuentraen el piso en el que estamos.

Si A>S, el ascensor tiene que subir, con lo cual se activara la cuenta ascendente del contadorhasta que A=S, parandose en ese momento.

Si A<S, entonces el ascensor tendra que bajar, de modo que se activara 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. Simulacion

Hacer el diseno en papel y luego implementarlo utilizando Xilinx para ejecutar varias simulacio-nes. Cuando se obtenga el resultado esperado, realizar el diseno en el entrenador. Los sımbolosnecesarios para disenar los esquematicos son:

9

10 PRACTICA 5. ASCENSOR

Contador ascendente/descendente: CB4CLED

El resto de sımbolos estan enumerados en practicas anteriores.

5.4. Pruebas

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

Practica 6

Numeros primos y multiplos de siete

6.1. Objetivo

Diseno modular de un sistema secuencial sıncrono usando modulos estandar.

6.2. Realizacion

La practica constara de dos partes:

1. Disenar un sistema secuencial utilizando un registro de desplazamiento (74194). El sistematendra una entrada serie A (el primer bit que entra es el menos significativo) que tras 4ciclos de reloj aparecera almacenada en el registro. Una vez cargado el registro, comprobarsi su salida corresponde a un numero primo o a un numero multiplo de 7. Las salidas deambos reconocedores deberan ir cada una a un led de modo que este se iluminara tras 4pulsos de reloj si el numero es primo o si es multiplo de 7.

2. Introducir en el circuito anterior una entrada de control externa C, que tras 4 pulsos dereloj, hara que si C=0 y el numero es primo se incremente un contador (74169) en unaunidad, y si C=1 y el numero es multiplo de 7 se decremente el contador. La salida delcontador sera otra de las salidas del sistema y se visualizara en uno de los displays 7segmentos.

6.3. Simulacion

Hacer el diseno en papel y luego implementarlo utilizando Xilinx para ejecutar varias simulacio-nes. Cuando se obtenga el resultado esperado, realizar el diseno en el entrenador. Los sımbolosnecesarios para disenar los esquematicos son:

Registro de desplazamiento: SR4CLED

El resto de sımbolos estan enumerados en practicas anteriores.

11

12 PRACTICA 6. NUMEROS PRIMOS Y MULTIPLOS DE SIETE

6.4. Pruebas

Realizar las siguientes pruebas, tanto en el simulador como en el entrenador1:

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-????)

1Los numeros se representan en orden (de mas a menos significativo). La salida se indica entre parentesis(primo, multiplo de 7, estado del contador en el apartado 2)

Practica 7

Generador de secuencias

7.1. Objetivo

Diseno e implementacion de un sistema secuencial sıncrono sobre FPGAs.

7.2. Realizacion

La practica constara de dos partes:

1. Generador de secuencias en los leds: Se debe disenar un circuito que genere una secuenciade tal forma que se visualice en la placa un led encendido que va desplazandose al siguientecada segundo. Para saber cuando ha pasado un segundo se utilizara un divisor de frecuen-cias que se encuentra disponible en el Campus Virtual. Las entradas del circuito seranreset, reloj y cambio y las salidas los 8 leds. Al empezar todos los leds estaran apagados, aldetectarse un flanco de cambio se encendera el primer led, pasado un segundo el segundoled, y ası sucesivamente mientras no se detecte ningun flanco en la entrada cambio. Unflanco 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 anadir al circuito anterior laposibilidad de elegir entre dos secuencias a visualizar. La primera secuencia es la explicadaen el apartado anterior. La segunda secuencia es sobre un display 7-segmentos, mostrandoun segmento encendido, que va rotando al segmento adyacente cada segundo. Inicialmentetodos los leds y segmentos del display estaran apagados. Al detectarse un flanco en cambiose comenzara a visualizar la primera secuencia. Al siguiente flanco se pasara a la segunday un tercer flanco retornarıa el sistema al estado inicial.

7.3. Simulacion

Hacer el diseno en papel y luego sintetizarlo utilizando la herramienta ISE. Es imprescindiblerealizar una simulacion de cada uno de los apartados, durante la cual se pueda demostrar que

13

14 PRACTICA 7. GENERADOR DE SECUENCIAS

funciona para todas las posibles combinaciones de las entradas. Se recuerda que para simulares necesario quitar el divisor de frecuencias, y solo cuando se haya terminado de simular y seeste seguro de que el circuito funciona, se anadira el divisor de frecuencias y se generara el mapade bits para volcarlo sobre la FPGA.

7.4. Modulos disponibles

Para la realizacion de los circuitos se dispone de los siguientes modulos:

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

Biestables D con senal de clear asıncrona FDC

Registros de 4 bit con senal de reset sıncrona y capacitacion CE (senal de carga) FD4REy entrada paralela de 4 bits.

Contadores modulo 16 con senal de reset sıncrona y senal de cuenta (RE) CB4RE.

Descodificador de 3 entradas D3 8E.

Registro con desplazamiento de 8 bits con senal de capacitacion y reset sıncrono SR8RE.

Multiplexores del tamano necesario (M2 1E, M4 1E, M8 1E)

Puertas logicas. (AND, INV, OR, XOR . . . )

Pueden utilizarse otros modulos disponibles en las bibliotecas de Xilinx

Practica 8

Maquina tragaperras

8.1. Objetivo

Diseno e implementacion de un sistema secuencial sıncrono modular sobre FPGAs.

8.2. Realizacion

La practica constara de dos partes:

1. Maquina tragaperras con 2 premios: Se debe disenar un circuito que genere tres numerosaleatorios de 2 bits. Las entradas del circuito seran 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 premiosPremio grande y Premio medio (que se visualizan en los display 7 segmentos). La senal dereset inicializa todos los registros y contadores a 0.

jugar

reset

reloj

Num1

Num2

Num3

Premio_grande

Premio_medio

2

2

2

El flanco de bajada de la entrada jugar se utiliza para generar tres numeros aleatorios:el primer flanco de bajada genera el 1er numero (Num1 ), el segundo flanco de bajadael segundo (Num2 ) y el 3er flanco de bajada el 3er numero (Num3 ). Los 3 numeros sevisualizan en los leds (2 bits por numero, en total 6 leds). Los premios por la jugada son:

15

16 PRACTICA 8. MAQUINA TRAGAPERRAS

Premio grande: los 3 numeros son iguales

Premio medio: hay 2 numeros iguales

Si el premio es el grande se enciende el segmento superior de un display 7 segmentos. Siel premio es el medio se enciende solo el segmento central. Hasta que no se generan los 3numeros no se visualiza el premio. Se puede jugar de nuevo volviendo a generar un flancode bajada de la entrada jugar.

2. Maquina tragaperras con luces intermitentes: Hay que modificar el diseno anterior paraque si el premio es el grande se encienden y apagan todos los leds del display 7 segmentosmenos el central con una frecuencia de aproximadamente 1Hz. Si el premio es el medio seenciende y apaga solo el segmento central.

8.3. Simulacion

Hacer el diseno en papel y luego sintetizarlo utilizando la herramienta ISE. Es imprescindiblerealizar una simulacion de cada uno de los apartados, durante la cual se pueda demostrar quefunciona para todas las posibles combinaciones de las entradas. Se recuerda que para simulares necesario quitar el divisor de frecuencias, y solo cuando se haya terminado de simular y seeste seguro de que el circuito funciona, se anadira el divisor de frecuencias y se generara el mapade bits para volcarlo sobre la FPGA.

8.4. Modulos disponibles

Para la realizacion de los circuitos se dispone de los siguientes modulos:

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

Biestables D con senal de clear asıncrona y capacitacion FDCE

Contadores modulo 4 con senal de clear asıncrona, senal de cuenta (CE) y senal de carga(L) CB2CLE.

Comparador de 2 bits COMP2

Puertas logicas. (AND, INV, OR, XOR . . . )

Divisor de frecuencias para generar una frecuencia de 1Hz

Registro con desplazamiento de 4 bits con senal de capacitacion y clear asıncrono SR4CE

Practica 9

Algorıtmico

9.1. Objetivo

Diseno algorıtmico con FPGAs.

9.2. Realizacion

Reloj

3

8

8Dato[Dir]

Dir

Dato

L/E

Modo

Reset

Disenar un sistema que debera ser capaz de realizar las siguientes operaciones:

En un modo interactivo, el usuario podra introducir cuatro valores de 8 bits (A, B, C yD). Los elementos se ubicaran en las posiciones de memoria de la 0 a la 3. En este modoel usuario podra leer cualquier dato de la memoria visualizandolo en los LEDS.

En un modo de ejecucion, la ruta de datos realizara cuatro calculos sobre los valoresanteriores, almacenados en las posiciones de memoria de la 4 a la 7, estos son:

• Maximo comun divisor de A y B

• Maximo de C y D

• Mınimo de C y D

• Suma de C y D

17

18 PRACTICA 9. ALGORITMICO

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

El modo (interactivo/ejecucion) viene determinado por la entrada Modo.

Se podra escribir un dato en la direccion de memoria especificada cuando, estando enmodo interactivo, se detecte un flanco en la entrada L/E. Esta entrada vendra dada porun conmutador (switch).

Hacer el diseno en papel. cada grupo debera presentar al profesor una planificacion de lasoperaciones, en la que se describa cuantos ciclos se necesitan para realizar las operaciones yque puntos de control se activan en cada ciclo. Posteriormente sintetizar el diseno utilizando laherramienta ISE.

9.3. Simulacion

Se recuerda que para simular es necesario quitar el divisor de frecuencias, y solo cuando sehaya terminado de simular y se este seguro de que el circuito funciona, se anadira el divisor defrecuencias y se generara el mapa de bits para volcarlo sobre la FPGA. Realizar las siguientespruebas, tanto en el simulador como en la FPGA:

(A,B,C,D) = (32, 64, 65, 129), RAM(4-7) = (32, 129, 65, 194)

(A,B,C,D) = (103, 113, 96, 18), RAM(4-7) = (1, 96, 18, 114)

(A,B,C,D) = (120, 96, 13, 13), RAM(4-7) = (24, 13, 13, 26)

9.4. Modulos 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 modulo la lectura delos elementos es asıncrona.

Sumadores (ADD8), para calcular la suma de los elementos y el calculo del maximo comundivisor.

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

Registros (FD8CE)

Contadores

Multiplexores, biestables D y puertas logicas

9.5. ALGORITMOS NECESARIOS 19

9.5. Algoritmos necesarios

Algoritmo del maximo comun divisor:

// Version 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);

}

// Version 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 PRACTICA 9. ALGORITMICO

Practica 10

Circuito asıncrono

10.1. Objetivo

Diseno e implementacion de un sistema asıncrono en el entrenador.

10.2. Realizacion

Un circuito asıncrono controla la barrera de entrada a un aparcamiento. El circuito recibe dosentradas: el Boton de apertura de la barrera y el Sensor que detecta si el coche esta pasando atraves de la barrera. El sistema tiene una salida Abierta, que vale 0 si la barrera esta cerrada y1 si esta abierta (considerar que se abre y cierra instantaneamente).

El comportamiento del sistema es el siguiente: la barrera esta cerrada hasta que se pulse el Boton.Entonces se abre la barrera y se queda abierta hasta que detecte que el coche ha terminado deentrar. Cuando el coche ha entrado se cierra la barrera y se puede volver a pulsar el Boton siotro coche quiere entrar.

Nota: no puede pasar un coche si la barrera esta cerrada. Se supone que el Boton se deja depulsar antes de que el coche empiece a entrar.

Hacer la tabla de flujo primitiva, minimizar el numero de estados y presentar la tabla de flujofinal donde se especifiquen las transiciones de estado y las salidas. A continuacion implementarlocon inversores, puertas and de 2 entradas (7408) y or de 2 entradas (7432) eliminando las carrerasy riesgos estaticos.

10.3. Simulacion

Hacer el diseno en papel y luego implementarlo utilizando Xilinx para ejecutar varias simula-ciones. Cuando se obtenga el resultado esperado, realizar el diseno en el entrenador. Solo senecesitan utilizar puertas INV, AND y OR.

21