TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
SEGUNDA TAREA DEL CURSO DE SISTEMAS DIGITALES PREGUNTA PREG UNTA N°1
Diseñar de desplazamiento bidireccional, que permita ingresar datos en modo paralelo de 4 bits, asimismo efectúe desplazamiento hacia la derecha ó hacia la izquierda, dependiendo de una señal de control. SOLUCION
Figura N° 1
Para mi diseño, utilizaré flip-flops tipo D y muchas compuertas lógicas. Por lo general, cuando se realiza la carga en paralelo, se hace uso de las entradas asíncronas de puesta en cero (Clear) y de puesta en uno (Preset). Para ello me valí de compuertas NAND, ocurriendo lo siguiente: cuando por alguna entrada de datos ingresa un nivel bajo, se activa la entrada Clear y llega un nivel alto a la entrada Preset, poniendo en 0 al flip-flop. Esto lo repetimos en cada biestable, de este modo hemos ingresado los datos en forma asíncrona. Para efectuar el desplazamiento, utilizaremos dos compuertas AND y una compuerta OR, sucediendo lo siguiente: La primera puerta AND es controlada por la entrada 1R/0L, cuando por ella ingresa un nivel alto, habilita la primera puerta AND dejando pasar la salida de este flip-flop al siguiente, así, para la
1 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
siguiente señal de reloj, la salida se desplazará hacia la derecha, de a para el primer ciclo de reloj, de a para el segundo flanco de cambio, para finalmente de a . Adicionalmente le agregué al circuito una entrada de datos cuando el desplazamiento es hacia la derecha. Cuando por la entrada 1R/0L ingresa un nivel bajo, ahora el desplazamiento es hacia la izquierda. Es debido a que ahora la primera puerta se inhibe mientras que la segunda es habilitada ingresando a la entrada de un biestable la salida del flip-flop anterior. De este modo hemos generado el registro de entrada de datos en paralelo y con desplazamiento bidireccional. PREGUNTA PREG UNTA N°2
Utilizando IC 74193 y dispositivos de soporte se pide diseñar el circuito digital que permita generar los estados siguientes:
Y se repite secuencia periódicamente SOLUCION PREGUNTA PREG UNTA N°3
Se tiene un ADC de aproximaciones sucesivas, de bits; siendo el tamaño de salto de 10mV; el circuito dispone de un generador de reloj, cuya frecuencia de salida es . Determinar a) El tiempo de conversión, considerando considerando una entrada analógica (muestra de amplitud 8,35 voltios) b) En relación a la pregunta anterior determinar el valor digital obtenido obtenido después de la conversión. c) Si la salida digital es 0101101011 calcular el valor de la señal de entrada analógica y el tiempo de conversión empleado. SOLUCION
Sabemos que el tiempo de conversión en un ADC de aproximaciones sucesivas es fijo para cualquier valor de la entrada analógica. Básicamente este convertidor consta del siguiente diagrama de bloques básico.
2 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
Figura N° 2
Donde: DAC: Convertidor Convertidor digital-analógicol. digital-analógicol. SAR: Registro de aproximaciones sucesivas. COM: Comparador Considerando el tamaño de salto de 10 mV con un número de bits igual a 10, construimos una tabla para calcular el voltaje de salida en el DAC cuando se activa alguna de las 10 entradas los valores serán: N° Bit Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1
Valor de voltaje ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
Ahora, analizando analizando tenemos
Figura N° 3
3 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
La figura N°3 muestra el primer paso del ciclo de conversión con el . La salida del DAC es 10.28 V. Puesto que es mayor que la entrada de 8.35 V, la salida del comparador está a nivel BAJO, lo que hace que el MSB del SAR se ponga a 0.
Figura N° 4
La figura N°4 muestra el segundo paso del ciclo de conversión con el bit 2 8 igual a 1. La salida del DAC es 5.11 V. Puesto que es menor que la entrada de 8.35 V, la salida del comparador está a nivel ALTO, lo que hace que este bit se mantenga en el SAR.
Figura N° 5
La figura N°5 muestra el tercer paso del ciclo de conversión con el bit 2 7 igual a 1. La salida del DAC es 7.66 V, ya que los bits de entrada 2 8 y 27 están a 1; (5.11 V+2.55 V). Puesto que es menor que la entrada de 8.35 V, la salida del comparador está a nivel ALTO, lo que hace que este bit se mantenga en el SAR.
4 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
Figura N° 6
La figura N°6 muestra el cuarto paso del ciclo de conversión con el bit 2 6 igual a 1. La salida del DAC es 8.93 V, ya que los bits de entrada 2 8, 27 y 26 están a 1; (5.11 V+2.55 V+1.27 V). Puesto que es mayor que la entrada de 8.35 V, la salida del comparador está a nivel BAJO, lo que hace que este bit se ponga a cero en el SAR.
Figura N° 7
La figura N°7 muestra el quinto paso del ciclo de conversión con el bit 2 5 igual a 1. La salida del DAC es 8.29 V, ya que los bits de entrada 2 8, 27, 26 y 25 están a 1; (5.11 V+2.55 V+0.63 V). Puesto que es menor que la entrada de 8.35 V, la salida del comparador está a nivel ALTO, lo que hace que este bit se mantenga en el SAR.
Figura N° 8
5 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
La figura N°8 muestra el sexto paso del ciclo de conversión con el bit 2 4 igual a 1. La salida del DAC es 8.6 V, ya que los bits de entrada 2 8, 27, 2 6, 25 y 2 4 están a 1; (5.11 V+2.55 V+0.63 V+0.31 V). Puesto que es mayor que la entrada de 8.35 V, la salida del comparador está a nivel BAJO, lo que hace que este bit se ponga a 0 en el SAR.
Figura N° 9
La figura N°9 muestra el séptimo paso del ciclo de conversión con el bit 2 3 igual a 1. La salida del DAC es 8.44 V, ya que los bits de entrada 2 8, 2 7, 2 6, 2 5 y 23 están a 1; (5.11 V+2.55 V+0.63 V+0.15 V). Puesto que es mayor que la entrada de 8.35 V, la salida del comparador está a nivel BAJO, lo que hace que este bit se ponga a 0 en el SAR.
Figura N° 10
La figura N°10 muestra el octavo paso del ciclo de conversión con el bit 2 2 igual a 1. La salida del DAC es 8.36 V, ya que los bits de entrada 2 8, 2 7, 2 6, 2 5 y 22 están a 1; (5.11 V+2.55 V+0.63 V+0.07 V). Puesto que es mayor que la entrada de 8.35 V, la salida del comparador está a nivel BAJO, lo que hace que este bit se ponga a 0 en el SAR.
6 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
Figura N° 11
La figura N°11 muestra el noveno paso del ciclo de conversión con el bit 2 1 igual a 1. La salida del DAC es 8.32 V, ya que los bits de entrada 2 8, 27, 26, 25 y 21 están a 1; (5.11 V+2.55 V+0.63 V+0.03 V). Puesto que es menor que la entrada de 8.35 V, la salida del comparador está a nivel ALTO, lo que hace que este bit se mantenga en el SAR.
Figura N° 12
La figura N°12 muestra el décimo (último) paso del ciclo de conversión con el bit 2 0 igual a 1. La salida del DAC es 8.33 V, ya que los bits de entrada 2 8, 2 7, 26, 2 5, 2 1 y 20 están a 1; (5.11 V+2.55 V+0.63 V+0.03 V+0.01 V). Puesto que es menor que la entrada de 8.35 V, la salida del comparador está a nivel ALTO, lo que hace que este bit se mantenga en el SAR. De este modo, nuestro ADC por aproximaciones sucesivas ha cuantificado este valor analógico con el siguiente código: 0110100011 que equivale a 8.33 V, muy cercano al valor real. Como también podemos ver, se ha utilizado 10 ciclos de reloj (para nuestro caso de 1MHz), por ello el tiempo de conversión será de 10 s. Podemos ver también que este ADC empleará el mismo tiempo de conversión será el mismo para cualquier valor de entada analógica. Si la salida digital es 0101101011, el valor se la señal de entrada analógica cuantizada por el ADC será:
7 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
Entonces: a) El tiempo de conversión es 10
s,
para cualquier valor de entrada se señal
analógico.
b) Nuestro ADC por aproximaciones sucesivas ha cuantificado este valor analógico (8.35 V) con el siguiente código digital: 0110100011 . c) El valor de la señal de entrada analógica es de 7.2 V, y el tiempo de conversión es el mismo que en la pregunta a, es decir 10 μs.
PREGUNRA N°4 En el diseño de un contador síncrono se han obtenido las ecuaciones de estado de los Flip-Flops. ̅ ( ) ( ) ( ) ̅
a) Graficar en función al tiempo los estados . b) Determinar los estados binarios generados por el contador. SOLUCION
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0
1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0
1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1
0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0
0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0
1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0
1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1
1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1
1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0
1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1
1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0
8 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
Los estados binarios generados por el contador son: 15
10
0
5
12
13 1 6
11
4
PREGUNTA N°5
Un sistema digital presenta las características siguientes: ̅
Diseñar un circuito digital para ejecutar las funciones siguientes:
9 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
a) Escritura de datos a un banco de memorias usando IC 2114 en todas las direcciones del banco de memorias. b) Lectura de datos en el banco de memorias indicadas en el ítem anterior. Comparando los datos leídos con los datos escritos; si son diferentes mostrar en un led “rojo”que existe error en la memoria. c) Repetir el diseño indicado en a) y b) considerando datos . SOLUCION A15-A0
/16
ϕ7FFh MEMORIA
Sistema de Memorias
DE
D7-D0
/8
2kB ̅
2114 (4)
̅
ϕϕϕϕh
̅
a) Para escribir los datos: /10
BUS DE DIRECCIONES
Sistema de Memorias
A9-A0
A9-A0
2x2114
2x2114
1kB
1kB
D -D
D -D
8
BUS DE DATOS
Realizamos la tabla de estados: 0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0 1 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
HEX ϕϕϕϕh ΦFFh ΦFFh ΦFFh
Vemos que solo cambia el bit del bus de direcciones, por ello colocamos un inversor a esta entrada.de ese modo durante la primera etapa de carga del dato 00000000 en la primera memoria de1kB. Cuando pasa a 1, el inversor invierte este 1 a 0, activando la segunda memoria de 1kB. De este modo hemos escrito en los 4 214 el dato 00000000. b) Para leer los datos, colocamos a nuestra memoria en modo lectura para luego verificar si hay error en la memoria, haremos uso del comparadores de 4 bits (4 7485), de la siguiente manera, ya que en total disponemos de 16 pares de entradas
10 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
en los comparadores, utilizaremos las cuatro primeras para ingresar 4 bits de la memoria, a las otras cuatro entradas del mismo comparador se ingresan valores bajos. Lo mismo haremos con los otros 3 comparadores (7485). Utilizaremos compuertas OR para detectar si hay o si no hay error, a las puertas OR se ingresan las salidas de desigualdad de cada comparador, así cuando al menos un comparador (7485) indique alguna desigualdad este activará un led de color rojo que nos indicará que el dato almacenado no es igual al dato 00000000.
BUS DE DATOS DE 1kB
BUS DE DATOS DE 1kB
c) Será igual que en el caso anterior: A15-A0
/16
ϕ7FFh MEMORIA
Sistema de
/8
DE
D7-D0
2kB
Memorias ̅
2114 (4)
̅
ϕϕϕϕh
̅
/10
Sistema de Memorias
BUS DE DIRECCIONES
A9-A0
A9-A0
2x2114
2x2114
1kB
1kB
D -D
D -D
11 Flores Pacheco Alonso Mario 8
082646H BUS DE DATOS
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
Realizamos la tabla de estados: 0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0 1 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
HEX ϕϕϕϕh ΦFFh ΦFFh ΦFFh
Al igual que el caso anterior solo cambia , por ello a esta salida del sistema de memorias será quien controle a los chips de las memorias 2114. Ahora para verificar si el dato almacenado (11111111) es correcto, como en el caso anterior utilizaremos los comparadores. La disposición de la conexión es la misma que en el caso anterior, salvo que ahora en la otra entrada de cada comparador ingresaremos el valor 11111111.
BUS DE DATOS DE 1kB
BUS DE DATOS DE 1kB
PREGUNTA N°7
Realizar la investigación de: a) PLD (Dispositivos lógicos programables). b) Tipos de PLD (PLA, PAL, CPLD, FPGA, etc). c) Tecnologías de Fabricación. d) Progrmación VHDL. Ventajas, desventajas.
12 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
SOLUCION
(Programmable Logic Device - Dispositivo Lógico Programable). Un PLD es un componente electrónico empleado para la fabricación de circuitos digitales reconfigurables. A diferencia de las puertas lógicas, que tienen una función fija, un PLD tiene una función indefinida al momento de fabricarse. Antes de que un PLD pueda ser usado en un circuito, este puede ser programado, esto es, reconfigurado. Los PLD actuales emplean diferentes formas de almacenar datos: antifusibles de silicio, SRAM, celdas EPROM o EEPROM y memorias Flash. Antes de los PLD
Antes de que los dispositivos PLD fueran inventados, los chips de memorias ROM (PROM, EPROM, EEPROM) eran usados para crear funciones lógicas combinacionales arbitrarias de M entradas con N salidas, siendo este el mejor dispositivo lógico combinacional de propósito general disponible en la época. De todas maneras son circuitos más lentos que los circuitos lógicos dedicados, pueden no funcionar bien en transiciones lógicas asíncronas, consumen mucha energía, son más caros, etc. Tampoco disponen de registros de entrada o salida, así que no pueden ser usados de forma independiente para lógica secuencial (a menudo se empleaban registros TTL externos). En cuanto a los lenguajes de programación usados, PALASM y ABEL para los dispositivos de baja complejidad, mientras que Verilog y VHDL son lenguajes populares para dispositivos complejos. Se emplean dispositivos programadores (Ver programador (hardware)) para transferir los patrones de lógica booleana dentro de un dispositivo programable. Actualmente se emplean programadores universales que soportan diversas familias de dispositivos lógicos de diferentes fabricantes. Algunos formatos típicos usados para almacenar patrones de lógica booleana son JEDEC, Altera POF (Programmable Object File) o Xilinx BITstream. Los primeros PLD
Los primeros dispositivos lógicos programables fueron presentados por Motorola (el XC157 en 1969), Texas Instruments (el TMS2000 en 1970, basado en las memorias ROAM de solo lectura de IBM, podía ser programado alterando la capa de metal durante la producción del circuito integrado). Justamente esta empresa comenzó a llamarlos "dispositivos lógicos programables" (Programmable Logic Array). En 1973 National Semiconductor introdujo el DM7575, con 14 entradas y 8 salidas sin registros de memoria; este dispositivo fue la base del 82S100, producido por Signetics en 1975. La compañía General Electric fue la primera en crear un dispositivo PLD que podía ser
13 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
borrado: lanzó en 1974, junto con Monolithic Memories, el PALA (Programmable Associative Logic Array).
Dispositivos PLD destacados
* PAL (Programmable array logic) * GAL (Generic array logic) * CPLD * FPGA ASIC
ASIC significa Circuitos Integrados de Aplicación Específica y son dispositivos definibles por el usuario. Los ASICs, al contrario que otros dispositivos, pueden contener funciones analógicas, digitales, y combinaciones de ambas. En general, son programables mediante máscara y no programables por el usuario. Esto significa que los fabricantes configurarán el dispositivo según las especificaciones del usuario. Se usan para combinar una gran cantidad de funciones lógicas en un dispositivo. Sin embargo, estos dispositivos tienen un costo inicial alto, por lo tanto se usan principalmente cuando es necesario una gran cantidad. Estructura básica de un PLD
Un dispositivo programable por el usuario es aquel que contiene una arquitectura general pre-definida en la que el usuario puede programar el diseño final del dispositivo empleando un conjunto de herramientas de desarrollo. Las arquitecturas generales pueden variar pero normalmente consisten en una o más matrices de puertas AND y OR para implementar funciones lógicas. Muchos dispositivos también contienen combinaciones de flip-flops y latches que pueden usarse como elementos de almacenaje para entrada y salida de un dispositivo. Los dispositivos más complejos contienen macrocélulas. Las macrocélulas permite al usuario configurar el tipo de entradas y salidas necesarias en el diseño PROM
14 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
Las PROM son memorias programables de sólo lectura. Aunque el nombre no implica la lógica programable, las PROM, son de hecho lógicas. La arquitectura de la mayoría de las PROM consiste generalmente en un número fijo de términos AND que alimenta una matriz programable OR. Se usan principalmente para decodificar las combinaciones de entrada en funciones de salida. PAL
Las PAL son dispositivos de matriz programable. La arquitectura interna consiste en términos AND programables que alimentan términos OR fijos. Todas las entradas a la matriz pueden ser combinadas mediante AND entre si, pero los términos AND específicos se dedican a términos OR específicos. Las PAL tienen una arquitectura muy popular y son probablemente el tipo de dispositivo programable por usuario más empleado. Si un dispositivo contiene macrocélulas, comúnmente tendrá una arquitectura PAL. Las macrocélulas típicas pueden programarse como entradas,
15 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
salidas, o entrada/salida (e/s) usando una habilitación tri-estado. Normalmente tienen registros de salida que pueden usarse o no conjuntamente con el pin de e/s asociado. Otras macrocélulas tiene más de un registro, varios tipos de retroalimentación en las matrices, y ocasionalmente realimentación entre macrocélulas. GAL Las GAL son dispositivos de matriz lógica genérica. Están diseñados para emular muchas PAL pensadas para el uso de macrocélulas. Si un usuario tiene un diseño que se implementa usando varias PAL comunes, puede configurar varias de las mismas GAL para emular cada de uno de los otros dispositivos. Esto reducirá el número de dispositivos diferentes en existencia y aumenta la cantidad comprada. Comúnmente, una cantidad grande del mismo dispositivo debería rebajar el costo individual del dispositivo. Estos dispositivos también son eléctricamente borrables, lo que los hace muy útiles para los ingenieros de diseño.
PLA
Las PLA son matrices lógicas programables. Estos dispositivos contienen ambos términos AND y OR programables lo que permite a cualquier término AND alimentar cualquier término OR. Las PLA probablemente tienen la mayor flexibilidad frente a otros dispositivos con respecto a la lógica funcional. Normalmente poseen realimentación desde la matriz OR hacia la matriz AND que puede usarse para implementar máquinas de estado asíncronas. La mayoría de las máquinas de estado, sin embargo, se implementan como máquinas sincrónas. Con esta perspectiva, los fabricantes crearon un tipo de PLA denominado Secuencial (Sequencer) que posee registros de realimentación desde la salida de la matriz OR hacia la matriz AND. PLDs complejos Los PLDs complejos son lo que el nombre implica, Dispositivos Complejos de Lógica Programable. Se consideran PAL muy grandes que tienen algunas características de las PLA. La arquitectura básica es muy parecida a la PAL con la capacidad para aumentar la cantidad de términos AND para cualquier término OR fijo. Esto se puede realizar quitando términos AND adyacentes o empleando términos AND desde una matriz expandida. Esto permite que cualquier diseño pueda ser implementado dentro de estos dispositivos.
16 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
FPGA
Las FPGA son Campos de Matrices de Puertas Programables. Simplemente son matrices de puertas eléctricamente programables que contienen múltiples niveles de lógica. Las FPGA se caracterizan por altas densidades de puerta, alto rendimiento, un número grande de entradas y salidas definibles por el usuario, un esquema de interconexión flexible, y un entorno de diseño similar al de matriz de puertas. No están limitadas a la típica matriz AND-OR. Por contra, contienen una matriz interna configurable de relojes lógicos (CLBs) y un anillo de circunvalación de bloques de e/s (IOBs). Cada CLB contiene lógica programable combinacional y registros de almacenamiento. La sección de lógica combinacional es capaz de implementar cualquier función booleana de sus variables de entrada. Cada IOB puede programarse independientemente para ser una entrada, y salida con control tri-estado o un pin bidireccional. También contiene flip-flops que pueden usarse como buffers de entrada y salida. Los recursos de interconexión son una red de líneas que corren horizontalmente y verticalmente las filas y columnas entre el CLBS. Los interruptores programables conectan las entradas y salidas de IOBS y CLBS a líneas cercanas. Las líneas largas recorren la anchura o longitud entera del dispositivo, estableciendo intercambios para proporcionar una distribución de señales críticas con la mínima demora o distorsión. Los diseñadores que usan FPGAs pueden definir funciones lógicas en un circuito y revisar estas funciones como sea necesario. Así, las FPGAs pueden diseñarse y verificarse en unos días, a diferencia de las varias semanas necesarias para las matrices de puerta programables. PREGUNTA 8
Realizar la programación VHDL de los siguientes dispositivos. a) MUX 4/1. b) DEMUX 1/4. c) DECODER DECIMAL 3/8. d) SUMADOR TOTAL. e) COMPARADOR BINARIO.
17 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
f) FLIP FLOP JK, D. g) REGISTRO DE 4 BITS. h) CONTADOR ASINCRONO MODULO 16. SOLUCION
Para nuestra solución utilizaremos el método estructural en todos los casos:
a) Un MUX de 4 a 1 tiene lo siguiente:
Programa para el MUX de 4 a 1. HAREMOS LOS SIGUIENTES CAMBIOS: D1=IN1, D2=IN2, D3=IN3, D4=IN4, C1=IN5, C0=IN6, Y=OUT Library ieee; Use ieee.std_logic.1164.all; entity MUX_4_a_1 is port (IN1,IN2,IN3,IN4,IN5,IN6: in bit; OUT: out bit); end entity MUX_4_a_1; architecture LogicOperation of MUX_4_a_1 is //declaración de componentes para una puerta AND de 3 entradas// component AND_gate3 is port (A,B,C: in bit X: out bit); end component AND_gate3; //declaración de componentes para una puerta OR de 2 entradas// component OR_gate is port (A,B: in bit; X: out bit);
18 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
end component OR_gate:
//declaración de componentes para una entrada inversora// component Inverter is port (A: in bit; X: out bit); end component Inverter; signal G1OUT,G2OUT,G3OUT,G4OUT,G5OUT,G6OUT,G7OUT,G8OUT,G9OUT: bit; begin
G1: Inverter port map (A=>IN5, X=>G1OUT); G2: Interver port map (B=>IN6, X=>G2OUT); G3: AND_gate3 port map (A=>IN1, B=>G1OUT, C=>G2OUT, X=>G3OUT); G4: AND_gate3 port map (A=>IN2, B=>G1OUT, C=>IN6, X=>G4OUT); G5: AND_gate3 port map (A=>IN3, B=>IN5, C=>G2OUT, X=>G5OUT); G6: AND_gate3 port map (A=>IN4, B=>IN5, C=>IN6, X=>G6OUT); G7: OR_gate port map (A=>G3OUT, B=>G4OUT, X=>G7OUT); G8 OR_gate port map (A=>G5OUT, B=>G6OUT, X=>G8OUT); G9 OR_gate port map (A=>G7OUT, B=>G8OUT, X=>OUT); end architecture LogicOperation; b) Un DEMUX de 1 a 4 tiene lo siguiente:
Programa para el DEMUX de 1 a 4. HAREMOS LOS SIGUIENTES CAMBIOS: C1=IN1, C0=IN2, E=IN3, A=OUT1, B=OUT2, C=OUT3, D=OUT4 Puesto que el DEMUX tiene 4 salidas(a funciones), tenemos: Library ieee; Use ieee.std_logic.1164.all; entity DEMUX_1_a_4 is port (IN1,IN2,IN3: in bit; OUT1,OUT2,OUT3,OUT4: out bit); end entity DEMUX_4_a_1; architecture LogicOperation of DEMUX_1_a_4 is component AND_gate3 is port (A,B,C: in bit X: out bit); end component AND_gate3;
19 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
component Inverter is port (A: in bit; X: out bit); end component Inverter; signal G5OUT, G6OUT: bit; begin G6: Inverter port map (A=>IN1, X=>G6OUT); G5: Inverter port map (A=>IN2, X=>G5OUT); G1: AND_gate3 port map (A=>G6OUT, B=>G5OUT, C=>IN3, X=>OUT1); G2: AND_gate3 port map (A=>G6OUT, B=>IN2, C=>IN3, X=>OUT2); G3: AND_gate3 port map (A=>IN1, B=>G5OUT, C=>IN3, X=>OUT3); G4: AND_gate3 port map (A=>IN1, B=>IN2, C=>IN3, X=>OUT4); end architecture LogicOperation;
c) Un DECODER decimal 3/8 tiene lo siguiente.
Programa para el DECODER de 3 a 8. HAREMOS LOS SIGUIENTES CAMBIOS: A=IN1, B=IN2, C=IN3, Y0=OUT1, Y1=OUT2, Y2=OUT3, Y3=OUT4, Y4=OUT5, Y5=OUT6, Y6=OUT7, Y7=OUT8 Su programación es la siguiente: Library ieee; Use ieee.std_logic.1164.all; entity DECORER_3_a_8 is port (IN1,IN2,IN3: in bit; OUT1,OUT2,OUT3,OUT4,OUT5,OUT6,OUT7,OUT8: out bit);
20 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
end entity DECORER_3_a_8; architecture LogicOperation of DECORER_3_a_8 is component AND_gate3 is port (A,B,C: in bit X: out bit); end component AND_gate3; component Inverter is port (A: in bit; X: out bit); end component Inverter; signal G9OUT,G10OUT,G11OUT: bit; begin G9: Inverter port map (A=>IN1, X=>G9OUT); G10: Inverter port map (A=>IN2, X=>G10OUT); G11: Inverter port map (A=>IN3, X=>G11OUT); G1: AND_gate3 port map (A=>G9OUT, B=>G10OUT, C=>G11OUT, X=>OUT1); G2: AND_gate3 port map (A=>G9OUT, B=>G10OUT, C=>IN3, X=>OUT2); G3 AND_gate3 port map (A=>G9OUT, B=>IN2, C=>G11OUT, X=>OUT3); G4 AND_gate3 port map (A=>G9OUT, B=>IN2, C=>IN3, X=>OUT4); G5 AND_gate3 port map (A=>IN1, B=>G10OUT, C=>G11OUT, X=>OUT5); G6 AND_gate3 port map (A=>IN1, B=>G10OUT, C=>IN3, X=>OUT6); G7 AND_gate3 port map (A=>IN1, B=>IN2, C=>G11OUT, X=>OUT7); G8 AND_gate3 port map (A=>IN1, B=>IN2, C=>IN3, X=>OUT8); end architecture LogicOperation;
d) SUMADOR TOTAL. Recordemos: “Un sumador acepta dos bits de entrada y un acarreo de entrada, y genera una salida de suma y un acarreo de salida.”
() ( )
Library ieee; Use ieee.std_logic.1164.all; entity Sumador_completo is port (a, b, cin: in bit; s, cout: out bit); end entity Sumador_completo; architecture dataflow of Sumador_completo is begin
s<=a XOR B XOR cin; cout<=(a AND b) OR (a AND cin) OR (b AND cin);
21 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
end dataflow;
e) COMPARADOR BINARIO Un comparador binario de dos bits tiene lo siguiente:
Haremos ( ) ( ) ( )
Library ieee; Use ieee.std_logic.1164.all; entity COMPARADOR_2_BITS is port (A1,A0,B1,B0: in bit; OUT1,OUT2,OUT3: out bit); end entity DECORER_3_a_8; architecture LogicOperation of COMPARADOR_2_BITS is component AND_gate is port (A,B: in bit; X: out bit); end component AND_gate; component AND_gate3 is port (A,B,C: in bit; X: out bit); end component AND_gate4; component AND_gate4 is port (A,B,C,D: in bit; X: out bit);
22 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
end component AND_gate4; component OR_gate is port (A,B: in bit; X: out bit): end component OR_gate; component Inverter is port (A: in bit; X: out bit); end component Inverter; signal
G1OUT,G2OUT,G3OUT,G4OUT,G5OUT,G6OUT,G7OUT,G8OUT,G9OUT,G10OUT, G11OUT,G12OUT,G13OUT,G14OUT,G15OUT,G16OUT,G17OUT,G18OUT,G19OUT, G20OUT,G21OUT: bit; begin
G1: Inverter port map (A=>IN1, X=>G1OUT); G2: Inverter port map (A=>IN2, X=>G2OUT); G3: Inverter port map (A=>IN3, X=>G3OUT); G4: Inverter port map (A=>IN4, X=>G4OUT); G5: AND_gate port map (A=>G1OUT, B=>IN3, X=>G5OUT); G6: AND_gate3 port map (A=>G1OUT, B=>G2OUT, C=>IN4, X=>G6OUT); G7: AND_gate3 port map (A=>G9OUT, B=>IN3, C=>IN4, X=>G7OUT); G8: AND_gate port map (A=>IN1, B=>G3OUT, X=>G8OUT); G9: AND_gate3 port map (A=>IN2, B=>G3OUT, C=>G4OUT, X=>G9OUT); G10: AND_gate3 port map (A=>IN1, B=>IN2, C=>G4OUT, X=>G10OUT); G11: AND_gate4 port map (A=>G1OUT, B=>G2OUT, C=>G3OUT, D=>G4OUT, X=>OUT7); G12: AND_gate4 port map (A=>G1OUT, B=>IN2, C=>G3OUT, D=>IN4, X=>G12OUT); G13: AND_gate4 port map (A=>IN1, B=>G2OUT, C=>IN3, D=>G4OUT, X=>G13OUT); G14: AND_gate4 port map (A=>IN1, B=>IN2, C=>IN3, D=>IN4, X=>G14OUT); G15: OR_gate port map (A=>G5OUT, B=>G6OUT, X=>G15OUT); G16: OR_gate port map (A=>G8OUT, B=>G9OUT, X=>G16OUT); G17: OR_gate port map (A=>G11OUT, B=>G12OUT, X=>G17OUT); G18: OR_gate port map (A=>G13OUT, B=>G14OUT, X=>G18OUT); G19: OR_gate port map (A=>G15OUT, B=>G7OUT, X=>OUT1); G20: OR_gate port map (A=>G16OUT, B=>G10OUT, X=>OUT2); G21: OR_gate port map (A=>G17OUT, B=>G18OUT, X=>OUT3); end architecture LogicOperation; f) FLIP-FLOP JK Library ieee; Use ieee.std_logic.1164.all; entity Flip_Flop_JK is port (sJ, sK, clock: in std_logic; : out std_logic; end Flip_Flop_JK; architecture Operation of Flip_Flop_JK is
23 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
begin process (sJ, sK, clock ) begin if (event ’ clock and clock=“1”) then; if (sJ=“0” and sK= “0”) then ; ; elsif (sJ=“0” and sK=“1”) then ; ; if (event ’ clock and clock=“1”) then; if (sJ=“1” and sK=“0”) then ; ; else ; ; end if; end process; end Operation;
FLIP FLOP D Library ieee; Use ieee.std_logic.1164.all; entity Flip_Flop_D is port ( sD, CLK: in std_logic; sQ: out std_logic); end Flip_Flop_D; architecture Operation of Flip_Flop_D is begin process (CLK) begin if (CLK´ event and CLK=’1’) then sQ<=sD; end if; end process; end Operation; g) REGISTRO DE 4BITS Library ieee; Use ieee.std_logic.1164.all; entity REGISTER_4 is port (D:in stf_logic_vector (0 downto 3); Q: out std_logic_vector (0 downto 3); CLK: in std_logic; end REGISTER_4; architecture Operation of REGISTER_4 is begin process (CLK) begin if (event ’ clock and clock=“1”) then;
24 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
;
end if; end process; end Operation;
h) CONTADOR ASÍNCRONO DE MODULO 16 Library ieee; Use ieee.std_logic.1164.all; entity COUNTER_16 is port (Q:out std_logic_vector (0 downto 15) CLK: in std_logic;) end COUNTER_16; architecture Operation of COUNTER_16 is begin process (CLK) begin if (event ’ clock an clock=“1”) then; end if ; end process; end Operation;
PREGUNTA N°9
Dado el circuito de la figura, formado por un registro de 4 bits y una ROM de 16x3, se pide responder lo siguiente: a) El circuito representado, ¿Es una máquina de Mealy o de Moore? Discuta brevemente en qué te basas para realizar tu afirmación.
25 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
b) Rellena la tabla de transiciones de estados del circuito, explica que función realiza el circuito y defínelo. Representa el funcionamiento mediante su diagrama de estados. c) Explica la secuencia de señales que activarías para hacer que el sistema comience a operar desde el estado 0 y evolucione hasta el estado 5, dibujando la forma de onda de las señales del circuito. Incluido el reloj. ¿Cuál es el mínimo número de ciclos de reloj que se necesitarían? d) Materializa el circuito mediante el número adecuado de biestables de tipo SR y puertas lógicas básicas. e) Materializa el circuito mediante el tipo de biestables y módulos y puertas básicas combinacionales que prefieras.
SOLUCION
a) Podemos ver que este circuito únicamente tiene 1 entrada independiente (SB), las otras 3 son de la ROM de 16x3. Además notaremos que este circuito realiza un cambio dependiendo del valor de SB. Debido a que este cambio es dependiente de una variable ajena a los estados internos del circuito, puedo decir que se trata de una máquina de Mealy. b) Tenemos la siguiente tabla de transiciones:
000 001 010 011 100
SB=”0”
SB=”1”
001 011 100 101 110
110 000 111 001 010
26 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES 101 110 111
111 000 010
2010-B
011 100 101
Tal y como lo sospechaba, se trata de un contador, en este caso un escalador . La señal de control es la entrada SB. Representando a cada estado por la simbología utilizada en clases, es decir, por ejemplo , y llevándolos al diagrama de grafos siguiente tenemos: 0
0
1
1
1
0
0 1
1 1 1
0
0
1
0
0 c) Viendo el diagrama de grafos del contador, vemos que el camino más corto que realiza lo pedido (ir de 000 a 101) es la secuencia , donde en todos los casos se requiere que por SB ingrese un nivel bajo.
PREGUNTA N°10 Para las tablas de estados mostrados, determinar: i. El tipo de FSM que corresponde. ii. Desarrollar el grafo correspondiente. iii. Diseñar los circuitos FSM, en cada caso, utilizando: a) Flip Flpos JK. b) Flip Flops T.
27 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
SOLUCION Para FSM 1
Es una máquina de Mealy, tenemos el siguiente diagrama de grafo. 0/0 X/0 0/0 1/1 1/1 0/0 1/0
Dando un código binario a cada estado, tenemos:
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
X 0 1 0 1 0 1 0 1
Y 0 0 0 1 0 0 0 1
0 0 1 0 X X X X
X X X X 1 0 0 1
1 1 X X 1 1 X X
X X 1 1 X X 1 0
0 0 1 0 1 0 0 1
1 1 1 1 1 1 1 0
0 0 1 0 0 1 1 0
1 1 0 0 1 1 0 1
28 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
Para FSM 2
Es una máquina de Mealy, tenemos el siguiente diagrama de grafo.
Dando un código binario a cada estado, tenemos:
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Y 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0
0 1 0 1 1 0 1 1 X X X X X X X X
X X X X X X X X 1 0 0 0 0 0 1 0
0 1 0 1 X X X X 0 0 1 1 X X X X
X X X X 0 0 0 0 X X X X 0 0 1 0
0 1 0 1 1 0 1 1 1 0 0 0 0 0 1 0
0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0
0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1
0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1
29 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
Para FSM 3
Es una máquina de Mealy, tenemos el siguiente diagrama de grafo.
Dando un código binario a cada estado, tenemos: 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Y 0 0 0 0 1 1 0 0 1 0 X X X X X
0 0 0 0 0 0 0 0 X X X X X X X
X X X X X X X X 1 0 0 0 0 0 1
1 0 0 0 X X X X 1 0 X X X X X
X X X X 0 0 0 1 X X X X X X X
0 0 X X 1 0 X X 0 0 X X X X X
30 Flores Pacheco Alonso Mario
X X 0 1 X X 0 0 X X X X X X X
0 0 0 0 0 0 0 0 1 1 X X X X X
1 0 0 0 0 0 0 1 1 0 X X X X X
0 0 0 1 1 0 0 0 0 0 X X X X X
0 0 0 0 0 0 0 0 0 0 X X X X X
1 0 0 0 1 1 1 0 1 0 X X X X X
0 0 1 0 1 0 1 1 0 0 X X X X X
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES 1
1
1
1
X
X
0
X
X
X
X
X
X
X
2010-B X
X
X
Para FSM 4
Es una máquina de Mealy, tenemos el siguiente diagrama de grafo.
Dando un código binario a cada estado, tenemos:
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
Y 0 0 0 1 0 0 0 1
0 0 1 0 X X X X
X X X X 1 0 0 1
1 1 X X 1 1 X X
X X 1 1 X X 1 0
0 0 1 0 1 0 0 1
1 1 1 1 1 1 1 0
0 0 1 0 0 1 1 0
1 1 0 0 1 1 0 1
31 Flores Pacheco Alonso Mario
082646H
TAREA DOMICILIARIA N°2 DE SISTEMAS DIGITALES
2010-B
Para FSM 5
Es una máquina de Mealy, tenemos el siguiente diagrama de grafo.
Dando un código binario a cada estado, tenemos:
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
Y 1 0 0 0 0 1 0 0
1 0 1 0 X X X X
X X X X 0 1 1 0
1 1 X X 0 0 X X
X X 0 0 X X 1 1
1 0 1 0 1 1 1 0
1 1 0 0 0 0 1 1
1 0 1 0 1 0 0 1
1 1 1 1 0 0 0 0
32 Flores Pacheco Alonso Mario
082646H