0% encontró este documento útil (0 votos)
261 vistas30 páginas

04 Programacion de SPLDs Con WinCUPL

El documento describe el software WinCUPL desarrollado por Atmel Corporation para programar dispositivos lógicos programables (PLDs). WinCUPL es una versión para Windows del compilador universal CUPL que genera archivos para programar o simular PLDs. Con CUPL es posible compilar descripciones de circuitos combinacionales o secuenciales usando ecuaciones booleanas, tablas de verdad o máquinas de estados finitos. El compilador genera varios archivos de salida como archivos JEDEC, ABS, LST, DOC y PLA.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
261 vistas30 páginas

04 Programacion de SPLDs Con WinCUPL

El documento describe el software WinCUPL desarrollado por Atmel Corporation para programar dispositivos lógicos programables (PLDs). WinCUPL es una versión para Windows del compilador universal CUPL que genera archivos para programar o simular PLDs. Con CUPL es posible compilar descripciones de circuitos combinacionales o secuenciales usando ecuaciones booleanas, tablas de verdad o máquinas de estados finitos. El compilador genera varios archivos de salida como archivos JEDEC, ABS, LST, DOC y PLA.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 30

M. C.

Felipe Santiago Espinosa


Verano 2013
WinCUPL
Software desarrollado por Atmel Corporation.
CUPL Compilador !ni"ersal para l#gi$a programa%le &genera
ar$'i"os para programar o sim!lar SPL(s).
*inCUPL es !na "ersi#n para windows de CUPL. *inCUPL es !na "ersi#n para windows de CUPL.
Con CUPL es posi%le $ompilar des$rip$iones de $ir$!itos
$om%ina$ionales o se$!en$iales.
Un $ir$!ito $om%ina$ional se des$ri%e $on s! ta%la de "erdad o
$on e$!a$iones %ooleanas.
Para los $ir$!itos se$!en$iales lo m+s $on"eniente es el empleo
de m+,!inas de estados finitos.
Los ar$'i"os $on las des$rip$iones tienen e-tensiones .PL(.
el $ompilador de *inCUPL genera los ar$'i"os sig!ientes
Un ar$'i"o /E(EC &filename.JED) para des$argarse $on !n
programador o emplarse $on !n sim!lador.
Un ar$'i"o a%sol!to &filename.ABS) para !sarse por CS0M. el
m#d!lo de sim!la$i#n de CUPL. m#d!lo de sim!la$i#n de CUPL.
Un ar$'i"o de lista &filename.LST) ,!e m!estra los errores
en el ar$'i"o f!ente original.
Un ar$'i"0 de do$!menta$i#n &filename.DOC) ,!e $ontiene
e$!a$iones l#gi$as e-pandidas. ta%las de s1m%olos. t2rminos
prod!$tos e informa$i#n del mapa de f!si%les.
Un ar$'i"o en formato PLA &filename.PLA) para ser !sado
por otros m#d!los o programas t2$ni$os.
Ecuaciones booleanas
P!eden emplearse los 3 operadores l#gi$os f!ndamentales
456. A4(. 57 8 957
Operador Descripcin Ejemplo Precedencia
: 456 :A 1
Una e$!a$i#n l#gi$a tiene la forma
; : < "ar ; .e-t < = e-p>
? A4( A ? @ 2
A 57 A A @ 3
B 957 A B @ 3
(onde
Var es !na "aria%le o lista de "aria%les inde-adas o no
inde-adas. Si se trata de !na lista. la e-presi#n se apli$a a
los diferentes elementos de la lista.
.ext es !na e-tensi#n a las "aria%les ,!e las "in$!la $on
las $ara$ter1sti$as de los dispositi"os programa%les. las $ara$ter1sti$as de los dispositi"os programa%les.
Exp es !na e-presi#n. ,!e es !na $om%ina$i#n de
"aria%les 8 operadores.
= el operador de asigna$i#n ,!e se apli$a a !na "aria%le o
a !n $onC!nto de "aria%les
El operador de $omplemento.
EXTENSIONES
DE LAS VARIABLES
EN WINCUPL
Circuito que ilustra el uso de las extesioes de las !aria"les
Las "aria%les son inde-adas si finaliDan $on !n nEmero.
referido $omo 1ndi$e. p!eden !sarse para representar
%!ses. por eCemplo. para
A0 A1 A2 A3 A3 AF AG AH
P!ede !sarse A0..H. El 1ndi$e es !n nEmero entre 0 8 31.
siendo el %it 0 el menos signifi$ati"o. siendo el %it 0 el menos signifi$ati"o.
Un operador p!ede apli$arse ig!almente a !n $onC!nto de
"aria%les. por eCemplo. las e-presiones
;A3. A2. A1. A0< ? A3 ? A2 ? A1 ? A0
;@3 .. @0< A @3 A @2 A @1 A @0
;C3. C2. C1. C0< B C3 B C2 B C1 B C0
Con la pala%ra reser"ada F0EL( se 'a$e referen$ia a !n
gr!po de "aria%les &inde-adas o no) para tratarlas $omo
!na sola "aria%le de "arios %its. por eCemplo
F0EL( address = ; A3..0<>
F0EL( modo = ;ini. as$. des <>
Una des$rip$i#n en *inCUPL de%e ini$iar $on
Encabezado: Se indi$a el nom%re del programa. el
dispositi"o a ser programado. el a!tor. la fe$'a 8 otros datos.
Asignacin de terminales: Se asignan las terminales de
entrada 8 salida del dispositi"o.
Ejemplo 1: Circuito combinacional
Se des$ri%ir+ mediante CUPL el sig!iente $ir$!ito
f
x
#
x
La e$!a$i#n para el $ir$!ito es
Con la nota$i#n de CUPL
x
$
x
%
Se !tiliDar+ !na IAL22V10. $omo entradas se !tiliDar+n las
terminales 1. 2 8 3. para -1. -2 8 -3 respe$ti"amente. J la
salida f estar+ en la terminal 23.
Simulacin en WinCUPL
1. 0ni$iar !n n!e"o ar$'i"o de sim!la$i#n a partir del
ar$'i"o PL(
2. Agregar seKales al espa$io de sim!la$i#n
3. Agregar "e$tores
3. (efinir los "alores de las entradas 3. (efinir los "alores de las entradas
F. ECe$!tar la sim!la$i#n
1. (efinir el $ir$!ito
2. Cargar el ar$'i"o /E( en el PAL
3. ECe$!tar la sim!la$i#n
Simulacin en ISIS de Proteus
Tablas de verdad
Es otra manera de des$ri%ir $ir$!itos $om%ina$ionales.
CUPL reser"a a la pala%ra 6A@LE para estas des$rip$iones.
Primero se define !n $ampo &F0EL() para las "aria%les de
entrada 8 otro para las "aria%les de salida. (esp!2s se
espe$ifi$an !na a !na las asigna$iones de las salidas ante las espe$ifi$an !na a !na las asigna$iones de las salidas ante las
diferentes entradas.
Condi$iones no importa p!eden $onsiderarse para las
entradas pero no para las salidas.
Una lista de "alores de entrada se p!ede $onsiderar para
generar la misma salida.
F0EL( inp!t = ;in3..0<> LM 4Emero en %inario ML
F0EL( o!tp!t = ;o!tH..0<> LM 4Emero en @C( ML
6A@LE inp!t =N o!tp!t O
0=N 00> 1=N01> 2=N02> 3=N03>
3=N03> F=N0F> G=N0G> H=N0H>
P=N0P> Q=N0Q> A=N10> @=N11> P=N0P> Q=N0Q> A=N10> @=N11>
C=N12> (=N13> E=N13> F=N1F>
R
Con e-$ep$i#n de las terminales de los dispositi"os 8 la
defini$i#n de las "aria%les inde-adas. ,!e siempre se
definen en de$imal. para otras opera$iones CUPL maneCa
los nEmeros en 'e-ade$imal. a menos ,!e se espe$ifi,!e
otra %ase !tiliDando el prefiCo $orre$to.
Prefijo Base Ejemplo
Valor
"decimal#
S@T @inario &2) S@T1101 13
S5T 5$tal &P) S5T123 P3
S(T (e$imal &10) S(TPH2 PH2
SUT Ue-ade$imal &1G) SUTA2 1G2
En %inario. o$tal o 'e-ade$imal p!eden !tiliDarse
$ondi$iones no importa &V9W). por eCemplo
S%T1109
S5T293
S'T12A9
Ejemplo 2: ecodi!icador de " a #
Es !n $ir$!ito $on 3 entradas 8 P salidas. de las $!ales
s#lo !na est+ a$ti"a a la "eD.
A$ A% A& '( ') '* '+ ', '$ '% '&
0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0 0 0
1 0 1 0 0 1 0 0 0 0 0
1 1 0 0 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0
Las entradas estar+n en las
terminales 1. 2 8 3> mientras
,!e para las salidas se
!tiliDar+n las terminales de la
1G a la 23.
F0EL( ent = ;A2..0<>
F0EL( sal = ;JH..0<>
6A@LE ent =N sal O
0=N S%T00000001>
1 =N S%T00000010>
2 =N S%T00000100>
3 =N S%T00001000> 3 =N S%T00001000>
3 =N S%T00010000>
F =N S%T00100000>
G =N S%T01000000>
H =N S%T10000000>
R
$unciones en WinCUPL
Si se re,!ieren tareas repetiti"as. es posi%le el !so de
f!n$iones. Por eCemplo. !na f!n$i#n para !n s!mador
de 1 %it se define $omo
f!n$tion s!mX1@it &9. J. Cin. Co!t) O
Co!t = Cin ? 9 A Cin ? J A 9 ? J> LM Carr8 ML
s!mX1@it = Cin B &9 B J)> LM S!ma ML
R
$unciones en WinCUPL
LM Un s!mador de 3 %its. $on a$arreo ML
Y1 = s!mX1@it&91. J1. S%Z0. C1)>
LM El a$arreo ini$ial es S%Z0 ML
Y2 = s!mX1@it&92. J2. C1. C2)>
Y3 = s!mX1@it&93. J3. C2. C3)>
Y3 = s!mX1@it&93. J3. C3. C3)>
LM En C3 est+ el a$arreo final ML
%&'uinas de Estados $initos ($S%)
Una FSM es !n $ir$!ito digital. el $!al re$orre !na
se$!en$ia de estados en !n orden predefinido.
El $ir$!ito tiene memoria. es de$ir. s!s salidas no solo
dependen de las entradas. sino ,!e tam%i2n dependen de
los estados anteriores. los estados anteriores.
EntradaLSalida
x/y
Una FSM se $ompone de dos %lo,!es. $omo se m!estra en
la fig!ra
Para los elementos de memoria se emplean flip-flops. la
m+,!ina es s1n$rona por ,!e los flip-flops $am%ian s!
estado en $ada flan$o de reloC.
%&'uina de %eal*
%&'uina de %oore
Para definir !na m+,!ina de estados en CUPL. primero se
determinan los %its $on los ,!e se representar+n los estados
"+lidos. esto se realiDa $on la pala%ra F0EL(.
F0EL( stateX"arXlist = ;[n..0<>
;[n..0< son terminales de salida. s! tamaKo depende del
nEmero de estados. nEmero de estados.
Es posi%le !na defini$i#n $on nom%res sim%#li$os para los
estados. se realiDa $on la pala%ra -define
-define stateXn0 S%T0...0
-define stateXn1 S%T0\1
. . .
-define stateXnn S%T1\1
Con la pala%ra reser"ada SE./E0CE se determina la
se$!en$ia de estados. de a$!erdo $on la sig!iente sinta-is
SE[UE4CE stateX"arXlist O
P7ESE46 stateXn0
0F &$ondition1)4E96 stateXn1>
0F &$ondition2) 4E96 stateXn2 5U6 o!tXn0>
(EFAUL6 4E96 stateXn0> (EFAUL6 4E96 stateXn0>
P7ESE46 stateXn1
4E96 stateXn2>
.
.
.
P7ESE46 stateXnn statements>
R
estados.ar = 0>
estados.sp = 0>
SE[UE4CE estados O
P7ESE46 S0 4E96 S1>
P7ESE46 S1 4E96 S2>
Ejemplo ": Contador + a "
P7ESE46 S1 4E96 S2>
P7ESE46 S2 4E96 S3>
P7ESE46 S3 4E96 S0>
R
0ota1 La asigna$i#n de estados.ar 8 de
estados.sp es por ,!e los flip]flops de
salida $!entan $on !n reset as1n$rono
&ar) 8 !n preset s1n$rono &ps).
F0EL( estados = ;[1..[0<>
Bdefine S0 Z%Z00
Bdefine S1 Z%Z01
Bdefine S2 Z%Z10
Bdefine S3 Z%Z11
Ejemplo ,: %a'uina de %eal*
Ejemplo -: %a'uina de %oore
Ejercicios:
1. M!ltiple-or de 2 a 1.
2. (e$odifi$ador de @C( a H segmentos.
3. Comparador de datos de 3 %its.
3. Ienerador de paridad ParL0mpar.
F. Contador UpL(own de 3 %its.
G. 7egistro de $orrimiento. entrada serial 8 salida paralela. G. 7egistro de $orrimiento. entrada serial 8 salida paralela.
H. Sistema $on dos sem+foros &s!geren$ia Usar !na seKal de
reloC $on !na fre$!en$ia %aCa. El $olor Amarillo ,!e
en$ienda d!rante 1 $i$lo de reloC. el $olor Verde d!rante 2
$i$los).
P. Control a!tom+ti$o de !na %om%a de ag!a
Q. Seg!idor de l1nea $on dos motores independientes
10. Control de !na p!erta a!tom+ti$a
Pr&cticas de laboratorio
1. 7e$ono$edor de !na se$!en$ia serial de F %its
2. Ienera$i#n de P*M
3. ManeCo de !n motor a pasos. $on !na terminal para
'a%ilitar el mo"imiento 8 otra para determinar el
sentido.
3. M!ltipli$ador %inario de 2 nEmeros de 3 %its
&res!ltado en G %its).

También podría gustarte