Post on 28-May-2020
Cuaderno de practicas de laasignatura Laboratorio de Tecnologıa
de Computadores
Jose Luis Risco MartınJose Miguel Montanana
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
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
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;
}
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