You are on page 1of 24

VHDL

Sistemas digitales
JJVS

Sintaxis de VHDL
1. 2. 3. 4. 5.

Componentes bsicos de VHDL Elementos primitivos Declaraciones secunciales Seales y asignacin de seales Declaraciones concurrentes

1. Componentes bsicos de VHDL


Biblioteca (Library) Paquete (Package) Entidad (Entity) Arquitectura (Arquitecture) Configuracin
UNIDADES DE DISEO Entity Architecture Configuration Package COMPILADOR VHDL BIBLIOTECA Entity Architecture Configuration Package

Biblioteca (Library)
Resultado de una compilacin VHDL para simulacin posterior o para ser usada en otros diseos. Sirve para compartir diseos previamente compilados sin revelar el contenido.
Bibliotecas: WORK y STANDARD No hay bibliotecas jerrquicas en VHDL Se tienen que declarar antes de usarlas en otro diseo

Componentes:
Paquete.- declaraciones comunes/compartidas Entidad.- diseos compartidos Arquitectura.- Implementacin de diseos compartidos Configuracin.- versiones de diseos compartidos

Paquete (Package)
Rene un grupo de declaraciones relacionadas y es compilada por separado. Almacena subprogramas comunes, tipos de datos, constantes y diseo de interfaces precompiladas. Se usa para:
Declaracin de constantes Declaracin de subprogramas Declaracin de tipos

Ejemplo:
package mis_defs is Constant retardo: time:=1ns; end mis_defs; contenido/cuerpo Encabezado del paquete No hay

El Concepto de Paquete
Para entender este concepto consideremos la siguiente situacin: Estamos leyendo y nos encontramos con una palabra desconocida Qu hacemos?
Opcin 1: Preguntar a alguien. Opcin 2: Consultar en nuestro diccionario. Opcin 3: Ir a la biblioteca a solicitar un diccionario (Usar una unidad de la biblioteca).

En VHDL ocurre algo similar: 1.- Si tenemos algn concepto (tipo de dato, operacin, etc. ) que no es estandar. 2.- Llamamos a la Biblioteca de VHDL. 3.- Usamos una unidad de la biblioteca (Un paquete). Los paquetes permiten usar definiciones que caen fuera de los estndares. Se declaran por adelantado, usualmente antes de la Entidad, para ello se incluyen las clausulas: Library (biblioteca a usar) y Use (paquete a usar).

Paquetes Predefinidos :
Los tres paquetes ms populares definidos por la IEEE son : STANDARD : Contiene todas las declaraciones y definiciones bsicas del lenguaje y est incluido en
todas las especificaciones de VHDL por default.

TEXTIO: Contiene las declaraciones de operaciones bsicas de texto. Para usarlo, antes de la entidad
debe declararse: library use std; std.TextIO.all;

STD_LOGIC_1164: Contiene extensiones al estandar de VHDL, definidas en el Estandar 1164 de la


IEEE, algunas declaraciones importantes son: Variables y vectores lgicos, extensin de operadores y algunas funciones. Para usarlo, las declaraciones son: library use IEEE; IEEE.std_logic_1164.all;

Nota: Aparte de estos paquetes, cada desarrollador de Software incluye sus propios paquetes.

Modelo VHDL
Modelo VHDL ENTIDAD

Todo modelo se especifica por una


ENTIDAD o interfaz del componente modelado ARQUITECTURA o descripcin del comportamiento de un componente.

ARQUITECTURA

ENTORNO

Entidad (Entity)
Define un nuevo componente, sus interconexiones de E/S y las declaraciones relacionadas. La definicin de una entidad no incluye la arquitectura del componente, y se puede utilizar sin conocerla. Sintaxis:
Entity name is [generics][ports] [declarations {constants, types, signals}] [begin statements] generalmente end [name]; (nombre opcional) Requerido Opcional Opcional No usado Requerido

Unidad Principal de Diseo: La Entidad


El diseo de un sistema inicia con el anlisis de la relacin que ste tendr con su ambiente, es decir, la entidad que describa la interfaz entre el sistema y su ambiente. En VHDL no es posible especificar un sistema si no se ha declarado su entidad. Todo lo que se especifique en una entidad es visible para las demas unidades de diseo asociadas con esa entidad. El nombre del sistema corresponde con el nombre de la entidad.

Entity Disco_duro is .... End Entity Disco_duro;

Entity Camara is .... End Entity Camara;

Disco_duro

Cmara

Contenido de la Entidad
La entidad puede contener dos elementos: Parmetros del sistema, que sern conocidos por todo el sistema, por ejemplo: El ancho de un bus, la frecuencia mxima de operacin, etc. Conexiones a travs de las cuales se transferir la informacin hacia el exterior o interior del sistema.
Entity Registro is D0 D1 D2 D3 D4 D5 D6 D7 CLK Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Ancho_Bus = 8 Fmax = 50 MHz D : entrada ocho_bits Q : salida ocho_bits CLK : entrada un_bit End Entity Registro; Parmetros

Conexiones

Parmetros y Conexiones
Los dos elementos de una interfaz (parmetros y conexiones) se declaran por separado en cada entidad : Todos los Parmetros son genricos y son conocidos automticamente por el cuerpo del sistema. Las Conexiones forman los puertos de entrada/salida.
Entity Registro is generic ( Ancho_Bus = 8 Fmax = 50 MHz ); port ( D : entrada ocho_bits Q : salida ocho_bits CLK : entrada un_bit ); End Entity Registro;

D0 D1 D2 D3 D4 D5 D6 D7 CLK Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7

Entidad (Entity)
Una entidad especifica las conexiones externas de un componente
entity COMPARA is port(A, B: in bit; C: out bit); end compara; Nombre del puerto, direccin y tipo de datos

A B

bit bit COMPARA bit C

Comprensin de la Interfaz
El Sistema A contiene 3 subsistemas: B, C y D. Y 8 lneas de conexin: TL1 a TL8:
A B TL5 C TL3 TL4 TL6 D TL8

TL1 TL2

TL7

1. 2. 3.

Cules lneas son parte de la Interfaz de A ? Qu lneas estn en la interfaz de C y no estn en la de A ? Mostrar como sera la entidad de D (notar que no hay parmetros).

La arquitectura
El cuerpo de un sistema siempre esta ligado a su interfaz, similarmente en VHDL cada arquitectura debe estar ligada con una entidad. VHDL le da mayor importancia a la Entidad, de modo que las arquitecturas se asocian con una interfaz y no viceversa.
Entity TVSet is ENTIDAD ..... End Entity TVSet; Architecture TV2000 of TVSet is ..... ARQUITECTURA End architecture TV2000;

Tipos de Arquitectura
Cada sistema puede describirse en trminos de su funcionalidad (comportamiento) o estructura (construccin), y en cada caso se requiere diferente informacin.

QU HACE?
Funcionalidad

CMO EST COMPUESTA?


Estructura

Muchas herramientas de Sntesis trabajan con ambas descripciones: Si la descripcin funcional se ha especificado y formalizado, sta se transforma a su equivalente estructural; la cual es ms adecuada para sntesis. Este proceso se hace automticamente, aunque no hay herramientas que sinteticen directamente de la descripcin funcional.

Arquitectura (Architecture)
Especifica el comportamiento del componente, sus interconexiones y componentes internos. Tiene que compilarse para hacerlo funcional. La arquitectura puede ser modelizada con diferentes niveles de abstraccin. Las arquitecturas en VHDL se categorizan dependiendo del estilo en:
Funcional (Behavioral). Define un proceso descrito secuencialmente. Flujo de datos (Dataflow). Incluye estructura y comportamiento Estructural (Structural). Define interconexiones y componentes

Una entidad puede tener varias arquitecturas, solo una esta activa
Entity xyz

Architecture a of xyz

Architecture b of xyz

Architecture c of xyz

La sintaxis es:
architecture name of entity_name is [declarations] begin concurrent_statements end [name];

Por convencin, una arquitectura puede llamarse behavioral, dataflow, o structural

Arquitectura Funcional (Behavioral)


Ejemplo:
architecture ARQ1 of COMPARA is begin process (A,B) begin if (A=B) then C <= 1 after 1 ns; else C <= 0 after 2 ns; end if; end process; End ARQ1

Arquitectura Flujo de Datos (Dataflow)


Ejemplo:
architecture ARQ1 of COMPARA is begin C <= not (A xor B) after 1 ns; end ARQ2;

Otro ejemplo:
Entity XR2 is generic (m: time := 1.0 ns); port (X,Y: in bit; Z: out bit); End XR2; architecture DATAFLOW of XR2 is begin Z <= X xor Y after m; end DATAFLOW; -- Tiempo de retardo

--Retardo genrico

Arquitectura Estructural (Structural)


Ejemplo:
Entity COMPARA is port (A,B: in bit; C: out bit); End COMPARA; --Entidad

architecture STRUCT of COMPARA is SIGNAL I: bit; --Declaracin de componentes component XR2 port (x,y: in bit; z: out bit); end component; component INV port (x: in bit; z: out bit); end component; begin U0: XR2 port map (A,B,I); --Componentes U1: INV port map (I,C) --utilizados end STRUCT; U0 A B x y I XR2 Z x U1 INV z C

Jerarqua de diseo
CPU ALU COMPARA XR2 INV entity ALU is port (upcode: end ALU; architecture firs of ALU is component COMPARA port (a,b: in bit; c: out bit); end component; begin U0: COMPARA port map (s,d,q); end first;

Configuracin (Configuration)
Selecciona una arquitectura para una entidad declarada. Si no se define se utiliza automticamente la ltima arquitectura compilada. Declaracin de la configuracin configuration name of entity_name is [declarations] specification end name; Nombre de la configuracin Ejemplo:

Entidad que se est configurando


configuration FAST_ONE of ALU is for first For U0: COMPARA use entity WORK.COMPARA(DATA_FLOW);

Componente configurado

Biblioteca

Arquitectura a usar

Resumen . . . .
-- Las tres unidades de Diseo en VHD : -- Paquetes Library Use New ConceptLib; NewConceptLib.Arithm.Logarithm; -- Biblioteca a Usar -- Paquete a Usar -- La interfaz: Incluye parmetros -- genricos y puertos

-- Entidad Entity SomeSyst is . . . . End Entity SomeSyst; -- Arquitectura Architecture FirstArch of SomeSyst is . . . . . . . . Logarithm . . . . End Architecture FirstArch;

-- El cuerpo del sistema: -- Puede ser descrito de manera -- Estructural o Funcional -- Concepto no estandar en Uso

You might also like