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).