0 calificaciones0% 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.
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 calificaciones0% 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.
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).