Sunteți pe pagina 1din 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).

S-ar putea să vă placă și