Professional Documents
Culture Documents
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
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;
Nota: Aparte de estos paquetes, cada desarrollador de Software incluye sus propios paquetes.
Modelo VHDL
Modelo VHDL ENTIDAD
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
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
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
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];
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
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:
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