Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capítulo 2
(PRIMERA PARTE)
Contenido
Resumen I-3
2
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Introducción.
El diseño digital ha ido cambiando en los últimos años incorporando cada vez más los
dispositivos lógicos programables (PLD) debido a sus grandes ventajas entre ellas la
facilidad de diseño que permite obtener circuitos a la medida utilizando dispositivos
estándar de fácil adquisición en el mercado, gran flexibilidad debido a que los dispositivos
pueden volverse a programar simplemente modificando el programa, generalmente sin
afectar el circuito impreso, menor costo debido a la disminución del tiempo necesario para
realizar el diseño así como la reducción de los inventarios de componentes ya que con un
mismo dispositivo se pueden diseñar una gran variedad de sistemas digitales, mayor
fiabilidad debido a que se utilizan menor cantidad de circuitos integrados con lo cual se
simplifica también el circuito impreso, posibilidad de proteger el diseño de modo tal que no
sea posible descifrar la función programada en el PLD. Por todo lo anterior, y muchas otras
ventajas que pudieran señalarse, la lógica programable se ha convertido en la más
importante en el diseño digital. En este capítulo se introducirán algunos de los PLD
disponibles en el mercado así como el lenguaje de descripción de hardware VHDL que es
uno de los más utilizados actualmente para la programación de los PLD. En los ejemplos y
ejercicios de este capítulo se ilustra la facilidad y rapidez que brindan los dispositivos
lógicos programables en el diseño digital.
3
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
PAL y las memorias ROM y por esa razón no se estudian en este Texto.
4
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Note que en cada una de las compuertas AND que constituye el arreglo programable de un
PAL están disponibles todas las variables de entrada tanto negadas como sin negar.
En la Figura 2-2 a) se ilustra el empleo del PAL anterior para obtener la función
F(a,b) = /a.b + a./b = a ⊕ b. Mientras que en la Figura 2-2 b) se obiene W = /b. Note la
programación del arreglo AND para obtener la función deseada en cada caso. Este proceso
de programación se realiza escribiendo el programa correspondiente mediante el uso de un
lenguaje de descripción de hardware y se aplica al dispositivo mediante un programador.
Figura 2-2. a) Utilización del PAL de la Figura 2-1 para obtener la función F = a ⊕ b.
b) Utilización del PAL de la Figura 2-1 para obtener la función W = /b.
5
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
6
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
En la Figura 2-2 a) se mostró el diagrama lógico del PAL programado para obtener la
función F(a,b) = /a.b + a./b = a ⊕ b. Veamos ahora esta misma programación en la
estructura interna del PAL. En la Figura 2-4 se ilustra este caso:
7
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Figura 2-4. a) Estructura interna del PAL programado para obtener la
función F(a,b) = /a.b + a./b = a ⊕ b. b) Circuito equivalente.
SPLD comerciales.
El PAL fue inventado en 1978 y ya en los años 90 se había convertido en un dispositivo
muy popular para el diseño digital tanto en circuitos lógicos combinacionales como en los
secuenciales. En la actualidad hay muchos tipos diferentes de PAL fabricados por una gran
cantidad de firmas las que utilizan diferentes nombres comerciales para designarlos tales
como PAL, PALCE, GAL y otros. Entre los PAL mas utilizados pueden mencionarse el
16V8 y el 22V10. El diagrama lógico tanto del 16V8 como del 22V10 es similar al PLD
básico mostrado en la Figura 2-1 pero además tienen otros elementos que los hacen más
flexibles y potentes. Comenzaremos presentando algunas características del 16V8 y
posteriormente las del 22V10.
16V8.
Este dispositivo es muy flexible y económico su arreglo AND está formado por 64
compuertas de 32 entradas que son programables. Su macro celda de salida combinacional
está formada por la compuerta OR y una XOR tal como se aprecia en la Figura 2-5:
Figura 2-5. a) Macro celda de salida del 16V8 en su variante compleja b) Macro celda de
salida del 16V8 en su variante simple.
Como se puede apreciar en la Figura anterior a la salida de la compuerta OR hay una XOR
cuya función es la de actuar como un buffer o como inversor según convenga de acuerdo a
la polaridad de la función que se esté sintetizando; esto es transparente para el usuario y se
ejecuta automáticamente de acuerdo al programa. También hay un buffer inversor con
tercer estado que permite utilizar el terminal de salida como entrada en los casos
necesarios. En esta variante, llamada compleja, el buffer inversor con tercer estado se
controla mediante un término producto para lo que se dedica una de las ocho compuertas
AND asociada a la macro celda. Los siete términos producto restantes se utilizan para
sintetizar la función deseada. Hay una versión llamada simple, mostrada en la Figura 2-5b),
donde los ocho términos producto se utilizan para sintetizar la función y en ese caso la
entrada de control del buffer inversor con tercer estado se conecta a la fuente de
alimentación para que el mismo sea transparente. En el 16V8 hay ocho macro celdas
Iguales. Note, además, la conexión de la salida hacia las entradas, presente en seis de sus
ocho macro celdas, lo que permite realimentar la variable de salida, o sea, se puede utilizar
8
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
también como entrada. En la Figura 2-6 se muestra la distribución de terminales del 16V8
en su versión compleja.
16V8C
1 I1
2 19
I2 O1
3 I3 18
IO2
4 I4 17
IO3
5 D5
I5 16
IO4
6 D6 15
I6 IO5
7 I7 14
IO6
8 13
I8 IO7
9 B 12
I9 O8
11
I10
Como se puede apreciar, el 16V8 tiene 16 entradas posibles y 8 salidas, por eso se utilizan
los números 16 y 8 en su nombre. Hay 6 terminales que se pueden utilizar como entradas o
salidas o ambas cosas a la vez, 10 terminales son sólo de entrada y 2 son solamente de
salida. En una aplicación determinada la suma de las entradas más las salidas nunca puede
ser mayor de 18 que es el número de terminales disponibles para ellas ya que en total el
envase tiene 20 terminales.
Otros datos sobre este dispositivo pueden hallarse en las hojas de dato dada por sus
fabricantes [3, 4, 5].
El diagrama lógico completo del 16V8 se muestra en la Figura 2-7. Las 32 líneas verticales
representan cada una de las entradas de las compuertas AND.
9
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Figura 2-7. Diagrama lógico del 16V8 en su versión compleja. Los terminales 12 y 19 son
únicamente de salida y los del 1 al 11 solamente de entrada.
10
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
22V10.
Con el 22V10 se pueden sintetizar los mismos circuitos que con el 16V8 y otros mayores
ya que este tiene diez macro celdas y un número mayor de términos producto. Las
compuertas que forman el arreglo AND tienen 44 entradas cada una para asimilar las 22
variables posibles de entrada tanto negadas como sin negar. Al igual que el 16V8, con este
PAL, se pueden diseñar circuitos lógicos combinacionales y también secuenciales
La macro celda combinacional del 22V10 y la distribución de sus terminales en su versión
combinacional se muestra en la Figura 2-8:
Figura 2-8. a) Macro celda combinacional del 22V10. La cantidad de términos productos en
cada macro celda varía desde 8 hasta 16. b) Distribución de terminales del 22V10 en su
versión combinacional. Los terminales 12 y 24, no representados, son los de alimentación.
Como se puede apreciar, el 22V10 tiene 22 entradas posibles y 10 salidas, por eso se
utilizan los números 22 y 10 en su nombre. Hay 10 terminales que se pueden utilizar como
entradas o salidas o ambas cosas a la vez y 12 terminales son sólo de entrada. En una
aplicación determinada la suma de las entradas más las salidas nunca puede ser mayor de
22 que es el número de terminales disponibles para ellas ya que en total el envase tiene 24
terminales. El diagrama lógico del 22V10 se puede encontrar en las Referencias [1-2].
11
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Figura 2-9. Definición del tiempo de propagación (tpd). Otros índices, tales
como consumo, frecuencia máxima, etc. Pueden hallarse en la hoja de datos que
suministran los fabricantes.
PLD complejos (CPLD). Un CPLD está formado por un conjunto de PLD simples
con un sistema de interconexión entre los mismos que permite aprovechar mejor los
recursos de que estos disponen. Estos dispositivos le brindan al diseñador un número mayor
de macro celdas y de términos productos lo que permite sintetizar sistemas digitales
mayores tanto combinacionales como secuenciales. En la Figura 2-10 se muestra la
arquitectura de un CPLD:
Interconexión programable
= Bloque de entrada/salida
Al igual que ocurre con los SPLD, en el mercado hay disponibles muchos tipos de CPLD
producidos por diferentes firmas entre ellas la familia C370 de Cypress [3]
y la familia XC9500 de Xilinx [4]. En la familia XC9500 cada uno de los PLD, bloques
funcionales, que forman su arquitectura tiene 18 macro celdas y cada macro celda tiene
asociadas cinco compuertas AND de 72 entradas cada una lo que permite aplicar hasta 36
variables de entrada. Cada uno de estos bloques funcionales puede ser considerado como
12
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
equivalente a un PAL 36V18. Aunque cada macro celda tiene asociadas solamente cinco
compuertas AND dentro de cada bloque funcional todas las compuertas AND del mismo
pueden utilizarse por cualquiera de sus macro celdas de manera tal que pudiera llegarse a
tener hasta 90 (18x5) compuertas AND en una macro celda. En la Figura 2_11 b) se ilustra
esta combinación de compuertas AND:
Figura 2-11. a) Grupo de cinco AND correspondiente a una macro celda de un CPLD de la
familia XC9500 b) Combinación de compuertas AND de dos macro celdas
para disponer de diez términos producto.
La Familia XC9500 tiene seis dispositivos que van desde el XC9536 hasta el XC95288, los
dígitos que aparecen a la derecha del 95 dan la cantidad total de macro celdas que posee
cada dispositivo. En la Tabla 2-1 se puede apreciar todo lo anterior:
Tabla 2-1. Total de macro celdas y de bloques funcionales de cada CPLD de la Familia
XC9500.
En la Tabla 2-2 se muestra los diferentes envases en que se ofertan los CPLD de la Familia
XC9500:
13
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Otra ventaja importante que ofrecen al diseñador los CPLD es que un mismo dispositivo se
oferta en diferentes envases lo que permite escoger el más adecuado de acuerdo a la
aplicación de que se trate. Además se puede cambiar de dispositivo sin cambiar de envase
lo que posibilita utilizar la misma tarjeta de circuito impreso en el caso de que ya esta
existiera. Todos los terminales externos son de entrada/salida lo que posibilita utilizarlos
como entradas, como salidas o como ambas cosas a la vez.
Macro celdas enterradas. En la Tabla 2-2 se puede ver que el número total de terminales
accesibles es, en general, menor que el total de macro celdas del CPLD esto significa que
hay macro celdas cuyas salidas no son accesibles externamente, se dice que ellas están
“enterradas” dentro del dispositivo. Esto se debe a que en el diseño de un circuito o sistema
digital grande puede haber salidas de macro celdas que no se necesitan externamente ya que
las mismas sólo se utilizan internamente en la realización de alguna parte de la lógica
necesaria.
FPGA. Los arreglos de compuertas programables por campo son dispositivos con
mayores posibilidades aun que los CPLD para diseñar sistemas digitales grandes tanto
combinacionales como secuenciales. Están formados por una gran cantidad de bloques
programables, cada uno de estos bloques tienen menos posibilidades que los bloques
funcionales de un CPLD pero hay una cantidad de ellos mucho mayor por unidad de área.
Estos bloques se encuentran distribuidos en un mar de interconexiones programables. El
arreglo posee además bloques de entrada/salida que también son programables. Al igual
que en los casos estudiados anteriormente, existen numerosos tipos de FPGA ofertados por
diferentes firmas entre ellas puede señalarse la Familia XC4000E de Xilinx [1,4] y la nueva
familia ORCA de Lattice Semiconductor [5].
Recientemente, como resultado de los trabajos de desarrollo encaminados a la obtención de
dispositivos analógicos programables, ha sido introducido el FPAA, arreglo analógico
programable por campo. Su tecnología es similar a la de los FPGA. Entre las funciones que
pueden seleccionarse con el software correspondiente se encuentran rectificadores, etapas
de ganancia, filtros y osciladores [6].
14
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
La utilización de los PLD en el diseño digital requiere, además del dispositivo programable,
de un programador y del software correspondiente. Este software en el caso de los PAL,
CPLD y FPGA es un lenguaje de descripción de hardware.
Un lenguaje de descripción de hardware (HDL) es una herramienta formal que sirve para
describir el comportamiento y la arquitectura de un circuito o sistema electrónico utilizando
diferentes niveles de abstracción y en muchos casos el modo jerárquico. Aquí nos
ocuparemos solamente de los HDL utilizados para el diseño digital.
• HDL de bajo nivel: Permiten definir un circuito a nivel de su arquitectura con poco
nivel de abstracción. Ejemplos de esto son ABEL y PALASM. En la Referencias
[1-2] pueden encontrarse algunas de las características del lenguaje ABEL y
numerosos ejemplos de diseño digital empleando este lenguaje. En el Capítulo 4 de
la Referencia [7] hay varios ejemplos de CLC diseñados con PALASM.
• HDL de nivel medio: Permiten definir un circuito con mayor nivel de abstracción y
utilizar el modo jerárquico. Un lenguaje de este tipo es el AHDL de Altera [8] .
• HDL de alto nivel: Permiten definir un circuito o sistema con un gran nivel de
abstracción, además de utilizar el modo jerárquico. Lenguajes de este tipo son
VERILOG y VHDL, ambos han alcanzado una gran difusión a nivel internacional y
son estándares de la IEEE. En este Texto se utiliza el VHDL debido a su
importancia creciente [9, 10, 11].
15
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Utilizando VHDL se puede diseñar, simular y sintetizar desde un CLC sencillo, como los
ejemplos que se muestran en este Texto, hasta sistemas digitales de gran complejidad tal
como un microprocesador [9].
Declaración de la
Entidad.
Definición de la
Arquitectura.
ENTITY nombre_entidad IS
PORT ( Nombre de señal : modo tipo de la señal ;
...
Nombre de señal : modo tipo de la señal ) ;
16
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
END nombre_entidad ;
Modo de las señales. En VHDL las señales pueden tener cuatro modos diferentes:
Tipo de las señales. En VHDL hay varios tipos de señales predefinidos por el lenguaje,
tales como:
Además el usuario puede definir otros tipos, lo que resulta muy conveniente en algunos
casos, como por ejemplo en el diseño de máquinas de estado.
El lenguaje VHDL concede máxima importancia a los tipos de las señales, por ejemplo no
se admite realizar una asignación mezclando tipos diferentes. Algunas características de los
tipos predefinidos están dadas en la Tabla 2-3.
Tipo Características
Bit En este tipo las señales sólo toman los valores ‘1’ y ‘0’
Boolean En este tipo las señales sólo toman los valores True y False
Std_logic En este tipo las señales toman nueve valores, entre ellos
tenemos: ‘1’, ‘0’, ‘Z’ (para el tercer estado),
‘-’ (para los opcionales)
Integer En este tipo las señales toman valores enteros. Los 1 y 0
aquí van sin ‘’
Bit_vector En este tipo los valores de las señales son una cadena de
unos y ceros. Una cadena se escribe entre comillas.
Ejemplo: “1000”
Std_logic_vector En este tipo los valores de las señales son una cadena de
los nueve valores permisibles para el tipo std_logic.
Ejemplo: “1-0Z”
17
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Ejemplo 2-1. Escriba la declaración de identidad para un circuito digital con dos entradas
(a, b) y una salida f, como el mostrado:
ENTITY
a
f
b
Solución:
ENTITY ejemplo1 IS
PORT ( a, b : IN bit ;
f : OUT bit ) ;
END ejemplo1 ;
Las declaraciones y definiciones que preceden a BEGIN pueden estar presentes todas,
algunas o ninguna, esto depende del tipo de diseño que se esté realizando. No obstante la
declaración de señales se utiliza mucho pues contribuye, entre otras cosas, a la claridad del
diseño.
18
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Ejemplo 2-2. Escriba la definición de arquitectura para la entidad del Ejemplo 2-1
suponiendo que el circuito es una compuerta AND.
Solución:
En VHDL hay una gran flexibilidad para escribir la arquitectura de una identidad
determinada. Otra forma es la siguiente:
Ejemplo 2-3. Veamos ahora, otra situación donde tenemos un circuito con dos entradas
(a, b) y una salida f. La entidad es igual a la del Ejemplo 2-1; pero supongamos que la
función que realiza el circuito es tal que la salida será 0 sólo si las entradas son iguales (el
circuito realiza la operación XOR). Escriba el programa en VHDL para sintetizar este
circuito.
Solución:
La entidad es la misma del Ejemplo 1, sólo es necesario cambiar la arquitectura. Esta es una
forma posible de escribir el programa:
19
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Operadores en VHDL.
En VHDL existen diferentes operadores entre ellos tenemos: operadores lógicos, de
relación, aritméticos y de concatenación.
Esta última ya se empleó en los ejemplo 2-2 y 2-3 y será utilizada nuevamente en el
siguiente:
Ejemplo 2-4. Escriba en VHDL un fichero para obtener una compuerta NOR de dos
entradas. Utilice señales tipo boolean y asignaciones condicionales de la forma when ...
else.
Solución:
20
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Ejemplo 2-5.
Repita el diseño anterior; pero utilice asignaciones condicionales de la forma
with ..... select .. when ... others
Solución:
-- fichero boole2_5.vhd
Note la diferencia entre las arquitecturas de estos dos Ejemplos; sin embargo en ambos
casos se obtiene el mismo resultado, la operación NOR.
Paquetes. En los paquetes se guardan definiciones de tipos y objetos que pueden ser
utilizados en los diferentes diseños que invoquen su utilización. Un paquete muy utilizado
es el paquete estándar IEEE.STD_LOGIC_1164. La utilización de un paquete en un diseño
se realiza invocando su empleo mediante la cláusula Use nombre del paquete. Un ejemplo
de esto es la siguiente línea:
Use IEEE.STD_LOGIC_1164.ALL ;
La terminación .ALL permite utilizar todas las definiciones y objetos que contiene dicho
paquete. Además del estándar, existen otros paquetes de utilización general y también los
diseñadores que trabajan con VHDL pueden definir sus propios paquetes lo que les permite
reutilizar diseños realizados anteriormente como parte de nuevos diseños.
21
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
PACKAGE nombre_paquete IS
Declaración de tipos
Declaración de señales
Declaración de constantes
Declaración de componentes
Declaración de funciones
Declaración de procedimientos
END nombre_paquete ;
Esta última parte que aparece entre los dos END, la relacionada con el cuerpo del paquete,
puede o no existir y en el caso de existir las declaraciones y definiciones contenidos en la
misma son locales, visibles sólo dentro del paquete; mientras que las declaraciones y
definiciones contenidos en la primera parte del paquete, son visibles para todos los diseños
que lo utilicen.
COMPONENT nombre_componente
END COMPONENT ;
22
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Ejemplo 2-6. Diseñe un buffer con tercer estado semejante al dado en la Figura 1-12 del
Capítulo 1 cuya Tabla de la verdad es la siguiente:
EN_L A Y
1 – Tercer estado
0 0 0
0 1 1
Solución:
-- fichero Ejem2_6.vhd
Library ieee ;
Use ieee.std_logic_1164.all ;
En este caso hay que utilizar el tipo std_logic que es el que tiene el tercer estado entre sus
valores. Esto exige la utilización de la biblioteca Library ieee y del paquete estándar
ieee.std_logic_1164.all que es donde están las definiciones necesarias para poder trabajar
con el tipo std_logic.
23
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Arquitectura 1
Entidad 2 Entidad 3
Arquitectura Arquitectura
Entidad 4
Arquitectura 4
Ejemplo 2-7. Utilice VHDL y diseñe un CLC con tres entradas a, b, c y una salida T que
realice la función mostrada en la Tabla siguiente:
Entradas Salida
a b c T
0 0 - 0
0 1 0 0
0 1 1 1
1 0 - 1
1 1 - 0
Solución:
-- fichero t.vhd
entity T is port ( a,b,c : in bit ;
T : out bit ) ;
end T ;
architecture T of T is begin
T <= '1' WHEN a = '0' and b = '1' and c = '1' ELSE
'1' WHEN a = '1' and b = '0' ELSE
'0' ;
end T ; -- Note el tratamiento dado a los opcionales.
24
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
port ( a,b,c : in bit ;
T : out bit ) ;
END COMPONENT ;
END TPKG ;
Ejemplo 2-8. Utilice VHDL y diseñe un CLC con tres entradas a, b, c y una salida W que
realice la función mostrada en la tabla siguiente:
Entradas Salida
a b c W
0 - - 1
1 0 - 0
1 1 0 0
1 1 1 1
Solución:
-- fichero W.vhd
entity W is port ( a,b,c : in bit ;
W : out bit);
end W;
architecture W of W is begin
W <= '1' WHEN a = '0' ELSE
'1' WHEN b = '1' and c = '1' ELSE
'0' ;
end W ;
Ejemplo 2-9. Utilice el diseño jerárquico en VHDL y diseñe un CLC con tres entradas a,
b, c y una salida F que realice la función T dada en el Ejemplo 2-7 o la función W dada en
el Ejemplo 2-8, de acuerdo al valor que tome una entrada adicional de selección, S .
Cuando S =’0’ la salida debe ser F = T y para S =’1’ será F = W.
25
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
S F
0 T
1 W
Solución:
Ejemplo 2_10. Diseñe un CLC que realice la suma de dos números enteros de dos bits cada
uno. Utilice señales de tipo integer.
Solución:
26
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
-- fichero: suma.vhd
entity suma is
port (
a, b: in integer range 3 DOWNTO 0 ;
salida: out integer range 6 DOWNTO 0
) ;
end suma ;
Ejemplo 2_11. Diseñe un CLC para obtener el módulo de la diferencia de dos números
enteros de dos bits cada uno. Utilice señales de tipo integer.
entity resta is
port (
a, b: in integer range 3 downto 0 ;
salida : out integer range 3 downto 0 ) ;
end resta ;
Ejemplo 2-12. Diseñe un CLC que realice la operación 2a + b, donde a y b son dos
números enteros de tres bits cada uno. Utilice señales de tipo integer.
Solución:
--Fichero: multi.vhd
entity multipli is
port (a, b: in integer range 7 DOWNTO 0 ;
salida : out integer range 21 DOWNTO 0 ) ;
end multipli ;
27
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
salida <= ((a*2) + b) ;
-- Un entero sólo se puede multiplicar por números que sean potencias de 2.
end multipli ;
Ejemplo 2-13. Diseñe un CLC que realice la multiplicación de dos números enteros de dos
bits cada uno. El circuito debe tener además una entrada de habilitación (EN_L) activa en el
nivel bajo tal que las salidas estén transparentes cuando EN_L =’0’ y estarán en tercer
estado cuando EN_L =’1’.
library IEEE ;
use IEEE.std_logic_1164.all ;
use work.std_arith.all ;
entity producto is
port (EN_L : in bit ;
a, b : in STD_LOGIC_VECTOR (1 DOWNTO 0) ;
salida : buffer STD_LOGIC_VECTOR (3 DOWNTO 0) ) ;
end producto ;
Ejemplo 2-14. Diseñe con VHDL un circuito digital con cinco entradas y una salida F tal
que F = 1 cuando cuatro o más de sus entradas estén en el nivel alto y F = 0 en cualquier
otro caso.
Este es el mismo problema planteado en el Ejemplo 1-14. Compare ambas soluciones.
Solución:
-- Fichero: Ejem2_14.vhd
28
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
library IEEE;
use IEEE.std_logic_1164.all ;
ENTITY Ejem2_14 IS
PORT (
N : in integer range 31 downto 0 ;
F1: OUT STD_LOGIC ) ;
END Ejem2_14 ;
with n select
Ejemplo 2-15. Diseñe con VHDL un circuito lógico combinacional que recibe en sus
entradas los dígitos del sistema numérico decimal escritos en código BCD y tiene una
salida W que se activa en el nivel alto cuando el número en las entradas es impar.
Este es el mismo problema planteado en el Ejemplo 1-15. Compare ambas soluciones.
Solución:
-- Fichero:Ejem2_15
library IEEE ;
use IEEE.std_logic_1164.all ;
ENTITY Ejem2_15 IS
PORT (
N : in integer range 15 downto 0 ;
W: OUT STD_LOGIC ) ;
END Ejem2_15 ;
with n select
29
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
-- Note el tratamiento de los opcionales en la función de salida.
Solución:
-- Fichero: Ejem2_16
library IEEE ;
use IEEE.std_logic_1164.all ;
ENTITY Ejem2_16 IS
PORT (
N : in integer range 31 downto 0 ;
F : OUT STD_LOGIC ) ;
END Ejem2_16 ;
with n select
F <= '1' when 0|4|10|11|13|15|16|29,
'-' when 2|14|20,
'0' when others ;
END Ejem2_16 ;
Atributos en VHDL.
Los atributos (attribute) en VHDL tienen diversos usos, uno de ellos es el de especificar los
terminales externos donde se desea que aparezcan determinadas señales. En el Ejemplo
2-17 se ilustra esta utilización.
30
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Ejemplo 2-17. Escriba un fichero en VHDL para obtener las ocho compuertas lógicas.
Utilice los atributos para asignar las señales en pines específicos, suponga que el
dispositivo programable es un 22v10 y que el terminal 1 no debe utilizarse.
Solución:
--Fichero puertas.vhd
Entity puertas is
port ( A, B : in bit ;
y_not, y_or2, y_and2 : out bit ;
y_nor2, y_nand2, y_xor2, y_xnor2, y_buffer: out bit ) ;
END puertas ;
También se incluye el fichero puertas.jed que es el que sirve para simular el diseño y
programar el dispositivo. Finalmente se presentan los resultados de la simulación.
31
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Referencias.
[1] J. F. Wakerly, Electronic Design: Principles and Practices, Third Edition, Prentice
Hall, New Jersey, 2000.
[2] J. F. Wakerly, Electronic Design: Principles and Practices, Second Edition, Prentice
Hall, New Jersey, 1994.
[3] www.cypress.com
[4] www.xilinx.com
[5] http://www.latticesemi.com/
[6] B. Martin, Automation Comes to Analog, IEEE Spectrum, Vol.38, pp 70-75, Jun. 2001.
[8] www.altera.com
[10] Cypress, VHDL Training for PLDs, CPLDs and FPGAs, Cypress
Semiconductor,1996.
32
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Ejercicios.
f = /s * a * /b + /a * b * c + s * b * c + s * /a
2-3. Diseñe con VHDL el CLC que realice las funciones siguientes:
2-4. Diseñe con VHDL el CLC que realice las funciones siguientes:
-- fichero Ejer2_5.vhd
Library ieee ;
Use ieee.std_logic_1164.all ;
33
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
begin
end Ejer2_5 ;
2-6. Diseñe con VHDL un CLC que funcione de acuerdo a la Tabla siguiente:
Entradas Salidas
I3 I2 I1 I0 Y1 Y0
1 - - - 1 1
0 1 - - 1 0
0 0 1 - 0 1
0 0 0 1 0 0
Repita este diseño utilizando los circuitos integrados disponibles en la Tabla 1-7. Compare
ambas soluciones.
2-7. Diseñe con VHDL un CLC que funcione de acuerdo a la Tabla siguiente:
Entradas Salidas
G_L B A Y3 Y2 Y1 Y0
1 - - 0 0 0 0
0 0 0 0 0 0 1
0 0 1 0 0 1 0
0 1 0 0 1 0 0
0 1 1 1 0 0 0
Repita este diseño utilizando los circuitos integrados disponibles en la Tabla 1-7. Compare
ambas soluciones.
entity ejer2_8 is
port ( a, b : in bit_vector (3 downto 0) ;
S, EN_L : in bit ;
y : out bit_vector (3 downto 0) ) ;
end ejer2_8 ;
34
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
begin
end ejer2_8 ;
2-9. Diseñe con VHDL un CLC que tenga dos entradas de selección S1, S0 y cuatro
entradas de datos D0, D1, D2, D3 y una salida Y que funcione de acuerdo a la Tabla
siguiente:
S1 S0 Y
0 0 D0
0 1 D1
1 0 D2
1 1 D3
Repita este diseño utilizando los circuitos integrados disponibles en la Tabla 1-7. Compare
ambas soluciones.
entity ejer2_10 is
port ( b7, b6, b5, b3, b4, b2, b1 : in bit ;
b7_out, b6_out, b5_out, b3_out, b4_out, b2_out, b1_out: out bit ) ;
end ejer2_10 ;
signal C, B, A : bit ;
begin
A <= (b7 XOR b5) XOR (b3 XOR b1) ;
B <= (b7 XOR b6) XOR (b3 XOR b2) ;
C <= (b7 XOR b6) XOR (b5 XOR b4) ;
b1_out <= not b1 when C='0' and B='0' and A='1' else b1 ;
b2_out <= not b2 when C='0' and B='1' and A='0' else b2 ;
35
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
b4_out <= not b4 when C='1' and B='0' and A='0' else b4 ;
b3_out <= not b3 when C='0' and B='1' and A='1' else b3 ;
b5_out <= not b5 when C='1' and B='0' and A='1' else b5 ;
b6_out <= not b6 when C='1' and B='1' and A='0' else b6 ;
b7_out <= not b7 when C='1' and B='1' and A='1' else b7 ;
end ejer2_10 ;
36
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
ANEXO 1
PALABRAS RESERVADAS EN VHDL*
Abs access after alias all
And Architecture array Assert Attribute
Begin Block body Buffer Bus
Case Component configuration Constant
Disconnect Downto
Else Elsif end Entity Exit
File For function
Generate Generic group guarded
If Impure In inertial Inout
Is Label library linkage Loop
Map Mod Nand
New Next nor not Null
Of On open or Others
Out Package port postponed Procedure
Process Pure range record Register
Reject Rem report return Rol
Ror Select severity signal Shared
Sla Sll sra srl Subtype
Then To transparent type Unafeccted
Units Until use variable Wait
When While with xor Xnor
* IEEE std 1076-1993. IEEE Standard VHDL Language Reference Manual
37
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
ANEXO 2
================================================================
Compiling: puertas.vhd
Options: -q -o2 -ygs -fP -v10 -yb -yp -dc22v10 -pPALC22V10-20PC/PI puertas.vhd
----------------------------------------------------------------------------
PLD Optimizer Software: DSGNOPT.EXE 17/JUL/96 [v3.22 ] 4 IR x66
Program Controls:
None.
Signal Requests:
GROUP USEPOL ALL
Completed Successfully
----------------------------------------------------------------------------
PLD Optimizer Software: DSGNOPT.EXE 17/JUL/96 [v3.22 ] 4 IR x66
Messages:
Information: Optimizing logic using best output polarity for signals:
y_xnor2 y_xor2 y_nand2 y_or2
Summary:
Error Count = 0 Warning Count = 0
Completed Successfully
----------------------------------------------------------------------------
38
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
PLD Optimizer Software: MINOPT.EXE 17/JUL/96 [v3.22 ] 4 IR x66
Messages:
Summary:
Error Count = 0 Warning Count = 0
Completed Successfully
----------------------------------------------------------------------------
PLD Optimizer Software: DSGNOPT.EXE 17/JUL/96 [v3.22 ] 4 IR x66
Messages:
Information: Optimizing Banked Preset/Reset requirements.
Summary:
Error Count = 0 Warning Count = 0
Completed Successfully
----------------------------------------------------------------------------
PLD Compiler Software: PLA2JED.EXE 17/JUL/96 [v3.22 ] 4 IR x66
y_buffer = a
y_xnor2 = /a * /b + a * b
y_xor2 = a * /b + /a * b
/y_nand2 = a * b
y_nor2 = /a * /b
y_and2 = a * b
/y_or2 = /a * /b
y_not = /a
Completed Successfully
----------------------------------------------------------------------------
39
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
PLD Compiler Software: PLA2JED.EXE 17/JUL/96 [v3.22 ] 4 IR x66
Messages:
None.
Summary:
Error Count = 0 Warning Count = 0
Completed Successfully
----------------------------------------------------------------------------
PLD Compiler Software: PLA2JED.EXE 17/JUL/96 [v3.22 ] 4 IR x66
Messages:
Information: All signals pre-placed in user design.
C22V10
__________________________________________
not used *| 1 | |24|* not used
a=|2| |23|= y_not
b=|3| |22|= y_or2
not used *| 4 | |21|= y_and2
not used *| 5 | |20|= y_nor2
not used *| 6 | |19|= y_nand2
not used *| 7 | |18|= y_xor2
not used *| 8 | |17|= y_xnor2
not used *| 9 | |16|= y_buffer
not used *|10| |15|* not used
not used *|11| |14|* not used
not used *|12| |13|* not used
__________________________________________
Summary:
Error Count = 0 Warning Count = 0
Completed Successfully
Information: Checking for duplicate NODE logic.
----------------------------------------------------------------------------
PLD Compiler Software: PLA2JED.EXE 17/JUL/96 [v3.22 ] 4 IR x66
40
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Completed Successfully
----------------------------------------------------------------------------
Messages:
Information: Output file 'puertas.jed' created.
Summary:
41
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
Error Count = 0 Warning Count = 0
El siguiente fichero puertas.jed es el que crea el compilador para poder simular el diseño y
programar el dispositivo:
C22V10*
QP24* Number of Pins*
QF5828* Number of Fuses*
F0* Note: Default fuse setting 0*
G0* Note: Security bit Unprogrammed*
NOTE DEVICE C22V10*
NOTE PACKAGE PALC22V10-20PC/PI*
NOTE PINS a:2 b:3 y_buffer:16 y_xnor2:17 y_xor2:18 y_nand2:19 y_nor2:20 *
NOTE PINS y_and2:21 y_or2:22 y_not:23 *
NOTE NODES *
L00000
00000000000000000000000000000000000000000000
* Not Used #[1] => BANK : 1 *
L00044
11111111111111111111111111111111111111111111
11111011111111111111111111111111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
* Node y_not[23] => OE : 1 ,LOGIC : 8 *
L00440
11111111111111111111111111111111111111111111
11111011101111111111111111111111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
42
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
* Node y_or2[22] => OE : 1 ,LOGIC : 10 *
L00924
11111111111111111111111111111111111111111111
11110111011111111111111111111111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
* Node y_and2[21] => OE : 1 ,LOGIC : 12 *
L01496
11111111111111111111111111111111111111111111
11111011101111111111111111111111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
* Node y_nor2[20] => OE : 1 ,LOGIC : 14 *
L02156
11111111111111111111111111111111111111111111
11110111011111111111111111111111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
43
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
* Node y_nand2[19] => OE : 1 ,LOGIC : 16 *
L02904
11111111111111111111111111111111111111111111
11110111101111111111111111111111111111111111
11111011011111111111111111111111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
* Node y_xor2[18] => OE : 1 ,LOGIC : 16 *
L03652
11111111111111111111111111111111111111111111
11111011101111111111111111111111111111111111
11110111011111111111111111111111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
44
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
* Node y_xnor2[17] => OE : 1 ,LOGIC : 14 *
L04312
11111111111111111111111111111111111111111111
11110111111111111111111111111111111111111111
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
* Node y_buffer[16] => OE : 1 ,LOGIC : 12 *
L04884
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
* Not Used #[15] => OE : 1 ,LOGIC : 10 *
L05368
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
* Not Used #[14] => OE : 1 ,LOGIC : 8 *
45
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
L05764
00000000000000000000000000000000000000000000
* Node a[2] => BANK : 1 *
L05808
11* Note: 23 *
L05810
01* Note: 22 *
L05812
11* Note: 21 *
L05814
11* Note: 20 *
L05816
01* Note: 19 *
L05818
11* Note: 18 *
L05820
11* Note: 17 *
L05822
11* Note: 16 *
L05824
00* Note: 15 *
L05826
00* Note: 14 *
46
Introducción al Diseño Digital de Circuitos Lógicos Combinacionales y Secuenciales.
Autor: Dr. Alberto Hernández Pérez, Profesor Consultante, CIME, CUJAE, 2002.
Primera Parte: Capítulo 2. Dispositivos Lógicos Programables.
47