Programación CUPL

Descargar como ppt o pdf
Descargar como ppt o pdf
Está en la página 1de 19
GAL 22V10 Tiene 12 entradas (Terminales 1-11 y 13). Tiene 10 salidas/entradas (14 - 23). La terminal 1 siempre es la fuente de reloj para circuitos secuenciales. Se puede generar hasta 120 minitérminos: © 8 enlas salidas 14 y 23. © 10 en las salidas 15 y 22. © 12enlas salidas 16 y 21. © 14 enlas salidas 17 y 20. © 16 en las salidas 18 y 19. i aig ges ae Permite Reset sincrono y asincrono, y se puede hacer retroalimentaci6n de las salidas a las entradas. BASecmvorr ong vou ono DIP 7 a GAL 22v10 6 1s 12 x WinCUPL (Universal Compiler f Programmable Logic) El WinCUPL es un software de Atmel que genera el archivo para programar PAL’s y GAL'S. Un programa en WinCUPL, consta de 3 bloques principales, que son: « Encabezado. Se indica el nombre del programa, el dispositivo a ser programado, el autor, la fecha y otros datos. e Asignacién de terminales. Se indican la asignacién de las terminales de entrada y salida del dispositivo. e Ecuaciones Idégicas. Define la relacién entre las terminales asignadas. Encabezado Name PartNo Date Revision Designer Company Assembly Location Device Name ; 00; 03/10/2006 ; 01; Engineer ; UTM; None ; Huajuapan; g22v10; Deben escribirse todos los campos, si no, el compilador marca un error. Declaracion de terminales El formato general para esta declaracion es: PIN pin_number = [!] var Ejemplos: PIN1 = Clock; PIN 2 = Ss; PIN 11 = !0; PIN{[3..6] = [DO..D3]; Declaracion de nodos PIN_NODE pin_number = [!]var; Se usan para dispositivos que cuentan con terminales internas Implementaci6n en WinCUPL Y¥ =(0,1,2,3,6) Name Name; PartNo 00; Date 03/10/2006 ; Revision 01 ; Encabezado <—— > _Designer Engineer ; ‘Company UTM; Assembly None : Location ; Device g22v10; “**** INPUT PINS ** Asignacién de terminales Sf | = an ‘ Jt theseweeeseeses OUTPUT PING ‘tttettesseereneeney PIN 23 =Y a 1 [ft theseweeeseest ECUACION LOGICA “tttereserernensees] Ecuaciones logicas <: Y=(JASIB8IC)#(/A&IB&C)#(IA&B&IC)H(|ASB&C)#(ABB&IC); Elementos del lenguaje CUPL ¢ Variables e Son cadenas de caracteres alfanuméricos que especifican terminales del dispositivo, nodos intermedios, constantes, sefiales de entrada y salida, sefiales intermedias 0 conjuntos de estas. e Son sensibles a las mayusculas. e Indexadas e Es posible usar nombres de variables para representar un grupo de variables terminando estas con un numero. indexado del 0 al 31. Ejemplo: DO D1 D2 D3 D4 D5 D6 D7 Tambor Dae Decimal value Tea Hoaacona G00. 471 ‘Gaal nae) HTK Hovadeinal (ange) Palabras reservadas TABLE 5.1 CUPL reserved keywords. APPEND DEVICE IF QUT SEQUENCED ASSEMBLY ELSE JUMP PARTNO SEQUENCEJK ASSY FIELD Loc PIN SEQUENCERS COMPANY FLD LOCATION — PINNODE SEQUENCET CONDITION FORMAT MACRO PRESENT TABLE DATE FUNCTION MIN REV DEFAULT FUSE NAME REVISION DESIGNER GROUP NODE SEQUENCE —— Constantes numéricas e La base por omision en CUPL para todos los numeros es el hexadecimal. e Excepto para los numeros de las terminales y variables indexadas, las cuales siempre estan en decimal. e Ejemplos e Decimal ‘do ‘d’21 ‘d’51 ‘d’7 e Hexadecimal ‘h’O ‘h’15 ‘h’33, ‘h7 e Octal ‘VO ‘025 ‘063 ‘o7 e Binario ‘b'O ‘610101 ‘b’110011 ‘b’111 Funciones ldgicas & # ( ) - “+t [— Jf 7 I* */ Not ! . ‘Operator ‘Examples Description Precedence And & ! a NOT fl Or # & aap AND a Xor $ Age OR 3 /* Comentario */ s ASB XOR 7 Operadores aritméticos Operator Examples: Description Precedence a 23 Exponentiation 1 g 2 Multiplication 2 / 42 Division 2 % 98 Modulus 2 + 2a Aiton 3 41 Subtraction 3 Function Base Toa Binary Loss Catal Logie Hexadecimal tos Decimal L0G2 (32) = 5 2*#5 = 32 L0G2 (33) ceil(5.0444) = 2**6 = 64 Notacion de lista e Una lista es un método corto para definir variables. Ejemplo: [D0,01,D2,03,D4,05,D6,D7] ION, OFF] [ONE, TWO, THREE, FOUR] Cuando todos los nombres de las variables en la lista son secuencialmente numerados, el siguiente formato puede ser usado: [D0..D7} (A00..A15] —_‘[INPUT3..INPUTO] [D0..7] [A7..0] {12..1] Usando el comando FIELD FIELD ADDRESS = [A7, A6, A5, A4, A3, A2, Al, AO]; FIELD DATA = [D7..D0]; FIELD Mode = [Up, Down, Hold]; Una declaracién con FIELD asigna una variable a un grupo de bits. Cl] Extensiones de variables var [.ext] exp; Exension [semua Desorption a T Rovner preset 8p too a TP Asyneecnous rest of top ce TJ CE input of erated CE typo pop or c Proramate ook a ip-lop (CRI L__| closer scion D T_[Brpuiet0 ype tip top OF as Do [cup orb.ypemp-top Nr F__ roral foatock ph x rogarod maroc 0. F___ Pinooatck pan entecton a Ts inputo1 ype ouput tp op r Trp cope one ion L TJ Dut transparent atch m3 TJ Programmation ont To FO oupatofvransparat pa eh OE L__[ Posammatie ouput erate R Trp Si ype cups pS S C Step of SPtype out etn * L__|Syratroneus reset ot mp0 7 T___[ Tr rputoriogg ouput tree 1H F__ [Teasers foebock ah ealocion Operaciones de igualdad Estas expresiones (A3, A2, Al, AO)]:& (B3..B0] :# [C3, C2, Cl, CO]:$ son equivalentes a : A3 & A2 & Al & AO B3 # B2 # Bl # BO c3 $§ c2 § cl §$ cO Tablas de verdad FIELD input = [in3..0]; FIELD output = [out3..0]; TABLE input => output { O=> 00; l=>01; 2=>02; 3=>03; 4=>04; 5=>05; 6=>06; 7=>07; 8=>08; 9=>09; A=>10; B=>11; C=>12; D=>13; E=>14; F=>15; Maquinas de estados SEQUENCE state_var_list { presen statGequenced count { IF (conditionl)NEXT state_nl; IF (condigresentSO-ifep 7 orextS1; DEFAULT NeXt stati own next S9; cee if clear next SO; eae if down out carry; present S1 ifup next S2; if down next SO; : if clear next S0; PRESENT statprasent S2ncaif up next $3; if down next S1; next SO; Ejemplo Sequenced count { present SO if up next $1; if down next S9; if clear next SO; if down out carry; present S1 ifup next $2; if down next SO; if clear next SO; present S2_ ifup next S3; if down next S1; if clear next SO; } Condicion CONDITION { IF exprd ouT var; IF exprn OUT var; DEFAULT OUT var; }

También podría gustarte