Presentacin de PowerPoint
LENGUAJE ABEL(HDL)ABEL es una marca registrada de Data I/O
Corporation y es el acrnimo de Advanced Boolean Expression
Language, permite implementar diseos lgicos en dispositivos lgicos
programables. Puede ser utilizado para programar cualquier tipo de
PLD y, por tanto, es un lenguaje independiente del dispositivo. El
lenguaje ABEL se ejecuta en un computador conectado a un
programador de dispositivos, independiente del lenguaje, en el que
se inserta el PLD.1ESTRUCTURA INTERNAA continuacin se presenta la
estructura tpica de un programa en el lenguaje ABEL :modulenombre
del mdulo[titlestring][deviceIDdevicedeviceType;]declaraciones de
pinotras declaracionesequationsecuaciones[Test_Vectors]tested
vectoresendnombre de mduloOperacin LgicaSmbolo ABELNotacin
BooleanaNotacin ABEL* AND&ABA & B+ OR#A + BA # B/ NOT!!A:+:
XOR$A " BA $ B:*: XNOR!$A " BA !$ BLa directiva@ALTERNATEle dice al
compilador que reconozca un conjunto alterno de smbolos para
denotar las operaciones lgicas; los cuales se presentan a
continuacin:Ej:Y= (!A # B # !E # D) & (A # B # E)AsignacinDe
Terminales, Variables Y ConstantesSon lasinstruccionesque se
utilizan para definir y asignar terminales avariables, o asignar a
variables operaciones con variables o constantes.
Ejemplos de asignaciones de terminales:PIN2 = a;/*asigna al
terminal 2 la variable a*/PIN2 = !a;/*asigna al terminal 2 la
variable a
negada*/PIN[2,3,4,5,6,7,8,9]=[A0,A1,A2,A3,A4,A5,A6,A7];PIN[2..9] =
[A0,A1,A2,A3,A4,A5,A6,A7];PIN[2..9] = [A0..A7];Ejemplos de
asignaciones con variables intermedias:Las variables intermedias no
tiene terminales asignados y sontilespara simplificar las
ecuaciones que generan las salidas.X0 = A0&A1 # A1&A2;
ProgramacinNmerosLos nmeros pueden estar en cuatro diferentes
bases: binario, octal, decimal y hexadecimal. La base
predeterminada es la decimal. Se usan los siguientes smbolos
(maysculas o minsculas permitidos) para especificar la base.
BASE NAMEBASESymbol.Binary2^bOctal8^oDecimal10^d
(default)Hexadecimal16^hSpecified in ABELDecimal
Value3535^h3553^b1015Ejemplo:SetsUn set es una coleccin de seales o
constantes usadas para referenciar un grupo de seales por un
nombre. Un set es conveniente para simplificar expresiones lgicas.
Cualquier operacin que este aplicada a un set, es aplicada a cada
elemento.
[D0,D1,D2,D4,D5][D0..D6]" rango incrementado[b6..b0]" rango
decrementado[D7..D15][b1,b2,a0..a3]" rango entre un set ms
largo[!S7..!S0]"rango decrementado de seales activas-bajasIndexando
o accesando a un setindexado permite acceder a elementos dentro de
un set. Usando valores numricos para indicar el set index. Los
nmeros refieren a la posicin del bit en el set de inicio con 0 para
el bit menos significativo del set. Aqu se presentan algunos
ejemplos.D1 = [D15..D0]; "declaracin setX2 = [X3..X0]; "declaracin
setX2 := D1[3..0]; "hace X2 igual a [D3, D2, D1, D0]X2 := D1[7..4];
"hace X2 igual a [D7, D6, D5, D4]Para acceder a un elemento del
set, se usa la siguiente sintaxis:OUT = (X[2] == 1);
Operaciones SetMuchas de las operaciones pueden ser aplicadas a
un set y son ejecutadas en cada elemento del set de acuerdo a las
reglas del lgebra Booleana. Las operaciones son ejecutadas de
acuerdo a lasprioridades de operacin; los operadores con la misma
prioridad son ejecutados de izquierda a derecha (al menos que use
parntesis).
Ejemplo 6:[b3,b2,b1,b0] = 2;"es equivalente a
b3=0,b2=0,b1=1,b0=0.El nmero 2 es convertido a binario y completado
con ceros (0010).
OperadoresHay cuatro tipos de operadores: lgico, aritmtico,
relacional y de asignacin.a. Operadores LgicosLa tabla siguiente
muestra operadores lgicos. Estos son ejecutados bit a bit.
Operador (default)DescripcinOperador alternado!NOT (complemento
a uno)/&AND*#OR+$XOR: or exclusiva:+:!$XNOR: nor exclusiva:*:b.
Operadores AritmticosLa siguiente tabla muestra los operadores
aritmticos. Ntese que los ltimos cuatro operadores no estn
permitidos para los sets. El signo menos puede tener un significado
diferente: usado entre dos operandos indica substraccin (o suma a
complemento a dos), mientras que usado con un operador indica el
complemento a dos.
OperadorEjemploDescripcin--D1Complemento a dos
(negacin)-C1-C2Substraccin+A+BAdicinLos siguientes operadores no
son usados con los sets:*A*BMultiplicacin/A/BDivisin de enteros sin
signo%A%BMdulos: residuo de A/BBIntercala A a la derecha por B
bitsc. Operadores de RelacinEstos operadores producen un valor
Booleano de verdadero (-1) o falso (0).
OperadorEjemploDescripcin==A==B or 3==5 (false)Igual!=A!=B or 3
!= 5 (true)Diferente=B or !0 >= 5 (true)Mayor o igual qued.
Operadores de asignacinEstos operadores son usados en una ecuacin
para asignar el valor de una expresin a una seal de salida. Hay dos
tipos de operadores de asignacin: combinacionales y de registro. En
un operador de asignacin combinacional ocurre inmediatamente sin
retardo. La asignacin con registro ocurre con el cambio del pulso
de reloj asociado a la salida.
OperadorDescripcin=Asignacin Combinacional:=Asignacin de
RegistroDescripcin LgicaUn diseo lgico puede ser descrito de la
siguiente manera.EcuacionesTablas de la verdadDescripcin de
estados.
EcuacionesUsar el comandoequationspara empezar la descripcin
lgica. Equations especifica expresiones lgicas usando los
operadores descritos antes, o por declaraciones
"When-Then-Else".Las declaraciones "When-Then-Else" son usadas en
ecuaciones para describir funciones lgicas. (Nota: "If -Then-Else"
es usado en la seccin de los diagramas de estado para describir
progresin de estados)El formato de declaracin "When-Then-Else" es
el siguiente:WHEN condition THEN element=expression; ELSE equation;
or WHEN condition THEN equation;
Tablas de verdadEl commando estruth-tabley la sintaxis
es:TRUTH_TABLE ( in_ids -> out_ids )inputs -> outputs
;oTRUTH_TABLE ( in_ids :> reg_ids )inputs :> reg_outs
;oTRUTH_TABLE( in_ids :> reg_ids -> out_ids )inputs :>
reg_outs -> outputs ; en donde "->" es para salidas
combinacionales y :> para salidas registradas. La primera lnea
de la tabla de verdad (entre parntesis) define las seales de
entradas y salida. Cada lnea debe finalizar con punto y coma. Las
entradas y salidas pueden ser simple seales o set's. Cuando se usan
set's como entradas o salidas, se usa la notacin del set normal, ej
seales dentro de corchetes y separadas por comandos. Las
condiciones irrelevantes don't care se representan con X.Descripcin
de estadoLa seccin de diagrama de estado contiene la descricin de
estado para el diseo lgico. Esta seccin usa la sintaxis
State_diagram y las declaraciones "If-Then-Else", "Goto", "Case" y
"With". Usualmente se declara nombres de estado simblicos en la
seccin de Declaracin, el cual hace que la lectura se ms
fcil.Sintaxis deDeclaracin de estado:state_id [, state_id ...]
STATE ;
Ejemplo 1
Implementar una compuerta OR y una compuerta AND de dos entradas
en una GAL22V10.Name Ejem02 ;PartNo 00 ;Date 17/05/2013 ;Revision
01 ;Designer Julio ;Company UNIAJC ;Assembly None ;Location ;Device
G22V10 ;/*Terminales de entrada de la compuerta AND*/PIN 2 = A0
;PIN 3 = A1; /*Terminales de entrada de la compuerta OR*/PIN 4 =
B0;PIN 5 = B1;/*Terminales de salida para las compuertas*/ PIN 23 =
S0; /*Salida compuerta AND*/PIN 22 = S1 ;/*Salida compuerta
OR*//*Operaciones Logicas*/ S0 = A1&A0; /*Compuerta AND*/ S1 =
B1#B0; /*Compuerta OR*/
Ejemplo 3
Implementar un decodificador de binario a decimal con la
GAL22V10
Name Ejem03 ;PartNo 00 ;Date 17/05/2013 ;Revision 01 ;Designer
Julio ;Company UNIAJC ;Assembly None ;Location ;Device G22V10
;/*Terminales de entrada */PIN [2..5] = A, B, C, D;/*Terminales de
salida */PIN [13..20] = sa,sb,sc,sd,se,sf,sg,sdp;/*Declaraciones
*/FIELD entradas = [D,C,B,A];FIELD salidas =
[sdp,sg,sf,se,sd,sc,sb,sa]; 25/*Ecuaciones booleanas */TABLE
entradas => salidas {'b'0000 => 'b'00111111;'b'0001 =>
'b'00000110;'b'0010 => 'b'01011011;'b'0011 =>
'b'01001111;'b'0100 => 'b'01100110;'b'0101 =>
'b'01101101;'b'0110 => 'b'01111101;'b'0111 =>
'b'00000111;'b'1000 => 'b'01111111;'b'1001 =>
'b'01100111;'b'1010 => 'b'00000000;'b'1011 =>
'b'00000000;'b'1100 => 'b'00000000; 'b'1101 =>
'b'00000000;'b'1110 => 'b'00000000; 'b'1111 =>
'b'00000000}