SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
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: XOR2
NAND: NAND2, NAND3
NOT: INV
1
2 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.
1.4. 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.
Z
a binario
Conversor codigo Gray4
Y
4
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 1E
Entradas constantes: VCC, GND
El resto de s´ımbolos est´an enumerados en pr´acticas anteriores.
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 PR ´ACTICA 2. CONVERSOR DE C ´ODIGO
Entrada Salida
0100 0111
1000 1111
1100 1000
2.5. Anexo: C´odigo Gray
El C´odigo Gray es un caso particular de c´odigo binario (patentado por Frank Gray en 1953).
Consiste en una ordenaci´on de 2n 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 00
0 01
0 11
0 10
1 10
1 11
1 01
1 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.
clk
Reconocedor
0100−1011
bit
estado
salida
reset
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: FDCP
Puertas AND, OR, NOT, ...: AND2, AND3, OR2, OR3, INV, ...
El resto de s´ımbolos est´an enumerados en pr´acticas anteriores.
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, . . . La salida
deber´a coincidir con el estado, es decir, que si el estado actual es S7, 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, . . .
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).
El resto de s´ımbolos est´an enumerados en pr´acticas anteriores.
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.
Si A>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 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 PR ´ACTICA 5. ASCENSOR
Contador ascendente/descendente: CB4CLED
El resto de s´ımbolos est´an enumerados en pr´acticas anteriores.
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: SR4CLED
El resto de s´ımbolos est´an enumerados en pr´acticas anteriores.
11
12 PR ´ACTICA 6. N ´UMEROS PRIMOS Y M ´ULTIPLOS 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-????)
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)
Biestables D con se˜nal de clear as´ıncrona FDC
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.
Contadores m´odulo 16 con se˜nal de reset s´ıncrona y se˜nal de cuenta (RE) CB4RE.
Descodificador de 3 entradas D3 8E.
Registro con desplazamiento de 8 bits con se˜nal de capacitaci´on y reset s´ıncrono SR8RE.
Multiplexores del tama˜no necesario (M2 1E, M4 1E, M8 1E)
Puertas l´ogicas. (AND, INV, OR, XOR . . . )
Pueden utilizarse otros m´odulos disponibles en las bibliotecas de Xilinx
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.
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 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 iguales
Premio medio: hay 2 n´umeros iguales
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
Biestables D con se˜nal de clear as´ıncrona y capacitaci´on FDCE
Contadores m´odulo 4 con se˜nal de clear as´ıncrona, se˜nal de cuenta (CE) y se˜nal de carga
(L) CB2CLE.
Comparador de 2 bits COMP2
Puertas l´ogicas. (AND, INV, OR, XOR . . . )
Divisor de frecuencias para generar una frecuencia de 1Hz
Registro con desplazamiento de 4 bits con se˜nal de capacitaci´on y clear as´ıncrono SR4CE
Pr´actica 9
Algor´ıtmico
9.1. Objetivo
Dise˜no algor´ıtmico con FPGAs.
9.2. Realizaci´on
Reloj
3
8
8
Dato[Dir]
Dir
Dato
L/E
Modo
Reset
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
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 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.
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).
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)
(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. 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.
Sumadores (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.
Registros (FD8CE)
Contadores
Multiplexores, biestables D y puertas l´ogicas
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

Más contenido relacionado

La actualidad más candente

Tesis Fin de Máster/Tese Final de Mestrado - ARQUITECTURA HARDWARE-SOFTWARE P...
Tesis Fin de Máster/Tese Final de Mestrado - ARQUITECTURA HARDWARE-SOFTWARE P...Tesis Fin de Máster/Tese Final de Mestrado - ARQUITECTURA HARDWARE-SOFTWARE P...
Tesis Fin de Máster/Tese Final de Mestrado - ARQUITECTURA HARDWARE-SOFTWARE P...Higor Amaral
 
Design and implementation of solutions for caring for people with the TIAGo r...
Design and implementation of solutions for caring for people with the TIAGo r...Design and implementation of solutions for caring for people with the TIAGo r...
Design and implementation of solutions for caring for people with the TIAGo r...David Velasco Garcia
 
Introduccion a los Sistemas Digitales
Introduccion a los Sistemas DigitalesIntroduccion a los Sistemas Digitales
Introduccion a los Sistemas Digitalesgiov gmb
 
Libro simulacion mikroc
Libro simulacion mikrocLibro simulacion mikroc
Libro simulacion mikrocpabs_devil
 
proyecto final de carrera con kinect
proyecto final de carrera con kinectproyecto final de carrera con kinect
proyecto final de carrera con kinectCharlie Gonzalez
 
Tesis Javier Luiso - Sensor de Flujo Óptico
Tesis Javier Luiso - Sensor de Flujo ÓpticoTesis Javier Luiso - Sensor de Flujo Óptico
Tesis Javier Luiso - Sensor de Flujo ÓpticoJavier Luiso
 
Introduccion poo con_java
Introduccion poo con_javaIntroduccion poo con_java
Introduccion poo con_javaRobert Wolf
 
Informe final residencia v1 aun no esta bien
Informe final residencia  v1 aun no esta bienInforme final residencia  v1 aun no esta bien
Informe final residencia v1 aun no esta bienDustnet Hostess
 
Introduccion a nodejs
Introduccion a nodejs Introduccion a nodejs
Introduccion a nodejs Erik Gur
 
Introduccion a la_programacion_con_c
Introduccion a la_programacion_con_cIntroduccion a la_programacion_con_c
Introduccion a la_programacion_con_cAbefo
 

La actualidad más candente (14)

Tesis Fin de Máster/Tese Final de Mestrado - ARQUITECTURA HARDWARE-SOFTWARE P...
Tesis Fin de Máster/Tese Final de Mestrado - ARQUITECTURA HARDWARE-SOFTWARE P...Tesis Fin de Máster/Tese Final de Mestrado - ARQUITECTURA HARDWARE-SOFTWARE P...
Tesis Fin de Máster/Tese Final de Mestrado - ARQUITECTURA HARDWARE-SOFTWARE P...
 
Design and implementation of solutions for caring for people with the TIAGo r...
Design and implementation of solutions for caring for people with the TIAGo r...Design and implementation of solutions for caring for people with the TIAGo r...
Design and implementation of solutions for caring for people with the TIAGo r...
 
Introduccion a los Sistemas Digitales
Introduccion a los Sistemas DigitalesIntroduccion a los Sistemas Digitales
Introduccion a los Sistemas Digitales
 
Libro simulacion mikroc
Libro simulacion mikrocLibro simulacion mikroc
Libro simulacion mikroc
 
proyecto final de carrera con kinect
proyecto final de carrera con kinectproyecto final de carrera con kinect
proyecto final de carrera con kinect
 
Teoriapto
TeoriaptoTeoriapto
Teoriapto
 
Tesis Javier Luiso - Sensor de Flujo Óptico
Tesis Javier Luiso - Sensor de Flujo ÓpticoTesis Javier Luiso - Sensor de Flujo Óptico
Tesis Javier Luiso - Sensor de Flujo Óptico
 
Introduccion poo con_java
Introduccion poo con_javaIntroduccion poo con_java
Introduccion poo con_java
 
Curso x logo
Curso x logoCurso x logo
Curso x logo
 
Traducción Thinking in Python
Traducción Thinking in PythonTraducción Thinking in Python
Traducción Thinking in Python
 
Informe final residencia v1 aun no esta bien
Informe final residencia  v1 aun no esta bienInforme final residencia  v1 aun no esta bien
Informe final residencia v1 aun no esta bien
 
main
mainmain
main
 
Introduccion a nodejs
Introduccion a nodejs Introduccion a nodejs
Introduccion a nodejs
 
Introduccion a la_programacion_con_c
Introduccion a la_programacion_con_cIntroduccion a la_programacion_con_c
Introduccion a la_programacion_con_c
 

Similar a Cuadernodepracticas

teoria_Simulacion.pdf
teoria_Simulacion.pdfteoria_Simulacion.pdf
teoria_Simulacion.pdfUGMA
 
Libro javacontapa
Libro javacontapaLibro javacontapa
Libro javacontapaTabu Carlos
 
Desarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-javaDesarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-javaFreddy Quina
 
Introducción a la programación en c
Introducción a la programación en cIntroducción a la programación en c
Introducción a la programación en cvictdiazm
 
MANUAL DE LENGUAJE C
MANUAL DE LENGUAJE CMANUAL DE LENGUAJE C
MANUAL DE LENGUAJE Cclaudiocj7
 
Matlab adv esp
Matlab adv espMatlab adv esp
Matlab adv espLuis Maury
 
Algoritmos programacion-python
Algoritmos programacion-pythonAlgoritmos programacion-python
Algoritmos programacion-pythonLUIS COAQUIRA
 
Manual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaManual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaAngel De las Heras
 
Algoritmos y programacion_i_-_con_lengua
Algoritmos y programacion_i_-_con_lenguaAlgoritmos y programacion_i_-_con_lengua
Algoritmos y programacion_i_-_con_lenguaDarío Herrera
 
pensar_en_cpp-vol1.pdf
pensar_en_cpp-vol1.pdfpensar_en_cpp-vol1.pdf
pensar_en_cpp-vol1.pdfmacario17
 
ApuntesC++.pdf
ApuntesC++.pdfApuntesC++.pdf
ApuntesC++.pdfbilgrado01
 
Electrónica digital: Circuitos y sistemas digitales
Electrónica digital: Circuitos y sistemas digitales Electrónica digital: Circuitos y sistemas digitales
Electrónica digital: Circuitos y sistemas digitales SANTIAGO PABLO ALBERTO
 
Programacion en Phyton desde ce..........................ro
Programacion en Phyton desde ce..........................roProgramacion en Phyton desde ce..........................ro
Programacion en Phyton desde ce..........................roMa Florencia Ferrari
 

Similar a Cuadernodepracticas (20)

teoria_Simulacion.pdf
teoria_Simulacion.pdfteoria_Simulacion.pdf
teoria_Simulacion.pdf
 
Manual de c# 2
Manual de c# 2Manual de c# 2
Manual de c# 2
 
Libro javacontapa
Libro javacontapaLibro javacontapa
Libro javacontapa
 
Manual de C
Manual de CManual de C
Manual de C
 
Desarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-javaDesarrollo proyectos-informaticos-con-java
Desarrollo proyectos-informaticos-con-java
 
Introducción a la programación en C
Introducción a la programación en CIntroducción a la programación en C
Introducción a la programación en C
 
Introducción a la programación en c
Introducción a la programación en cIntroducción a la programación en c
Introducción a la programación en c
 
MANUAL DE LENGUAJE C
MANUAL DE LENGUAJE CMANUAL DE LENGUAJE C
MANUAL DE LENGUAJE C
 
Matlab adv esp
Matlab adv espMatlab adv esp
Matlab adv esp
 
Algoritmos programacion-python
Algoritmos programacion-pythonAlgoritmos programacion-python
Algoritmos programacion-python
 
Manual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaManual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuela
 
Manual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuelaManual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuela
 
Memoria
MemoriaMemoria
Memoria
 
Algoritmos programacion-python
Algoritmos programacion-pythonAlgoritmos programacion-python
Algoritmos programacion-python
 
Algoritmos y programacion_i_-_con_lengua
Algoritmos y programacion_i_-_con_lenguaAlgoritmos y programacion_i_-_con_lengua
Algoritmos y programacion_i_-_con_lengua
 
pensar_en_cpp-vol1.pdf
pensar_en_cpp-vol1.pdfpensar_en_cpp-vol1.pdf
pensar_en_cpp-vol1.pdf
 
tesis de Garbarino
tesis de Garbarinotesis de Garbarino
tesis de Garbarino
 
ApuntesC++.pdf
ApuntesC++.pdfApuntesC++.pdf
ApuntesC++.pdf
 
Electrónica digital: Circuitos y sistemas digitales
Electrónica digital: Circuitos y sistemas digitales Electrónica digital: Circuitos y sistemas digitales
Electrónica digital: Circuitos y sistemas digitales
 
Programacion en Phyton desde ce..........................ro
Programacion en Phyton desde ce..........................roProgramacion en Phyton desde ce..........................ro
Programacion en Phyton desde ce..........................ro
 

Último

CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOFritz Rebaza Latoche
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOLUISDAVIDVIZARRETARA
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024CESARHERNANPATRICIOP2
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 

Último (20)

VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 

Cuadernodepracticas

  • 1. Cuaderno de pr´acticas de la asignatura Laboratorio de Tecnolog´ıa de Computadores Jos´e Luis Risco Mart´ın Jos´e Miguel Montanana
  • 2. ii
  • 3. ´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
  • 4. 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
  • 5. ´INDICE GENERAL v 10.3. Simulaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
  • 7. 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: XOR2 NAND: NAND2, NAND3 NOT: INV 1
  • 8. 2 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. 1.4. 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)
  • 9. 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. Z a binario Conversor codigo Gray4 Y 4 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 1E Entradas constantes: VCC, GND El resto de s´ımbolos est´an enumerados en pr´acticas anteriores. 2.4. Pruebas Comprobar las 16 conversiones, tanto en el simulador como en el entrenador, para verificar que todo funciona correctamente. Por ejemplo: 3
  • 10. 4 PR ´ACTICA 2. CONVERSOR DE C ´ODIGO Entrada Salida 0100 0111 1000 1111 1100 1000 2.5. Anexo: C´odigo Gray El C´odigo Gray es un caso particular de c´odigo binario (patentado por Frank Gray en 1953). Consiste en una ordenaci´on de 2n 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 00 0 01 0 11 0 10 1 10 1 11 1 01 1 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.
  • 11. 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. clk Reconocedor 0100−1011 bit estado salida reset 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
  • 12. 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: FDCP Puertas AND, OR, NOT, ...: AND2, AND3, OR2, OR3, INV, ... El resto de s´ımbolos est´an enumerados en pr´acticas anteriores. 3.4. Pruebas Realizar cuatro pruebas al azar, de forma que dos de ellas pertenezcan al intervalo y las otras dos no.
  • 13. 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, . . . La salida deber´a coincidir con el estado, es decir, que si el estado actual es S7, 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, . . . 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). El resto de s´ımbolos est´an enumerados en pr´acticas anteriores. 7
  • 14. 8 PR ´ACTICA 4. GENERADOR DE SECUENCIAS
  • 15. 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. Si A>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 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
  • 16. 10 PR ´ACTICA 5. ASCENSOR Contador ascendente/descendente: CB4CLED El resto de s´ımbolos est´an enumerados en pr´acticas anteriores. 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
  • 17. 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: SR4CLED El resto de s´ımbolos est´an enumerados en pr´acticas anteriores. 11
  • 18. 12 PR ´ACTICA 6. N ´UMEROS PRIMOS Y M ´ULTIPLOS 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-????) 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)
  • 19. 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
  • 20. 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) Biestables D con se˜nal de clear as´ıncrona FDC 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. Contadores m´odulo 16 con se˜nal de reset s´ıncrona y se˜nal de cuenta (RE) CB4RE. Descodificador de 3 entradas D3 8E. Registro con desplazamiento de 8 bits con se˜nal de capacitaci´on y reset s´ıncrono SR8RE. Multiplexores del tama˜no necesario (M2 1E, M4 1E, M8 1E) Puertas l´ogicas. (AND, INV, OR, XOR . . . ) Pueden utilizarse otros m´odulos disponibles en las bibliotecas de Xilinx
  • 21. 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. 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 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
  • 22. 16 PR ´ACTICA 8. M ´AQUINA TRAGAPERRAS Premio grande: los 3 n´umeros son iguales Premio medio: hay 2 n´umeros iguales 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 Biestables D con se˜nal de clear as´ıncrona y capacitaci´on FDCE Contadores m´odulo 4 con se˜nal de clear as´ıncrona, se˜nal de cuenta (CE) y se˜nal de carga (L) CB2CLE. Comparador de 2 bits COMP2 Puertas l´ogicas. (AND, INV, OR, XOR . . . ) Divisor de frecuencias para generar una frecuencia de 1Hz Registro con desplazamiento de 4 bits con se˜nal de capacitaci´on y clear as´ıncrono SR4CE
  • 23. Pr´actica 9 Algor´ıtmico 9.1. Objetivo Dise˜no algor´ıtmico con FPGAs. 9.2. Realizaci´on Reloj 3 8 8 Dato[Dir] Dir Dato L/E Modo Reset 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 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 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
  • 24. 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. 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). 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) (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. 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. Sumadores (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. Registros (FD8CE) Contadores Multiplexores, biestables D y puertas l´ogicas
  • 25. 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; }
  • 26. 20 PR ´ACTICA 9. ALGOR´ITMICO
  • 27. 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