0% encontró este documento útil (0 votos)
624 vistas34 páginas

Programacion ABEL

Este documento describe el lenguaje ABEL (Advanced Boolean Equations Language), un lenguaje de descripción de hardware utilizado para programar dispositivos lógicos programables como PALs, GALs y FPGAs. Explica las secciones principales de un archivo ABEL, incluyendo la cabecera, declaraciones, descripción lógica y vectores de prueba. También define conceptos clave como palabras clave, declaraciones de dispositivos, puertos y constantes.

Cargado por

jhonatan yair
Derechos de autor
© © All Rights Reserved
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% encontró este documento útil (0 votos)
624 vistas34 páginas

Programacion ABEL

Este documento describe el lenguaje ABEL (Advanced Boolean Equations Language), un lenguaje de descripción de hardware utilizado para programar dispositivos lógicos programables como PALs, GALs y FPGAs. Explica las secciones principales de un archivo ABEL, incluyendo la cabecera, declaraciones, descripción lógica y vectores de prueba. También define conceptos clave como palabras clave, declaraciones de dispositivos, puertos y constantes.

Cargado por

jhonatan yair
Derechos de autor
© © All Rights Reserved
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

Programación HDL

ABEL
(Advanced Boolean Equations Language)

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Matriz lógica programable (PAL).
Introducción Matriz lógica genérica (GAL).

• PAL: Programmable Array Logic.


• GAL: Generic Array Logic.
ABEL: • FPGA :(Field Programmable Gate Array)
Advanced Boolean Equation Language

Lenguaje de descripción de hardware (HDL):


• Permite describir un circuito digital.
• Permite definir vectores de test para comprobar el funcionamiento del
programa.
• Permite generar el mapa de fusibles para programar los PLD´s
(disposisitivo lógico programable).
Lenguaje de Bajo Nivel:
• Muy cercano a la circuiteria que representa.
• Eficaz para describir sistemas digitales desde LSI (pequeña escala de
integración), MSI (GAL´s y los FPGA´s).
Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Escala de integración para circuitos impresos

Escala de integración No. De componentes Aplicación típica


SSI: pequeña escala de Menos de 50 Compuertas lógicas y
integración biestables
MSI: Mediana escala de De 50 a menos de 100 Codificadores,
integración sumadores: Sistemas
combinacionales
LSI: Gran escala de De 100 a menos de 1000 Circuitos aritméticos
integración complejos, memorias.
VLSI: Muy alta escala de De 1000 a menos de 105 Microprocesadores,
integración microcontroladores
ULSI: Ultra alta escala de Mas de 106 Procesadores digitales y
integración microprocesadores
avanzados

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Introducción (cont).
En la Figura 1, se muestra la configuración de un PLD, el cual nos
permite construir funciones en sumas de productor y producto
de sumas, los cuales representan los mini-terminos y maxi-
terminos respectivamente de un sistema lógico, proveniente de
una tabla de verdad, por nombrar un ejemplo

Figura 1
Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Estructura de un archivo fuente ABEL
Los elementos básicos que componen un archivo fuente de ABEL-
HDL (Módulo) se puede dividir en cinco secciones:

• Cabecera
• Declaraciones
• Descripción de Logic
• Vectores de prueba
• Fin

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Estructura de un archivo fuente ABEL
La sección de encabezado puede La sección de declaraciones puede constar de
constar de los siguientes elementos: los siguientes elementos:
• Módulo (requerido) • Declaración de palabras clave
• Interfaz (nivel inferior, opcional) • Interfaz y de bloque funcional de
• Título Declaraciones
• Declaración de señales (números de nodo
pasador y opcional)
• Declaración de constantes
• Declaración de Macro
• Declaración de librerías
• Declaración de dispositivos (uno por
módulo)

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Estructura de un archivo fuente ABEL
Encabezado Module Nombre_Ejemplo

U1 device ‘p22v10’;
Declaraciones V1, v2, p pin 2, 3, 4;
M pin 23; Entradas Modulo Salidas

Equations .
Descripción Logica M=!V1 & P # !V2&P; Representa
ción interna
Eléctrica

Vectores de test Test_vectors


([V1, V2, P] -> [M])
[.x., .x., 0]->[0];
[0 , .x., 1]->[1];
[1, 0, 1]->[1];

Final END Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Estructura de un archivo fuente ABEL
Formato del texto

Importante:
• Para las palabras claves da igual si se escriben mayúsculas o minúsculas
• Para los nombres definidos por el usuario hay que mantener el estilo de su
declaración, por lo que si hay diferencia entre mayúsculas y minúsculas (V1
diferente a v1)
• Las sentencias acaban en «;»

Comentarios :
• Empiezan por comillas
• Se extienden hasta las siguientes comillas o hasta el final de la línea

Encabezado y final:
• Las palabras clave «module» y «end» marcan los límites de un diseño

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Estructura de un archivo fuente ABEL
En la figura 2, se muestra las palabras clave , identificadas por la
programación ABEL.

Figura 2 Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Declaraciones
Declaración del Dispositivo.
Es opcional e identifica el PLD a utilizar:
Identificador DEVICE ‘cadena’

Cadena alfanumérica que empieza por ___ o una letra Caracteres entre comillas simples

Declaración de pines.
Es para identificar las terminales a utilizar en el PLD:
Id_pin1, id_pin2, ……… PIN n°pin1, n°pin2, …….

Lista de identificación para los pines Lista del n° de pin que se utilizará en el PLD

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Declaraciones
Declaración de constantes .
• Los números en ABEL siempre representan valores naturales.
• Igual ocurre con los operadores aritméticos relacionales.
• La base por defecto es decimal

Id constante, id constante2..... = expre1, expre2, ………

Lista de identificación para constantes lista de expresiones

En la figura 3, se presenta los tipos de datos que se manejan en ABEL, base numérica.
Ejemplo:
^b010001
^o21
^d17 ó 17
^h11

Figura 3
Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
SIMBOL DESCRIPCIÓN OPERACI
Símbolo Operación O ÓN
- NEGACIÓN -A
! NOT (COMPLEM A 2)
- RESTA A-B
& AND
+ SUMA A+B
# OR LÓGICOS
<< DESPLAZAMIENTO A A<<B
$ XOR IZQUIERDA
ARITMÉTICOS
!$ XNOR >> DESPLAZAMIENTO A A>>B
DERECHA
* MULTIPLICACIÓN A*B

Operadores /
%
DIVISIÓN ENTRA
MÓDULO (RESTA DE A%B
A/B

A/B)
SÍMBOL DESCRIPCIÓ OPERACIÓ
O N N
== IGUAL A==B
RELACIONES
!= DIFERENTE A!=B

> MAYOR QUE A>B SÍMBO DESCRIPCIÓN


LO
>= MAYOR O A>=B = ASIGNACIÓN
IGUAL COMBINACIONAL
< MENOR A<B ASIGNACIÓN := ASIGNACIÓN
SECUENCIAL (EN EL
<= MENOR O A<=B SIGUIENTE FLANCO
IGUAL Ing. Marco Antonio Reyes González, Depto. DE RELOJ)
de Ingria. Eléctrica y Electrónica
Tabla de prioridad ABEL

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Ejemplos de prioridad en ABEL

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Conjuntos
Las señales o constantes se separan por comas
o por el operando de rango «..», encerrado por
corchetes «[..]».
– Ayudan a simplificar ecuaciones lógicas.
– A declarar conjunto.
Aset=[A2,A1,A0]; Bset=[Y2..Y0];
– y Operaciones con conjuntos.
Operación conjunto Operación completa
Aset & Bset [A2&B2, A1&B1, A0&B0]
Aset & B0 [A2&B0, A1&B0, A0&B0]
2&Aset [0&A2, 1&A1, 0&A0] Ing. Marco Antonio Reyes
González, Depto. de Ingria.
Aset=2 [A2=0, A1=1, A0=0] Eléctrica y Electrónica
Descripción Lógica
Ecuaciones.
– Palabra clave: equations
– Sentencia: when – then - else
– Extensión de punto: .oe, .clk, .aclr, .pin, etc.
Tablas
– Palabra Clave: truth_table
Diagramas de Estado
– Palabra clave: state_diagram
– Sentencias:
• If-then-else
• goto
• with-endwith
Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Ecuaciones(equations)
Operaciones para asignación combinacional (=)
equations
Y=A&B;
Nota: Evitar realimentación combinacional.
Y=Y&B;

Operador para asignación secuencial(:=)


equations
Y:=A;
[Link]=CK;
Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Ecuaciones(equations)
Nota: El orden de las variables en el texto no
importa el orden.

equations equations
X:=X+1; Y:=Y+X;
Y:=Y+X; X:= X+1;
[X,Y].clk = ck;

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Ecuaciones(equations)
Sentencias : Estas equivalen a una ecuación o un sistema
combinacional.
equations equations
when cond1 then Y=(cond1)&(cond2)
y=exp1 #!(cond1)&(cond2)&(exp2)
else when cond2 then #!(cond1)&!(cond2)&(exp3);
y=exp2
else
y=exp3;

SEL=[S1,S0];
equations
When SEL==0 then Y=D0
else when SEL==1 then Y=D1
else when SEL==2 then Y=D2
else Y=D3;
Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Extensión de punto
Se aplican a las variables de salida las cuales permiten:
– Manejar señales especiales de la estructura de salida (OE,
CLK, etc)
– Eliminar ambigüedad en la descripción.

Ing. Marco Antonio Reyes


González, Depto. de Ingria.
Eléctrica y Electrónica
Extensión de punto
Ejemplos de extensión de punto:

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Ejemplo: Contador ascendente/descendente módulo 8 con RESET asíncrono
Contar hacia arriba o hacia abajo, según el valor de la entrada up

module cont8
cont8 device ´p22v10’;
reloj, rst, up pin 1,2,3;
q2, q1, q0 pin 23, 22, 21;
cn=[q2, q1, q0];
equations
when up==0 then cn:=cn+1
else cn:=cn-1;
[Link]=rst;
[Link]=reloj;
end
Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Ejemplo: Contador módulo 13 con PRERESET síncrono y RESET asíncrono
Nota: la entrada PRERESET coloca al contador a su valor máximo

module cont13
cont13 device ´p22v10’;
reloj, rst, prt pin 1,2,3;
q3, q2, q1, q0 pin 23, 22, 21, 20;
cn=[q3, q2, q1, q0];
equations
when prt then cn:=12
else when (cn==12) then cn:=0;
else cn:=cn+1;
[Link]=reloj;
[Link]=rst;
end Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Declaración y uso de tablas de verdad
Salidas = f (combinaciones de entrada)
Permite describir sistemas combinacionales (tabla
de verdad), y sistemas secuenciales (tabla de
estados).
Sistemas combinacionales Sistemas secuenciales

Nota:El valor de la salida para sistemas combinacionales de


entrada no especificadas se tomara como no importa.
Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Ejemplo: Decodificador de BCD a 7 segmentos, utilizando tabla de verdad.
Entradas: código en BCD, salidas: display cátodo común
module BCD7SEG
D3, D2, D1, D0 PIN;
A,B,C,D,E,F,G PIN;
BCD=[D3..D0];
ON, OFF= 1, 0;
Truth_table
(BCD->[A,B,C,D,E,F,G])
0->[ON, ON, ON, ON, ON, ON, OFF];
1->[OFF, ON, ON, OFF, OFF, OFF, OFF];
.
.
9->[ON, ON, ON, ON, OFF, ON, ON];

end BCD7SEG
Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Diagramas de estado
La programación HDL – ABEL nos permite programar maquinas
de estado, programando el diagrama de estados.
Palabra clave: state_diagram

Se recomienda realizar los siguintes pasos para programar una


maquina de estados (ME) en el lenguaje ABEL
– Definir las variables de estado
– Definir / decodificar los estados
– Definir la función de trancisión de estados, programando el diagrama
de estados state_diagram
– Definir la función de salida en el diagrama de estados o en la sección
de ecuaciones, state_diagram o equations respectivamente.

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Diagramas de estado (cont.)
La estructura en la programación del diagrama de estados es:

state_diagram reg_estados
state id_estado:
[ecuaiones;]
cond_trans;

Donde:
• reg_estado, identificador o conjunto de identificadores que
identifican los biestables de estado.
• Id_estado, identificador del estado actual.
• Ecuaciones, define las salidas para el estado actual.
• Cond_trans, condición de transición del estado que define:
– El estado siguiente: if-then-else y goto
– Opcionalmente ecuaciones de salida asociadas a las transiciones
entre estados: with-endwith.
Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Diagramas de estado (cont.)
Transiciones de estado:
– Transiciones incondicionales S2

state_diagram ESTADO
state S2: goto S0

S0
– Transiciones condicionales.
S2 !E
state_diagram ESTADO
state S2: if E then S0;
E
else S2

S0

– Transiciones con with-endwith


S2 (!E)/Y=0
state_diagram ESTADO
state S2:
E/(Y=1)
if E then S0 with Y=1; endwith;
else S2 with Y=0; endwith;
S0

Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Diagramas de estado (cont.), mquína de MEALY
Detector … 001
module MLY_001
CK, RST, E, S pin;
Q1, Q0 pin istype ‘reg’;
EST=[Q1,Q0];
S0=[0,0];
S1=[0,1];
S2=[1,1];
state_diagram EST
state s0: if !E then s1
else s0;
state s1: if !E then S2
else S0;
state s1: if !E then S0
else S2;
equations
S=E & (EST==S2);
[Link]=CK;
[Link]=RST;
end

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Diagramas de estado (cont.), mquína de MEALY

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Diagramas de estado (cont.), mquína de MEALY
con with - endwith
Detector … 001
module MLY_001
CK, RST, E, S pin;
Q1, Q0 pin istype ‘reg’;
EST=[Q1,Q0];
S0=[0,0];
S1=[0,1];
S2=[1,1];
state_diagram EST
state s0:
S=0;
if !E then s1
else s0;
state s1:
S=0
if !E then S2
else S0;
state s2:
if E then S0 with s=1;
endwith;
else S2 with S=0; endwith ;
equations
[Link]=CK;
[Link]=RST;
end Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Vectores de test
Define los vectores de prueba para verificar la funcionalidad del
diseño.
Especifican las salidas esperadas en función de las entradas, similar a
las tablas de verdad.
Palabra clave: test_vectors
Constantes especiales:
• .x. no importa
• .z. alta impedancia
• .c. pulso de reloj
• .d. flanco descendente
• .u. flanco ascendente

Nota:
• .x. en simulación:
– Como entrada, escogerá un valor (0, 1)
– Como salida , dará lo mismo el valor que aparezca a la salida dependiendo de la función
correspondiente.
Ing. Marco Antonio Reyes González, Depto.
de Ingria. Eléctrica y Electrónica
Vectores de test

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica
Vectores de test

Ing. Marco Antonio Reyes González, Depto.


de Ingria. Eléctrica y Electrónica

También podría gustarte