Sunteți pe pagina 1din 124

14/09/2010

ELECTRÓNICA DIGITAL

Análisis y Síntesis

INGENIERÍA ELECTROMECÁNICA

Curso de Electrónica II – Técnicas Digitales 2010

IE. MSc. José Armando Becerra Vargas


Profesor Asistente UFPS

INTRODUCCIÓN
Generalidades:

Actualmente el mundo está viviendo la era digital, era donde a través de los
avances de la ciencia, las nuevas tecnologías de la información y la
comunicación “TICs”, etc., han dejado de lado los componentes sólidos,
tangibles de la era industrial, para dar paso a los bits y los bytes, elementos
intangibles de la nueva era. Las grandes industrias como General Motors,
Boeing, etc. Quedan atrás con sus grandes y sólidas construcciones, para
dar paso a empresas como Microsoft, entre otras, las cuales están llamadas
a revolucionar el mundo moderno, con sus estructuras virtuales y canales
de comunicación.

La Microelectrónica se puede definir como el conjunto de ciencias y técnicas


con las que se realizan y fabrican circuitos electrónicos, sobre una pastilla
de un semiconductor, lo que formará un circuito integrado (IC), éste a su
vez permitirá el desarrollo de grandes sistemas que soportarán las
plataformas de la nueva era.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

1
14/09/2010

OBJETIVOS DEL CURSO


General: Desarrollar en el estudiante capacidades y destrezas para
analizar y sintetizar sistemas digitales combinacionales y secuenciales,
utilizando métodos tradicionales como el álgebra de BOOLE, los mapas de
KARNAUGH, Maquinas de estado y herramientas EDA.

Específicos:
1. Hacer un breve repaso sobre los sistemas de numeración y las
operaciones básicas que los caracterizan.
2. Estudiar y analizar las compuertas lógicas. (AND, OR, NOT).
3. Reconocer e interpretar los términos técnicos utilizados en el estudio de
los sistemas digitales.
4. Desarrollar habilidades para el análisis y síntesis de sistemas digitales
combinacionales, utilizando las herramientas algebraicas y
computacionales.
5. Adquirir habilidades y capacidades cognitivas para analizar y diseñar
sistemas MSI, LSI y VLSI. Lógica combinacional modular.
6. Estudiar e interpretar el lenguaje de descripción de hardware HDL.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

OBJETIVOS DEL CURSO


Específicos:
7. Desarrollar talleres de aprendizaje que refuercen los temas vistos en
clase.
8. Permitir al estudiante un ambiente propicio para el trabajo en grupo, a
través de los talleres y prácticas de laboratorio.
9. Desarrollar habilidades para el análisis y diseño de sistemas digitales
secuenciales, utilizando herramientas algebraicas y computacionales.
10.Adquirir habilidades y capacidades cognitivas para el análisis y diseño
de sistemas secuenciales MSI, LSI y VLSI.
11.Estudiar y analizar el diseño de máquinas de estado MOORE y MEALY.
12.Adquirir habilidades y destrezas en el uso de herramientas
computacionales como ISE FOUNDATION de XILINX y ELECTRONIC
WORK BENCH.
13.Desarrollar en el estudiante un espíritu crítico, dialógico, reflexivo y
participativo, que propicie un ambiente bidireccional para el desarrollo
de nuevas ideas respecto a la formación integral y a su vez sirva de
retroalimentación para el mejoramiento continuo del quehacer docente.
Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

2
14/09/2010

CAPÍTULO I

SISTEMAS
COMBINACIONALES Y
LÓGICA COMBINACIONAL

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

SISTEMAS COMBINACIONALES
Definición:

 Un sistema combinacional es aquel cuyas salidas en un instante


dado vienen dadas por la combinación de sus entradas en ese
mismo instante.
 En consecuencia un circuito combinacional no puede tener
bucles cerrados o realimentaciones (porque si hay bucles, la
entrada se realimenta o cambia durante el circuito).
 Representación:

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

3
14/09/2010

SISTEMAS COMBINACIONALES
Tópicos de estudio:
Para el estudio de los sistemas combinacionales, se van a tener en
cuenta los siguientes tópicos:
 Sistemas de numeración.
 Códigos numéricos.
 Lógica de conmutadores.
 Modelos lógicos.
 Tablas de verdad.
 Formas canónicas.
 Sistemas modulares (MSI y LSI)
 Análisis y síntesis de los sistemas combinacionales.
 Diseño con multiplexores y codificadores.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

SISTEMAS DE NUMERACIÓN

¿QUÉ ES UN SISTEMA DE NUMERACIÓN?

Cualquier sistema consta fundamentalmente de una serie de


elementos que lo conforman, una serie de reglas que permite
establecer operaciones y relaciones entre tales elementos. Por ello,
puede decirse que un sistema de numeración es el conjunto de
elementos (símbolos o números), operaciones y relaciones que por
intermedio de reglas propias permite establecer el papel de tales
relaciones y operaciones.

Existe un sinnúmero de sistemas numéricos, los más comunes son:

• Sistema Decimal: Base diez (10)


• Sistema Binario: Base dos (2)
• Sistema Octal: Base ocho (8)
• Sistema Hexadecimal: Base dieciséis (16)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

4
14/09/2010

SISTEMAS NUMÉRICOS

Sistema decimal
Es el más utilizado, cuenta con diez elementos: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9.
Las operaciones que en el se pueden dar son las aritméticas (suma, resta,
multiplicación, división, potenciación, etc.) y lógicas (Unión - disyunción,
Intersección - conjunción, negación, Diferencia, Complemento, etc.). Las
relaciones entre los números del sistema decimal son mayor que, menor
que, igual y a nivel lógico son pertenencia y contenencia.

Un número del sistema decimal tiene la siguiente representación:

( N )10 an 10 n an 1 10 n 1
an 2 10 n 2
a0 10 0 a 1 10 1
a k 10 k

Siendo: N  Número decimal.


ai  Número relativo que ocupa la i-esima posición
n  Número de dígitos que ocupa la parte entera menos uno
k  Número de dígitos de la parte fraccionaria.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

SISTEMAS NUMÉRICOS

Sistema binario
Definición: El sistema de numeración Binario es el conjunto de elementos
formado por el 0 y el 1, con operaciones aritméticas (suma, resta,
multiplicación) y lógicas (OR, AND y NOT) y además sus propias relaciones
que por intermedio de reglas propias permite establecer el papel de tales
relaciones y operaciones entre sus dos elementos.
Suma: Se realiza exactamente igual que en el sistema de numeración
decimal teniendo en cuenta que si se excede la base se lleva en la siguiente
cifra una unidad de orden superior. Veamos el siguiente ejemplo:

Ejemplo: Realizar la suma aritmética de los siguientes números binarios:

0110 Carry
1011
0011
1110 Resultado

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

5
14/09/2010

SISTEMAS NUMÉRICOS

Sistema binario

Resta: Se realiza exactamente igual que en el sistema de numeración


decimal teniendo en cuenta que si se excede la base se lleva en la siguiente
cifra una unidad de orden superior. Veamos algunos ejemplos:
Ejemplos: Resolver la resta entre los siguientes números binarios:

(111101)2
- (110010)2
(001011)2

Restar los siguientes números binarios fraccionarios:


(1011,111)2
-(0010,010)2
(1001,101)2

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

SISTEMAS NUMÉRICOS

Sistema binario
La Multiplicación y la división: Se realizan de forma idéntica que en el
sistema decimal, por ejemplo la multiplicación se realiza multiplicando cada
uno de los bits del multiplicando por el bit menos significativo del
multiplicador, luego por el siguiente y así sucesivamente, teniendo en cuenta
que el cada resultado se va corriendo una posición hacia la izquierda para
finalmente realizar la suma entre ellos.

Existen algoritmos para desarrollar las operaciones de multiplicación y


división que serán vistos más adelante.

Ejemplos: Resolver la multiplicación entre los siguientes números binarios:


101
x 011
101
101
000
01111
Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

6
14/09/2010

SISTEMAS NUMÉRICOS

Sistema binario
El complemento a uno y a dos: Para desarrollar apropiadamente la
operación de resta se hace uso de la operación de complemento a
uno o de complemento a dos. En el primer caso se denomina
complemento a la base menos uno y en el segundo complemento a
la base.

Complemento a uno: Sencillamente se hace el complemento dígito a


dígito.

Ejemplos:

1. (110111)2 el complemento a uno será 001000


2. (110010)2 el complemento a uno será 001101
3. (000101)2 el complemento a uno será 111010

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

SISTEMAS NUMÉRICOS

Sistema binario

Complemento a dos: Se realiza el complemento a uno del número y


se le suma uno al bit menos significativo.

Este complemento solo se emplea en los números negativos. Para


los números positivos el complemento a dos es el mismo número.

Ejemplos:

Obtener el complemento a dos del siguiente número (110111)2

El complemento a uno será 001000, ahora 001000 + 1 = 01001

Luego el complemento a dos del número dado es: 001001

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

7
14/09/2010

SISTEMAS NUMÉRICOS

Representación:
Es claro que un número en cualquier base se representa por la posición de
sus cifras respectivas.
Ejemplo sistema decimal:
1265 = 1000 + 200 + 60 + 5
= 1 × 103 + 2 × 102 + 6 × 101 + 5 × 100

El peso es 10 elevado a la posición que ocupe la cifra de derecha a izquierda.


La idea funciona también para números con decimales, si se considera que
éstos tienen posiciones negativas.

3,75 = 3 + 0,7 + 0,05


= 3 × 100 + 7 × 10−1 + 5 × 10−2

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

SISTEMAS NUMÉRICOS

Representación:
Lo anterior se resume en la fórmula siguiente:
i
Valor di 10 i
i
Siendo di el dígito que está en la posición i.

Para generalizar la fórmula a cualquier base, ésta se escribe de la siguiente


manera:
i
Valor di B i
i

Siendo B la base de numeración.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

8
14/09/2010

SISTEMAS NUMÉRICOS

Representación:

Escribir una cantidad N en una base B

Algoritmo para encontrar la secuencia de dígitos di

1. Comenzar con i = 0, y con D = N.


2. Se divide D entre B, y se obtiene:
a. Un cociente Ci
b. Un resto, que será la cifra di del resultado.
3. Si el cociente Ci es cero, el proceso ha terminado.
4. Si no, hacer D = Ci , i = i + 1 y volver al paso 2.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

LÓGICA COMBINACIONAL

Sistema binario en electrónica digital


Un sistema binario se caracteriza por tener dos valores posibles
que, en términos de voltaje, se corresponden a dos valores de
tensión, los que se representan numéricamente con 1 para Vcc y
0 para GND.
Generalmente, la lógica positiva hace corresponder un valor de
tensión alto al 1 y un valor de tensión bajo al 0 (y viceversa para
la lógica negativa):

0  VL (voltaje bajo)
Lógica Positiva
1  VH (voltaje alto)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

9
14/09/2010

LÓGICA COMBINACIONAL

Números binarios
N ú m e r o d e ci m a l N ú m e ro b in a r io
La correspondencia entre los 0 00 00
primeros 16 números decimales 1 00 01
y binarios se muestra en la 2 00 10
siguiente tabla:
3 00 11
4 01 00
5 01 01
6 01 10
7 01 11
Mientras más dígitos tiene un 8 10 00
sistema, más compacta es su 9 10 01
notación. Así, los dígitos binarios 10 10 10
tienden a ser más largos (en un 11 10 11

factor log210=2,3222) que su 12 11 00

correspondiente notación decimal. 13 11 01


14 11 10
15 11 11

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

LÓGICA COMBINACIONAL

Números binarios

Por qué usar la representación binaria


Las principales razones por las cuales utilizar sistemas de
representación binaria son:

• Los sistemas de procesamiento de información se


construyen con base en conmutadores;

• Los procesos de toma de decisión, en un sistema


digital, son binarios; y

• Las señales binarias son más confiables que las que


tienen más niveles de cuantificación.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

10
14/09/2010

LÓGICA COMBINACIONAL

Conmutadores

Supóngase un sistema de
iluminación basado en dos
interruptores o conmutadores
(como el que existe en la
parte inferior y superior de
una escalera):

S1 = 1 (conmutador 1 en posición 1)
S1 = 0 (conmutador 1 en posición 0) A = 0 (Lámpara apagada)
S2 = 1 (conmutador 2 en posición 1) A = 1 (Lámpara encendida)
S2 = 0 (conmutador 2 en posición 0)

Condiciones o premisas Acciones o Conclusiones

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

LÓGICA COMBINACIONAL

Toma de decisiones
Gran parte de los procesos de decisión tienen carácter binario

SI VERDADERO CORRECTO
Respuestas etc .
NO FALSO INCORRECTO

Un sistema puede
caracterizarse Si (S1=1 y S2=0) o (S1=0 y S2=1),
lingüísticamente como: entonces B=1; caso contrario, B=0.

Confiabilidad
Las señales binarias son mucho más confiables para ser
transmitidas entre dos puntos distantes. Al usar sólo dos niveles de
voltaje para representar un dígito, el sistema es más inmune a la
presencia de ruidos.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

11
14/09/2010

LÓGICA COMBINACIONAL

Definición de modelos lógicos


Una descripción abstracta de un sistema digital, expresado con
enunciados lógicos formales, se denomina “DISEÑO LÓGICO”.

Los símbolos más


comunes son:

Usando estos símbolos, el circuito de encendido de la lámpara


puede representarse como:

S1 0 S2 1 S1 1 S2 0 B 1
ó
S1 1 S2 1 S1 0 S2 0 B 0

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

LÓGICA COMBINACIONAL

Definición de modelos lógicos


Usando este tipo de representación, podría definirse la operación de
un sumador binario como:

o, en forma simbólica (para el caso de la “suma”), por:

x 0 y 1 x 1 y 0 Suma 1
ó
x 1 y 1 x 0 y 0 Suma 0

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

12
14/09/2010

LÓGICA COMBINACIONAL

Definición de modelos lógicos

El comportamiento de un sistema combinacional puede expresarse


formalmente como z=f(x), donde z representa la salida del sistema
y x la entrada (para un sistema de una entrada y una salida).

En caso de sistemas multivariables (varias entradas y salidas), x


será un vector de entradas y habrá una función asociada a cada
salida. Estas funciones también suelen denominarse “funciones
booleanas”, ya que responden al “álgebra de Boole”.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

LÓGICA COMBINACIONAL

Definición de modelos lógicos

Para el caso del circuito de la lámpara:

Puede apreciarse que el


comportamiento de un
circuito combinacional
puede representarse
también a través de una
tabla conocida como
“tabla de verdad”.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

13
14/09/2010

Tabla Comparativa de los sistemas de numeración

Binario Decimal Hexadec Binario Decimal Hexadec

0000 0 0 1000 8 8

0001 1 1 1001 9 9

0010 2 2 1010 10 A

0011 3 3 1011 11 B

0100 4 4 1100 12 C

0101 5 5 1101 13 D

0110 6 6 1110 14 E

0111 7 7 1111 15 F

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DEFINICIONES BÁSICAS

Términos canónicos: Se llama término canónico de una función lógica a


todo producto o suma en el cual aparecen todas las variables de que
depende esa función. A los términos productos se les llama productos
canónicos y a los términos sumas, se les llama sumas canónicas.

Formas canónicas: Cuando una función se expresa como suma de


productos canónicos o como producto de sumas canónicas, se dice que dicha
función se encuentra expresada en su forma canónica.

Formas equivalentes: Dos expresiones booleanas, F1 y F2, son


equivalentes, es decir F1 = F2, sí y sólo sí describen la misma función de
conmutación. Se comprobará que formas booleanas diferentes pero
equivalentes, conducirán a circuitos de conmutación distintos aunque
realicen la misma función.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

14
14/09/2010

DEFINICIONES BÁSICAS
Tabla de verdad: La tabla de verdad de una función lógica es una forma
de representación de la misma, en la que se indica el valor 0 ó 1 que toma
la función para cada una de las combinaciones de valores de las variables
de dicha función

Ejemplo:
abc F
0 0 0 0 0
1 0 0 1 1
2 0 1 0 1
3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1

En la columna de la izquierda se han ido numerando las combinaciones


posibles de valores que siempre es igual a 2 elevado al número de variables
(n), es decir 2n, en nuestro caso 23 = 8.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DEDUCCIÓN DE LA FORMA
CANÓNICA

De la tabla de verdad de una función lógica, es fácil deducir las


formas canónicas de dicha función.

Así pues, si se quiere que la función F del ejemplo esté expresada


como suma de productos canónicos debe asegurarse que para cada
una de las combinaciones de la tabla de verdad en que la función
valga 1 se obliga a que el término canónico valga también 1. Por
ejemplo para la combinación a=0, b=0 y c=1 de la tabla de
verdad se ve que la función vale 1 así pues el término canónico será
a„· b„· c , se debe entender que a' significa que la variable a está
negada.

Obsérvese que el término a„· b„· c vale 1 para la combinación 0 0 1


y sólo para esa combinación, cualquier otra combinación haría que
el producto canónico a„· b„· c sea 0.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

15
14/09/2010

SUMA DE PRODUCTOS
Construyendo la función con todos sus términos se llega a la conclusión que
para:

La combinación 001 el término será: a‟· b‟· c


La combinación 010 el término será: a‟· b · c'
La combinación 100 el término será: a · b‟· c‟
La combinación 101 el término será: a · b‟· c
La combinación 110 el término será: a · b · c‟
La combinación 111 el término será: a·b·c

Con lo que la función F correspondiente a la tabla de verdad anterior será:

F = a‘· b‘· c + a‘· b · c' + a · b‘· c'+ a · b‘· c + a · b · c' + a · b · c

Obsérvese que existen seis términos que se corresponden con los seis 1 de
la función.

Otra forma de expresarla es F = ( 1, 2, 4, 5, 6, 7 ) significa suma, F


sumatoria de términos canónicos en que la función vale 1 y los números
entre paréntesis, las posiciones en la tabla de dichos unos „1‟.
Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

PRODUCTO DE SUMAS
También se puede realizar la función como producto de sumas canónicas, en
este caso se tienen en cuenta los „0‟ de la función; así para la combinación
000 y 011 del ejemplo, la función vale 0. Por tanto el término
correspondiente a la combinación 000 será (a + b + c), obsérvese que este
término sólo vale 0 para la combinación 000, para cualquier otra vale 1. Del
mismo modo para la combinación 011 el término será (a + b' + c'),
obsérvese también que este término sólo vale 0 para la combinación 011,
cualquier otra combinación hará que dicho término valga 1.

La función expresada como producto de sumas canónicas, quedará así:

F = ( a + b + c ) · ( a + b' + c' )

Obsérvese que existen dos términos que corresponden con los dos 0 de la
función.

Otra forma de expresarla es F = ( 0, 3 ) significa producto F Producto


de términos canónicos en que la función vale 0 y los números entre
paréntesis, las posiciones en la tabla de dichos ceros „0‟.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

16
14/09/2010

CAPÍTULO II

VHDL COMO HERRAMIENTA


DE DESCRIPCIÓN DE
HARDWARE

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Introducción:

El VHDL se origina a través de un doble acrónimo.


VHSIC: Very High Speed Integrated Circuit
Hardware
Description
Languaje

El lenguaje VHDL nació para dar respuesta a numerosos problemas


planteados en el desarrollo y documentación de hardware digital.
La documentación requerida para describir un sistema electrónico
puede ocupar miles de páginas y suele ser muy costoso reemplazar
la información contenida cuando la tecnología o las especificaciones
cambian. Un lenguaje de descripción adecuado resuelve el
problema ya que la "documentación" es ejecutable.
Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

17
14/09/2010

VHDL
Reseña histórica:

VHDL se ha convertido en un estándar, lo cual ya es una ventaja,


que además reúne otras características que lo hacen
particularmente atrayente. Es un lenguaje independiente de la
tecnología, no esta ligado a un determinado simulador y no
requiere una metodología precisa de diseño. VHDL permite
implementar nuevas tecnologías en diseños existentes.

El proyecto se inicia a principios de la década de los 80‟s, el primer


borrador vio la luz en agosto de 1985 diseñado por Intermetrics,
IBM y Texas Instruments e impulsado por el Departamento de
Defensa de los Estados Unidos (DoD). En diciembre de 1987 fue
aprobado como estándar del IEEE y posteriormente, en 1993, fue
revisado y registrado como norma IEEE Std 1076-1993.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Características:
1. Fue diseñado para el modelado y simulación de sistemas digitales. La
concurrencia, temporización y señales de reloj pueden ser modeladas.
2. Actualmente se usa en síntesis de hardware.
3. Fue desarrollado a partir del ADA.
4. Permite diseñar, modelar y comprobar un sistema desde un nivel alto de
abstracción hasta el nivel estructural de definición de puertas.
5. Los circuitos descritos a partir de VHDL pueden ser sintetizados por
diferentes herramientas → portabilidad.
6. Permite reutilización del código (se puede utilizar en distintas
aplicaciones).
7. Puede utilizarse para implementar hardware usando diferentes
tecnologías sin necesidad de rediseñar los circuitos.
8. Se basa en un estándar (IEEE Std 1076-1987, IEEE Std 1076-1993).
9. Permite realizar un diseño jerárquico.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

18
14/09/2010

VHDL
Su Estructura:

Library declaration, e.g. IEEE library

Entity declaration
Descripción

Architecture body

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Su Estructura:
Las Librerías: Contienen los elementos estándar de diseño, toda descripción
en VHDL, debe tener al menos la librería 1164 estándar la cual se declara
de la siguiente manera:
Libray ieee;
Use ieee.std_logic_1164.all;
La entidad: El bloque se conoce en VHDL como ENTITY y se declara en
primer lugar. Una ENTIDAD indica las señales que entran al circuito y las
que salen, es decir, declara la relación del circuito con el mundo exterior.
La declaración de la entidad se hace de la siguiente manera:

A AND1 ENTITY
IN1 Entity MUX is
OR Port( A : In std_logic;
E F B : In std_logic;
AND2 E : In std_logic;
B F : Out std_logic);
IN2
MUX End MUX;

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

19
14/09/2010

VHDL
Su Estructura: Cláusulas library y use

 El paquete de definiciones está contenido en una biblioteca


llamada IEEE. Es necesario hacer referencia tanto a la biblioteca
como al paquete, como se muestra en el diagrama. Se deben
usar estas líneas de código antes de describir las entidades
utilizadas en el standard logic.

library IEEE; --hace visible la biblioteca


use IEEE.Std.Logic_1164.all; --hace visible todo el contenido del paquete

entity MVLS is
port (A,B: in std_ulogic;
Z: out std_ulogic);
end MVLS;

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Su Estructura:
La entidad: Existen algunos elementos que deben considerarse a la hora de
declarar la entidad; el MODO y TIPO de los puertos.

a. MODO: El MODO del puerto especifica si la señal entra, sale, se


realimenta hacia el interior del circuito o es bidireccional. Esto es:
 IN  Datos entran, pero no salen
 OUT  Datos salen y no son usados internamente
 INOUT  Datos son bidireccionales
 BUFFER  Datos salen y son realimentados hacia el sistema

b. TIPO: VHDL es “Strongly Typed”, o sea no se pueden asignar valores de


una señal de un tipo a una señal de otro tipo. El TIPO del puerto permite
trabajar con un sinnúmero de formato de datos, haciendo muy flexible la
descripción de los mismos. Esto es:

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

20
14/09/2010

VHDL
Su Estructura:
TIPO: La siguiente lista contiene los tipos más usados en VHDL.

BIT  Una señal que puede tomar los valores „0‟ o „1‟.
BIT_VECTOR  Vector. Agrupación de Bits. Por ej: [0 1 1 0 0]
INTEGER  Representación de datos enteros decimales.
BOOLEAN  Pueden tomar los valores „true‟ o „false‟.
ENUMERATED  Definido por usuario.

Existen además los siguientes tipos de datos del estándar IEEE 1164:
std_logic TYPE
std_ulogic „U‟ -- No inicializado (defecto)
„X‟ -- Desconocido (conflicto)
std_ulogic_vector „0‟ -- Forzando „0‟
std_logic „1‟ -- Forzando „1‟
Puede contener los siguientes „Z‟ -- Alta Impedancia
std_logic_vector „W‟ -- Estado desconocido débil
„L‟ -- „0‟ débil
„H‟ -- „1‟ débil
„-‟ -- Don‟t care

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Tipo std_ulogic:

 El tipo std_ulogic es un tipo de dato unresolved, y puede tener un


solo driver. De hecho, la “u” se refiere al hecho de que es de tipo
unresolved.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

21
14/09/2010

VHDL
Tipo std_logic:

 Hay otro tipo definido, llamado “std_logic”.


 el cual es una versión tipo resolved de std_ulogic y puede tener
mas de un driver.
 El tipo std_logic tiene los mismos nueve estados de std_ulogic.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Vectores Tipo std_logic y std_ulogic:

 El paquete también contiene la definición de los arreglos de


std_logic y std_ulogic, conocidos como std_logic_vector y
std_ulogic_vector. estos tipos tienden a ser usados para describir
estructuras de bus en la forma como el tipo bit_vector.
 Los tipos std_logic y std_logic_vector, son los recomendados para
usar en los diseños.
 La razón para esto es que hay otros estándares para usar VHDL
que están basados en estos tipos en lugar de std_ulogic y
std_ulogic_vector.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

22
14/09/2010

VHDL
Su Estructura:
La arquitectura: El bloque se conoce en VHDL como ARCHITECTURE, es
donde de describe el funcionamiento del sistema; Qué hace y cómo lo hace.
Fundamentalmente existen tres categorías de arquitectura en VHDL, estas
son:

Flujo de datos (Dataflow): Incluye estructura y comportamiento, esta


categoría tiene un nivel de abstracción y realización medio, describe
asignaciones concurrentes (en paralelo) de señales y utiliza expresiones
Booleanas. Siguiendo con el ejemplo planteado, la declaración de la
Arquitectura será:

A AND1 ARCH Architecture Dataflow of MUX is


IN1
OR Signal IN1, IN2: std_logic;
E F Begin
AND2 IN1 <= (A AND (NOT E));
IN2 <= (B AND E);
B
IN2 F <= IN1 OR IN2;
MUX End Dataflow;

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Su Estructura:
Comportamental (Behavioral): Define un proceso descrito secuencialmente,
Esta categoría permite entender el funcionamiento del sistema desde su
comportamiento; su nivel de abstracción es alto y el nivel de realización es
bajo. En una descripción en VHDL donde existen varios procesos, éstos se
ejecutan de forma concurrente, cada uno de ellos es secuencial. Siguiendo
con el ejemplo planteado, la declaración de la Arquitectura será:

Funcional Simbólico
A AND1 ARCH
IN1
OR
E F
AND2

B
IN2
MUX

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

23
14/09/2010

VHDL
Su Estructura:
Comportamental (Behavioral): Existen dos formas de declarar la
arquitectura comportamental para el MUX del ejemplo, estas son:

Architecture Behavioral of MUX is


Begin
Architecture Behavioral of MUX is Process (A, B, E)
Begin Begin
With E select if ( E = ‘0’ ) then
F <= A when ‘0’; F <= A;
B when ‘1’; else
End Behavioral; F <= B;
end if;
End Behavioral;

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Su Estructura:
Estructural (structural): Esta categoría define una serie de componentes e
interconexiones entre ellos. Tiene un nivel de abstracción bajo y su
realización es de alta complejidad. En una descripción tipo structural, se
debe tener especial cuidado del directorio donde se guardan los
componentes previamente diseñados o los componentes estándar como
compuertas, chips, etc. A continuación se presenta la descripción del
ejemplo:

A AND1 ARCH Componentes:


IN1
U2 OR
U1 U1  Compuerta NOT
E F
NOT AND2
U4 U2  Compuerta AND 2 entradas
B U3 U3  Compuerta AND 2 entradas
IN2
MUX U4  Compuerta OR 2 entradas

IN0

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

24
14/09/2010

VHDL
Su Estructura:
Architectura structural of MUX is Signal IN0, IN1, IN2 : std_logic;
Component AND2 Begin
Port( I1, I2: In std_logic; U1: NOT port map(E, IN0);
O : out std_logic); U2: AND2 port map(A, IN0, IN1);
End component; U3: AND2 port map (E, B, IN2);
Component OR2 U4: OR2 port map(IN1, IN2, F);
Port( I1, I2: In std_logic; End structural;
O : out std_logic);
End component;
Component NOT
Port( I : In std_logic;
O : out std_logic);
End component;

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Panorámica de los elementos:

Declaraciones de las unidades de diseño Cláusulas de contexto


ENTITY, ARCHITECTURE, PACKAGE DECLARATION, LIBRARY CLAUSE
PACKAGE BODY, CONFIGURATION USE CLAUSE

Declaraciones Especificaciones
ALIAS, ATTRIBUTE, TYPE, SUBTIPE, CONSTANT, ATTRIBUTE,
SIGNAL, VARIABLE, GROUP, FILE, COMPONENT, CONFIGURATION,
PROCEDURE/FUNCTION (Subprograma y su body) DISCONNECTION

Sentencias concurrentes Sentencias secuenciales


BLOCK, PROCESS, PROCEDURE CALL, WAIT, ASSERTION, asignación de:
FUNCTION CALL, ASSERTION, SIGNAL, SIGNAL Y VARIABLE, PROCEDURE,
ASSIGNEMENT, COMPONENT, CALL, FUNCTION CALL, IF, CASE,
INSTANCIATION, GENERATE LOOP, NEXT, EXIT, RETURN, NULL

25
14/09/2010

VHDL
Palabras reservadas:

abs begin disconnect for in map of

access block downto function inertial mod on

after body inout open

alias buffer else generate is nand or

all bus elsif generic new others

and end group label next out

architecture case entity guarded library nor

array component exit linkage not package

assert configuration if literal null port

attribute constant file impure loop postponed

VHDL
Palabras reservadas (cont.):

procedure register select srl unaffected wait

process reject severity subtype units when

protected rem shared until while

pure report signal then use with

return sla to

range rol sll transport variable xnor

record ror sra type xor

26
14/09/2010

VHDL
Operadores:

En VHDL existen unos elementos llamados operadores, los cuales


permiten realizar operaciones lógicas, aritméticas y relacionales.
= Igual
AND; NAND
/= No igual
OR; NOR
1. Lógicos < Menor qué
XOR; XNOR 2. Relacionales
<= Menor igual qué
NOT
> Mayor qué
+ Más >= Mayor igual qué
- Menos
* Multiplicación 4. Concatenación & Concatenar
3. Aritméticos
/ División
REM Residuo 5. Aritméticos Unarios - Negación Aritmética
MOD Módulo
ABS Absoluto
Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Operadores:

rol  ( rotate left )


ror  ( rotate right )
sll  ( shift left logical )
6. De Registro
srl  ( shift rigth logical )
sla  ( shift left arithmetic )
sra  ( shift right arithmetic )

Operan sobre objetos de tipo:


1. bit_vector
2. std_logic_vector
3. std_ulogic_vector

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

27
14/09/2010

VHDL
Objetos:

1. Constantes: se inicializan a un determinado valor que


conservan inalterado (no puede cambiarse una vez
inicializado):
CONSTANT e: real := 2.71828;
CONSTANT retraso: time := 10 ns;
CONSTANT tamaño_max: natural; Se permite declarar
una constante sin especificar su valor siempre y cuando
este valor sea declarado en otro sitio (se hace así para las
declaraciones en paquetes).

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Objetos:

2. Variables: Su valor puede ser alterado en cualquier instante.

Se les puede asignar un valor inicial:

VARIABLE contador: natural := 0;


VARIABLE aux: bit_vector(31 DOWNTO 0);

Instrucción ALIAS: permite asignar un nombre adicional a un


objeto previamente definido o ponerle nombre a una parte de
uno existente:

VARIABLE instruccion: bit_vector(31 DOWNTO 0);


ALIAS código_op: bit_vector(7 DOWNTO 0) IS instruccion(31 DOWNTO 24);

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

28
14/09/2010

VHDL
Objetos:

3. Señales: representan conexiones reales en el circuito. Se declaran


igual que las constantes y variables; pueden ser de varios tipos:

a. normal: si no se especifica el tipo.


b. registro: debe especificarse con la palabra clave REGISTER.
c. bus: debe especificarse con la palabra clave BUS.

Al igual que en constantes y variables, a las señales también se les


puede asignar un valor inicial.

Ejemplos:
SIGNAL selec: bit := '0';
SIGNAL datos: bit_vector(7 DOWNTO 0) BUS := B"00000000";

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Objetos:

Señales

 las señales pueden declararse en una entidad, en una


arquitectura o en un paquete.

 si se quiere inicializar una señal hay que indicar un valor en


[:= expresión]

 por ejemplo: signal s: bit:='1';

 de otra manera, el valor es inicializado al valor más bajo del


tipo de variable definido.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

29
14/09/2010

VHDL
Objetos:

Señales

 Escalar:
signal name(s):=type [range_contraint][:=expression];

 Vectorial:
signal name(s): array_type[index_constraint][:=expression];

 Entidad:
port (name(s): direction type [range_constraint][:=expression]);

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Objetos:

Señales

Ejemplos:

◦ signal count: integer range 1 to 50; (el valor inicial será 1)


◦ signal GROUND: BIT:='0';
◦ signal YS_BUS std_logic_vector (7 downto 0);
◦ port (B, A: in integer range 0 to 9);
◦ signal bogus: bit_vector; (Errónea, no hay dimensión)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

30
14/09/2010

VHDL
Objetos:

Señales de tipo definido por el usuario


 Habiendo definido el tipo, se pueden declarar señales de este mismo
tipo. En el ejemplo se ha declarado la señal STATE de tipo MY_STATE.
Se Deben observar las reglas estrictas cuando se usen estas señales: no
se puede asignar nada a la señal STATE que no sea del tipo MY_STATE.

type MY_SATE is (RESET, IDLE, RW_CYCLE, INT_CYCLE);



Signal STATE: MY_STATE;
Signal TWO_BIT: bit_vector (0 to 1);

STATE<=RESET;
STATE<=“00”;
STATE<=TWO_BIT;

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Ejemplo de aplicación:
-----------------------------------------------------------------
-- Comparación en la utilización de variables y señales
-----------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
Resultado de la Simulación
entity sig_var is
port( d1, d2, d3: in std_logic;
res1, res2: out std_logic);
end sig_var;

architecture behv of sig_var is


signal sig_s1: std_logic;
begin
proc1: process(d1,d2,d3)
variable var_s1: std_logic;
begin
var_s1 := d1 and d2;
res1 <= var_s1 xor d3;
end process;
proc2: process(d1,d2,d3)
begin
sig_s1 <= d1 and d2;
res2 <= sig_s1 xor d3;
end process;
End behv;

31
14/09/2010

VHDL
Atributos:

Es una característica asociada a un elemento del lenguaje (tipos de datos,


señales, procedimientos, entidades,...) que permite extraer información
adicional del mismo.

Atributos de los tipos escalares:

T'base Tipo base de T.


T'left Valor más a la izquierda de T.
T'right Valor más a la derecha de T.
T'low Valor mínimo de T.
T'high Valor máximo de T.
T'ascending Verdadero si T tiene rango ascendente.
T'image(x) String correspondiente al valor x.
T'value(s) Valor en T representado por el string s.
T'succ(x) Valor de la posición siguiente a x en T.
T'pred(x) Valor de la posición anterior a x en T.
T'leftof(x) Valor de la posición izquierda a x en T.
T'rightof(x) Valor de la posición derecha a x en T.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Atributos:
Tipo array A. Sea P entero entre 1 y el número de dimensión de A:
• A‟left(P) : límite izquierdo rango dimensión P
• A‟right(P) : límite derecho rango dimensión P
• A‟low(P) : límite inferior rango dimensión P
• A‟high(P) : límite superior rango dimensión P
• A‟range(P) : rango índice dimensión P
• A‟reverse_range(P) : inverso rango índice dimensión P
• A‟length(P) : longitud del índice de dimensión P
signal memoria : array (0 to 5, 9 downto 1) of bit;
memoria‟left 0 memoria‟left(2) 9
memoria‟right(1) 5 memoria‟right 5
memoria‟high 5 memoria‟low 0
memoria‟high(2) 9 memoria‟low(2) 1
memoria‟range 0 to 5 memoria‟range(2) 9 downto 1
memoria‟legth 9 memoria‟reverse_range 5 downto 0

32
14/09/2010

VHDL
Atributos de Vectores:

A'left(n): Valor izquierdo del índice n de A.


A'right(n): Valor derecho del índice n de A.
A'low(n): Valor mínimo del índice n de A.
A'high(n): Valor máximo del índice n de A.
A„range(n): Rango del indice n de A.
A„reverse_range(n): Rango del indice n de A invertido.
A„length(n): Número de valores del rango n de A.
A„ascending(n): Verdadero si el rango del índice de n de A es ascendente.

type A is array (1 to 4, 31 downto 0) of boolean;

A‟left(1) = 1 A‟low(1) = 1
A‟right(2) = 0 A‟high(2) = 31
A‟range(1) is 1 to 4 A‟reverse_range(2) is 0 to 31
A‟length(1) = 4 A‟length(2) = 32
A‟ascending(1) = true A‟ascending(2) = false
A‟left(1) ≡ A‟left

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

VHDL
Atributos: Recurso importante de simulación
Aplicables a escalar:
• T‟left : límite izquierdo de T
• T‟right : límite derecho de T
• T‟low : límite inferior de T
• T‟high : límite superior de T
• T‟base : indica el tipo base del objeto
type std_logic is ( 'U','X','0','1','Z','W','L','H','-');
subtype std_restric is std_logic range „X‟ to „Z‟;
signal flag :std_logic;
signal carry :std_restric;

flag‟left U carry‟left X
flag‟right - carry‟right Z
flag‟low U carry‟low X
flag‟high - carry‟right Z
flag‟base std_logic carry‟base std_logic

33
14/09/2010

VHDL
Atributos: Recurso importante de simulación
Para un tipo T, siendo X un miembro de T y P un entero:
• T‟pos(X) : posición de X en T (se empieza por cero)
• T‟val(P) : valor situado en la posición P de T
• T‟leftof(X) : valor de T que está a la izquierda de X
• T‟rightof(X) : valor de T que está a la derecha de X
• T‟pred(X) : valor de T que está una posición delante de X
• T‟succ(X) : valor de T que está una posición detrás de X
flag‟pos(„0‟) 2
flag‟val(4) „Z‟
flag‟leftof(„1‟) „0‟
flag‟rightof(„1‟) „Z‟
flag‟pred(„1‟) „0‟
flag‟succ(„1‟) „Z‟

VHDL
Atributos:

S´EVENT Retorna verdadero si ocurrió un evento en S durante


el corriente delta, de lo contrario devuelve falso.

S´ACTIVE Retorna verdadero si ocurrió una transición en S durante


el corriente delta, de lo contrario retorna falso.

S´LAST_EVENT Retorna el tiempo transcurrido desde la transición previa


de la señal S.

S´LAST_VALUE Retorna el valor previo de S antes del último evento.

S´LAST_ACTIVE Retorna el tiempo transcurrido desde la transacción previa


de la señal.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

34
14/09/2010

VHDL
Atributos de usuario:

Se definen en la parte declarativa de entidades, arquitecturas, bloques, procesos,


procedimientos y paquetes. Son aplicables a casi cualquier objeto VHDL.

Para declarar un atributo:


attribute mi_atributo :tipo;
attribute fanout :integer;
Especificación de atributo es por lo tanto:
attribute nombre_atributo of elemento:tipo_elemento is valor_atributo;
signal bus_datos : bit_vector(7 downto 0);
atributte fanout of bus_datos: signal is 4;
Para acceder al valor de fanout a:
bus_datos‟fanout  4

VHDL
Atributos:
Ejemplos:

type resistencia is range 0 to 1e9


units
ohm;
Kohm =1000 ohm;
Mohm=1000 kokm;
end units resistencia;

resistencia’left=0
resistencia’right=1e9
resistencia’low=0
resistencia’high=1e9
resistencia’ascending=true
resistencia’image(2 kohm )=“2000 ohm”
resistencia’value(“5 Mohm”)=5_000_000

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

35
14/09/2010

VHDL
Ejemplo 2

type indice is range 21 downto 11;


type nivel_logico is (desconocido, bajo, alta_impedancia, alto);

indice‟left=21
indice‟right=11
indice‟low=11
indice‟high=21
indice‟ascending=false
indice‟image(14)=“14”
indice‟value(“20”)=20

nivel_logico‟left=desconocido
nivel_logico‟right=alto
nivel_logico‟low=desconocido
nivel_logico‟high=alto
nivel_logico‟ascending=true
nivel_logico‟image(alto)=“alto”
nivel_logico‟value(“bajo”)=bajo
nivel_logico‟pos(desconocido)=0
nivel_logico‟val(3)=alto
nivel_logico‟succ(deconocido)=bajo --T‟succ(alto): error ...
nivel_logico‟pred(alta_impedancia)=bajo

VHDL
Algunos ejemplos:

1. FLIP-FLOPs
2. MEMORIA RAM
3. MAQUINA DE ESTADOS

36
14/09/2010

CAPÍTULO III

INTRODUCCIÓN AL
ALGEBRA DE BOOLE Y LOS
MAPAS DE KARNAUGH

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Algebra de BOOLE

1854 George Boole “An invesigation of the laws of thought


on which to found the mathematical theories of logic and
probabiblities”

Operaciones del algebra de Boole:

Leyes Booleanas
- Ley conmutativa
- Ley asociativa
- Ley distributiva
Funciones Lógicas

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

37
14/09/2010

Algebra de BOOLE
Definición:

Un conjunto B dotado con dos operaciones algebraicas más (+) y


por (·) representa un álgebra de Boole, sí y sólo sí se verifican
los siguientes postulados:

1. Las operaciones + y · son conmutativas.

2. Existen en B dos elementos distintos representados por los


símbolos 0 y 1, respectivamente, tal que :

a+0=0+a=a Para todo elemento a que pertenece a B


a ·1=1· a=a Para todo elemento a que pertenece a B

El símbolo 0 es el elemento identidad para la operación (+) y


el símbolo 1 es el elemento identidad para la operación (·) .

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Algebra de BOOLE
3. Cada operación es distributiva para la otra, esto es:
a + (b · c) = (a + b) · (a + c)
a · (b + c) = (a · b) + (a · c)
4. Para cada elemento de B, por ejemplo el elemento a, existe un
elemento a' también perteneciente a B tal que:
a + a' = 1
a · a' = 0
Ejemplos:

Sea el conjunto B = { 0,1 }, y las dos operaciones + y ·


definidas
0 + 0 = 0 0 · 0 = 0
0 + 1 = 1 0 · 1 = 0
1 + 0 = 1 1 · 0 = 0
1 + 1 = 1 1 · 1 = 1

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

38
14/09/2010

Algebra de BOOLE
Representación con interruptores.

Interruptor Abierto
equivale a nuestro 0 lógico

Interruptor Cerrado
equivale a nuestro 1 lógico

La combinación
es equivalente a

Es decir dos interruptores abiertos puestos en serie equivalen a un solo


interruptor abierto.
Es equivalente a decir en el Algebra de Boole que: 0 . 0 = 0

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Algebra de BOOLE
Representación con interruptores.

La combinación
Es equivalente a:

Es decir que un interruptor abierto en serie con un interruptor cerrado,


equivale a un único interruptor abierto.
Es equivalente a decir en el Algebra de Boole que: 0.1=0
igualmente, por la ley conmutativa se puede decir que: 1 . 0 = 0

La combinación
Es equivalente a:

Es decir que un interruptor cerrado en serie con un interruptor cerrado,


equivale a un único interruptor cerrado.
Es equivalente a decir en el Algebra de Boole que: 1.1=1

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

39
14/09/2010

Algebra de BOOLE
Representación con interruptores.

La combinación

Es equivalente a:

Es decir dos interruptores abiertos puestos en paralelo, equivalen a un solo


interruptor abierto.
Es equivalente a decir en el Algebra de Boole que: 0+0=0

La combinación

Es equivalente a:

Es decir un interruptor abierto en paralelo con un interruptor cerrado,


equivale a un solo interruptor cerrado.
Es equivalente a decir en el Algebra de Boole que: 0+1=1
Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Algebra de BOOLE
Representación con interruptores.

Como ejemplo se analizará el siguiente circuito:

La función de conmutación que activa la lámpara será:

Lámpara = (A + B) · C == (A OR B) AND C

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

40
14/09/2010

Algebra de BOOLE
Operaciones básicas.

 Las operaciones básicas del algebra de Boole son:


A X=A
◦ Negación o complemento 0 1
◦ Adición A B X = (A + B) 1 0
◦ Producto 0 0 0
0 1 1
1 0 1
A B X = (A · B) 1 1 1
0 0 0
0 1 0
1 0 0
1 1 1

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Algebra de BOOLE

 Leyes del álgebra de BOOLE.

◦ Ley conmutativa

1. X+Y=Y+X
2. X·Y=Y·X

◦ Ley asociativa

1. X+(Y+Z)=(X+Y)+Z=X+Y+Z
2. X · ( Y · Z ) = ( X · Y ) · Z + (X · Y · X )

◦ Ley distributiva

1. X·(Y+Z)=(X·Y)+(X·Z)
2. (W+X)·(Y+Z)=W·Y+X·Y+W·Z+X·Z

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

41
14/09/2010

Algebra de BOOLE
 Postulados del algebra de Boole

Se utilizan para simplificar las expresiones booleanas

1. X·0=0
2. X·1=X
3. X·X=X
4. X · X' = 0
5. X+0=X
6. X+1=1
7. X+X=X
8. X + X‟ = 1
9. X‟‟ = X
10. X + (X · Y) = X
11. X + (X‟ · Y) = X + Y
12. (X + Y) · (X + Z) = X + (Y · Z)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Algebra de BOOLE

Teoremas de Morgan

Los teoremas de Morgan sirven para transformar sumas lógicas en


productos lógicos o viceversa y pueden llegar a tener una gran
importancia dado que todas las operaciones lógicas se pueden
llegar a resolver con un mismo tipo de puerta.

Verifican matemáticamente la equivalencia de las compuertas:

NAND y negativa-OR
NOR y negativa-AND

1. (X + Y)‟ = X‟ · Y‟
2. (X · Y)‟ = X‟ + Y‟

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

42
14/09/2010

Algebra de BOOLE

 Funciones Lógicas

◦ Es un conjunto de variables relacionadas entre sí de


acuerdo a las tres operaciones (AND, OR, NOT), se
representa como:

F = f (A, B, C, ...)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Algebra de BOOLE
 Simplificación de circuitos lógicos

◦ Expresión Lógica puede estar en forma de:

 Suma de productos (SOP)  A·B·C + A·B·C

 Producto de sumas (POS)  (A+C) · (B+C+D)

1. A partir de la Tabla de la verdad, obtener la expresión


lógica por medio de SOP o POS.
2. Simplificar por medio de los postulados de Boole y el
teorema de Morgan o por mapa de Karnaugh.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

43
14/09/2010

Mapas de Karnaugh

Es un método gráfico usado para la simplificación de funciones


de conmutación.

Propuesto por Maurice Karnaugh en 1953.

Los mapas de Karnaugh se componen de un cuadrado por


cada minitérmino posible de una función lógica, así pues:

◦ 2 variables, 4 cuadrados
◦ 3 variables, 8 cuadrados
◦ 4 variables, 16 cuadrados

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Mapa de Karnaugh para dos


variables
A A
B 0 1
A’B’ AB’ m0 m2 0 0 2

A’B AB m1 m3 1 3
B 1

Aquí se tienen tres vistas de un mapa de dos variables,


las casillas sombreadas, por ejemplo, corresponden al
minitérmino 2 donde A=1 y B=0

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

44
14/09/2010

Representando funciones en
un Mapa de Karnaugh (1)
Realización.

 Cuando se quiere llevar una función a un mapa, se coloca


un 1 en el casillero correspondiente al minitérmino que
resultó como 1 en la función.

 Los otros casilleros se dejan en blanco o en cero 0.

 Si existen condiciones irrelevantes, es necesario poner


una X en los minitérminos correspondientes.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Representando funciones en un
Mapa de Karnaugh (2)

a A
b 0 1 B 0 1

0 1 0 1 X

1 1 1 1

F(a,b) = Σm(0,3) F(A,B) = Σm(0,3) + Σd(2)

Condición
irrelevante

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

45
14/09/2010

Mapa de Karnaugh para 3


variables

AB AB
C 00 01 11 10 C 00 01 11 10
0 A’B’C’ A’BC’ ABC’ AB’C’ 0 0 2 6 4

A’B’C A’BC ABC AB’C 1 3 7 5


1 1

La idea con la codificación es poder usar el postulado: A·B + A·B‟ = A

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Mapa de Karnaugh para 4


variables
AB AB
CD 00 01 11 10 00 01 11 10
CD
00 A’B’C’D’ A’BC’D’ ABC’D’ AB’C’D’ 00 0 4 12 8

01 01
A’B’C’D A’BC’D ABC’D AB’C’D
1 5 13 9

A’B’CD A’BCD ABCD AB’CD


11 11 3 7 15 11

A’B’CD’ A’BCD’ ABCD’ AB’CD’


10 10 2 6 14 10

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

46
14/09/2010

Ejemplo de adyacencia para un


mapa de 4 variables
 Los 1 en dos celdas adyacentes corresponden a un solo término
de producto.

AB AB
CD 00 01 11 10 CD 00 01 11 10
00 00 1

01 01
1 1

11 11

1
10 10

AC’D A’B’D’

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Extendiendo el concepto de adyacencia


para agrupar más celdas

AB AB
C 00 01 11 10 C 00 01 11 10
0 0

1 1 1 1 1 1 1 1
1 1

A’C AC C

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

47
14/09/2010

Otros ejemplos para grupos de


cuatro

AB AB
CD 00 01 11 10 CD 00 01 11 10
00 1
00 1 1

01 01
1 1 1 1 1

1 1 1 1 1
11 11

1 1 1
10 10

A’B’ AD B’D’ BD

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Grupos de 8 Llamados octetos

AB AB
CD 00 01 11 10 CD 00 01 11 10
00 1 1
00 1 1 1 1

01 01
1 1

1 1
11 11

1 1 1 1 1 1
10 10

A’ D’

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

48
14/09/2010

Ejemplo de simplificación usando


Mapas de Karnaugh
x’yz’ + x’yz + xy’z’ + xy’z + xyz

xy xy
z 00 01 11 10 z 00 01 11 10
0 1 1 0 1 1

1 1 1 1 1 1
1 1

xy
z 00 01 11 10
0 1 1

1 1 1 1 x’y + xy’ + xz

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Problema

Para desarrollar en clase.

1. f = a‟b‟c‟ + a‟bc‟ + a‟bc + ab‟c‟


Para la función f encontrar La suma de productos mínima usando
un mapa de karnaugh.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

49
14/09/2010

Ejemplo:
Decodificador de BCD a 7 segmentos

Utilizando las técnicas del diseño digital combinacional y


los Mapas de Karnaugh, diseñe un decodificador de BCD a
7 segmentos.

Número
Descodificador
binário

Display de 7 segmentos

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

Solución al Ejemplo

 Decodificador BCD to 7 segmentos


Tabla de la verdad
B3 B2 B1 B0 a b c d e f g

0 0 0 0 1 1 1 1 1 1 0
0 0 0 1 0 1 1 0 0 0 0
0 0 1 0 1 1 0 1 1 0 1
0 0 1 1 1 1 1 1 0 0 1
0 1 0 0 0 1 1 0 0 1 1
0 1 0 1 1 0 1 1 0 1 1
0 1 1 0 1 0 1 1 1 1 1
0 1 1 1 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1 0 1 1
Restantes casos 0 0 0 0 0 0 0

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

50
14/09/2010

Solución al Ejemplo

 Decodificador BCD to 7 segmentos


Mapas de Karnaugh
a
b
B1B0 B1B0
B3B2 00 01 11 10 B3B2 00 01 11 10
00 1 0 1 1 00 1 1 1 1
01 0 1 1 1 01 1 0 1 0
11 0 0 0 0 11 0 0 0 0
10 1 1 0 0 10 1 1 0 0

a B B B B B B B B B B B1 b B B B B B B B B B B B1
3 1 3 2 0 3 2 0 3 2 3 2 3 1 0 3 1 0 3 2

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

TALLER 1 (Aula de Clase)

Utilizando los conceptos básicos para la síntesis de sistemas


combinacionales y los lenguajes de descripción de hardware HDL,
diseñe un decodificador de BCD a 7 segmentos.
Metodología: Dividir la clase en dos grupos con igual número de
estudiantes, cada grupo desarrollará el diseño propuesto con la
siguiente característica:
Grupo 1. Descripción en VHDL de un Decodificador BCD a 7
Segmentos para display de Ánodo común. Utilizando ISE XILINX.
Grupo 2. Descripción en VHDL de un Decodificador BDC a 7
Segmentos para display de Cátodo común. Utilizando ISE XILINX.
Utilizando como herramienta el simulador de XILINX, se pide una
simulación del sistema desarrollado por cada grupo. Discutir los
resultados con sus compañeros de grupo e intercambiar ideas con
el otro grupo.
Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

51
14/09/2010

TALLER 2 (Laboratorio)

Cada grupo, una vez haya simulado el diseño, deberá


implementarlo en la tarjeta PEGASUS (Ver figura).
Características de la Implementación: Como entradas se utilizarán
los interruptores SW0 a SW3 de la tarjeta, la salida será uno de
los cuatro displays siete segmentos propios de la tarjeta.

DISPLAY SIETE
SEGMENTOS

SWITCHES
SW0 a SW7

Tarjeta PEGASUS Spartan II [XC2S50 – PQ208]

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

CAPÍTULO IV

LÓGICA
COMBINACIONAL
MODULAR

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

52
14/09/2010

LÓGICA MODULAR
Generalidades:

La lógica combinacional modular hace referencia a diseños


estructurados de alta complejidad, de ahí el nombre modular,
porque esta compuesto de módulos. Estos sistemas se clasifican
como: MSI (Medium Scale Integration), LSI (Large Scale
Integration), VLSI (Very Large Scale Integration).

Entre los dispositivos estándar más comunes de la lógica


combinacional modular se tienen:
1. Comparadores
2. Codificadores y Decodificadores
3. Multiplexores y Demultiplexores
4. Sumadores.
5. Memorias.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

COMPARADORES

Utiliza compuertas OR exclusiva , admite dos bits e indica


en su salida si los dos bits son iguales o diferentes. También
existen comparadores que permiten establecer si dos
números de un bit son: =, > ó <. Su diseño se realiza
aplicando técnicas digitales y algebra de BOOLE.

Comparador simple, detecta igualdad Comparador de magnitud (=, < ó >)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

53
14/09/2010

DECODIFICADORES

Sólo una salida se activa por cada código de entrada,


puede ser activado por un alto y el resto permanecen en
bajo o se activan en bajo y el resto permanecen en alto

A0 X0
A1 X1
A2
A3
DECODIFICADOR X2
X3
· ·
· ·
AN-1 XM-1

Código de entrada: HABILITADORES Salida exclusiva:


Binario, Gray, etc.
una por cada código
de entrada

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

A2 A1 A0 O7 O6 O5 O4 O3 O2 O1 O0
0 0 0 0 0 0 0 0 0 0 1
E1 E2 E3
0 0 1 0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 1 0 0
A2 A1 A0
0 1 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0 0 0
1 0 1 0 0 1 0 0 0 0 0
DEC 3:8 1 1 0 0 1 0 0 0 0 0 0
74LS138 1 1 1 1 0 0 0 0 0 0 0

E1 E2 E3 SALIDA
0 0 1 Habilitado
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 1 X X Deshabilitado (Altos)
X 1 X Deshabilitado (Altos)
Internamente esta formado Por
X X 0 Deshabilitado (Altos)
compuertas AND, NAND y NOT

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

54
14/09/2010

Decodificador de direcciones para MEMORIA


memoria RAM ó ROM

SALIDAS DIRECCION DATO

DECODIFICADOR
6 A 64
ENTRADAS

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

CODIFICADORES

Número de líneas a la entrada, al activarse una, produce


un código de salida de N bits

A0 X0
A1 X1
A2
·
CODIFICADOR X2
·
· ·
AM-1 XN-1

Líneas de Entrada: Código de Salida:


Al seleccionar una se Binario, Gray, etc.
activa un código de
salida

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

55
14/09/2010

CODIFICADOR 8:3

A0 A1 A2 A3 A4 A5 A6 A7 A0 A1 A2 A3 A4 A5 A6 A7 O2 O1 O0
X 1 1 1 1 1 1 1 0 0 0
E X 0 1 1 1 1 1 1 0 0 1
X 1 0 1 1 1 1 1 0 1 0
X 1 1 0 1 1 1 1 0 1 1
CODIFICADOR
X 1 1 1 0 1 1 1 1 0 0
8 líneas a 3 líneas
X 1 1 1 1 0 1 1 1 0 1
X 1 1 1 1 1 0 1 1 1 0
X 1 1 1 1 1 1 0 1 1 1
O2 O1 O0

Internamente formado por


compuertas NOT Y OR

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

MULTIPLEXORES

Selecciona una de varias señales de entrada y la envía a la


salida

I0
I1
· MULTIPLEXOR SALIDA

·
IN-1

SELECTOR DE DATOS

El multiplexor puede ser uniseñal o multiseñal, o sea datos


individuales de un (1) bit o datos en forma de BUS

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

56
14/09/2010

MUX 74ALS151

I0 I1 I2 I3 I4 I5 I6 I7 E E S2 S1 S0 Z Z
1 X X X 1 0
0 0 0 0 I0 I0
S0
S1 0 0 0 1 I1 I1
S2 MUX 74ALS151 0 0 1 0 I2 I2
0 0 1 1 I3 I3
0 1 0 0 I4 I4
Z Z 0 1 0 1 I5 I5
0 1 1 0 I6 I6
0 1 1 1 I7 I7
Internamente formado por
Compuertas AND, OR y NOT

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

APLICACIONES

Enrutamiento de datos: Utilizando un MUX 74ALS157


selecciona el contenido de los contadores BCD y lo envía a
los visualizadores

CONTADOR 1 CONTADOR 1 CONTADOR 2 CONTADOR 2


DECENAS UNIDADES DECENAS UNIDADES

MUX MUX

DECODIFICADORES DECODIFICADORES

VISUALIZADOR VISUALIZADOR

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

57
14/09/2010

APLICACIONES
Conversión paralelo a serial

D0
D1
D2
D3
DATOS D4 MUX Salida Serial
D5
D6
D7

RELOJ

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DEMULTIPLEXOR

Una entrada activa una salida, la cuál se escoge por medio


de las líneas de selección

Demultiplexor de 1 a 4
SELECTORES

SALIDAS
DEMUX
ENTRADAS

HABILITADOR

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

58
14/09/2010

DEMULTIPLEXOR
TABLA DE EXCITACIÓN

E S1 S0 X0 X1 X2 X3
0 0 0 0 1 1 1
0 0 1 1 0 1 1
0 1 0 1 1 0 1
0 1 1 1 1 1 0
1 X X 1 1 1 1

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

ESTÁNDARES COMERCIALES
DEMULTIPLEXORES/DECODIFICADORES COMERCIALES

La siguiente es una lista de los demultiplexores/decodificadores


más populares en circuito integrado de la familia TTL.

74138: Demux/decodificador de 3 a 8
74139: Demux/decodificador de 2 a 4, doble
74141: Decodificador/driver BCD - decimal
74154: Demux/Decodificador de 4 a 16
74159: Demux/decodificador de 4 a 16 con salidas de open colector
74155: Demux/decodificador doble de 2 a 4
74156: igual al 74155, pero con salidas de colector abierto

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

59
14/09/2010

DECO/DEMUX 74138
Arquitectura para el DECO/DEMUX 74138

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DECO/DEMUX 74138
Tabla de la verdad para el DECO/DEMUX 74138

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

60
14/09/2010

DECO 4:16 CON 74138


En la siguiente figura se muestra como implementar un
Decodificador de 4 a 16 usando circuitos 74138

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

APLICACIONES DEL MUX - DEMUX

Comunicaciones digitales

ENTRADAS

MUX DEMUX SALIDAS

SELECTORES

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

61
14/09/2010

APLICACIONES DEL DEMUX


Selección de memoria

RAM1 RAM2 RAM3 RAM4

SALIDAS

DEMUX
SELECTORES
1A4

ENTRADA

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

REALIZACIÓN DE FUNCIONES
Utilizando decodificadores
Un circuito decodificador completo genera todos los productos
fundamentales (minitérminos) de las variables de entrada.
Cuándo las salidas del decodificador son activas a nivel bajo, para realizar la
función en suma de productos basta con conectar las salidas,
correspondientes a los minitérminos de la función, a puertas NAND:
Por ejemplo: F(X,Y,Z) = m(0, 3, 6)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

62
14/09/2010

REALIZACIÓN DE FUNCIONES
Utilizando decodificadores

A veces puede ocurrir que se


necesita decodificar más líneas de
las que permite el circuito (Deco),
se bebe entonces construir un
decodificador de mayor tamaño
usando decodificadores más
pequeños.

Por ejemplo para 4 bits (X,Y,Z,W).

Se utilizan dos decodificadores de 3:8,


con la lógica dispuesta para ampliar
su salida 4:16. (ver figura)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

REALIZACIÓN DE FUNCIONES
Utilizando Multiplexores
Se parte de la siguiente afirmación: un multiplexor de 2n entradas puede
realizar cualquier función lógica de n+1 variables.
Se pueden usar dos métodos:
• Método algebraico
• Método tabular
Se estudiará este último, y se seguirá mediante un ejemplo:
1. A partir de la expresión canónica se escoge un MUX determinado:
Ej: Sea f(A,B,C,D) = 4m(0,2,3,7,8,13,15), Al ser una función de 4
variables se necesita un MUX de 8:1 líneas (o sea, con tres variables de
control).

2. Se crea un mapa de Karnaugh de manera que la numeración en las


columnas, coincida con la entrada que se pretende seleccionar. (Señales
de control del MUX)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

63
14/09/2010

REALIZACIÓN DE FUNCIONES
Utilizando Multiplexores
Así, las columnas, vendrán determinadas por las variables de control del
MUX, y las filas por el dato o los datos que se quieren transmitir. Las
variables de control deben ser las de menor peso. Evaluando cada columna
se identifica el valor que hay que colocar en cada entrada.

Ej: Realización del mapa para la función propuesta:


f(A,B,C,D) = 4m(0,2,3,7,8,13,15)

BCD I0 I1 I2 I3 I4 I5 I6 I7
A 000 001 010 011 100 101 110 111
0 1 0 1 1 0 0 0 1
0 1 2 3 4 5 6 7

1 1 0 0 0 0 1 0 1
8 9 10 11 12 13 14 15

Resultado: 1 0 /A /A 0 A 0 1

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

REALIZACIÓN DE FUNCIONES
Utilizando Multiplexores

3. Realizar el diagrama
lógico del circuito
colocando en cada
entrada de datos lo que
la tabla indique.

Ej: La tabla indica que en


la entrada I0 del MUX,
se debe colocar un 1;
en la I1, un 0; y así
sucesivamente.

El circuito resultante se
aprecia en la siguiente
figura:

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

64
14/09/2010

TALLER
1. Dado el circuito mostrado en la figura, se pide:

 Tabla de verdad del sistema


 Ecuación Booleana de salida
 Reducción de la función de conmutación
 Implementar el circuito con compuertas lógicas
 Implementar el circuito final con MUX. (Se requiere la mayor
eficiencia, eficacia y efectividad)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

TALLER
2. Un sistema combinacional está representado por la siguiente
función de conmutación:

F(X,Y,Z) = m(0, 2, 6, 8, 9, 11, 15) + d(1, 5, 7, 13)

Se pide:

 Tabla de verdad del sistema


 Ecuación Booleana de salida
 Reducción de la función de conmutación
 Implementar el circuito con compuertas lógicas
 Implementar el circuito final con Decodificadores. (Se requiere
la mayor eficiencia, eficacia y efectividad)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

65
14/09/2010

TALLER
3. Deducir la función
que realiza el
siguiente circuito y
elaborar su tabla
de verdad.
¿Es óptimo este
sistema? Justifique
su respuesta.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

CAPÍTULO V

DISPOSITIVOS
LÓGICOS
PROGRAMABLES

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

66
14/09/2010

DISPOSITIVOS LÓGICOS
Módulos combinacionales:

Los dispositivos lógicos programables, cuyo acrónimo en ingles es


PLD‟s, son dispositivos diseñados atendiendo los siguientes
conceptos:

1. Funcionalidad completa: La cual se fundamenta en el hecho de


que cualquier función lógica se puede realizar mediante una
suma de productos.

2. Celdas de funciones universales: También denominadas


generadores de funciones, son bloques lógicos configurados
para procesar cualquier función lógica, similares en su
funcionamiento a una memoria. En estas celdas se almacenan
los datos de salida del circuito combinacional en vez de
implementar físicamente la ecuación Booleana.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Clasificación General:
Digital Logic

Progammable
Standard Logic ASICs Full Custom
Logic Devices

Microprocessor
SPLDs CPLDs FPGAs & RAM

TTL CMOS Gate Standard


74xx 4xxx Arrays Cells

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

67
14/09/2010

DISPOSITIVOS LÓGICOS
Clasificación específica:
PLA Son los dispositivos más antiguos.
Consiste en dos matrices lógicas programables de puertas AND y OR.
Programmable Logic Array Se puede expresar cualquier función lógica como suma de productos

PAL Mejoran las PLA y disminuyen el coste.


Actualmente se conocen como PLD ó SPLD. Consiste en una matriz
Programmable Array Logic AND programable, una matriz OR fija, y lógica de salida. Las GAL son
muy parecidas, pero con lógica de salida programable su nombre
proviene del acrónimo “Generic Array Logic”.

CPLD Las CPLD surgen debidas a que los PLD no podían ser escalados a
mayores dimensiones debido a su estructura de dos niveles. Es una
Complex PLD colección de varios PLDs y una estructura de interconexión. Tanto los
PLDs, como la estructura de interconexión son programables.

FPGA Es otra solución al problema de escalado de los PLDs. Los bloques


lógicos programables son de menor tamaño que en los CPLD, pero la
Field Programmable Gate estructura de interconexión es mucho más compleja. Utiliza CLBs,
Arrays LUTs, MUX, IOB y Matriz de interconexiones.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Designación:

PAL ó GAL

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

68
14/09/2010

DISPOSITIVOS LÓGICOS
Estructura:

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
PAL con salida combinacional: PAL16L8

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

69
14/09/2010

DISPOSITIVOS LÓGICOS
PAL con salida a registro: PAL16R8

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Estructura de la celda para una PAL16R8

Puertas AND programables

Reloj dedicado

Buffer de salida

Puerta OR fija

Buffer de entrada

Flip-Flop tipo “D”


Matriz de programación

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

70
14/09/2010

DISPOSITIVOS LÓGICOS
Características de la GAL16V8

GAL: Generic Array Logic

 8 Salidas a Macrocelda.
 8 Términos producto por salida.
 PIN 1: Señal global de reloj CLK
 PIN 11: /OE Salida Tri-estado.
 PIN 20: Alimentación 5 Vdc.
 PIN 10: Tierra del sistema GND.

Distribución de pines
Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Estructura de una GAL16V8

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

71
14/09/2010

DISPOSITIVOS LÓGICOS
Estructura de la celda (OLMC) para una GAL16V8

HOMEWORK: El estudiante debe investigar sobre la estructura de una GAL22V10, para realizar un
cuadro comparativo que determine las características de las OLMC.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
OLMC: Output Logic Macrocell
Hay tres configuraciones posibles para la macrocelda OLMC que son:
simple, complejo y registrado.

Existen dos bits globales que son SYN y AC0 para el control del modo
de configuración. El bit XOR para control de la polaridad de la salida en
cualquiera de los tres modos, mientras que el bit AC1 para el control de
la configuración de la entrada/salida de las macroceldas.

1. En modo simple todos los pines de salida son realimentados por los
pines adyacentes.

2. En modo registrado, el pin 1 y el pin 11 son configurados como reloj


y habilitación de la salida respectivamente.

3. En modo complejo el pin 1 y el pin 11 se usan como entradas y sirven


para retroalimentar los pines 19 y 12 respectivamente.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

72
14/09/2010

DISPOSITIVOS LÓGICOS
Modo Registrado: Salida a Registro

• SYN= 0.
• AC0= 1.
• XOR= 0 defines Active Low Output.
• XOR= 1 defines Active High Output.
• AC1= 0 defines this output configuration.
• Pin 1 controls common CLK for the registered outputs.
• Pin 11 controls common /OE for the registered outputs.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Modo Registrado: Salida Combinacional

• SYN = 0.
• AC0 = 1.
• XOR = 0 defines Active Low Output.
• XOR = 1 defines Active High Output.
• AC1 = 1 defines this output configuration.
• Pin 1 & Pin 11 are permanently configured as CLK & /OE for registered output configuration.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

73
14/09/2010

DISPOSITIVOS LÓGICOS
Modo Complejo: I/O Combinacional

• SYN = 1.
• AC0 = 1.
• XOR = 0 defines Active Low Output.
• XOR = 1 defines Active High Output.
• AC1 = 1.
• Pin 13 through Pin 18 are configured to this function.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Modo Complejo: Salida Combinacional

• SYN=1.
• AC0=1.
• XOR=0 defines Active Low Output.
• XOR=1 defines Active High Output.
• AC1=1.
• Pin 12 and Pin 19 are configured to this function.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

74
14/09/2010

DISPOSITIVOS LÓGICOS
Modo Simple: Salida Combinacional con Feedback

• SYN = 1.
• AC0 = 0.
• XOR = 0 defines Active Low Output.
• XOR = 1 defines Active High Output.
• AC1 = 0 defines this configuration.
• All OLMC except Pin 15 & 16 can be configured to this function.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Modo Simple: Salida Combinacional

• SYN = 1.
• AC0 = 0.
• XOR = 0 defines Active Low Output.
• XOR = 1 defines Active High Output.
• AC1 = 0 defines this configuration.
• Pin 15 & 16 are permanently configured to this function.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

75
14/09/2010

DISPOSITIVOS LÓGICOS
Modo Simple: Entrada dedicada

• SYN = 1.
• AC0 = 0.
• XOR = 0 defines Active Low Output.
• XOR = 1 defines Active High Output.
• AC1 = 1 defines this configuration.
• All OLMC except Pin 15 & 16 can be configured to this function.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Aplicación de los PLDs

Los PLDs que se han mencionado aquí son útiles para circuitos
relativamente pequeños, típicamente no más de 32 entradas y
salidas. No obstante es posible teóricamente construir circuitos
mayores, pero es preferible usar otros dispositivos de mayor
complejidad.

Los PLDs son dispositivos muy vulnerables al ruido, por lo tanto los
diseños realizados con estos dispositivos merecen especial atención
en la implementación de circuitos que permitan aumentar
considerablemente la relación señal/ruido. Normalmente se utiliza
un capacitor de poliester de 0.01 uF a 50 voltios, conectado entre
el polo positivo de la fuente y tierra, lo más cercano posible al chip.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

76
14/09/2010

DISPOSITIVOS LÓGICOS
CPLDs y FPGAs:

Cuando los diseños requieren cierta complejidad y recursos de


hardware, es necesario recurrir a otros dispositivos lógicos
programables de mayor tamaño y estructura, a continuación se
hace una breve descripción de los CPLD y FPGA.

 CPLD (Complex programmable logic device), es una arreglo de


bloques de PLDs y una red de interconexiones programables.
Algunos CPLDs comerciales están conformados por cientos de
bloques de PLDs.

 FPGA (field programmable gate array), son usados para circuitos


con mayor grado de complejidad, en vez de usar PALs, los FPGAs
usan como bloque básico lógico una tabla de busqueda (look up
table), con memoria RAM, multiplexores y flip flops.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Arquitectura de un CPLD Familia 9500 de xilinx:

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

77
14/09/2010

DISPOSITIVOS LÓGICOS
Detalles de la Macrocelda del XC9500:

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Detalles del bloque de
salida para XC9500:

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

78
14/09/2010

DISPOSITIVOS LÓGICOS
Características de la familia XC9500:

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Arquitectura de un FPGA:

En la figura se puede apreciar la


arquitectura de un FPGA de la
familia XILINX, obsérvese que
existen cuatro cuadrantes de
Bloques Lógicos Configurables
comunicados a través de una
matriz de interconexiones; éstos
a su vez alimentan los Bloques
Lógicos de Entrada/Salida.
Existen además unos bloques de
memoria RAM, quienes
determinan las tablas de
búsqueda llamadas Look Up
Table.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

79
14/09/2010

DISPOSITIVOS LÓGICOS
Estructura básica
de un CLB:
1. Contiene una tabla de n entradas.
2. Esta rodeado por canales de
cableado (varios segmentos)
3. La salida del CLB es conectada a
segmentos cableados usando PIPs
(Programmable Interconection
Point)
4. Si el bloque no se usa, todos los
PIPs se desconectan y el bloque
no genera señal a ningún
segmento, y el segmento puede
ser usado para otras señales.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
CLB (Configured Logic Block):
1. Se puede Implementar
lógica combinacional, 2n
por cada celda de
memoria. Usando n
entradas 2^2n.
2. Se programa cargando
el patrón de bits de la
tabla de verdad de la
función.
3. Las entradas no usadas
se mantienen a nivel
bajo o se duplica la
lógica.
4. Punto de Interconexión
Programables (PIP).
5. Contiene Multiplexores.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

80
14/09/2010

DISPOSITIVOS LÓGICOS
Matriz de Interconexiones Programable:

Consta de canales de
conexiones de propósito
general, conexiones
directas, canales de ruteo
vertical y canales de
ruteo horizontal,
denominados líneas de
largo recorrido.

Líneas de interconexión:
1. Directas.
2. De propósito general
3. Globales

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Estructura del IOB: (Input/Output Block)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

81
14/09/2010

DISPOSITIVOS LÓGICOS
Comparativo entre CPLD y FPGA:
1. Lógica
• CPLD: Las funciones se implementan utilizando lógica
AND/OR de dos niveles.
- Puertas AND con muchas entradas
• FPGA: Las funciones se implementan utilizando múltiples
niveles de lógica con puertas de menor fan in.
- LBs más sencillos pero en mayor número.

2. Interconexión
• CPLD: Interconexión tipo crossbar. Cada salida de LB es
directamente interconectable a cada entrada a través de
1 o 2 interruptores
– Tiempo predecible
• FPGA: Interconexión segmentada. Las conexiones entre
LBs típicamente pasan a través de varios interruptores

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
MEMORIAS: Terminología empleada.
Celdas de Memoria : Dispositivo o circuito eléctrico que se usa
para almacenar un solo bit (0 ó 1).
Palabra de Memoria: Grupo de celdas de memoria que representan
instrucciones o datos de algún tipo. Algunas palabras de memoria
son:
NIBBLE: Palabra de 4 bits.
BYTE: Palabra de 8 bits.
WORD: Palabra de 16 bits.
Capacidad de Memoria: Forma de especificar el número de bits
que puede almacenar una memoria o bien un sistema de memoria
completo.

Capacidad = #Palabras X #Bits de cada Palabra

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

82
14/09/2010

DISPOSITIVOS LÓGICOS
CLASIFICACIÓN DE LAS MEMORIAS:

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Ejemplo Memoria PROM 16X4:

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

83
14/09/2010

DISPOSITIVOS LÓGICOS
Organización y Capacidad de un Memoria:

Una Memoria, cualquiera sea su


tipo, cuenta con tres elementos
esenciales:
1. Un BUS de Direcciones.
2. Un BUS de Control.
3. Un BUS de Datos.
La organización de la memoria
se detalla en el cuadro adjunto.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Diagrama Funcional de un Memoria RAM:
DESCRIPCIÓN DE PINES
PIN DESCRIPCIÓN
A0 – A9 (Address Input). Entrada de Direcciones
D0 – D3 (Data Input/Output). Entrada/Salida de Datos
/CS (Chip Select). Selección del CHIP
/WE (Write Enable). Habilitación de Escritura
/OE (Output Enable). Habilitación de salida

MODOS DE FUNCIONAMIENTO
MODO /CS /WE /OE BUS DATOS

INACTIVO 1 X X HIGH Z
LECTURA 0 1 0 Dout
LECTURA 0 1 1 HIGH Z
ESCRITURA 0 0 X Din

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

84
14/09/2010

DISPOSITIVOS LÓGICOS
Conformación de un Banco de Memorias:

Uno de los problemas que enfrenta el


diseño de sistemas micro-procesados
es la conformación de Bancos de
Memorias que permitan aumentar la
capacidad de la palabra; en la figura se
puede observar como se interconectan
dos memorias RAM tipo PCD6114
(1kX4 bits), para obtener una Memoria
de 1kX8 bits.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISPOSITIVOS LÓGICOS
Conformación de un Banco de Memorias:

La figura muestra un modelo


de banco de memoria que
permite aumentar la palabra y
la longitud de la misma.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

85
14/09/2010

DESCRIPCIÓN 1 EN VHDL DE
UNA MEMORIA RAM
-- Descripción de un memoria RAM
-- Librerías
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.Numeric_Std.all;
-- Entidad
entity sync_ram is
port ( clock : in std_logic;
we : in std_logic;
address : in std_logic_vector;
datain : in std_logic_vector;
dataout : out std_logic_vector);
end entity sync_ram;
-- Arquitectura
architecture behavioral of sync_ram is
type ram_type is array (0 to (2**address'length)-1) of std_logic_vector(datain'range);
signal ram : ram_type;
signal read_address : std_logic_vector(address'range);
begin
RamProc: process(clock) is
begin
if rising_edge(clock) then
if we = '1' then
ram(to_integer(unsigned(address))) <= datain;
end if;
read_address <= address;
end if;
end process RamProc;
dataout <= ram(to_integer(unsigned(read_address)));
end architecture behavioral;

DESCRIPCIÓN 2 EN VHDL DE
UNA MEMORIA RAM
-----------------------------------------------------------------------------------
-- Otro modelo de descripción
-----------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
-----------------------------------------------------------------------------------
entity SRAM is
generic( width: integer:=4;
depth: integer:=4;
addr: integer:=2);
port( Clock: in std_logic;
Enable: in std_logic;
ReadD: in std_logic;
WriteD: in std_logic;
Read_Addr: in std_logic_vector(addr-1 downto 0);
Write_Addr: in std_logic_vector(addr-1 downto 0);
Data_in: in std_logic_vector(width-1 downto 0);
Data_out: out std_logic_vector(width-1 downto 0));
end SRAM;
----------------------------------------------------------------------------------

86
14/09/2010

DESCRIPCIÓN 2 EN VHDL DE
UNA MEMORIA RAM
----------------------------------------------------------------------------------------
-- Declaración de la arquitectura y el tipo definido por el usuario ram_type
----------------------------------------------------------------------------------------
architecture behav of SRAM is
type ram_type is array (0 to depth-1) of std_logic_vector(width-1 downto 0);
signal tmp_ram: ram_type;
begin
-- Proceso de lectura de la memoria RAM
process(Clock, Read)
begin
if (Clock'event and Clock='1') then
if Enable='1' then
if Read='1' then
Data_out <= tmp_ram(conv_integer(Read_Addr));
else
Data_out <= (Data_out'range => 'Z');
end if;
end if;
end if;
end process;

DESCRIPCIÓN 2 EN VHDL DE
UNA MEMORIA RAM

-----------------------------------------------------------------------------
-- Proceso para la escritura de la memoria
-----------------------------------------------------------------------------
process(Clock, Write)
begin
if (Clock'event and Clock='1') then
if Enable='1' then
if Write='1' then
tmp_ram(conv_integer(Write_Addr)) <= Data_in;
end if;
end if;
end if;
end process;
end behav;
----------------------------------------------------------------------------------

87
14/09/2010

CAPÍTULO VI

SISTEMAS SECUENCIALES
Y LÓGICA SECUENCIAL

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

INTRODUCCIÓN

Sistemas secuenciales síncronos y asíncronos.

Elementos básicos de memoria:

Registros
Contadores
Memorias de acceso aleatorio (RAM)
Dispositivos lógicos programables (PLDs)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

88
14/09/2010

SISTEMA SECUENCIAL
MODELO GENERAL

MODELO GENERAL
Una misma combinación de
entradas puede generar
distinta salida ya que el
estado puede ser distinto
dependiendo de la historia
de las entradas.

La historia pasada de las


entradas está representada
en el estado que posea el
circuito

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

SISTEMA SECUENCIAL
Características de funcionamiento

En el modelo general el valor de las salidas Zi depende, a


través de la función de salida que implementa el circuito
combinacional, no sólo de los valores actuales de las
entradas Xi, sino también del contenido actual de los
elementos de memoria

En estos elementos, lo que se almacena es el llamado estado


actual del sistema secuencial (registro histórico).

El paso desde el estado actual del sistema a un estado


siguiente, viene a su vez definido por la llamada función de
transición de estados [que depende de los valores actuales
de las entradas y del estado actual].

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

89
14/09/2010

SISTEMA SECUENCIAL
Los sistemas secuenciales pueden ser
síncronos o asíncronos.

1. Sistema Secuencial Síncrono:


es aquel sistema secuencial
en el que los cambios de
estado se producen cuando se
recibe una señal de activación
a través de una entrada
especial del sistema,
denominada “entrada de
reloj”.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

SISTEMA SECUENCIAL
Señal de reloj

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

90
14/09/2010

SISTEMA SECUENCIAL
Señal de reloj

Sistemas Activados por Nivel: es necesario que su señal de


activación alcance el nivel alto para que se produzcan los cambios
de estado en el sistema.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

SISTEMA SECUENCIAL
Señal de reloj

Sistemas Activados por Flanco (de subida o bajada): los


cambios de estado se producen únicamente durante los flancos de
subida o de bajada de la señal de activación del sistema

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

91
14/09/2010

SISTEMA SECUENCIAL
2. Sistema Secuencial Asíncrono: es aquel sistema secuencial
en el que los cambios de estado se producen cuando cambia
alguna de sus entradas, sin necesidad de que se active por una
señal de reloj.

De esta forma, el cambio en las salidas se produce de forma


inmediata en respuesta al cambio en las entradas.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

BIESTABLES

 Latch Cerrojo con inversores.


 Latch SR Asíncrono
 Con Puertas NOR.
 Con Puertas NAND.
 Latch SR Síncrono.
 Con entradas Asíncronas.
 Latch D Síncrono.
 Flip Flop D Master – Slave.
 Flip Flop JK.
 Flip Flop T.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

92
14/09/2010

BIESTABLES
Introducción
Circuito secuencial con dos estados estables (salida 0 y salida 1)
en los que se pueden mantener indefinidamente.

• Objetivo: almacenar un bit (memoria).

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

BIESTABLES
Latch (Cerrojo) con inversores

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

93
14/09/2010

BIESTABLES
Latch SR NOR

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

LATHC SR CON PUERTAS NOR


FUNCIONAMIENTO INHIBIDO

TABLA DE LA VERDAD

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

94
14/09/2010

LATHC SR CON PUERTAS NOR


FUNCIONAMIENTO RESET

TABLA DE LA VERDAD

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

LATHC SR CON PUERTAS NOR


FUNCIONAMIENTO SET

TABLA DE LA VERDAD

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

95
14/09/2010

LATHC SR CON PUERTAS NOR


FUNCIONAMIENTO NO PERMITIDO

TABLA DE LA VERDAD

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

LATHC SR CON PUERTAS NOR

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

96
14/09/2010

LATHC SR CON PUERTAS NOR


DIAGRAMA DE TIEMPOS

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

LATHC SR CON PUERTAS NAND


Latch S-R con puertas NAND: las entradas S y R se activan
ahora por nivel bajo

En tecnología TTL
las puertas NAND se
prefieren a las NOR

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

97
14/09/2010

LATHC SR (NAND)
CARACTERÍSTICAS DE FUNCIONAMIENTO

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

LATHC SR SÍNCRONO
Los latches-SR vistos hasta ahora son:
• Activos por nivel („Latches‟).
• Asíncronos.

Si se agrega una señal de reloj al latch-SR anterior, se obtiene:

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

98
14/09/2010

LATHC SR SÍNCRONO
CARACTERÍSTICAS DE FUNCIONAMIENTO

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

LATHC SR SÍNCRONO
ENTRADAS ASÍNCRONAS

Biestable SR síncrono con entradas de Preset y Clear asíncronas.


• CLEAR  Puesta a cero („0‟) asíncrona.
• PRESET  Puesta a uno („1‟) asíncrona
Tienen prioridad sobre las señales de reloj y permiten poner el estado de uno
(„1‟) o de cero („0‟).

Latch SR síncrono activo por nivel alto de reloj, con entradas asíncronas PRESET y
CLEAR activas por nivel bajo.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

99
14/09/2010

LATHC D SÍNCRONO
BIESTABLE D ACTIVO POR NIVEL

Se utilizan para la implementación de elementos de memoria, cuya única


finalidad es es almacenar el valor de la línea de información (un bit).

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

FLIP-FLOPs
Los Latches son biestables activos por nivel:

Problema:

si hay un pulso no deseado en la entrada de datos  el pulso


no deseado se trasladará a la salida.

Se necesita un elemento de almacenamiento que no pueda


cambiar su estado más de una vez durante un ciclo de reloj

Solución:

biestables activos por flanco 

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

100
14/09/2010

FLIP-FLOP D MASTER-SLAVE
BIESTABLE “D” ACTIVO POR FLANCO DE BAJADA

Para implementar biestables que se activen por flanco se utiliza la


configuración MASTER-SLAVE o MAESTRO-ESCLAVO. Ver figura.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

FLIP-FLOP D MASTER-SLAVE
DIAGRAMA DE TIEMPOS

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

101
14/09/2010

FLIP-FLOP D MASTER-SLAVE
CARACTERÍSTICAS DE FUNCIONAMIENTO

Flip-Flop D Master-Slave activado por flanco de subida.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

BIESTABLE J-K
Problema:

En el biestable S-R se presenta una situación indeseada, cuando S


y R son iguales a uno („1‟)

Solución:

Determinar un estado cuando se dé esta situación, por ejemplo


que el biestable cambie de estado (Q(t+1) = /Q(t)).

J va a actuar como la S del biestable S-R


K va a actuar como la R del biestable S-R

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

102
14/09/2010

FF J-K A PARTIR DEL FF D


FLIP-FLOP ACTIVADO POR FLANCO DE SUBIDA

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

FF J-K A PARTIR DEL FF D


CARACTERÍSTICAS DE FUNCIONAMIENTO

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

103
14/09/2010

FF J-K A PARTIR DEL FF D


FF J-K ACTIVADO POR FLANCO DE BAJADA

Biestable JK activado por flanco de bajada.

 Se utiliza un biestable D activado por flanco de bajada.


 Las puertas lógicas en el circuito combinacional de excitación y
las conexiones realizadas serán las mismas que en el caso
anterior.
 Igual que en los biestables D, los biestables J-K comerciales
disponen de entradas asíncronas (Clear y Preset)
Indica que
el reloj es
negado

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

FF T A PARTIR DEL FF J-K


FLIP-FLOP TOGGLE (BASCULANTE)
Mantiene el estado o lo cambia (dependiendo del valor de T):
Si T = „1‟  Qt+1 = /Qt pero si T = „0‟  Qt+1 = Qt
No se construye comercialmente, se puede implementar utilizando
un biestable J-K, ver figura.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

104
14/09/2010

DERIPCIÓN DE FLIP-FLOP JK
UTILIZANDO VHDL
-- Flip Flop Tipo JK
-- Declaración de Librerías (Cláusulas)
Library ieee;
Use ieee.std_logic_1164.ALL;
-- Entidad
Entity JK is
Port ( ck, J, K : in std_logic;
q, nq : out std_logic);
end JK;
-- Arquitectura
Architecture behavioral of JK is
signal estado: std_logic;
Begin
Process (ck)
Begin
if rising_edge(ck) then
case std_logic_vector'(J, K) is
when "11" => estado <= not(estado);
when "10" => estado <= '1';
when "01" => estado <= '0';
when others => null;
end case;
end if;
q <= estado;
nq <= not(estado);
End process;
End behavioral;

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DERIPCIÓN DE FLIP-FLOP D
UTILIZANDO VHDL
-- Flip Flop Tipo D con Preset Síncrono -- Flip Flop tipo D con Reset asíncrono
-- Declaración de las librerías (Cláusulas) -- Declaración de la libreria (Cláusulas)
Library ieee; library ieee;
Use ieee.std_logic_1164.ALL; use ieee.std_logic_1164.all;
-- Entidad -- Entidad
Entity ffDpreset is ENTITY dff IS
port ( d, ck, npreset: in bit; PORT( D, Clk, Reset : IN STD_LOGIC;
q, nq: out bit); Q, Qbar : OUT STD_LOGIC);
End ffDpreset; END dff;
--Arquitectura -- Arquitectura
architecture behavioral of ffDpreset is ARCHITECTURE behavioral OF dff IS
begin BEGIN
process (ck, npreset, d) PROCESS(Clk, Reset, D)
begin BEGIN
if ck'event and ck='1' then IF Reset=„0‟ then
if npreset='0' then Q <= „0‟;
q <= '1'; Qbar <= „1‟;
nq <= „0‟; ELSIF (Clk'event) AND (Clk='1') THEN
else q <= d; nq <= not d; Q <= D;
end if; Qbar <= not D;
end if; END IF;
end process; END PROCESS;
end behavioral END behavioral;

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

105
14/09/2010

DERIPCIÓN DE FLIP-FLOP T
UTILIZANDO VHDL
--FLIP FLOP TIPO T
Library ieee;
Use ieee.std_logic_1164.ALL;
--Entidad
Entity ffT is
Port ( ck, T : in std_logic;
q, nq : out std_logic);
End ffT;
-- Arquitectura
Architecture behavioral of ffT is
signal estat: std_logic;
Begin
Process (ck, T)
Begin
if rising_edge(ck) then
estat <= T XOR estat;
end if;
q <= estat;
nq <= not(estat);
End process;
End behavioral;

CAPÍTULO VII

ANÁLISIS Y DISEÑO DE
SISTEMAS SECUENCIALES

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

106
14/09/2010

MAQUINAS DE ESTADO
Tópicos de estudio:

 Definición
 Clasificación
 Máquinas de estado asíncronas*
 Maquinas de estado síncronas
◦ Análisis
◦ Síntesis (Diseño)

* No serán objeto de estudio en este curso.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

MAQUINAS DE ESTADO FINITO


DEFINICIÓNES:

 Estado: Es un conjunto de señales cuyos valores en cualquier


instante de tiempo contienen toda la información acerca del
pasado necesaria para explicar el comportamiento futuro del
sistema.

 Maquinas de Estado: Son ciertos circuitos secuenciales que tienen


un número determinado de estados (2n).
 retroalimentados (flip flops, biestables)
 máquinas sincrónicas temporizadas cuando utilizan las primeras
para crear circuitos cuyas entradas son examinadas y cuyas
salidas cambian con respecto a una señal de reloj controlada.

En cualquier caso, se tienen unas entradas, unas salidas y unos


estados.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

107
14/09/2010

MAQUINAS DE ESTADO FINITO


Concepto:

Una máquina de estado finito es un modelo


de comportamiento compuesto de estados,
transiciones y acciones. Un estado
almacena información acerca del pasado
(p.ej. Un estado refleja los cambios que
han existido a la entrada desde el inicio del
sistema hasta el presente). Una transición
indica un cambio de estado y se describe
por una condición que se debe cumplir para
alcanzar la transición. Una acción es una
descripción de una actividad que va a ser
desarrollada en un momento dado.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

MAQUINAS DE ESTADO FINITO


Acciones:

Existen varios tipos de acciones:

1. Acción de inicio: Se ejecuta la acción cuando se inicia el estado.

2. Acción de fin: Se ejecuta la acción cuando se finaliza el estado.

3. Acción de entrada: Se ejecuta dependiendo del estado presente y las


condiciones de entrada.

4. Acción de transición: Ejecuta la acción cuando se lleva a cabo cierta transición.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

108
14/09/2010

MAQUINAS DE ESTADO FINITO


CLASIFICACIÓN:
En una máquina de estados, cada estado siempre será función del
estado anterior y de las entradas. Sin embargo, atendiendo a la
forma en que se generan las salidas es posible hablar de dos tipos
diferentes de máquinas de estado finitas:

• MEALY: las salidas son función del estado y entradas actuales


• MOORE: las salidas son función del estado actual

a, b  Estados
x  Entrada
z  Salida

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

MODELO MÁQUINA DE MOORE


Estructura lógica de bloques:

Estado Siguiente = F (Estado Actual, Entrada)


Salida = G (Estado Actual)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

109
14/09/2010

MODELO MÁQUINA DE MOORE


Diagrama de tiempos:

Todos los cambios de salida en un circuito Moore se sincronizan con el reloj,


ya que la salida sólo es función del estado y éste depende totalmente de la
señal de reloj. A diferencia de circuitos MEALY, los circuitos MOORE no
generan glitches en la salida.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

MODELO MÁQUINA DE MEALY


Estructura lógica de bloques:

Estado Siguiente = F (Estado Actual, Entrada)


Salida = G (Estado Actual, Entrada)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

110
14/09/2010

MODELO MÁQUINA DE MEALY


Diagrama de tiempos:

La salida z puede cambiar en cualquier momento en que cambie la entrada


o el estado, pues z es función de ambos. Esto produce cambios a la
salida inesperados. Se debe tener cuidado de muestrear la salida de un
circuito MEALY sólo cuando el circuito se haya estabilizado después de un
cambio de entrada.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

MOORE vs MEALY
Principales características:

1. La máquina de MEALY es más económica en componentes


físicos que la máquina de MOORE.

2. En un diseño tipo MOORE es más fácil seguir la operación del


sistema en pasos a través de sus estados. Más fácil la detección
de errores.

3. En un sistema tipo MEALY las salidas pueden cambiar con


cambios indeseados de las entradas.

4. En un diseño con modelo MOORE la salida es síncrona con el


reloj, en MEALY no lo es.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

111
14/09/2010

ANÁLISIS DE MAQUINAS DE
ESTADO
Ejemplo 1:
Determine el funcionamiento del
circuito de la figura.
1. Lo primero es establecer que en
realidad el circuito es secuencial
Esto se evidencia cuando se nota
que posee elementos de memoria
(FFs, en este caso tipo D) y lazos
de realimentación. Si no fuera
secuencial, el funcionamiento se
establecería a partir de la tabla de
verdad.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

ANÁLISIS DE MAQUINAS DE
ESTADO

2. Se obtienen las ecuaciones de


excitación.
Estas ecuaciones son ecuaciones
booleanas que describen la
entrada a los FFs. Ya que este
circuito usa FFs tipo D, tienen
una sola entrada.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

112
14/09/2010

ANÁLISIS DE MAQUINAS DE
ESTADO

3. Desarrollar las ecuaciones del


siguiente estado.
La ecuación característica de un FF
tipo D es: Q*= D
Remplazando se obtiene

Desarrollar la ecuación de la salida.

Y = Q0 · Q 1

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

ANÁLISIS DE MAQUINAS DE
ESTADO

4. Desarrollar la tabla de excitación

tabla de excitación
C Q1 Q0 Q *1 Q *0 Y
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 1 0 0
0 1 1 1 1 1
1 0 0 0 1 0
1 0 1 1 0 0 En este ejercicio la salida depende
1 1 0 1 1 0 TOTALMENTE del estado actual
1 1 1 0 0 1

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

113
14/09/2010

ANÁLISIS DE MAQUINAS DE
ESTADO
5. Desarrollar el diagrama de
estados
El diagrama de estados muestra
gráficamente las transiciones
entre estados. C=0
Cada círculo representa un estado. El
C=0 C=1 estado que representa se encuentra
00 01 codificado dentro del círculo, al igual
Y=0 Y=0 que la salida bajo la línea.

C=1
Los líneas tipo flecha del diagrama
C=1
representan las transiciones, que
dependen de la entrada.
11 10
A partir de esta representación es más
Y=1 Y=0
C=1
C=0
sencillo entender el comportamiento
C=0
del circuito.
Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

ANÁLISIS DE MAQUINAS DE
ESTADO
X

Ejercicio para resolver en clase:

Determine el funcionamiento del


circuito de la figura.

J Q
CP _
K Q
R

J Q
CP _
K Q
R

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

114
14/09/2010

ANÁLISIS DE MAQUINAS DE
ESTADO

Ejercicio para resolver en casa (HOMEWORK)

Aplicar el algoritmo de análisis


previamente descrito para analizar el
funcionamiento del circuito de la figura.
◦ Determine si el circuito es MEALY
o MOORE.
◦ Determine la forma de onda de
las señales a la salida (imagine
una señal cualquiera a la entrada
X, de al menos 7 transiciones).
◦ Determine el diagrama de
transición de estados.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISEÑO LÓGICO CON FSM


SÍNTESIS:

 La síntesis de circuitos secuenciales comienza con la


especificación de la tabla (o diagrama) de estados deseada.

 Pueden existir circuitos con especificación completa, en los


cuales cada pareja de estado siguiente/salida está definida por
completo. (Dibujar ejemplo en el tablero).

 Pueden también existir circuitos de especificación incompleta, en


los cuales se tienen varios estados siguientes o salidas
arbitrarias. (Dibujar ejemplo en el tablero).

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

115
14/09/2010

DISEÑO LÓGICO CON FSM


SÍNTESIS:

Los pasos a seguir en la síntesis de máquinas de estado son los siguientes:


1. A partir de la especificación del circuito, obtener los diagramas de
estado (modelo de MEALY o de MOORE).
2. Obtener la Tabla de estados.
3. Asignar códigos a cada estado del diagrama (Binary o One Hot).
4. Escoger el tipo de Flip-Flops a emplear.
5. Desarrollar la tabla de excitación.
6. Obtener las ecuaciones de entrada de cada FF (excitación).
7. Obtener las ecuaciones de la(s) salida(s).
8. Realizar el diagrama lógico del circuito.

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISEÑO LÓGICO CON FSM


SÍNTESIS EJEMPLO:

Para entender más fácilmente este procedimiento, se desarrollará paso a


paso el siguiente ejercicio:

Diseñar una máquina de estados que permita detectar la secuencia 110,


cuya entrada a la máquina se hará de forma serial por el puerto X. Cada
que la máquina detecte la secuencia, una salida Z se pondrá en 1.

1. Diagrama de estados: Con las especificaciones dadas, se construye el


diagrama de estados. Obsérvese que se puede utilizar tanto el modelo
MOORE, como el modelo de MEALY.
Para el caso del ejercicio, se optará por el modelo de MEALY.
NOTA: Se sugiere que el estudiante desarrolle el ejercicio utilizando el
modelo de MOORE

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

116
14/09/2010

DISEÑO LÓGICO CON FSM


1. Diagrama de estados:
x=1/z=0

a x=0/z=0

x=1/z=1 b x=0/z=0
x=0/z=0

x=1/z=0
c

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISEÑO LÓGICO CON FSM


2. Tabla de estados: Teniendo en cuenta las transiciones y las
salidas del diagrama de estados, se construye la tabla.

E.P. Entrada E.S. Salida


a x’ b z = ‘0’
a x a z = ‘0’
b x’ b z = ‘0’
b x c z = ‘0’
c x’ b z = ‘0’
c x a z = ‘1’

E.P.  ESTADO PRESENTE; E.S.  ESTADO SIGUIENTE

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

117
14/09/2010

DISEÑO LÓGICO CON FSM


3. Codificación de estados: Para la codificación de estados se
tienen en cuenta los siguientes métodos:

3.1 ONE HOT: El método ONE HOT para codificación de estados,


aumenta la velocidad de procesamiento de la máquina, pero
disminuye eficiencia en área. Se utiliza un biestable por estado, en
el caso del ejemplo será:

a 001; b 010 ; c 100


3.2 BINARY: Este método responde más lentamente que el anterior,
pero permite un mejor aprovechamiento del área del dispositivo.
Se utiliza el código BINARIO o el código GRAY, así pues el número
de biestables será igual a #Estados = 2n. Donde n es el número de
biestables a utilizar. En el caso del ejemplo será:

Se utilizará en el
a 00 ; b 01; c 10 ejemplo

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISEÑO LÓGICO CON FSM


4. Selección del biestable: En este paso se selecciona el tipo
de flip-flop a utilizar, dependiendo de sus prestaciones y
complejidad. Para hacer más completo el ejemplo, se utilizará el
flip-flop tipo JK, cuya tabla de excitación se presenta a
continuación:
Tabla completa
J K Qt Qt+1

0 0 0 0 Tabla Reducida
0 0 1 1 J K Qt+1

0 1 0 0 0 0 Qt

0 1 1 0 0 1 0

1 0 0 1 1 0 1

1 0 1 1 1 1 /Qt

1 1 0 1

1 1 1 0

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

118
14/09/2010

DISEÑO LÓGICO CON FSM


5. Obtener la tabla de excitación: Una vez seleccionado el
biestable y el tipo de codificación de los estados, se desarrolla la
tabla de excitación, la cual contiene; además de entradas,
salidas, estado presente y estado siguiente; las señales de
excitación de los biestables.
Tabla de excitación
E.P. Entrada E.S. J1 K1 J0 K0 Salida
Q1 Q0 x Q1 * Q 0 * z
0 0 0 0 1 0 0 1 X 0
0 0 1 0 0 0 0 0 0 0
0 1 0 0 1 0 0 0 0 0
0 1 1 1 0 1 X X 1 0
1 0 0 0 1 X 1 1 X 0
1 0 1 0 0 X 1 0 0 1

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

DISEÑO LÓGICO CON FSM


6. Ecuaciones de excitación de cada flip-flop: A partir de
la tabla de excitación, se obtienen las ecuaciones de excitación
de los flip-flops. Se puede usar algebra de BOOLE o mapas de
KARNAUGH.

J0 K0
Q1Q0 Q1Q0
x 00 01 11 10 x 00 01 11 10

0 1 0 0 1 0 X 0 0 X

1 0 X 0 0 1 0 1 0 0

J0 = X AND Q0 = X NOR Q0 K0 = Q1 AND (X XNOR Q0)

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

119
14/09/2010

DISEÑO LÓGICO CON FSM


6. Ecuaciones de excitación de cada flip-flop:
Igualmente se obtienen las ecuaciones booleanas para J1 y
K1.

J1 K1
Q1Q0 Q1Q0
x 00 01 11 10 x 00 01 11 10

0 0 0 0 X 0 0 0 0 1

1 0 1 0 X 1 0 X 0 1

J1 = X AND (Q1 XOR Q0) K1 = Q1 AND Q0

DISEÑO LÓGICO CON FSM


7. Ecuaciones de salida: Igualmente se obtienen las
ecuaciones booleanas para la salida Z.

Z
Q1Q0
x 00 01 11 10

0 0 0 0 0

1 0 0 0 1

Z = Q1 AND Q0 AND X

120
14/09/2010

DISEÑO LÓGICO CON FSM


8. Realización del circuito Lógico: Seguidamente se
procede a realizar el circuito lógico. Según el diseño se
tienen dos flip-flops tipo JK más la lógica combinacional.

DESCRIPCIÓN EN VHDL DE
UNA MÁQUINA DE ESTADOS
La descripción en VHDL de máquinas de estado se realiza utilizando un patrón de
código estándar el cual utiliza sentencias secuenciales como:

• PROCESS
• CASE/END CASE
• WHEN … ELSE
• IF … THEN … ELSE/END IF

Para estudiar las máquinas de estado descritas en VHDL, continuaremos con el


ejemplo del detector de secuencia (011) cuya representación de estados es la
siguiente:
0/0

1/0 0/0 1/0 X  Input


S0 S1 0/0 S2
Z  Output

1/1

121
14/09/2010

FSM DESCRITA EN VHDL


La descripción de la máquina de estados inicia con la declaración de las librerías,
observe que por lo menos debe declararse la librería estándar 1164, la cual contiene la
mayoría de componentes y dispositivos del lenguaje. Luego se declara la entidad quien
permite la interconexión del sistema con el mundo exterior por último se declara la
arquitectura tipo comportamental con estructura secuencial; en ella se declaran dos
procesos: uno para la máquina de estados propiamente dicha y el otro para la
actualización a estado presente del próximo estado, todo sincronizado con la señal del
reloj.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity Det_Sec is
Port ( x, rst, clk : in STD_LOGIC;
z : out STD_LOGIC);
end Det_Sec;

Continuación

FSM DESCRITA EN VHDL


architecture Behavioral of Det_Sec is when S2 =>
Type state_type is (S0, S1, S2); if x = '1' then
Signal EP, ES: state_type; ES <= S0;
begin z <= '1';
process (x, EP) Else
begin ES <= S1;
Case EP is z <= '0';
when S0 => end if;
if x = '1' then end case;
ES <= S0; end process;
z <= '0';
Else process(clk, rst, ES)
ES <= S1; begin
z <= '0'; if rst = '1' then
end if; ES <= S0;
when S1 => elsif clk = '1' and clk'event then
if x = '1' then EP <= ES;
ES <= S2; end if;
z <= '0'; end process;
Else end Behavioral;
ES <= S1;
z <= '0';
end if;

122
14/09/2010

RESULTADO DE LA
SIMULACIÓN
Resultado de la simulación del detector de secuencia (011)

TALLER DE EJERCICIOS
Problema 7.1: Diseñe un circuito secuencial síncrono con una entrada de datos X, que
produzca una salida Z = "1 " durante un ciclo de reloj cuando la secuencia de los tres
últimos valores de la entrada sean : 111, 110 ó 000.

Problema 7.2: Diseñe un autómata de Mealy con dos entradas X, Y y una salida Z cuyo
funcionamiento sea el siguiente:
a. si XY = 00, entonces Z = 0 .
b. si XY = 11, después de que las entradas hayan sido durante dos ciclos de reloj
XY = 01, entonces Z= 1.
En el resto de los casos se mantiene la salida .

Nota: en cada ciclo sólo puede cambiar una variable de entrada, no las dos a la vez.

Problema 7.3: Se desea diseñar una maquina expendedora de refrescos, cuyo


funcionamiento es el siguiente: La máquina acepta monedas de $ 500, $ 200 y $ 100;
el refresco cuesta $ 700; se pueden ingresar los tres tipos de denominación de
monedas; cuando la máquina detecte que se han ingresado $ 700 o más, entregará el
refresco activando la salida durante un pulso de reloj; si el ingreso fue de $ 700,
entonces la máquina entrega el refresco y retorna al estado inicial; si por el contrario
se ingresó un valor superior a los $ 700, la máquina entrega el refresco e indica, en un
display siete segmentos, la cantidad de monedas de $ 100 que debe devolver, luego
retorna al estado inicial. Se pide hacer un diseño FSM que controle el funcionamiento
de la máquina.

123
14/09/2010

FUENTES BIBLIOGRÁFICAS

Diseño Digital - IE. MSc. José Armando Becerra Vargas - UFPS 2010

124

S-ar putea să vă placă și