Você está na página 1de 65

UNIVERSIDAD DE ORIENTE

NCLEO DE ANZOTEGUI
ESCUELA DE INGENIERA CIENCIAS APLICADAS
DEPARTAMENTO DE ELECTRICIDAD

LABORATORIO DE CIRCUITOS DIGITALES PRCTICA N7


OBJETIVO GENERAL: Disear una mquina secuencial usando dispositivos lgicos programables. OBJETIVOS ESPECFICOS:
Disear el circuito de la cerradura digital usando un dispositivo lgico pro-

gramable.
Introducir la herramienta ORCAD Express. Realizar la simulacin del circuito.

ESPECIFICACIONES:
El diseo debe hacerse usando un circuito AMD22V10 y un contador

74LS93.
Para la generacin del archivo que contiene el patrn de fusibles para pro-

gramar la PAL, se usar la herramienta ORCAD Express del paquete CAPTURE CIS. Una vez que el estudiante tenga el archivo .JED podr programar la PAL y usarla en su diseo.
El circuito final debe ser simulado usando los programas:

ORCAD Express: a nivel de compuertas. PROTEUS: cargando el archivo .JED al circuito AMD22V10.

PROYECTO: Disear una cerradura digital para una puerta. Cuando la combinacin introducida sea la correcta se debe disparar un rel que permita la activacin del mecanismo que abre el portn. El aspecto mecnico del panel de la cerradura se muestra en la figura 1.

Fig.1. Consola de la cerradura digital

La funcin de cada elemento de la consola se indica a continuacin:

Pulsador para introducir dgitos Indicador de espera de dgito Anuncio de puerta abierta (Se apaga)

Fig.2 Funciones de los elementos del panel.

La figura 3 muestra el diagrama funcional del sistema a disear. Para abrir la cerradura de combinacin se requiere que un control digital detecte y reconozca una secuencia numrica especifica N1= __, N2 = __, y N3 = __ introducida por medio del pulsador S1. Los pasos necesarios para accionar el mecanismo que abre la puerta se describen a continuacin:
PASO 1: La operacin se inicia pulsando S1 hasta que el LED se apague. Esto debe ocurrir en los cinco segundos siguientes a la activacin del pulsador. Al presionar S1 durante un tiempo lo suficientemente largo para que ocurra una transicin en reloj1, oi conmutar a nivel alto, pasando el sistema a un estado de inicio con el diodo luminoso apagado. A partir de este evento se introducen los 3 dgitos de la combinacin.

PASO 2 Con el LED desactivado, se disponen de cinco segundos para pulsar N1 veces el interruptor S1 e introducir el primer dgito de la combinacin. PASO 3 El diodo luminoso alumbrar por cinco segundos, lapso permitido para presionar N2 veces el pulsador S1. PASO 4 El LED se apagar de nuevo por cinco segundos para introducir el tercer dgito. PASO 5 Si la secuencia de tres dgitos introducidos corresponde a la combinacin de la cerradura y adems han sido presentados dentro de los lapsos establecidos, la puerta se abrir en los siguientes cinco segundos.

La figura 4 muestra el circuito de la cerradura realizado con lgica programable. Los circuitos 7406 han sido sustituidos por transistores. Usted debe disear el control lgico de la cerradura

* Si la corriente del rel K1 supera 40 mA, sustituya por ULN2003.

Fig. 2 Diagrama funcional de la cerradura digital.

ANEXO

DISPOSITIVOS LGICOS PROGRAMABLES


Una PAL (Programmable Array Logic) es uno de los diversos tipos de dispositivos lgicos programables PLD (Programmable Logic Device) existentes en la actualidad. Son circuitos ASIC (Application Specfiic Integrated Circuits) sencillos. Un chip PAL tiene una estructura interna particular la cual puede ser configurada por el usuario para que ejecute una funcin lgica determinada. Los primeros PAL de serie general solo podan ser programadas una vez y posteriormente se fabricaron versiones que podan ser borradas y vueltas a programar. El mecanismo de borrado era la exposicin a luz ultravioleta. Actualmente existe una subfamilia de estos componentes denominada GAL (Generic Array Logic) cuyos miembros son dispositivos que pueden ser borrados por medios elctricos y los cuales fueron diseados para compatibilidad pin a pin con las PAL de la serie general. Las PAL fueron introducidas por Monolithic Memories (actual AMD) a mediados de la dcada de los setenta y a finales de los aos ochenta empezaron a usarse en el diseo de los microcomputadores de escritorio ms populares de la poca: PC compatible IBM y MACINTOSH. La tarjeta madre de estos sistemas consiste usualmente de varios circuitos LSI (P, memorias, puertos) asociados con alguna lgica adicional (decodificadores de direcciones, de seales) realizada con cierto nmero de circuitos TTL SSI/MSI utilizados en la generacin de las distintas seales de control para la CPU y otros chips LSI. Esta lgica de control ocupaba una gran rea de la tarjeta de circuito impreso, debido al bajo nivel de integracin de los chips utilizados. Para ahorrar espacio y agregar funcionalidad al sistema se usaron dispositivos programables para reemplazar a todos o a varios de los circuitos TTL discretos. Aunque las PLD son de costo mucho mayor que los componentes TTL, el hecho que una PLD puede sustituir varias partes TTL y que pueden ser reprogramadas las hace de presencia obligada en cualquier aplicacin digital prctica moderna que requiera de lgica para control. Los avances en esta tecnologa han sido tan significativos que en la actualidad puede disponerse de recursos de programacin y dispositivos programables capaces de soportar el desarrollo de un microprocesador de 32 bits asistidos nicamente por un microcomputador y un grabador de PLD. En este material se presenta una breve introduccin de circuitos PAL usados en aplicaciones combinatorias. La lgica programable puede sustituir la realizada con circuitos TTL debido a que cualquier expresin lgica puede reducirse a una suma de trminos de productos, es decir grupos trminos de ANDs conectados por trminos de ORs.

La mayora de las PAL consiste de una matriz de puertas AND seguida de una matriz de puertas OR, estructura interna que permite realizar cualquier ecuacin lgica como suma de trminos de productos. Las PAL se basaron en la tecnologa bipolar de conexin por fusibles usada en las memorias PROM. Una PAL es programada inyectando una gran corriente en posiciones especficas de la matriz de puertas suprimiendo los fusibles internos seleccionados. Las conexiones que permanecen intactas determinan la funcin lgica entre las entradas y salidas. En la figura 3 se muestra la notacin usualmente usada en la descripcin de dispositivos PAL.

Fig.3. Representacin compacta de las conexiones de una PAL

La figura 3.a muestra la representacin elctrica para una puerta AND convencional y la figura 3.b la presenta como se encuentra dentro de un dispositivo PLD. El carcter (X) indica la presencia de un fusible sano. Si se desea suprimir la entrada B de la ecuacin de salida basta con eliminar el fusible correspondiente, como se ilustra en la figura 3.c. El smbolo ms abajo de la figura corresponde a una puerta AND no programable cableada en forma convencional. El estado activo en el interior de las PAL es el uno lgico. Toda complementacin lgica ocurre en los buffers de entrada y en los de salida. En la figura 4 se observa que tanto la seal de entrada A como su complemento A se aplican al arreglo lgico, siendo innecesario aplicar la seal de la polaridad lgica correcta a la entrada de la PAL.

Fig.4. Buffer de entrada de una PAL

Las primeras PAL de la serie general tienen una estructura interna con dos niveles de dispositivos AND-OR organizados como un arreglo lgico AND programable y un arreglo OR fijo. La figura 5 muestra un PLD moderno, conocido como FPLA, con una estructura ms flexible debido a que ambos arreglos son programables. Aunque se dice que en un PLD se puede programar cualquier funcin lgica, sta depende de ciertas caractersticas del dispositivo. Las limitaciones son el nmero de entradas (n), el nmero de salidas (m) y el nmero de trminos de producto (p).

Fig. 5 Estructura interna de una PAL.

Una PAL puede identificarse como una n x m PLA con p trminos de productos. Tal dispositivo contiene p puertas AND de 2n entradas y m puertas OR de p entradas. La figura 5 muestra una PLA 4 x 4 con 16 trminos de productos. Como se observa est compuesta por 16 ANDs de 8 entradas y 4 puertas OR de 16 entradas. Los recursos a la mano del diseador de aplicaciones que usen PLD hacen el proceso de desarrollo tan simple como indica la figura 6. Por supuesto el paso inicial es obtener las ecuaciones que describen a la lgica las cuales sern programadas en

la PAL. Existen varios lenguajes de programacin de PLD. El primero de stos fue el denominado PALASAM (PAL Assembly), el cual se considera obsoleto en la actualidad. Otros compiladores son el ABEL y el CUPL. El lenguaje ms usado en la actualidad y que se consideran un estndar es el VHDL (Hardware Description Language). Otro lenguaje de uso comn es el Verilog.

Fig.6. Proceso de programacin de una PAL.

Los paquetes de software para desarrollo con PAL comnmente aceptan que la lgica a programar sea representada como un archivo VHDL o suministrando el diagrama lgico del circuito. Esta entrada es compilada y simulada con estmulos aplicados a las entradas. Una vez comprobado el correcto funcionamiento del diseo, se genera el archivo .JED de patrn de fusibles el cual es cargado en un programador de PAL y el dispositivo es programado.

Fig.7. Multiplexor 2 a 1 con entrada de habilitacin

A continuacin se presenta un ejemplo sencillo de diseo con PLD. La figura 7 muestra el diagrama lgico de un multiplexor 2 a 1 con habilitacin y a la derecha se encuentra la tabla de estados del circuito. Para ensamblar este circuito se requieren 3 chips TTL y se usan de cada uno: de 74LS08, de 74LS32 y 1/6 de 74LS04. Para sustituir esta opcin se puede usar un circuito PAL de 20 pines, el cual puede

10

reemplazar una lgica mucho ms compleja que la del ejemplo. La figura 8 presenta a la PAL de la figura 5 programada como un multiplexor 2 a 1.

Fig.8. PAL programada como indica como un multiplexor 2 a 1 con habilitacin.

Un circuito PAL comercial de amplio uso en aplicaciones combinatorias es el de cdigo PAL16L8, cuya estructura interna se muestra en la figura 9. Esta PAL tiene 16 entradas y 8 salidas con un arreglo OR fijo y terminales bidireccionales (E/S). El arreglo AND programable lo componen 64 puertas ANDs de 32 entradas cada una (las 16 entradas y sus complementos) y el producto de las filas por las columnas del arreglo 64 x 32 =2048 indican el nmero total de fusibles. Existen 8 puertas AND asociadas con cada terminal de salida de la PAL. La salida de una de estas AND (activa en alto) controla un buffer de tres estados que permite habilitar el terminal de salida correspondiente. Las otras siete ANDs se aplican a una puerta OR fija de 7 entradas. Esta estructura determina que el chip solo puede ejecutar funciones cuyas ecuaciones tengan siete o menos trminos de productos. Seis de los terminales de salida pueden ser usados como entradas.

11

I1
0 1 2 3 0 1 2 3 4 5 6 7 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

O1

I2

I3

8 9 10 11 12 13 14 15

IO2

I4

16 17 18 19 20 21 22 23

IO3

I5

24 25 26 27 28 29 30 31

IO4

32 33 34 35 36 37 38

IO5

I6

39

I7

40 41 42 43 44 45 46 47

IO6

I8

48 49 50 51 52 53 54 55

IO7

I9

56 57 58 59 60 61 62 63

O8 I10

Fig.9. Diagrama lgico de la PAL16L8.

12

Desarrollando una aplicacin con ORCAD EXPRESS


Para describir como realizar una aplicacin de PLD combinatorios se usar el programa ORCAD Express del paquete de desarrollo ORCAD CIS. El dispositivo a programar es una PAL16L8. El circuito a programar ser el de la figura 7. Un diseo con PLD consta de cinco etapas: 1. Entrada al diseo En esta etapa se crean las redes lgicas a partir de las ecuaciones obtenidas de la aplicacin de las herramientas de diseo digital. ORCAD Express proporciona los recursos necesarios para representar el diseo en forma esquemtica o con modelos VHDL. El diseo puede incluir una combinacin de ambas formas de representacin de circuitos. En esta fase los diagramas esquemticos de la lgica del diseo se incorporan en una forma general sin considerar las especificaciones de sincronizacin en el tiempo caractersticas de la tecnologa seleccionada para el diseo. 2. Simulacin funcional Esta fase se usa para detectar errores en la lgica del diseo sin consideracin alguna sobre restricciones de tiempo. Para la simulacin funcional se utilizan los recursos de simulacin situados en el subdirectorio In Design del proyecto. El programa Simulate puede simular archivos netlist (lista de instrucciones que representan un circuito) generados por Schematic y el comportamiento de modelos VHDL. Para realizar la simulacin funcional, se aplican estmulos a las entradas del diseo y se examinan las salidas para verificar que los resultados concuerdan con el funcionamiento esperado. Si los estmulos no producen los resultados previstos, se debe modificar la fase de entrada al diseo. Se puede desarrollar estmulos en forma interactiva con el editor de estmulos de Simulate o agregando al proyecto un archivo de banco de pruebas VHDL. 3. Puesta en prctica del diseo En este punto del flujo del diseo, se utiliza el comando de compilacin de generar un netlist a nivel de compuerta que representa al diseo. Estos modelos se optimizan para mejorar el desempeo diseo o para reducir el nmero de componentes, dependiendo de la prioridad seleccionada. El netlist resultante est completamente integrado y listo para la fase siguiente del proyecto.

13

4. Construccin del diseo En esta fase, se utiliza la herramienta coloque-y- encamine del fabricante del PLD (obtenida va el comando Build) para presentar la lgica del diseo y adjuntar las puertas y los retardos. Los netlists generados por ORCAD Express son completamente compatibles con las herramientas place-and-route de los principales fabricantes de PLD. 5. Simulacin de la sincronizacin De nuevo, se aplican estmulos de las entradas del diseo. En esta fase, la simulacin detecta cualquier violacin de las restricciones de tiempo impuesta a la lgica por la tecnologa de fabricacin del PLD. Si hay violaciones de la sincronizacin, puede ser necesario volver al paso de puesta en prctica del diseo para encontrar una puesta en prctica ms ptima. Tambin puede requerirse modificar la lgica (mejorando el desempeo de seales en el tiempo, a lo largo de trayectorias crticas). Los recursos para esta simulacin se almacenan en el subdirectorio Timed.

Otro proveedor

componente

fabante
componente

Editor de esquemas

Simulacin

funcional VHDL Biblioteca del fabricante de PLD Sntesis lgica y Optimizacin

EDIF

Herramientas del fabricante para construccin del diseo

Sincronizada VHDL

14

15

PROCEDIMIENTO 1. Entrada al diseo Ejecute ORCAD CIS. De la barra de herramientas seleccione File\New Project

Fig.10. El tipo de proyecto es diseo con lgica programable.

El nombre del proyecto es MUX2A1. Para desarrollarlo se usar el Programmable Logic Wizard y estar ubicado en el subdirectorio\EJEMPLOS\MUX2A1.

16

El siguiente paso es seleccionar el fabricante y la familia de la cual es miembro el dispositivo que se usar en la aplicacin. ORCAD Express contiene una base de datos muy completa de dispositivos PLD. Las PALs, GALs y PROMs bsicas se encuentran en el rengln Simple PLD\GAL/PAL/PROM FAMILY, como se observa en la figura 11.

Fig.11. Se usar la familia GAL/PAL.

El monitor mostrar la ventana de proyectos, la cual puede verse en dos modos: FILE e HIERARCHY, como se observa en la figura 12:
1. FILE: Los archivos que componen el proyecto se muestran organizados por categoras. Recursos de diseo: Carpeta del diseo: Subdirectorios para Esquemas elctricos, Archivos fuente VHDL, y una subcarpeta: Design Cache con la memoria inmediata del diseo mostrando los componentes utilizados. Carpeta de Libreras: Registra todos los archivos de la biblioteca de componentes usados en el proyecto.

17

Salidas:

Esta carpeta contiene todos los archivos generados durante la compilacin y construccin (BUILD) del proyecto. La salida mux2a1.lst es un archivo texto que muestra informacin del proceso como filas de la PAL donde se programan los diferentes trminos de productos que componen las ecuaciones lgicas resueltas. Asignacin de terminales del chip a las seales de entrada/salida y cualquier indicacin de error durante la compilacin o construccin del proyecto. El archivo mux2a1.jed contiene el patrn de programacin de los fusibles y se carga en el grabador de PAL. Esta informacin puede ser cargada de manera opcional en mux2a1.lst.

Recursos de Simulacin: Almacena los archivos necesarios para la simulacin en las diferentes etapas del diseo. Estos recursos son usados por el programa Simulate para ejecutar la simulacin y verificar el comportamiento lgico y la temporizacin. Este directorio contiene dos carpetas: In Design y Timed. In Design: Contiene los archivos requeridos para ejecutar una simulacin funcional del proyecto en el nivel de fuentes. Esto significa que se simulan los listados de diagramas esquemticos y el comportamiento de los modelos VHDL antes que el comando compile cree una representacin estructural del diseo lgico programable. Estos archivos son: programas fuente VHDL, archivos de lista de instrucciones generados por el editor grfico de circuitos, archivos de estmulos, de bancos de prueba y modelos de simulacin. ORCAD Express carga los archivos de lista en esta carpeta cuando stos son generados. Timed: Los archivos en esta carpeta contienen informacin que permiten simular el proyecto despus que ste ha sido construido. Estos incluyen informacin de tiempo correspondiente a la tecnologa de fabricacin del dispositivo usado en el proyecto. Los tipos de archivos son: archivos de retardo o temporizacin, de estmulos y de modelos de simulacin. ORCAD Express agrega los archivos de lista en esta carpeta cuando stos son generados. 2. HIERARCHY: Muestra como se organizan en horma jerrquica los archivos fuente de la simulacin.

18

Seleccione File\New\Design Para usar el editor grafico Schematics y representar la lgica del circuito . Como respuesta se obtiene la siguiente ventana.

Fig.12. Inicio del diseo

19

Debido a que el nombre del proyecto, de la carpeta de design1.dsn y de la carpeta Schematics1 debe ser el mismo, modifquelos como indica la figura 13.

Fig.13. Cambie los nombres de las carpetas de recursos de diseo

Elija el archivo PAGE1 dentro de la carpeta .\mux2a1.dsn\mux2a1.dsn Esto nos ubica en PAGE1 de Schematic listos para dibujar la red lgica. Observe la figura 14.

20

Fig.14. Editor de esquemas

Usando el men Place\Hierarchical Block o la barra de herramientas correspondiente, coloque un bloque jerrquico en el rea de trabajo. Configure el bloque como indica la ventana de dialogo de la figura 15: referencia H1, nombre MUX y contendr un diagrama esquemtico de la lgica. Un bloque jerrquico es una especie de Macro donde reside un esquema de la red lgica del diseo, un modelo VHDL de la red o incluso otros bloques con jerarqua descendente. El bloque H1 de nombre MUX es el diagrama esquemtico raz del diseo. Usando el ratn se puede navegar a travs de los diferentes niveles jerrquicos del diseo.

21

Fig.15. Configuracin del Bloque jerrquico

22

Fig.16. Bloque jerrquico

Para definir los terminales de entrada y salida del bloque jerrquico, seleccione el bloque H1 y use la opcin Place\Hierarchical Pin.

Fig.17. El pin S es de un terminal de entrada.

La figura 18 muestra el bloque con todos los terminales de entrada y salida ubicados.

23

Fig.18. Terminales de entrada y salida de MUX.

Cuando se realiza un proyecto SPLD, todo terminal de entrada y salida debe pasar a travs de un buffer. Estos componentes de entrada y salida pueden ser incluidos en el esquemtico raz. En caso contrario en el momento de la compilacin debe seleccionarse Tools\Compile\Output\Add I/Os para que ORCAD Express los incorpore en la raz del diseo. Debido a que estos I/Os no pueden especificarse en un modelo VHDL, esta ltima opcin siempre debe activarse cuando se compile un diseo que tenga un archivo VHDL como componente raz. En este caso se incorporan los I/Os al esquema, como ilustra la figura 19.

24

Fig.19. Cada seal de E/S pasa a travs de un buffer.

Para incorporar los buffers al diseo use Place\Part o el icono correspondiente. Toda parte del esquema debe ser obtenida de la librera de componentes SPLD. Si esta no aparece en el men, debe ser incorporada usando la opcin de Add Library de Place\Part. La figura 20 presenta las ventanas de dialogo asociadas con estas acciones.

25

Fig.20. Para colocar un componente.

Una vez colocados los buffers los terminales deben ser aplicados a conectores de puertos, los cuales correspondern a los terminales reales de E/S del PLD. Como ejemplo, estos pueden identificarse como:

26

P_S, P_A, P_B y P_EN, o bien PIN_S, PIN_A

Use Place\Hierarchical Port para obtener los puertos. Los smbolos siguientes indican el tipo de puerto que debe usarse para los terminales de entrada y para los pines de salida:

PORTRIGHT-R

PORTLEFT-L

Entrada

Salida

Fig.20. Puertos jerrquicos.

Despus de colocar un componente, conductor o bus, pueden imponerse atributos como Propiedades por medio de Schematics. Para evitar mensaje de error deben especificarse ciertos atributos a las seales SPLD de entrada y salida. Estos pueden ser:

Atributos de seales SPLD Simple PLD Valores de Atributos Descripcin

27

PLDPIN

<nmero de pin>

Asigna a una seal un pin especifico del dispositivo. Especifica que la seal indicada debe asignarse a un tipo particular de terminal.

PLDTYPE

<IN|OUT|IO|IOA|IOB|IOC|IOD| INTERNAL|CLOCK|RESET| PRESET|ENABLE|NC>

La descripcin de todos los valores de los atributos puede verse con detalle en la ayuda de ORCAD Express, siendo los tres primeros:
IN: OUT: IO: Para terminales de entrada. Usado en terminales de salida, posiblemente (pero no necesariamente) con realimentacin. Para pines de salida con realimentacin.

Como indica la figura 19, debe especificarse el atributo PLDTYPE a las seales de entrada y salida del PLD. Para esto seleccione la seal, pulse el ratn y fije el atributo correspondiente como indica la figura 21.

Fig.21. Atributos de las seales SPLD.

Seleccione el bloque H1, pulse el botn derecho del ratn y descienda al nivel siguiente de la jerarqua.

28

Una vez que est dentro del bloque MUX, proceda a construir el circuito de la figura 7. La lgica del multiplexor 2 a 1 se observa en la figura 22.

Fig.22. Esquema del multiplexor.

En este punto ha finalizado la primera fase del diseo.

2. Simulacin funcional En este paso se simula la lgica desde una ptica funcional. Esto permite verificar el comportamiento de la lgica sin importar las caractersticas temporales de las seales binarias aplicadas como estmulos. Seleccione Tools\Simulate e indique el modo de simulacin In Design.

Fig.23. Simulacin funcional.

Antes de ejecutarse la simulacin es necesario suministrar al programa Simulate las seales que se aplicaran a los terminales de entrada del circuito. Existen dos

29

formas: Creando interactivamente un archivo de estmulos o por medio de un archivo VHDL. En esta etapa se usa la primera modalidad. Con Stimule\New Interactive se usa la ventana de dialogo de la figura 24 para describir el comportamiento de la seal. Puede definirse el estado lgico de una seal durante lapsos determinados del tiempo de simulacin o generarse pulsos de reloj fijando la duracin de los niveles alto y bajo.

Fig.24 Descripcin de estmulos bsicos

Los estmulos interactivos pueden ser: Bsicos (Basic), Avanzados (Avanced) o Relojes (Clock). Los bsicos son generados definiendo los puntos de transicin de estados de la seal y su nivel lgico en cada lapso. Simulate usa el estndar para lgica multivalor IEEE 1164 MVL-9 (Multi-Value Logic) para especificar el estado de una seal en un instante determinado.

Los valores permitidos para las seales son:

30

Estado
1 2 3 4 5 6 7 8 9 U X 0 1 Z W L H -

Definicin
Indefinido Desconocido Cero lgico Uno lgico Alta impedancia Weak Unknown Weak Zero Weak One Indiferente

El estndar MVL-9 permite resolver los conflictos que se presentan cuando una seal es guiada simultneamente desde varias fuentes. Esto puede ocurrir cuando lneas de distintos puertos de salida se conectan a un nodo o cuando se especifica para una seal un estimulo no forzado, cuyo nivel entra en conflicto con los valores que tiene la seal. MVL-9 usa la siguiente tabla para resolver los conflictos:

U H L W Z 1 0 X U

X U X U U U U U U U U

0 X X X X X X X X

1 X 0 0 0 0 X 0

Z X 1 1 1 1 1

W X H L W Z

L X W W W

H X W L

X H

Los estmulos de las entradas P_EN y P_S se definen en el modo BASIC. La siguiente lista de comandos corresponde a MUX2A1P_EN:
Set to 0 at time 0.

31

Set to 1 at time 1000. Set to 0 at time 8000, Remove at time 10000.

Para generar un tren de pulsos en el modo CLOCK en MUX2A1P_B, se configura la seal como se indica en la figura 25.
at 0, 0 for 650, 1 for 800, repeat forever

Fig.25 Configuracin de un estimulo de reloj.

En la figura 26 se muestran ambos estmulos. Observe que se comportan de acuerdo con lo establecido.

Context Signal Value 0ns MUX2A1 P_EN '0' MUX2A1 P_B '1'

2000ns

4000ns

6000ns

8000ns

10000ns

Fig.26 Estmulos en modo BASIC: P_EN y en modo CLOCK: P_B

Con el modo AVANCED se generan con facilidad ondas complejas con patrones repetitivos, como se indica en la siguiente figura, para la entrada MUX2A1.P_A.

32

ContextSignal Value 0ns MUX2A1 P_A '0'

2000ns

4000ns

6000ns

8000ns

10000ns

Fig.27 Estimulo en modo avanzado.

El archivo de estmulos puede guardarse e incorporarse a la carpeta In Design del proyecto. Debe evitarse conflictos cuando se creen los estmulos interactivamente. Un cambio de estado planificado sobre un nodo en un tiempo especfico sobrescribir cualquier otra seal que est guiando al nodo. Simulate usa la MVL-9 para resolver estos conflictos. Para probar el diseo se generaron dos estmulos bsicos y dos de reloj. Estos se identifican en la figura 28.

33

Fig.28 Estmulos usados para verificar la funcionalidad del diseo.

Seleccione Simulate\Run para ejecutar la simulacin. Los resultados se muestran en la figura 29. y puede verificarse que la lgica se comporta de acuerdo con lo previsto. 3. Puesta en prctica del diseo Verificada que la red lgica funciona adecuadamente, se procede compilar el diseo. El proceso de compilacin crear los archivos netlists que representan en forma estructural la lgica y los modelos VHDL necesarios. Para compilar se selecciona el diseo en la ventana de archivos del proyecto y se activa Tools\Compile. Los netlist generados se almacenan en la carpeta Outputs . Se puede seleccionar, como indica la figura 30, la intensidad de cmputo a usar y el tipo de codificacin de los estados de maquina durante la compilacin. El formato de los archivos netlists puede ser seleccionado como indica la ventana a la derecha de la figura 30 o se usa el formato por defecto de acuerdo con la familia de PLD seleccionada al comienzo del diseo. Tambin pueden activarse la inclusin de los buffers I/Os en las entradas y salidas, si stos no se colocan en el esquema raz.

34

Fig.29 Resultados de la simulacin en modo InDesign.

35

Fig.30 Opciones de compilacin.

36

4. Construccin del diseo En esta fase se procede a ejecutar la herramienta adecuada del montador del fabricante del PLD para generar un netlist estructural con informacin de tiempo asociada y ajustado a las caractersticas de la tecnologa del PLD. Seleccione Tools\Build para construir el proyecto. Como ilustra la figura 31, debe especificar el dispositivo PLD en el cual se programar el diseo.

Fig.31 Opcin Optimization de BUILD.

El usuario puede especificar el mtodo a usar para la minimizacin de las ecuaciones lgicas y otros parmetros que optimizan el proceso de construccin. La opcin Listing de la ventana de BUILD se usa para especificar si se genera el archivo .lst de salida del proceso de construccin y el tipo de informacin que contendr. Adems permite escoger si se incluye, y como se grafica, el patrn de fusibles. La ventana de la opcin Build\Timing se muestra en la figura 32 y se usa para especificar los tiempos de retardos caractersticos de la tecnologa de fabricacin del PLD seleccionado par el diseo. ORCAD Express genera un archivo .VHD con informacin de temporizacin y lo carga en la carpeta Timed.

37

Fig.32 Opcin Timing de BUILD.

La informacin de tiempo de la figura 32 variar con la versin de la SPLD usada. La opcin Build\Advanced permite seleccionar si se incluye en el archivo .JED la programacin del fusible de seguridad, protegiendo las PLD contra lecturas o modificaciones del programa. Para familias de PLD ms avanzadas que las SPLD, esta opcin permite la incorporacin en el programa de una firma electrnica para identificacin del diseo (fecha, autor). El tamao permitido para la firma vara con el tipo de PLD. Adems de generar el archivo .JED de mapa de fusibles, ORCAD Express crea un grupo de archivos los cuales son almacenados en el directorio Outputs. Estos archivos son:
design.VHD Netlist VHDL que modela al PLD e incorpora inormacin de tiempo. Reside en el subdirectorio Timed. Archivo de mapa de fusibles (.JED) Informacin en texto que describe el proceso de creacin del archivo .JED. Conjunto de ecuaciones representando la lgica optimizada, las cuales pueden usarse para generar vectores de prueba a utilizar en la verificacin de la operacin del PLD.

design.JED design.LST. design.VEC.

38

5. Simulacin de la sincronizacin Se procede a simular el diseo usando las especificaciones tcnicas de temporizacin para la familia usada. Seleccione Tools\Simulate y escoja el modo Timed. El archivo de estmulos creado genera una entrada que tiene pulsos de nivel bajo de 3 ns de ancho, lo cual viola las restricciones de tiempo fijadas en la ventana de la figura 32. Observe en la figura 33.a que los pulsos de 3ns de la entrada P_B no estn presentes a la salida Y del multiplexor. El ancho de los pulsos en P_B de la figura 32.b ue incrementado a 10 ns y se propagan a la salida Y.

ContextSignal Value 0ns MUX2A1 P_EN '0' MUX2A1 P_S MUX2A1 P_A MUX2A1 P_B MUX2A1 P_Y '0' '0' '1' '0'

2000ns

4000ns

6000ns

8000ns

10000ns

(a)

ContextSignal Value 0ns MUX2A1 P_EN '1' MUX2A1 P_S MUX2A1 P_A MUX2A1 P_B MUX2A1 P_Y '0' '0' '1' '1'

2000ns

4000ns

6000ns

8000ns

10000ns

(b)

Fig.33 Violaciones de los tiempos de propagacin.

39

Con esta fase culmina el proyecto. A continuacin se comenta la informacin en los archivos .LST y .JED. El contenido del archivo mux2a1.lst es el que sigue:
RESOLVED EXPRESSIONS (Reduction 2) Signal name P_Y' Row 9 10 11 Terms P_S' P_B' P_S P_A' P_EN'

Al inicio se presentan los trminos de productos de la ecuacin minimizada y las filas de la PAL a la cual estn asignados. Para que la PAL pueda ejecutar la funcin, la ecuacin lgica es arreglada por ORCAD Express en la forma: Y = S B + S A + EN
SIGNAL ASSIGNMENT Pin Signal name Column Rows -------------Beg Avail Used 56 48 40 32 24 16 8 0 Activity

8 0 8 0 8 0 8 0 8 0 8 0 8 3 High 8 0 ---- ---64 3 (5%) NOTE (PLD0200) No fatal errors found in input file. NOTE (PLD0201) No warnings.

1. 2. 3. 4. 5. 6. 7. 8. 9. 11. 12. 13. 14. 15. 16. 17. 18. 19.

P_A P_B P_EN P_S P_Y -

2 0 4 8 12 16 20 24 28 30 26 22 18 14 10 6 -

High High High High

(Three-state) (Three-state) (Three-state) (Three-state) (Three-state) (Three-state) (Three-state) (Three-state)

A continuacin se indica la asignacin de las seales a los terminales del dispositivo, identificndose a cual columna del arreglo corresponde cada seal. La salida puede escribirse en funcin de las entradas de la PAL como: Y = I4 I2 + I4 I1 + I3

40

I1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

I2

8 9 10 11 12 13 14 15

X X X X

IO2

I3

Fig.34 Patrn de fusibles para la salida Y del multiplexor 2 a1.

41

Debido a que en el momento de la construccin del proyecto se especific que se incluyera el mapa de fusibles en el archivo .lst, esta es la informacin que sigue a la asignacin de seales.
FUSE MAP FOR PAL16L8 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 32 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 64 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 96 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 128 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 192 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 224 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 256 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -288 -x -- -- -- -x -- -- -- -- -- -- -- -- -- -- -320 -- -x -- -- x- -- -- -- -- -- -- -- -- -- -- -352 -- -- -x -- -- -- -- -- -- -- -- -- -- -- -- -384 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 416 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 448 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 512 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 544 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 576 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 608 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 672 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 704 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 736 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 768 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 832 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 864 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 896 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 928 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 992 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1024 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1056 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1088 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1152 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1184 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1216 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1248 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1312 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1344 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1376 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1408 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1472 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1504 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1536 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 1568 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

42

1600 1632 1664 1696 1728 1760 1792 1824 1856 1888 1920 1952 1984 2016

xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

Legend: x fuse intact - fuse open 123 fuses open of 2048 total.

Recuerde que la funcin lgica la determina los fusibles no removidos durante la programacin. El patrn mostrado corresponde a toda la PAL. El mapa identifica a los fusibles por nmero. Existen 64 filas y cada una tiene 32 lneas (1 fusible/lnea). Los fusibles (lneas) en cada fila se numeran como:
Fila 0 Fila 1 Fila 8 Fila 9 Fila 63 0,1, 2, 3,31 32, 33, 34..63 256, 257, 258,287 288, 289, 290,319 2016, 2017,.2047

Observe que filas a programar (9, 10 y 11) se encuentran en el grupo de filas que se inicia en la fila 8 y finaliza en la 15, todas asociadas al terminal IO2 asignado a la salida Y. Los fusibles que permanecen sanos en las filas 9, 10 y 11 y que determinan la salida son:
Fila 9 10 11 Fusibles intactos 289, 297 323, 328 357

El programa suprime todos los 32 fusibles de la fila 8, de las fila 9 y 10 evapora 30 de cada una y de la fila 11 suprime 31 fusibles. Esto resulta en un total de 32+30+30+31=123 fusibles removidos, tal como indica el archivo .lst. La configuracin de fusibles para salida Y del multiplexor 2 a 1 mostrando el nmero de la fila, puede verse en la figura 34. Observe que este diseo solo usa el 5 % de la capacidad de la PAL16L8. El formato del archivo .JED se muestra a continuacin. Note que se puede verificar fcilmente la funcin programada. Un '1' representa a un fusible suprimido y un '0' un fusible sano y se muestran es estado de los 32 fusibles de cada lnea asociada con la salida IO2.

43

OrCAD PLD EXPRESS Type: PAL16L8 * QP20* QF2048* QV1024* F0* L0256 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 * L0288 10 11 11 11 10 11 11 11 11 11 11 11 11 11 11 11 * L0320 11 10 11 11 01 11 11 11 11 11 11 11 11 11 11 11 * L0352 11 11 10 11 11 11 11 11 11 11 11 11 11 11 11 11 * C0FC3* NOTE (PLD0202) 6/4/3 4:29 pm (Wednesday) NOTE (PLD0204) Elapsed time 3 seconds

Modelos y archivos de prueba VHDL Para representar la lgica del multiplexor usando un modelo VHDL se puede crear un nuevo proyecto. En la fase 1 se configura el bloque jerrquico como indica la figura 35.

Fig.35 El bloque jerrquico H1 de nombre MUX contendr un modelo VHDL

Una vez culminado el esquema del bloque raz, seleccione H1 y descienda un nivel. La pantalla presentar un editor donde debe describir el circuito lgico del multiplexor 2 a 1 usando el lenguaje VHDL.

44

Fig.36 Editor de archivos VHDL.

En la figura 37 se muestra la lista de instrucciones VHDL.

Fig.37 Contenido del archivo MUX.VDH.

Guarde el archivo VHDL1 como MUX, seleccione el bloque H1 y en propiedades asigne el archivo anterior a Implementation Path , como ilustra la figura 38.

45

Fig.38 Debe indicarse el directorio y nombre del archivo VHDL que modela la lgica del MUX.

En este punto puede avanzar a la etapa 2 para simular la lgica. Los estmulos sern aplicados por medio de un archivo de banco de pruebas (Test Bench). Un VHDL Test Bench es un medio de aplicar estmulos al diseo y evaluar las salidas. Para crear un banco de pruebas use el comando Simulate\Stimulus\Create Test Bench. La respuesta ser la ventana de la figura 39 donde debe indicar el nombre del archivo de prueba.

Fig.39 El archivo de prueba se anexa al proyecto

Esto crea un archivo compuesto por dos secciones: la primera se muestra en la pgina 42 y se usa cuando se crean vectores de prueba (no en este caso). La segunda, en la pgina 43, se usar para aplicar los estmulos. Las instrucciones en letra cursiva a partir del comentario --Place stimulus and analysis statements here se incluyen para generar las seales de entrada a la lgica del proyecto.

46

-- VHDL Stub to map between InDesign testbench and post-P&R netlist -- This stub file maps vector ports from the InDesign representation -- to scalar ports in the post-P&R -- To use this mapping do the following: -- 1. Change the name of the device under test in the architecture -of 'MUX2A1VHDL_stub' from 'MUX2A1VHDL_hide' to 'MUX2A1VHDL' -- 2. Change the name of the component referenced -in the test bench below -from 'MUX2A1VHDL' to 'MUX2A1VHDL_stub' -- Created by OrCAD Simulate Sat Aug 16 09:51:36 2003

library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity MUX2A1VHDL_stub is port ( P_Y : out std_logic; P_S : in std_logic; P_B : in std_logic; P_A : in std_logic; P_EN : in std_logic ); end MUX2A1VHDL_stub; architecture mapping of MUX2A1VHDL_stub is -- Declaration of the mapped component component MUX2A1VHDL port ( P_Y : out std_logic; P_S : in std_logic; P_B : in std_logic; P_A : in std_logic; P_EN : in std_logic ); end component;

begin dut : MUX2A1VHDL_hide port map ( P_Y => P_Y, P_S => P_S, P_B => P_B, P_A => P_A, P_EN => P_EN ); end mapping;

-- *********************************************************************

47

-- ********************************************************************* -- Test bench shell -- Created by OrCAD Express Simulate library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity test_MUX2A1VHDL is end test_MUX2A1VHDL; architecture testbench of test_MUX2A1VHDL is -- Declaration of the component under test component MUX2A1VHDL port ( P_Y : out std_logic; P_S : in std_logic; P_B : in std_logic; P_A : in std_logic; P_EN : in std_logic ); end component; signal signal signal signal signal begin --Place stimulus and analysis statements here P_A <= not (P_A) after 225 ns; P_B <= not (P_B) after 500 ns; process begin wait for 1000 ns; P_EN <= '1'; wait for 8000 ns; P_EN <= '0'; wait; end process; process begin wait for 1000 ns; P_S <= '0'; wait for 4700 ns; P_S <= '1'; wait; end process; dut : MUX2A1VHDL port map ( P_Y => P_Y, P_S => P_S, P_B => P_B, P_A => P_A, P_EN => P_EN ); end testbench; P_Y : std_logic; P_S : std_logic:='1'; P_B : std_logic:='1'; P_A : std_logic:='1'; P_EN : std_logic:='0';

Ejecute el programa Simulate en el modo In Design y se desplegar la siguiente ventana de dialogo:

48

Fig.40 Opciones para el archivo de banco de prueba.

Seleccione la opcin indicada. En realidad no es obligado usar la opcin Simulate\Stimulus\Create Test Bench para generar los estmulos. Usted puede escribir fuera de Simulate un archivo con el contenido de la pgina 43 y agregarlo al proyecto indicando que es un archivo de banco de pruebas. En este caso al ejecutar Simulate no se presentar la ventana de la figura 40. Use Simulate\Run para iniciar la simulacin. Los resultados se muestran en la figura 41.
Context Signal Value 0ns 2000ns 4000ns 6000ns 8000ns 10000ns

test_MUX2A1VH P_EN '0' test_MUX2A1VH P_S test_MUX2A1VH P_A test_MUX2A1VH P_B test_MUX2A1VH P_Y '1' '1' '1' 'U'

Fig.41 Resultados de la simulacin usando modelos VHDL para la lgica y para el archivo de estmulos.

Los archivos de patrones de fusibles generados cuando se representa la lgica por un diagrama elctrico y cuando se usa un modelo VHDL deben ser iguales. El lector debe considerar que el programa VHDL de la figura 37 que describe al multiplexor 2 a 1 de la figura 7 solo muestra como declarar un circuito combinatorio sencillo. El interesado debe recurrir a la bibliografa del tema para obtener conocimientos slidos sobre el lenguaje de descripcin de hardware, VHDL.

Simulando el diseo usando PSPICE

49

El archivo que contiene el programa puede ser cargado en un programador de PAL para probar el diseo en el mundo real. Tambin es posible usar el programa PSPICE para probar el diseo usando una PAL16L8. Para esto debe crear el diagrama de la figura 42.

Fig.42 Circuito para probar el diseo usando PSPICE.

Antes de ejecutar la simulacin deben cumplirse dos pasos: Programar la PAL y crear un archivo de configuracin o de perfil para la simulacin. Para incorporar el programa al dispositivo programable, seleccione U1 y haga doble click con el ratn:

Fig.43 El archivo MUX2A1.JED se asigna al PLD usando el editor de propiedades

Para crear el archivo de configuracin seleccione Pspice\New Simulation Profile y asgnele el nombre mux2a1. En la opcin Analysis de la figura 44 especifique un tiempo de simulacin TSTOP de 100 mS y en Options

50

Fig.44 Debido a lo simple del circuito solo debe especificarse el tiempo de simulacin.

Los resultados se muestran en la figura 45

Fig.45 Seales de entrada y salida del multiplexor 2 a 1.

Los estmulos se generan usando DIGCLOCK de la librera SOURCE. Abajo se ofrecen tres ejemplos de estmulos digitales.

51

OFFTIME = 1ms DSTM1 ONTIME = 10ms CLK DELAY = 0 STARTVAL = 1 OPPVAL = 0

OFFTIME = 5ms DSTM3 ONTIME = 15ms CLK DELAY = 25ms STARTVAL = 0 OPPVAL = 1

OFFTIME = 1ms DSTM2 ONTIME = 10ms CLK DELAY = 0 STARTVAL = 0 OPPVAL = 1

Fig.46 Seales de estimulo.

PAL SECUENCIALES

52

Adems de los dispositivos lgicos programables combinacionales Existen PAL secuenciales que permiten el diseo de contadores y maquinas de estados finitos. El circuito PAL16R8, cuyo esquema se muestra en la figura 47.

Fig.47. Diagrama lgico de la PAL16R8.

La arquitectura de la PAL16R8 es similar en muchos aspectos al de la PAL16L8. La diferencia se encuentra se han conectado flips-flops tipo D disparados por flancos en las salidas de las puertas OR. Los terminales de salida O1-8 son las salidas Q de los biestables. Las PAL secuenciales son usualmente llamadas registered PALs. El uso de la palabra registro se debe que al igual que en tales circuitos, todos los flipsflops son sincronizados por el mismo reloj. El chip PAL16R8 tiene 8 entradas prima-

53

rias (I1-I8), 8 salidas (O1-O8), una entrada de reloj (CLK) y un terminal para habilitacin de las salidas (OE_L). Las entradas son 16 en total porque las 8 salidas pueden ser usadas como entradas.

Fig.48. Salida de la PAL16R8.

El arreglo AND-OR es exactamente igual al de la PAL combinacional PAL16L8. Todos los flips-flops tienen una entrada de reloj comn CLK y responden al flanco de subida de la seal de reloj. Cada salida Q se conecta a un buffer de tres estados, los 8 bufers tienen una entrada de habilitacin OE_L nica. La conexin de las salidas de los arreglos AND-OR a las entradas D de cada flip-flop facilita el diseo de registros, contadores y mquinas de estado. El diseo de las PALs clsicas ha sido mejorada con la aparicin de circuitos PLD de arquitectura configurable (genrica), las cuales son las ms usadas en la actualidad para pequeos diseos. Estos dispositivos fueron diseados para ser compatibles con todas las versiones de PALs anteriores. Adems su arquitectura flexible permite realizar diseos que son imposibles de realizar con circuitos PALs simples. La flexibilidad para configura el dispositivo se debe a que ha sido equipado con una variedad de fusibles separados de los que se encuentran en el arreglo AND-OR. El cdigo 22V10 corresponde a uno de los chips PLD ms populares y puede reemplazar a todas las PALs de 24 pines de arquitectura tradicional. Esto debido a que el diseo permite configurar las salidas del circuito. Las salidas fueron mejoradas con una lgica especial y son conocidas como macroceldas. Este tipo de salida se encuentran en 10 de los terminales del dispositivo como muestra la figura 49. LA 22V10 tiene 12 entradas primarias una de las cuales, el pin 1, sirve como entrada de reloj de los flips-flops de cada macrocelda. Cualquiera de las 10 salidas puede ser usada como entrada. La figura 51 muestra la estructura de una macrocelda.

54

Fig.49. Diagrama lgico de la GAL22V10.

55

Fig.50. Diagrama lgico de la GAL22V10.

Cerradura de combinacin
A continuacin se presenta el diseo de un circuito secuencial a ser programado en un circuito AMD22V10. El diseo corresponde a la cerradura de combinacin de la prctica N 7.

56

H1 H2 D2 D2 D1 D0 C B A C D1 B D0 A U7 Z[3..0] U1 CK_pin CLOCK buf 1 CTRL MAQUINA CK ENT RELE U8 IO buf 1 U9 IO buf 1 buf 1 U3 Z2_pin IN buf 1 U4 Z1_pin IN buf 1 U5 Z0_pin IN buf 1 U6 ENT_PIN IN buf 1 Z0 Z1 Z2 RELE_PIN LED_PIN CLR LED buf 1 IO CLR_PIN

U2 Z3_pin IN Z3

Z[3..0]

Fig. 51 Diagrama raz del circuito de la cerradura

57

U11 df f 1 SSET

:std_logic:='1' U10 GND

U12 df f 1 SSET

:std_logic:='1'

U13 df f 1 SSET ACLR

:std_logic:='1'

DATA CLOCK

DATA CLOCK

DATA CLOCK

ACLR

D2 D1

ACLR

D0

U14 GND

B CK

Fig. 52 Contenido del bloque jerrquico CTRL

58

Fig. 53 Contenido del bloque jerrquico MAQUINA

59

Fig. 54 Circuito de la cerradura con lgica cableada.

60

SIGNAL ASSIGNMENT Pin Signal name Column Rows -------------Beg Avail Used - - - - - - - - - - - - - - - - - - - - - - 122 9 0 111 11 0 98 13 0 83 15 0 66 17 1 49 17 10 34 15 7 21 13 8 10 11 2 1 9 1 0 1 0 131 1 0 ---- ---132 29 (22%) Activity

1. 2. 3. 4. 5. 6. 7. 8. 10. 11. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 25. 26.

CK_PIN ENT_PIN Z0_PIN Z1_PIN Z2_PIN Z3_PIN RELE_PIN N12231 N12221 N12211 LED_PIN CLR_PIN -

0 4 8 12 16 20 24 28 36 40 42 38 34 30 26 22 19 15 11 6 2 -

High High High High High High

(Clock)

(Three-state) (Three-state) (Three-state) (Three-state) High (Three-state) High (Registered) High (Registered) High (Registered) High (Three-state) High (Three-state)

61

Fig. 54 Circuito de la cerradura con lgica programada.

62

El proyecto puede constar de un archivo VHDL que en vez de describir la estructura del circuito, describa su comportamiento. Se usa el programa Design Explorer DXP.

Fig. 55 Diagrama raz del circuito de la cerradura

63

------------------------------------------------------------- SubModule -- Created 03/01/2004 11:18:35 a.m. -----------------------------------------------------------library IEEE; use IEEE.std_logic_1164.all; use ieee.numeric_std.all; entity maquina is port ( Z3 : in STD_LOGIC; Z2 : in STD_LOGIC; Z1 : in STD_LOGIC; Z0 : in STD_LOGIC; ENT : in STD_LOGIC; CLK : in STD_LOGIC; CLR : out STD_LOGIC; LED : inout STD_LOGIC; RELE : out STD_LOGIC ); attribute pinnum : string; attribute pinnum of Z3 : signal is "3"; attribute pinnum of Z2 : signal is "4"; attribute pinnum of Z1 : signal is "5"; attribute pinnum of Z0 : signal is "6"; attribute pinnum of ENT : signal is "2"; attribute pinnum of CLK : signal is "1"; end maquina; ----------------------------------------------------------------------------------------------------------------------architecture behavior of maquina is type state_type is (espera, a1, a2, a3,a4,a5,a6,a7); signal current_state, next_state: state_type; begin process (cLk,ENT) begin if cLk = '1' and cLk'event then current_state <= next_state; end if; end process; process (current_state, ENT,LED,z3,z2,z1,z0) begin CLR <= '1'; LED <= '0'; RELE <= '0'; case current_state is when espera => -- transition conditions if ENT = '1' then next_state <= a1; else next_state <= espera; end if; when a1 => -- outputs CLR <= '0'; LED <= '1'; RELE <= '0'; -- transition conditions if (LED = '1' and z3 ='0' and z2='0' and z1='1' and z0='1')then next_state <= a2; else next_state <= a5;

64

end if; when a2 => CLR <= '0'; LED <= '0'; RELE <= '0'; if (LED = '0' and z3 ='1' and z2='0' and z1='0' and z0='1') then next_state <= a3; else next_state <= a6; end if; when a3 => -- outputs CLR <= '0'; LED <= '1'; RELE <= '0' if (LED = '1' and z3 ='1' and z2='1' and z1='1' and z0='0') then next_state <= a4; else next_state <= a7; end if; when a4=> CLR <= '0'; LED <= '0'; RELE <= '1'; if LED='0' then next_state<=espera; else next_state<=espera; end if; when a5=> next_state<=a6; when a6=> next_state<=a7; when a7=> next_state<=espera; when others => next_state <= espera; end case; end process; end behavior;

65

Fig. 56 Simulacin del circuito de la cerradura

Você também pode gostar