Lenguaje ABEL

Lenguaje ABEL DPE IES “Juan de la Cierva” (Madrid) LENGUAJE ABEL • ABEL ( Advanced Boolean Equation Language) es un le

Views 184 Downloads 2 File size 581KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Lenguaje ABEL

DPE IES “Juan de la Cierva” (Madrid)

LENGUAJE ABEL • ABEL ( Advanced Boolean Equation Language) es un lenguaje de descripción de harware (HDL, Hardware Descripción Language) que fue diseñado por Data I/O Corporation en 1984 para describir e implementar diseños digitales sobre dispositivos lógicos programables PLD, (Programmable Logia Devices). • Posteriormente aparecieron otros lenguajes similares al ABEL como son el CUPL o PALASM y otros de mayor complejidad como el VHDL o Verilog, capaces de describir sistemas de mayor entidad. DPE IES “Juan de la Cierva” (Madrid)

1

Herramientas para la programción de DLP

DPE IES “Juan de la Cierva” (Madrid)

Flujo de diseño

DPE IES “Juan de la Cierva” (Madrid)

2

Estructura del lenguaje ABEL • Todos los diseños deben tener una cabecera y un final • Todos los diseños empiezan con una sentencia MODULE y terminan con una sentencia END. • Para evitar errores de compilación, el nombre dado al módulo debe coincidir con el nombre del fichero *.abl en el que se almacena la información. • La sentencia TITLE es opcional y se usa para identificar el diseño a efectos de documentación. “Va seguida de una cadena de caracteres ASCII encerrados entre comillas simples”. • La sentencia END marca el final del módulo. Puede ir seguida por el nombre del módulo, a efectos de documentación.

DPE IES “Juan de la Cierva” (Madrid)

Estructura del lenguaje ABEL

DPE IES “Juan de la Cierva” (Madrid)

3

Declaraciones • Esta sección incluye : – – – –

La declaración del dispositivo La declaración de los pines La declaración de constantes La declaración de conjuntos

• Declaración de Dispositivo. Es opcional y se utiliza para especificar el PLD que se va a programar. El identificador es simplemente una descripción y puede ser el que se desee. El dispositivo se especifica en la cadena que se pone a continuación, que empieza por P para las PAS y las GAL. Identificador device cadena ; Ej.: U1 device ‘P22V10’; (en este programa ????)

DPE IES “Juan de la Cierva” (Madrid)

Declaración de Pines • Declaración de Pines: Define los identificadores que se usarán en el archivo ABEL para los pines del diseño y los asocia con los números de pines del encapsulado del dispositivo. El asignar números de pines es opcional. Si no se ponen, las herramientas de síntesis elegirán los adecuados. id_pin1, id_pin2,.... pin nº_pin1, nº_pin2....; Ej.: A, B, C pin 3, 4, 5 ; DPE IES “Juan de la Cierva” (Madrid)

4

Declaración de Pines • Se pueden asociar atributos a los pines de salida con la palabra clave istype seguida de una cadena de caracteres. Esta cadena de caracteres contiene una o varias palabras clave separadas por comas, que indican a la herramienta de síntesis características especiales de la salida. Los atributos más utilizados son los siguientes: – ‘com’ indica que la salida es combinacional – ‘reg’ indica que la salida es registrada – ‘buffer’ indica que se utiliza la configuración activa en alto de la estructura de salida, es decir, que tenemos un buffer no inversor conectado a la salida – ‘inver’ indica que se utiliza la configuración activa a nivel bajo de la estructura de salida, es decir, que tenemos un buffer inversor conectado al pon de salida. Ej: X,Z pin 27, 26 istype ‘com, invert’

DPE IES “Juan de la Cierva” (Madrid)

Declaración de nodos • También se pueden declarar señales internas del circuito, no conectadas a ningún pin de salida, mediante la palabra clave node. • Utiliza la misma sintaxis que para la declaración de pines, pero sin los números de pin.

DPE IES “Juan de la Cierva” (Madrid)

5

Declaración de constantes y conjuntos • Se pueden definir constantes y conjuntos para simplificar la descripción ABEL de un diseño • Ej.: ASET = [A2, A1, A0] BSET = [B2, B1, B0] ASET & BSET ASET & B0 2 & ASET ASET = 2

[A2&B2], [A1&B1], [A0&B0] [A2&B0], [A1&B0], [A0&B0] [0&A2], [1&A1], [0&A0] A2=0; A1=1; A0=0;

DPE IES “Juan de la Cierva” (Madrid)

Declaración de constantes y conjuntos • La declaración de conjuntos permite simplificar la descripción lógica tratando una serie de señales como un grupo. • Un conjunto es una lista de señales o constantes separadas por comas o por el operador de rango (..), encerrada entre corchetes. • Ej.: DATO = [D7, D6, D5, D4. D3, D2, D1, D0]; Que también puede declararse con el operador de rango DATO = [D7..D0] DPE IES “Juan de la Cierva” (Madrid)

6

Operadores • Hay 4 tipos de operadores: – Lógicos – Aritméticos – Relaciónales – Asignación

DPE IES “Juan de la Cierva” (Madrid)

Operadores Lógicos Operador

Descripción

Ecuación en ABEL_HDL

!

NOT

!A

&

AND

A&B

Símbolo

A

A

A

A.B

B

#

OR

A#B

A

A+B

B

$

OR-EXLUSIVA

A$B

A

A+B

B

!&

NAND

A

!(A&B)

A.B

B

!#

NOR

!(A#B)

A

A+B

B

!$

NOR-EXCLUSIVA

!(A$B)

A

A+B

B

DPE IES “Juan de la Cierva” (Madrid)

7

Operadores Aritméticos • En expresiones numéricas siempre devuelven un valor natural. • En el contexto de una descripción lógica, una expresión con operadores aritméticos se convierte en un circuito combinacional mediante el proceso de síntesis lógica. • Como en ABEL los números siempre representan enteros positivos, la negación es el complemento a 2, que devuelve un entero positivo. • Restar dos operandos consiste en sumar el primer operando con el complemento a 2 del segundo.

DPE IES “Juan de la Cierva” (Madrid)

Operadores Aritméticos Operador

+ * (1) / (1) % (1) > (1) (1)

Descripción

Negación (complemento a 2) Resta Suma Multiplicación División (Entera) Módulo: resto de A/B Desplazamiento a la Izquierda Desplazamiento a la derecha

Ecuación enABEL_HDL

-A A-B A+B A*B A/B A%B AB

Estos operadores no se pueden usar con conjuntos. Están restringidos a operaciones con señales o números. DPE IES “Juan de la Cierva” (Madrid)

8

Operadores relacionales • Los operandos relacionales se utilizan para comparar operandos en una expresión. El resultado de la comparación es siempre un único bit, que puede valer 1 (verdadero) o 0 (falso). Operador == != > < >= B A=B A < >= B A=B A