ABEL
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
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
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
Enlaces externos
Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.