Está en la página 1de 60

UNIVERSIDAD NACIONAL

DE COLOMBIA

Ingeniería Electrónica ng. Jhon Jairo RamírezEcheverry


1
DISPOSITIVOS LÓGICOS
PROGRAMABLES
(PLD’s)

APLICACIONES COMBINACIONALES

2
DISPOSITIVOS LÓGICOS
PROGRAMABLES
 Principios de funcionamiento
(Marco teórico)
 Programación de PLD’s (ABEL y
ChipMaster)
 Ejemplo práctico

3
DISPOSITIVOS LÓGICOS
PROGRAMABLES
 Diseño lógico actual
 Estructura de los Dispositivos Lógicos
Programables Básicos
 PROM

 PLA’s

 PAL’s

 GAL’s

 Herramientas computacionales de
diseño descendente (Top-Down)
 Herramientas para el diseño electrónico
(CAD tools)
4
DISEÑO TOP-DOWN
 En el diseño Top - Down se captura
una idea en un nivel de
abstracción alto y se implementa a
partir de esta descripción, en un
proceso hacia abajo
incrementando el nivel de detalle
según lo requerido.

5
Metodología De Diseño
Top - Down

6
circuitos lógicos
(DISEÑO)
1. Descripción del problema a
resolver (enunciado, Diagrama de
flujo)
2. Diagrama de bloques
3. Tabla de verdad ( ∑ ó ∏ .)
4. Plantear ecuaciones
5. Simplificación (manual o
software)
Implementación:
7
6.
circuitos lógicos
(DISEÑO)
 PLD’s (Herramientas CAD- EDA):
 Herramienta de HDL o
esquemático** (CUPL, ABEL,
VHDL)
 Ejemplo de programación en ABEL
 Simulación (Diagramas de
tiempo)
 Compilación y síntesis (GAL, p.ej

)
8

Herramientas para el
diseño electrónico (EDA
tools)
 Se basan en programas
computacionales conocidos como
herramientas de automatización
del diseño electrónico (EDA Tools)
 Reducen:
 Costos
 Tiempo de diseño
 Espacio físico
 Errores
9
con herramientas CAD
(EDA)

10
con herramientas CAD
(EDA)

11
Herramientas para el
diseño electrónico (EDA
tools)

12
Herramientas para el
diseño electrónico (EDA
tools)
Estas herramientas efectúan los
siguientes pasos:
1. Planteamiento de las
especificaciones.
2. Entrada del diseño:
Descripción del circuito:
 Captura Esquemática: Dibujo del

circuito mediante interfaz


gráfica, puede ser un diagrama
de bloques.
13
Herramientas para el
diseño electrónico (EDA
tools)
 Mediante lenguajes de
descripción HDL como VHDL,
Verilog, Abel o CUPL.
 Diagramas de transición de
estados.
 Formas de onda –Tablas de
verdad.

3. Simulación HDL: Simula el


comportamiento del circuito que se
acaba de describir antes de la síntesis.
4. Síntesis lógica: 14
Herramientas para el
diseño electrónico (EDA
tools)
6. Simulación funcional: Simula las
ecuaciones lógicas, sin tener en cuenta
los retardos.
7. Implementación del diseño: Los pasos a
seguir dependen del tipo de PLD que se
esté utilizando en el diseño.
 Trazado del mapa
 Colocación y enrutamiento

 Creación del archivo para la programación

del dispositivo.
 Revisa si el circuito se adapta al chip:

 N° Salidas

 N° de términos productos por salida. 15


Herramientas para el
diseño electrónico (EDA
tools)
8. Simulación temporal: Después de la
implementación ya se conoce como
queda programado el circuito y se
puede realizar una simulación teniendo
en cuenta los retardos.
9. Programación: La implementación y
compilación (“patrón de fusión” para el
dispositivo físico) genera un archivo
JEDEC que indica el estado de las
conexiones. Este archivo se usa para
programar (o quemar el chip).
(8)
16
Herramientas para el
diseño electrónico (EDA
tools)
Lenguajes de Descripción de
Hardware (HDL - Hardware
Description Language)

Describen en lenguaje de alto nivel el


comportamiento del circuito a diseñar.

Esta descripción se puede hacer


mediante:
 Ecuaciones lógicas

 Tablas de verdad
17
 Lista de transiciones de estados
Lenguajes HDL más
populares
VHDL
VHDL: VHSIC Hardware Description
Language
“Lenguaje descriptor de hardware VHSIC”
(1987 IEEE y extendido en 1993)
(DoD y el IEEE)

VHSIC: Very High Speed Integrated


Circuit
“Circuito integrado de muy alta velocidad”

VERILOG HDL : Verification Logic


18
Lenguajes HDL más
populares
VHDL
 El VHDL es un lenguaje de descripción y
modelado de alta capacidad diseñado
para describir en forma entendible la
funcionalidad y la organización del
hardware de los sistemas digitales y
otros componentes.
 VHDL maneja una sintaxis amplia y
flexible.
 El lenguaje VHDL permite el diseño Top
-Down o en otras palabras; modelar los
bloques de alto nivel, simularlos y
adecuar la funcionalidad en alto nivel19
Lenguajes HDL más
populares
CUPL
 CUPL es una Herramienta de programación
para PLDs
Compiler Universal Programmable Logic.
 Pasos 2 – 9 del método top-down

 Puede generar archivos de programación

para una gran variedad de dispositivos


programables.
20
Lenguajes HDL más
populares
CUPL
 El programa de la PLD será un fichero
de texto que puede escribirse con
cualquier aplicación (el propio WinCUPL
o wordpad, notepad, etc.).
 Debe tener extensión .PLD

21
Lenguajes HDL más
populares
ABEL
(Advanced Boolean Equation
Language)

 El lenguaje ABEL es el más utilizado


en los PLDs.
 Es un lenguaje de descripción de
hardware que permite a los
diseñadores especificar funciones
lógicas para su realización en los
PLD’s. (Pasos 2 – 9 del método top-
down) 22
Lenguajes HDL más
populares
ABEL
(Advanced Boolean Equation Language)
 El programa ABEL cumple los siguientes
pasos:
 Verifica si existen errores en la sintaxis

del programa fuente.


 Simplifica o sintetiza las ecuaciones
según sea el caso.
 Simula las ecuaciones.

 Puede escoger el dispositivo que mejor

se adapte, o verificar si el dispositivo


especificado sí se adapta a la aplicación.
 Genera el archivo JEDEC para(8) la23
circuitos lógicos
(DISEÑO)
EJEMPLO:
1. Descripción del problema a
resolver
Suponga que las entradas A,B,C,D
representan un número binario de 4
bits, con A como el MSB y D el LSB.
Diseñe un circuito lógico que
produzca una salida alta sólo cuando
el número binario sea mayor que24
circuitos lógicos
(DISEÑO)
2. Diagrama de bloques

MSB A

B OUT
Circuito
C Lógico

LSB D

25
circuitos lógicos
(DISEÑO)
3. Tabla de verdad
A B C D Out A B C D Out
0 0 0 0 0 A+ B +C + D 0 0 0 0 1
0 0 0 1 0 A+ B +C + D 0 0 0 1 1
0 0 1 0 0 A+ B +C + D 0 0 1 0 1
0 0 1 1 0 A+ B +C + D 0 0 1 1 1
0 1 0 0 0 A+ B +C + D 0 1 0 0 1
0 1 0 1 0 A+ B +C + D 0 1 0 1 1
0 1 1 0 0 A+ B +C + D 0 1 1 0 1
0 1 1 1 1 0 1 1 1 1 26
circuitos lógicos
(DISEÑO)
4. Ecuaciones:
( )
f ( A, B, C , D) = ( A + B + C + D ) • A + B + C + D •
• ( A + B + C + D) • ( A + B + C + D) •
• ( A + B + C + D) • ( A + B + C + D) •
• ( A + B + C + D)
f ( A, B, C , D) = ∏ M (0,1,2,3,4,5,6) = ∑ m(7,8,9,10,11,12,13,14,15)

5. Simplificación
27
circuitos lógicos
(DISEÑO)
5. Simplificación
f ( A, B, C , D) = A + ( B • C • D)

6. Implementación (PLD)

28
Compilador para ABEL
IspLever Starter CPLD
La programación en este Software
se efectúa mediante la creación
de un archivo de texto
(esquemático) que contiene el
código para la programación del
dispositivo.
29
Compilador para ABEL
Este archivo tiene tres partes
básicas:
 El encabezado

 La declaración de pines (IN -


OUT)
 Las definiciones lógicas

(8)
30
El encabezado
module module name
title string
deviceID device deviceType;

31
El encabezado
 El campo más importante es Device que
debe corresponder exactamente con el
dispositivo en el que va a grabarse el
programa.
Para la GAL22V10 en el campo Device
debemos escribir g22v10.
 El campo Name debe coincidir con el nombre
del fichero .ABL, pero sin dicha extensión, y
los ficheros de salida tendrán todos ellos el
nombre más la extensión correspondiente
(.JED, . RPT, etc.).
32
El encabezado
module combinacional1
title ‘Mayor que seis ejemplo
Jhon J. Ramírez, Electronica digital
I’
Combinacional device ‘g22v10’;

33
La declaración de
pines (IN - OUT)
Asignación de pines
 Corresponde al nombramiento de los pines del
dispositivo con nombres descriptivos para las
entradas y salidas.

 Los nombres se pueden asignar de forma libre y


corresponden a las variables que se emplean para
definir las ecuaciones lógicas.

 La asignación de pines se puede hacer de forma


individual o grupal.
34
La declaración de pines (IN -
OUT)

35
La declaración de
pines (IN - OUT)

MSB A

B OUT
Circuito
C Lógico

LSB D

36
Ejemplo
GAL 22V10
Disposición de pines de la GAL 22V10

37
La declaración de
pines (IN - OUT)
“ Input pins
A,B,C,D pin 2, 3, 4, 5;

“ Output pins
Z pin 14 istype ‘com’;

38
Las definiciones
lógicas
Definición de ecuaciones lógicas
 Las ecuaciones lógicas
corresponden a las
expresiones lógicas que
relacionan los pines de
entrada y salida (Var.
intermedias)
 Las ecuaciones lógicas
deben tener cierta sintaxis
para que el programa 39
Las definiciones
lógicas
Definición de ecuaciones lógicas
Formas alternativas de definir las
salidas
 Ecuaciones lógicas

 Tablas de Verdad

 Máquinas de Estado **

 Estamentos Condicionales ** (manual)

40
Ecuaciones lógicas
Definición de ecuaciones lógicas
Formato de Operador alterno
Operador Función ABEL (@alternative)

& AND A&B A*B

# OR A#B A+B

! NOT !A /A

$ XOR A$B A:+:B

!$ XNOR !(A$B) A:*:B 41


Ecuaciones lógicas
Definición de ecuaciones lógicas
La sintaxis general de las
ecuaciones lógicas en ABEL es la
siguiente:
[!] var [.ext] = exp;
Donde:
var es la variable lógica
ext es la extensión
42
43
44
Ecuaciones lógicas
Definición de ecuaciones lógicas
 Las extensiones para las variables
son empleadas para definir
funciones que dependen de la
configuración física de las salidas del
PLD.
 Generalmente el tipo de salidas
que se pueden configurar en un PLD
son salidas combinacionales,
secuenciales y triestado, entre otras.
45
Ecuaciones lógicas

46
Las definiciones
lógicas
Definición de variables intermedias
 Las variables intermedias corresponden
a variables asignadas a una ecuación
lógica pero que no representan un pin en
el dispositivo.

 El objetivo de declarar variables


intermedias, consiste básicamente en
reducir el tamaño de las ecuaciones
lógicas asignadas a los pines de salida y
permitir organizar el archivo de entrada
de una forma comprensible. Su uso no es 47
Ecuaciones lógicas
(Ejemplo)
f ( A, B, C , D) = A + ( B • C • D)

“ Intermediate equation
And1 = B & C & D;
equations
Z = A # And1;

(Ver manual para otras declaraciones)


48
49
Tablas de Verdad
Tablas de Verdad
1. Inicialmente se declaran las entradas y
salidas
2. Se asignan los valores uno a uno de las
entradas y salidas

50
Tablas de Verdad
(Ejemplo )
“ Tabla de verdad diseño del detector
de número mayor que seis “
“ Definition
NUM = [A,B,C,D];

truth_table (NUM -> Z)


^h7-> ^b1; ^h8-> 1;
^h9-> 1; ^hA-> 1;
^hB-> 1; ^hC-> 1;
^hD-> 1; ^hE-> 1;
^hF-> 1;
51
Simulación
 ABEL entre sus funciones tiene un simulador
con el cual se pueden comprobar las salidas. Este
proceso se efectúa mediante la generación de
varias entradas que comprueban los estados de
las salidas para verificar las ecuaciones lógicas.

 La simulación se recomienda para verificar que


el diseño es correcto y que no existe ningún
error. Después de ello se puede proceder a
compilar y programar el dispositivo y finalmente
verificar su funcionamiento.
52
53
54
Compilación
 Una vez se tiene el archivo fuente de un diseño
lógico, el paso a seguir es compilar el archivo para
generar el archivo de programación JEDEC, el cual
se emplea para programar el dispositivo.

 Durante el proceso de compilación se verifica la


sintaxis del archivo e indica los posibles errores que
puedan existir.

 Si el programa no detecta errores se genera el


archivo .JEDEC; el cual servirá como entrada al
programador físico para el “quemado” del PLD.
55
Compilación
 El compilador genera siempre (incluso
cuando haya errores) el fichero .RPT con
información sobre el programa.

 Entre la información incluida en este


fichero está el número de productos que
necesita la función implementada en
cada salida, así como el número de
productos disponibles en dicha salida.

56
Archivo .RPT

57
58
Principales Archivos
generados después de la
compilación
 Name. JED
Archivo compilado en lenguaje para el
quemador.
“0” fusible sin fundir
“1” fusible fundido
 Name. RPT

Documentación del proyecto


 Name. ABV

Archivo con datos obtenidos en la simulación


59
ChipMaster
Programación del dispositivo
físicamente
Ver programa del quemador Universal con el
que se cuenta en el laboratorio.

Con éste se trabajará en la sesión de


laboratorio N° 2 una vez el grupo traiga el
archivo .JED
60

También podría gustarte