Sie sind auf Seite 1von 32

INTRODUCCIN A LOS HDLs

Fernando Ivn Arvalo Ramrez

Ingeniera Electrnica
Departamento de Automtica y Electrnica
QU ES UN HDL?

Poder crear diseos de sistemas complejos requiere de


herramientas de descripcin de circuitos mucho ms
poderosas que los tradicionales esquemas elctricos
(schematics). Una opcin son los Lenguajes de
Descripcin de Hardware (HDLs) que han surgido como
solucin natural a este problema, dado que facilitan:

El diseo parametrizado de sistemas.


El reuso de diseos.
La auto documentacin.
El mantenimiento de un proyecto durante su vida til.

Sistemas Digitales Programables AREVALO 2017


QU ES UN HDL?

Es un lenguaje para descripcin de hardware (HDL:


Hardware Description Language). Se considera una
herramienta formal para describir el comportamiento y la
estructura de sistemas usando un esquema textual.

Usando HDL el diseador puede:

Describir QU es lo que el sistema debe hacer


(comportamiento).
Describir CMO hacerlo (algortmico).
Detallar CON QU hacerlo (flujo de datos y estructural).
Sistemas Digitales Programables AREVALO 2017
QU ES UN HDL?

Los HDLs se pueden considerar como:

Herramienta de especificacin.
Herramienta de diseo.
Herramienta de simulacin.

Sistemas Digitales Programables AREVALO 2017


TIPOS DE HDL

De bajo nivel: Permiten definir un circuito a nivel de arquitectura


(FlipFlops, compuertas lgicas bsicas, ecuaciones lgicas)
PALASM (1980), CUPL(1962), ABEL
De nivel medio: Sper conjunto de los HDLs anteriores. Permiten
definir un circuito en modo jerrquico, as como la generacin
condicional/iterativa de hardware. Algunos permiten el uso de
descripciones de comportamiento (funciones aritmticas, mquinas de
estado).
AHDL (ALTERA Hardware Description Language)
De alto nivel: Sper conjunto de los HDLs anteriores. No slo
posibilitan mayor nivel de abstraccin, sino que tambin son usados
para la simulacin, para la sntesis del generador de estmulos y el
monitor de salidas.
VHDL, VERILOG HDL
Sistemas Digitales Programables AREVALO 2017
COMPARACIN ENTRE LOS HDLs
Y LENGUAJES DE SOFTWARE

Un lenguaje de software, como C o Pascal, define una secuencia


de acciones elementales (denominadas instrucciones) que son
ejecutadas de a una por vez, en un orden que surge de cmo
estn escritas en el programa.

Un lenguaje de hardware, como AHDL, VHDL o Verilog, define


un conjunto de procesos que son resueltos en forma simultnea
(concurrentemente) por lo que no importa el orden con que estn
descritos en el programa. Esta definicin de HDL puede
comprenderse ms fcilmente si se piensa que cada sentencia de
HDL define un circuito individual (un proceso), y que un diseo
escrito con un HDL slo define un conjunto de circuitos
individuales y sus conexiones.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL

VHDL???

VHSIC (Very High Speed Integrated Circuit) Hardware Description


Language. Es un lenguaje de descripcin y modelado diseado para
describir (en una forma que los humanos y las mquinas puedan leer y
entender) la funcionalidad y la organizacin de sistemas hardware
digitales, placas de circuitos, y componentes.

Estandarizado por el IEEE (IEEE standard 1076-1987), y creado por


iniciativa del Departamento de Defensa de USA desde los inicios de la
dcada del 80, como medio de documentacin de sus desarrollos de
ASICs.

VHDL fue desarrollado como un lenguaje para el modelado y simulacin


lgica, dirigida por eventos, de sistemas digitales, y actualmente se lo
utiliza tambin para la sntesis automtica de circuitos.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (II)
VENTAJAS DE USAR VHDL PARA LA DESCRIPCIN HARDWARE

VHDL permite disear, modelar, y comprobar un sistema desde un alto nivel de


abstraccin bajando hasta el nivel de definicin estructural de compuertas.
Circuitos descritos utilizando VHDL, siguiendo unas guas para sntesis, pueden ser
utilizados por herramientas de sntesis para crear implementaciones de diseos a
nivel de compuertas.
Al estar basado en un estndar (IEEE Std 1076-1987) los ingenieros de toda la
industria de diseo pueden usar este lenguaje para minimizar errores de
comunicacin y problemas de compatibilidad.
VHDL permite diseo Top-Down, esto es, permite describir (modelado) el
comportamiento de los bloques de alto nivel, analizndolos (simulacin), y refinar
la funcionalidad de alto nivel requerida antes de llegar a niveles ms bajos de
abstraccin de la implementacin del diseo.
Modularidad: VHDL permite dividir o descomponer un diseo hardware y su
descripcin VHDL en unidades ms pequeas.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (III)

ESTRUCTURA GENERAL DE UN DISEO USANDO VHDL:

En cualquier diseo con VHDL suelen diferenciarse dos componentes:

Cmo es visto y usado el diseo desde afuera?

Cmo es resuelto el diseo internamente?

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (IV)

DISEO VISTO DESDE FUERA

id_instr:
ENTITY nombre IS
GENERIC(lista de propiedades);
PORT(lista de puertos);
END nombre;

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (V)
TIPOS DE PORTS

Modo IN: La seal puede ser leda


en la entidad pero no escrita.

Modo OUT: La seal no puede ser


leda en la entidad.

Modo INOUT: La seal puede ser


leda y escrita en la entidad.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (V)
TIPOS DE PORTS

Modo IN: La seal puede ser leda en


la entidad pero no escrita.

Modo OUT: La seal no puede ser


leda en la entidad.

Modo INOUT: La seal puede ser


leda y escrita en la entidad.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (VI)
Ejemplos de ENTIDAD

ENTITY rom IS
GENERIC (tamao, ancho: bit_vector(1 DOWNTO 0));
PORT (enable : IN bit;
address : IN bit_vector(tamao-1 DOWNTO 0);
data: OUT bit_vector(ancho-1 DOWNTO 0));
END rom;

ENTITY procesador IS
GENERIC (max_freq: frequency := 30 MHz);
PORT (clk: IN bit;
address: OUT integer;
data: INOUT word_32;
control: OUT proc_control;
ready: IN bit);
END procesador;

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (VII)

DISEO VISTO DESDE DENTRO


Definicin del funcionamiento del mdulo definido en la
entidad.

id_instr:
ARCHITECTURE nombre_arq OF nombre_entidad IS
declaraciones;
BEGIN
instrucciones;
END nombre_arq;

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (VIII)

DISEO VISTO DESDE DENTRO


Ejemplo de Arquitectura.

ARCHITECTURE ej_arch OF ej_en IS


SIGNAL a,b,x,y: integer;
BEGIN
p1: PROCESS(a,b)
VARIABLE c: integer;
BEGIN
c:=a; -- Inmediato
x<=c+2;
c:=b; -- Inmediato
y<=c+2;
END PROCESS p1;
END ej_arch;

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (IX)

ESTILOS DE DISEO

El objetivo de VHDL es el diseo de sistemas para sntesis RTL


(Register Transfer Level), esto significa que la implementacin del
sistema se realiza como si la lgica combinacional estuviera entre
registros.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (X)

ESTILOS DE DISEO

Por su comportamiento (behavior): Por ejemplo una mquina de estados,


donde se definen los estados y las transiciones sin indicar cuntos flipflops
ni qu lgica usar.

A nivel de registros (RTL): Describiendo dnde insertar los elementos de


memoria (registros o flipflop) y la lgica de su interconexin.

A nivel de compuertas: Describiendo cada compuerta y cada conexin, tal


como sucede al usar diagramas esquemticos.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XI)

ESTILOS DE DISEO: Ejemplo

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XII)

ESTILOS DE DISEO: Ejemplo

Descripcin a Nivel de Registros


ENTITY ejemplo IS
PORT (a,b,c : IN bit;
Resultado : OUT bit);
END ejemplo;

ARCHITECTURE rtl OF ejemplo IS


SIGNAL aux : STD_LOGIC;
BEGIN
aux <= a XOR b;
resultado <= aux XOR c;
END rtl;

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XIII)
ESTILOS DE DISEO: Ejemplo

Descripcin Comportamental
ENTITY ejemplo IS
PORT (a,b,c : IN bit;
Resultado : OUT bit);
END ejemplo;

ARCHITECTURE comportamental OF ejemplo IS


BEGIN
PROCESS (a, b, c)
BEGIN
IF ((a XOR b XOR c)='1') THEN
Resultado <= '1';
ELSE
Resultado <= '0';
END IF;
END PROCESS;
END comportamental;

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XIV)

ESTILOS DE DISEO: Ejemplo

Descripcin a Nivel de Compuertas o Estructural


ARCHITECTURE estructural OF ejemplo IS

COMPONENT XOR2
PORT (i1,i2: IN STD_LOGIC;
y: OUT STD_LOGIC);
END COMPONENT;

SIGNAL aux : STD_LOGIC;


BEGIN
u1: XOR2 PORT MAP (i1 => a,
i2 => b,
y => aux);
u2: XOR2 PORT MAP (i1 => aux,
i2 => c,
y => Resultado);
END estructural;

Sistemas Digitales Programables AREVALO 2017


TRABAJO EN CLASE
Describir la ENTIDAD para cada uno de los siguientes circuitos:
Compuerta AND de 6 Entradas.
Compuerta OR de 4 Entradas.
Compuerta XOR.
Compuerta NOT.
Multiplexor de 8 a 1.
Flip Flop tipo JK con Preset y Clear.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XV)
ELEMENTOS SINTCTICOS DEL VHDL

Comentarios: Cualquier lnea que empieza por dos guiones -- es un comentario.


Identificadores: Son cualquier cosa que sirve para identificar variables, seales,
nombres de rutina, etc. Puede ser cualquier nombre compuesto por letras incluyendo
el smbolo de subrayado _. Las maysculas y minsculas son consideradas
iguales, as que JOSE y jose representan el mismo elemento. No puede haber
ningn identificador que coincida con alguna de las palabras reservadas del
VHDL.
Nmeros: Cualquier nmero se considera que se encuentra en base 10. Se admite la
notacin cientfica convencional para nmeros en coma flotante. Es posible poner
nmeros en otras bases utilizando el smbolo del sostenido #.
Ejemplo:
2#11000100# y 16#C4# representan el entero 196.
Caracteres: Es cualquier letra o carcter entre comillas simples: 'l','3','t'.
Cadenas de caracteres: Son un conjunto de caracteres englobados por comillas
dobles. Ejemplo: "Esto es una cadena" o " 01010111 ".
Sistemas Digitales Programables AREVALO 2017
UN HDL ESTNDAR: VHDL (XVI)
ELEMENTOS SINTCTICOS DEL VHDL
Cadenas de bits: Los tipos bit (std_logic) y bit_vector (std_logic_vector) son en
realidad de tipo carcter y matriz de caracteres respectivamente. En VHDL se tiene
una forma de definir nmeros con estos tipos y es mediante la cadena de bits.
Dependiendo de la base en que se especifique el nmero se puede poner un prefijo B
(binario), O (octal), o X (hexadecimal).
Ejemplo:
B"11101001", O"126", X"FE".
Operadores y expresiones:
& (concatenacin). punto<=x&y
Operadores aritmticos:
+ (suma y signo positivo). - (resta y signo negativo).
** (exponencial). Sirve para elevar un nmero a una potencia: 4**2 es 42.
ABS() (valor absoluto).
* (multiplicacin).
/ (divisin).
MOD (mdulo). Calcula el mdulo de dos nmeros. Los operandos slo pueden
ser enteros. El resultado toma el signo de b.
REM (resto). Calcula el resto de la divisin entera. Los operandos slo pueden
ser enteros. El resultado toma el signo del dividendo.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XVII)
ELEMENTOS SINTCTICOS DEL VHDL
Operadores y expresiones:
Operadores de desplazamiento:
SLL, SRL (desplazamiento lgico a izquierda y a derecha). Por ejemplo, dato SLL
2 desplaza a izquierda el vector dato, es decir, lo multiplica por 4.
SLA, SRA (desplazamiento aritmtico a izquierda y derecha).
ROL, ROR (rotacin a izquierda y a derecha) Es como el de desplazamiento pero
los huecos son ocupados por los bits que van quedando fuera.

Operadores relacionales: Devuelven siempre un valor de tipo booleano (TRUE


o FALSE). Los tipos con los que pueden operar dependen de la operacin:
=, /= (igualdad).
<, <=, >, >= (menor o mayor).

Operadores lgicos:
Son NOT, AND, NAND, OR, NOR y XOR. El funcionamiento es el habitual
para este tipo de operadores. Actan sobre los tipos bit (std_logic), bit vector
(std_logic_vector) y boolean. En el caso de realizarse estas operaciones sobre
un vector, la operacin se realiza bit a bit, incluyendo la operacin NOT.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XVIII)
ELEMENTOS SINTCTICOS DEL VHDL
Tipos de datos:
Tipos escalares:
Enteros:
Ejemplos:
TYPE byte IS RANGE 0 TO 255;
TYPE index IS RANGE 7 DOWNTO 1;
TYPE integer IS -2147483647 TO 2147483647; --
Predefinido en el lenguaje

Fsicos:
Ejemplo:
TYPE longitud IS RANGE 0 TO 1.0e9
UNITS
um;
mm=1000 um;
m=1000 mm;
in=25.4 mm;
END UNITS;

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XIX)
ELEMENTOS SINTCTICOS DEL VHDL
Tipos de datos:
Reales:
Ejemplos:
TYPE nivel IS RANGE 0.0 TO 5.0;
TYPE real IS RANGE -1e38 TO 1e38; -- Predefinido en el
lenguaje

Enumerados: Son datos que pueden tomar cualquier valor especificado en un conjunto
finito o lista.
Ejemplos:
TYPE nivel_logico IS (nose,alto,bajo,Z);
TYPE bit IS ('0','1'); -- Predefinido en el lenguaje

Hay varios tipos enumerados que se encuentran predefinidos en VHDL. Estos tipos son:
severity level, boolean, bit y character.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XX)
ELEMENTOS SINTCTICOS DEL VHDL
Tipos de datos:
Tipos compuestos
Son tipos de datos que estn compuestos por los tipos de datos escalares vistos
anteriormente.

Matrices: Son una coleccin de elementos del mismo tipo a los que se accede mediante un
ndice. Los hay monodimensionales (un ndice o vector) o multidimensionales (varios
ndices). Ejemplos:
TYPE word IS ARRAY(31 DOWNTO 0) OF bit;
TYPE transformada IS ARRAY(1 TO 4, 1 TO 4) OF real;
TYPE positivo IS ARRAY(byte RANGE 0 TO 127) OF integer;
TYPE string IS ARRAY(positive RANGE <>) OF character; -- Predefinido en VHDL
TYPE bit_vector IS ARRAY(natural RANGE <>) OF bit; -- Predefinido en VHDL
TYPE vector IS ARRAY(integer RANGE <>) OF real;

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XXI)
ELEMENTOS SINTCTICOS DEL VHDL

Atributos:
Los elementos en VHDL, como seales, variables, etc, pueden tener informacin
adicional llamada atributos.
Estos atributos estn asociados a estos elementos del lenguaje y se manejan en
VHDL mediante la comilla simple ' .

Hay algunos de estos atributos que estn predefinidos en el lenguaje, a


continuacin se muestran los ms interesantes.
Suponiendo que t es un tipo escalar, tenemos los siguientes atributos:

t'LEFT Lmite izquierdo del tipo t.


t'RIGHT Lmite derecho del tipo t.
t'LOW Lmite inferior del tipo t.
t'HIGH Lmite superior del tipo t.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XXII)
ELEMENTOS SINTCTICOS DEL VHDL

Atributos:
Para tipos t, x miembro de este tipo, y N un entero, se pueden
utilizar los siguientes atributos:

t'POS(x) Posicin de x dentro del tipo t.


t'VAL(N) Elemento N del tipo t.
t'LEFTOF(x) Elemento que est a la izquierda de x en t.
t'RIGHTOF(x) Elemento que est a la derecha de x en t.
t'PRED(x) Elemento que est delante de x en t.
t'SUCC(x) Elemento que est detrs de x en t.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XXIII)
ELEMENTOS SINTCTICOS DEL VHDL

Atributos:
Para a siendo un tipo u elemento de tipo matriz, y N un entero de 1 al
nmero de dimensiones de la matriz, se pueden usar los siguientes
atributos:

a'LEFT(N) Lmite izquierdo del rango de dimensin N de a.


a'RIGHT(N) Lmite derecho del rango de dimensin N de a.
a'LOW(N) Lmite inferior del rango de dimensin N de a.
a'HIGH(N) Lmite superior del rango de dimensin N de a.
a'RANGE(N) Rango del ndice de dimensin N de a.
a'LENGTH(N) Longitud del ndice de dimensin N de a.

Sistemas Digitales Programables AREVALO 2017


UN HDL ESTNDAR: VHDL (XXIV)
ELEMENTOS SINTCTICOS DEL VHDL

Atributos:
Suponiendo que s es una seal, se pueden utilizar los siguientes
atributos (se han tomado los ms interesantes):

s'EVENT Indica si se ha producido un cambio en la seal.


s'STABLE(t) Indica si la seal estuvo estable durante el ltimo periodo
t.

El atributo 'EVENT es especialmente til en la definicin de circuitos


secuenciales para detectar el flanco de subida o bajada de la seal de
reloj. Es por esto que es probablemente el atributo ms utilizado en
VHDL.

Sistemas Digitales Programables AREVALO 2017

Das könnte Ihnen auch gefallen