Programacion ABEL

Programación HDL ABEL (Advanced Boolean Equations Language) Ing. Marco Antonio Reyes González, Depto. de Ingria. Eléct

Views 214 Downloads 5 File size 3MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Programación HDL

ABEL (Advanced Boolean Equations Language)

Ing. Marco Antonio Reyes González, Depto. de Ingria. Eléctrica y Electrónica

Introducción ABEL: Advanced Boolean Equation Language

Matriz lógica programable (PAL). Matriz lógica genérica (GAL). • PAL: Programmable Array Logic. • GAL: Generic Array Logic. • FPGA :(Field Programmable Gate Array)

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 integración

Menos de 50

Compuertas lógicas y biestables

MSI: Mediana escala de integración

De 50 a menos de 100

Codificadores, sumadores: Sistemas combinacionales

LSI: Gran escala de integración

De 100 a menos de 1000

Circuitos aritméticos complejos, memorias.

VLSI: Muy alta escala de integración

De 1000 a menos de 105

Microprocesadores, microcontroladores

ULSI: Ultra alta escala de integración

Mas de 106

Ing. Marco Antonio Reyes González, Depto. de Ingria. Eléctrica y Electrónica

Procesadores digitales y microprocesadores avanzados

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 maxiterminos 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 ABELHDL (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 constar de los siguientes elementos: • Módulo (requerido) • Interfaz (nivel inferior, opcional) • Título

La sección de declaraciones puede constar de los siguientes elementos: • Declaración de palabras clave • Interfaz y de bloque funcional de 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

Declaraciones

Descripción Logica

Vectores de test

Final

Module

Nombre_Ejemplo

U1 device ‘p22v10’; V1, v2, p pin 2, 3, 4; M pin 23; Equations M=!V1 & P

Entradas

Modulo

Salidas

. #

!V2&P;

Representa ción interna Eléctrica

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

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 alfanumérica que empieza por ___ o una letra

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

Lista de identificación para los pines

‘cadena’

Caracteres entre comillas simples

n°pin1, n°pin2, …….

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.....

Lista de identificación para constantes

=

expre1, expre2, ………

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

Símbolo

SIMBOL O

Operación

!

NOT

&

AND

#

OR

$

XOR

!$

XNOR

LÓGICOS

SÍMBOL O

DESCRIPCIÓ N

OPERACI ÓN

-

NEGACIÓN (COMPLEM A 2)

-A

-

RESTA

A-B

+

SUMA

A+B

>B

*

MULTIPLICACIÓN

A*B

/

DIVISIÓN ENTRA

A/B

%

MÓDULO (RESTA DE A/B)

A%B

ARITMÉTICOS

Operadores

DESCRIPCIÓN

OPERACIÓ N

==

IGUAL

A==B

!=

DIFERENTE

A!=B

>

MAYOR QUE

A>B

SÍMBO LO

>=

MAYOR O IGUAL

A>=B

=

ASIGNACIÓN COMBINACIONAL


[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 …

– Transiciones condicionales.

S0

state_diagram ESTADO state S2: if E then S0; else S2 …

S2

!E

E S0

– Transiciones con with-endwith state_diagram ESTADO state S2: if E then S0 with Y=1; endwith; else S2 with Y=0; endwith; …

S2

(!E)/Y=0

E/(Y=1) 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); EST.clk=CK; EST.aclr=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; equations EST.clk=CK; EST.aclr=RST; end

endwith ;

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