ejemplos wincupl

Page 1

ELECTRONICA DIGITAL AVANZADA

LENGUAJE DE PROGRAMACION CUPL

Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

COMBINACIONAL ‐Uso de ecuaciones o tabla de verdad SECUENCIAL ‐Uso de ecuaciones o máquina de estado

! INVERSORA & AND # OR $ XOR

Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

Implementación de lógica combinacional Problema: Las expresiones CUPL deben escribirse para la función. La suma de productos es la forma que usa CUPL. Existe un limite de 7 términos productos. Dada: Una suma de ecuaciones de productos Encontrar: Una forma complemento de la ecuación también en suma de productos

Ejemplo:

A = x'y + xy'z

En CUPL esto sería:

A = !x&y # x&!y&z;

Ejemplo:

B = x'y'z' + xy' + yz

En CUPL esto sería :

B = !x&!y&!z # x&!y # y&z;

Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

/******************************************************* **/ /* Ejemplo de programa que implementa las siguientes ecuaciones */ /* en lenguaje de programación CUPL */ /* */ /* A = x'y +xy'z */ /* B = x'y'z' + xy' +yz */ /* */ /******************************************************/ /** Entradas **/ Pin 2 = x; Pin 3 = y; Pin 4 = z; /** Salidas **/ Pin 19 = A; Pin 18 = B; /** Declaración y definición de variables intermedias **/ /** Ecuaciones lógicas**/ A = !x&y # x&!y&z; B = !x&!y&!z # x&!y # y&z; Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

/********************************************************/ /* Programa que implementa las siguientes ecuaciones*/ /* en lenguaje de programación CUPL usando tabla de verdad */ /* */ /* A = x'y +xy'z */ /* B = x'y'z' + xy' +yz */ /* */ /********************************************************/ / ** Entradas **/ Pin 2 = x; Pin 3 = y; Pin 4 = z; / ** Salidas **/ Pin 19 = A; Pin 18 = B; /** Declaración y definición de variables intermedias **/ FIELD INPUT = [x,y,z]; FIELD OUTPUT = [A,B]; /** Tabla de verdad**/ TABLE INPUT => OUTPUT { 0=>'b'01; 1=>'b'00; 2=>'b'10; 3=>'b'11; 4=>'b'01; 5=>'b'11; 6=>'b'00; 7=>'b'01; } Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

Implementación de circuito secuencial Dado: Diagrama de estado para un reconocedor de secuencia (0110) Usando mapas K, de acuerdo a la tabla y usando flip‐flop Tipo D: DB = s(B'A) + s(BA')

01

00

DA = s'B' + BA' 11

Q

10

ENT

Q+

SAL f

Dejando: pin 1 = clock, pin 2 = s, pin 19 = f, pin 17 = B, pin 16 =A, pin 11 = /habilitación Ecuaciones escritas de la forma Culp: B.d = s&!B&A # s&B&!A; A.d = !s&!B # B&!A; f = !s&B&A;

Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

/********************************************************/ /* Programa que implementa las siguientes ecuaciones*/ /* en lenguaje de programación CUPL usando ecuaciones */ /* */ /* DA = s’B’ + BA’ */ /* DB = sB’A + sBA’ */ /* f =s’BA /** Entradas **/ Pin 1 = clock; Pin 2 = s; /* entrada de dato combinacional */ Pin 11 = !habilitación; /** Salidas **/ Pin 19 = f; Pin 17 = B; Pin 16 = A; /** Declaración y definición de variables intermedias **/ /** Ecuaciones **/ B.d = s&!B&A # s&B&!A; A.d = !s&!B # B&!A; f = !s&B&A;

Dr. José De Jesús Moreno Vázquez


/*******************************************************/ /* Programa que implementa las siguientes ecuaciones*/ /* en lenguaje de programación CUPL usando Máquinas de Estado*/ /* */ /** Entradas **/ Pin 1 = clock; Pin 2 = s; /* combinacional data input */ Pin 11 = !habilitación; /** Salidas **/ Pin [14..15] =[Q1..0]; Pin 19 = f; /* salida combinacional */ /** Declaración y definición de variables intermedias **/ field state = [Q1..0]; $define S0 'b'00 $define S1 'b'01 $define S2 'b'10 $define S3 'b'11 /** Maquina de estado **/ SEQUENCE state { present S0 if s next S0; default next S1; present S1 if s next S2; default next S1; present S2 if s next S3; default next S1; present S3 if s next S0 out f; default next S0; } Dr. José De Jesús Moreno Vázquez

ELECTRONICA DIGITAL AVANZADA


Name FSM ; PartNo 00 ; Date 28/09/2010 ; Revision 01 ; Designer Engineer ; Company ITM ; Assembly None ; Location ; Device g16v8 ;

ELECTRONICA DIGITAL AVANZADA

/* *************** INPUT PINS *********************/ PIN 1 = clk ; /* reloj */ PIN 2 = x ; /* entrada */ /* *************** OUTPUT PINS *******************/ PIN 16 = xs ; /* auxiliar */ PIN 17 = z ; /* salida */ /************** VARIABLES DE ESTADO***************/ PIN 18 = a; PIN 19 = b; $DEFINE q0 'b'00 $DEFINE q1 'b'01 $DEFINE q2 'b'11 $DEFINE q3 'b'10 xs.d = x; sequence a,b { present q0 if xs next q1; default next q0; present q1 if xs next q2; if !xs next q0; present q2 if xs next q3; out z; default next q0; present q3 if !xs next q0; default next q3; out z;

Dr. José De Jesús Moreno Vázquez

}


Maquina de estado 0/0

0/0

00

01

0/0

11

0/0 10

Name ventilador; PartNo 00 ; Date 27/09/2010 ; Revision 01 ; Designer Engineer ; Company itm ; Assembly None ; Location ; Device g16V8 ;

ELECTRONICA DIGITAL AVANZADA

/* *************** INPUT PINS *********************/ PIN 1 = CLK ; /* */ PIN 2 = x; /* *************** OUTPUT PINS *********************/ PIN 12 = v1 ; /* VEL1 */ PIN 13 = v2 ; /* VEL2 */ PIN 14 = v3 ; /* VEL3 */ /* *************** OUTPUT PINS *********************/ PIN 15 = xs ;

0/0

/* *************** OUTPUT PINS *********************/ PIN 18 = a ; /* variable de ESTAD0 */ PIN 19 = b ; /* variable de ESTADO */ $DEFINE s0 'b'00 $DEFINE s1 'b'01 $DEFINE s2 'b'11 $DEFINE s3 'b'10 xs.d = x; sequence a,b {

Dr. José De Jesús Moreno Vázquez

present s0 if xs next s1; default next s0; present s1 if xs next s2; default next s1; out v1; present s2 if xs next s3; default next s2; out v2; present s3 if xs next s0; default next s3; out v3; }


Name ejemplo_fsm; ELECTRONICA DIGITAL AVANZADA PartNo 00 ; Date 27/09/2010 ; Revision 01 ; Designer Engineer ; Company itm ; Assembly None ; Location ; Device g16V8 ; /* *************** INPUT PINS *********************/ PIN 1 = CLK ; /* */ PIN 2 = x; /* sensor 1 */ PIN 3 = y; /* sensor 2 */ /* *************** OUTPUT PINS *********************/ PIN 12 = md ; /* motor 1 */ PIN 13 = mi ; /* motor 2 */ /* *************** auxiliares *********************/ PIN 15 = sd ; PIN 16 = si ; /* *************** ESTADOS *********************/ PIN 18 = a ; /* */ PIN 19 = b ; /* */ $DEFINE q0 'b'00 $DEFINE q1 'b'01 $DEFINE q2 'b'11 sd.d = x; si.d = y; sequence a,b { present q0 if (sd & !si) next q1; if (sd & !si) out mi,md; if (!sd & si) next q2; default next q0; if !sd&!si out mi; if sd&si out md; present q1 if (!sd & si) next q2; if sd&!si next q0; if sd&!si out mi,md; default next q1; if !sd&!si out mi; if sd&si out md;

Dr. José De Jesús Moreno Vázquez

present q2 if (!sd & si) next q0; if (sd & !si) next q1; if (sd & !si) out md,mi; default next q2; if !sd&!si out mi; if sd&si out md; }


ELECTRONICA DIGITAL AVANZADA

USANDO TABLA Name ejemplo_fsm_tabla; PartNo 00 ; Date 27/09/2010 ; Revision 01 ; Designer Engineer ; Company itm ; Assembly None ; Location ; Device g16V8 ; /* *************** ENTRADAS*********************/ PIN PIN

1 = x; /* sensor 1 */ 2 = y; /* sensor 2 */

/* *************** SALIDAS*********************/ PIN 18 = md ; /* MOTOR1 */ PIN 19 = mi ; /* MOTOR2 */ table x,y => md, mi { 'b'00 => 'b'11; 'b'01 => 'b'10; 'b'10 => 'b'01; 'b'11 => 'b'00; } Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

COMPILANDO EL ARCHIVO PLD

Use el WinCUPL o algún otro texto editor para crear el archivo Guarde el archivo con la extensión .PLD Compile usando WinCUPL, asegúrese de no tener errores Guarde el archivo . JED

Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

Usando WinCUPL

Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

Usando WinCUPL Entrar con : options/compiler ( se abre la ventana mostrada) Pestaña “General”: seleccionar opción JEDEC Pestaña “Output Files”: seleccionar PLA

Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

Usando WinCUPL Compilar archivo para generar la extensión jed. (necesario para programar el PLD)

Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

Usando WinCUPL Una vez compilado no debe haber errores

Dr. José De Jesús Moreno Vázquez


ELECTRONICA DIGITAL AVANZADA

Usando WinCUPL

Resultado del archivo compilado

Dr. José De Jesús Moreno Vázquez


Name ejemplo_fsm_tabla; PartNo 00 ; Date 27/09/2010 ; Revision 01 ; Designer Engineer ; Company itm ; Assembly None ; Location ; Device g16V8 ; /* *************** INPUT PINS ******/ IN 1 = a; /* lsb */ PIN 2 = b; /* */ PIN 3 = c; /* */ PIN 4 = d; /* */ PIN 5 = e; /* */ PIN 6 = f; /* */ PIN 7 = g; /* */ PIN 8 = h; /* msb */ /* *************** ESTADOS *********/ PIN 15 = vb ; /* */ PIN 16 = vm ; /* */ PIN 17 = va ; /* */ table h,g,f,e,d,c,b,a => vb, vm, va {

ELECTRONICA DIGITAL AVANZADA

Uso del PLD Con un ADC

'b'00000000 => 'b'000; 'b'01001101 => 'b'100; 'b'01111111 => 'b'010; 'b'11111111 => 'b'001;

Name ADC_TABLA; PartNo 00 ; Date 27/09/2010 ; Revision 01 ; Designer JJMV ; Company ITM ; Assembly None ; Location ; Device g16V8 ; /* *************** INPUT PINS **********/ PIN [1..8] = [D0..D7]; /* lsb */ /* *************** ESTADOS *************/ PIN [15..17] = vb, vm, va ; /* */ field input =[D0..D7]; field output =[vb,vm,va]; table input => output { 'h'00 => 'b'000; 'h'4D => 'b'100; 'h'7F => 'b'010; 'h'FF => 'b'001;

} Dr. José De Jesús Moreno Vázquez

}


ELECTRONICA DIGITAL AVANZADA

Uso del PLD Con un ADC

Dr. José De Jesús Moreno Vázquez


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.