AnÁlisis y DiseÑo de Circuitos Secuenciales
AnÁlisis y DiseÑo de Circuitos Secuenciales
AnÁlisis y DiseÑo de Circuitos Secuenciales
Figura 8.1.4. Macroceldas lógicas para el PLD GAL16V8. (Copyright © 1999 by John
F. Wakerly).
Estas celdas son conocidas como OLMCs de la sigla en inglés Output Logic MacroCell
y en la figura 8.1.4 se observa la estructura interna de una de estas celdas en sus dos
configuraciones disponibles (salida secuencial y salida combinacional).
Arquitectura de Diversos PLD's Secuenciales
Figura 8.1.1. PLD secuencial PAL16R6. (Copyright © 1999 by John F. Wakerly)
Arquitectura de Diversos PLD's Secuenciales
Ejemplos de ProgramaciÓn de PLDs Secuenciales
En el capitulo 4 se vieron las bases sobre la programación de PLD's con CUPL. En esta
lección se indicarán algunos ejemplos para aplicaciones particulares desarrolladas en
CUPL. Recordando lo visto en el capítulo 4, en este lenguaje el código fuente se
dividide en tres partes: Encabezado, asignación de pines de entrada y salida y
ecuaciones lógicas.
Los ejemplos ilustrados en esta lección fueron tomados de algunos fabricantes que han
desarrollado estos códigos para aplicaciones particulares en sus dispositivos. Se plantea
al estudiante analizar el código de estos ejemplos para comprender la forma en que se
pueden programar en CUPL.
Ejemplo 8.2.1 - Uso de los flip-flop D en un PLD
Name Flops;
Partno CA0002;
Revision 03;
Date 9/12/95;
Designer G. Woolhiser;
Company Assisted Technology, Inc.;
Location None;
Assembly None;
Device P16R8;
/****************************************************************/
/* */
/* This example demonstrates the use of D-type flip-flops, */
/* and flexibilty of expression with CUPL. The following */
/* are four implementations of a two bit counter. */
/* */
/****************************************************************/
/* Target Devices: PAL16R8, PAL16RP8, EP300 */
/****************************************************************/
Pin 1 = clock;
Pin 2 = reset;
Pin 11 = !enable;
/*
* Outputs: define outputs and output active levels
*/
Pin 19 = qa0; Pin 18 = qa1;
Pin 17 = qb0; Pin 16 = qb1;
Pin 15 = qc0; Pin 14 = qc1;
Pin 13 = qd0; Pin 12 = qd1;
/*
* Logic: examples of two-bit counters using d-type flip-flops
*/
/* two-bit counter example no. 1 */
/* using software emulated exclusive or's */
qa0.d = !reset & !qa0;
qa1.d = !reset & (qa1 $ qa0);
/* two-bit counter example no. 2 */
/* using expanded exclusive or's */
qb0.d = !reset & (!qb0 & !qb1 # !qb0 & qb1);
qb1.d = !reset & (!qb0 & qb1 # qb0 & !qb1);
/* two-bit counter example no. 3 */
/* using bit fields on the right hand side of the equals sign */
field state = [qc1,qc0];
qc0.d = !reset & (state:0 # state:2);
qc1.d = !reset & (state:1 # state:2);
/* two-bit counter example no. 4 */
/* using bit fields on the left hand side of the equals sign */
field q = [qd0,qd1];
q.d = !reset & ([!qd0,qd1] & [!qd1,!qd0] # [!qd0,!qd1] & [qd1,qd0]);