ABEL , la enciclopedia libre

ABEL es la abreviatura de Advanced Boolean Expression Language. Es un lenguaje de descripción de hardware y un conjunto de herramientas de diseño para programar dispositivos lógicos programables (PLDs).

Características

[editar]

ABEL permite describir un diseño concurrentemente mediante tablas de verdad o ecuaciones lógicas. Ejemplos:

...

X=.X. Truth_Table    //tabla de verdad  ([A, B, C] -> Out)  //variables   [0, 0, 0] -> 1;    //valores de las entradas y salidas   [0, 0, 1] -> 0;   [1, X, X] -> 1; END 

...

Out= (!A & B) # (B & C);      //ecuación lógica 

También permite la programación secuencial con máquinas de estados. Ejemplo:

...

state_diagram sreg   state S0:      goto S1 with { Out=1; }   state S1:      if (A & B) then S0 with { Out=0; } 

...

end 

Otra opción que permite es definir vectores de test (patrones de entradas y salidas) que pueden ser programados en el hardware. La estructura de los vectores de test es similar a la de las tablas de verdad.

Ejemplo de código

[editar]

El siguiente es un ejemplo en ABEL. Los comentarios van después de los símbolos " ó //.

module wiki; title 'Ejemplo de programa en ABEL';  "declaración de entradas, salidas y señales internas" reloj PIN; activa PIN istype 'com'; BUS[8..0]contador PIN istype 'reg';  equations  contador[8..0].clk=reloj; "se asigna la señal reloj a los registros del contador when(contador[8..0]==60) then{    activa=1;    contador[8..0]:=[0,0,0,0,0,0,0,0,0]; }else{    contador[8..0]:=contador[8..0]+1; }  end wiki 

Véase también

[editar]

Enlaces externos

[editar]