Clasificaciones, modalidades y tendencias de investigación educativa.
Práctica 5 ABEL-HDL
1. Practica 5
Objetivos particulares
Para lograr el objetivo de esta práctica el alumno obtendrá:
La ecuación partiendo de una tabla de verdad y utilizando la selección de mini términos y/o maxi términos
La tabla de verdad partiendo de la descripción del problema y, posteriormente, las ecuaciones y el circuito
El archivo en lenguaje de descripción de hardware en formato ABEL-HDL y, con las ecuaciones obtenidas
anteriormente programar el GAL16V8D
El diagrama de tiempos usando el archivo TEST_VECTORS
La implementación del circuito
Fundamento teórico
Mini término
Termino producto AND que contiene todas las variables en su de la función ya, sea en su forma normal
complementada, cuyo valor de salida es 1 únicamente en una combinación de variables.
Maxi término
Termino suma OR que contiene todas las variables de la función, ya sea en su forma normal o
complementada y su valor de salida es 0 únicamente en una combinación de variables.
Lenguaje de descripción de lenguaje de hardware ABEL-HDL
ABEL, lenguaje avanzado de expresiones booleanas fue desarrollado por DATA I/O Corporation para la
implementación de funciones booleanas en dispositivo lógicos programables (PLD).
ABEL se utiliza para describir el comportamiento de un sistema digital partiendo de:
• Expresiones booleanas
• La descripción del comportamiento usando instrucciones WHEN-THEN
• Tablas de verdad
• Tablas de estado
• Diagramas de transición
ABEL es un archivo de texto que contiene los siguientes elementos:
1. Documentación, incluyendo nombre del grupo y comentarios
2. Declaraciones que identifican las entradas y salidas de las funciones lógicas que serán
efectuadas
3. Instrucciones que especifican las funciones lógicas que se realizarán
4. Declaración del tipo de dispositivo en que las funciones lógicas especificadas se
implementarán
5. Vectores de prueba que especifican las salidas esperadas de las funciones lógicas para
ciertas entradas
ABEL necesita un procesador de lenguaje llamado compilador, cuyo trabajo consiste en traducir el archivo
de texto ABEL a un mapa de fusible (JEDEC) del dispositivo físico seleccionado, pasando por un proceso
de validación de las instrucciones, así como de minimización de las funciones para ajustar, si es posible la
capacidad del dispositivo elegido.
Sintaxis básica de ABEL-HDL
Identificadores
1. Los identificadores no pueden ser mayores de 31 caracteres. Por ejemplo:
Este_es_un_identificador_largo Esteesunidentificadorlargo
2. Deben iniciar con un carácter alfabético o con un guion bajo. Por ejemplo:
HELLO Hello _k5input P_h
3. Los identificadores si son sensibles a las mayúsculas o minúsculas. Por ejemplo: el identificador
output es un identificador diferente de Output o de OUTPUT.
4. Los identificadores pueden separar por comas A, B, C.
5. En las expresiones, los identificadores o números pueden separarse por operadores (o donde
los paréntesis ofrecen la separación).
Palabras clave (Keyboards)
Las palabras clave son identificadores reservados que se pueden escribir con minúsculas o mayúsculas,
o combinación de ambas. A continuación se enlistan las palabras clave más comunes:
2. Declarations
Goto
Pin
Then
Device
If
State
Title
Else
Istype
State_diagram
Truth_table
End
Marco
State_register
When
Equations
Module
Test_vectors
With
Las palabras clave deben ir separadas, al menos, por un espacio. En tanto que las líneas escritas en un
archivo ABEL deben cumplir con los siguientes requisitos:
1. Una línea no puede exceder de 150 caracteres.
2. 2. Empezar los comentarios con comillas (“).
3. Las líneas o instrucciones terminan con punto y coma (;)
Números (numbers)
Los números se utilizan en cuatro diferentes bases: binario, octal, decimal y hexadecimal.
Si no se especifica una base ABEL_HDL, se tomara como base decimal. Para indicar una base diferente
del decimal es necesario utilizar el símbolo ^ y la inicial de la base.
Nombre
Base
Símbolo
Binario
2
^b
Octal
8
^o
Decimal
10
^d (default)
Hexadecimal
16
^h
Declaraciones
Es una colección de señales o constantes usadas como referencia de un grupo de expresiones
simplificada en un solo nombre.
Ejemplos:
Y= [D0, D1, D2, D4, D5]:
X= [A,B, C,D];
Aset= [a2, a1, a0]; bset= [b2, b1, b0];
COUNT = [Q9, Q8, Q7, Q6, Q5, Q4, Q3, Q2, Q1, Q0];
Partes de un programa en ABEL-HDL
1. Module. Inicio del programa
2. TITLE. Líneas de título y comentarios (opcional)
3. Declaration. Asignación de las terminales de entrada y salida del dispositivo
4. TEST_VECTORS. Vectores de prueba (opcional).
5. End. Final del programa.
Construcción del archivo en ABEL-HDL
1. Al inicio todo programa debe contener las instrucción Module y, al final, End que indican el
principio y el final del programa.
2. Los comentarios y las líneas de título son opcionales, pero es conveniente utilizarlos para
describir con comillas (“), Por ejemplo: “Entradas.
3. Declarations. Usando este comando es posible declarar las entradas y salidas del sistema.
4. Descripciones lógicas. En esta sección se usan los comandos:
EQUATIONS permite expresar las ecuaciones.
TRUTH_TABLE permite declarar una tabla de verdad o tabla de estados.
WHEN y THEN permite referir l comportamiento en algunos casos.
STATE_TABLE permite describir el comportamiento del diagrama de transición.
5. Vectores de prueba (Test_Vectors). Esta parte es opcional y es posible efectuar la
comprobación o simulación del diseño sin necesidad de implementarlo.
3. Resultados
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
Conclusiones
Con un archivo ABEL se puede crear tablas de verdad y con ellos programar el GAL16V8D. El Isplever da
la opción de programar con un archivo ABEL y hacer las mismas funciones que programarlo con un
diagrama esquemático. Tiene palabras clave que se usan para la elaboración del archivo. Los
comentarios empiezan con (“) y las líneas de instrucciones con un (;). Se utilizan las bases binarias,
octales, decimales y hexadecimales. Para insertar estas base se antepone una ^ y la inicial de la base.
Un ejemplo seria: ^b101. Las partes que conforman un programa en ABEL-HDL son un Module o inicio de
programa, Title o líneas de titulo, Declarations, donde se asigna las entradas y salidas del dispositivo.
Descripción lógica, ecuaciones tablas de verdad, etc. Y por ultimo end que indica el final del programa.