Escolar Documentos
Profissional Documentos
Cultura Documentos
1983 VHDL Desarrollo: IBM, Texas Instruments e Intermetrics 1987 VHDL87 Estndar IEEE -1076 1993 VHDL93 Estndar IEEE -1164
VHDL y Verilog
Notacin Estandarizada
Disponibilidad al Pblico Independencia del Sistema de Desarrollo Independencia de la Metodologa de Diseo (PLDs, ASICs, FPGAs) Independencia de la Tecnologa y Proceso de Fabricacin (CMOS, Bipolar, BiCMOS) Reutilizacin de Cdigo
Capacidad descriptiva del comportamiento del sistema en distintos niveles de abstraccin: Algortmico, RTL (Register Transfer Logic) o concurrente, estructural (Lgico), Netlist.
Facilitar la Verificacin/Prueba y puesta a punto del sistema a disear. Adicin de la extensin analgica (IEEE1076.1) que permite la especificacin, simulacin y sntesis de sistemas digitales, analgicos y mixtos
Smbolos especiales
Identificadores Nmeros Caracteres Cadenas Cadenas de bits Palabras reservadas
Existen caracteres especiales sencillos como (&, #, +, *, =) o dobles como ( :=, <=).
Es lo que se usa para dar nombre a los diferentes objetos del lenguaje. Se considera que se encuentra en base 10, se admite la notacin cientfica convencional es posible definir nmeros en otras bases utilizando el smbolo # : 2#11000100# Es cualquier letra o carcter entre comillas simples: 3, t Son un conjunto de caracteres englobados por comillas dobles: hola Los tipos bit y bit_vector son en realidad tipo carcter y arreglo de caracteres respectivamente, se coloca un prefijo para indicar la base : O126, XFE Son las instrucciones, rdenes y elementos que permiten definir sentencias.
Identificadores Nombres o etiquetas que se usan para referirse a: Variables, Constantes, Seales, Procesos, Entidades, etc. Estn formados por nmeros, letras (maysculas o minsculas) y guin bajo _ con las reglas especificadas en la tabla siguiente. Longitud (Nmero de Caracteres): Sin restricciones Palabras reservadas por VHDL no pueden ser identificadores En VHDL, un identificador en maysculas es igual a su contraparte en minsculas
Reglas para especificar un identificador Segundo carcter no puede ser un guin bajo ( _ ) Dos guiones bajos no son permitidos Un identificador no puede utilizar smbolos especiales
Primer carcter debe ser siempre una letra mayscula o minscula 4Suma
*
+ (signo) + = AND
/
- (signo) /= OR
MOD
REM
Menor
La precedencia de operadores se encuentran ordenados de mayor (arriba) a menor (abajo), los operadores que se encuentran en la misma fila tienen la misma precedencia y sern evaluados siguiendo el orden de izquierda a derecha.
Variables
Seales File Floating Point (Punto Flotante) Physical (Fsicos) Array (Arreglos)
No soportado por herramientas de Sntesis
Natural (No-Negativos)
Real Time (Tiempo) Bit_Vector Std_ulogic_vector Std_logic_vector Record (Registro) Access (Acceso) Compuestos
Unsigned
Signed
Objetos de Datos
Un objeto de datos en VHDL es un elemento que toma un valor de algn tipo de dato determinado, segn sea el tipo de dato, el objeto poseer un conjunto de propiedades. En VHDL los objetos de datos son generalmente una de las tres clases siguientes:
Constantes
Una constante es un elemento que puede tomar un nico valor de un tipo dato, las constantes pueden ser declaradas dentro de entidades, arquitecturas, procesos y paquetes.
Variables
Las variables pueden ser modificadas cuando sea necesario, pueden ser declaradas solamente dentro de los procesos y subprogramas.
Seales Las seales si pueden almacenar o pasar valores lgicos, por lo tanto, representan elementos de memoria o conexiones y si pueden ser sintetizadas. Son declaradas en las arquitecturas antes del BEGIN.
SIGNAL identidicador : tipo [:= valor]; Ejemplo SIGNAL A, B : bit := 0; SIGNAL dato: bit_vector (7 downto 0);
Estructura de VHDL
Cada uno formado por declaraciones o instrucciones que definen, estructuran, analizan y evalan el comportamiento de un sistema digital
Configuracin (configuration)
Unidad Primaria
Unidad Primaria
Unidad Primaria
Entidad - Qu es?
entidad (entity) Bloque elemental de diseo Circuitos elementales digitales que forman de manera individual o en conjunto un sistema digital Ejemplos: Compuertas, Flip-Flops, Sumadores/Restadores, Multiplexores, Contadores, Multiplicadores, ALUs, Neurona-Digital, etc.
Ejemplo-1: Sumador
Declaracin de una entidad Consiste en la descripcin de los puertos de entrada o salida de un circuito, el cual es identificado como una entidad (entity) Importante! No se describe cmo ser realizado o implementado el circuito, es decir, su Arquitectura
Descripcin de un Puerto
Modo
Tipo de Dato
Conjuntos de Valores que se les ha asignado un nombre (p.ej. bit, boolean, bit_vector, etc), de tal forma que un objeto (p.ej. una Seal) de un determinado Tipo (p.ej. el tipo bit_vector) pueda tomar cualquier valor dentro del conjunto de valores que define al Tipo especificado.
Puerto de Entrada (Lectura) y Salida (Escritura) El valor ledo (Entrada) es aqul que llega al puerto, y no el valor que se le asigna (Salida), en caso de existir.
Valores de 0 o 1 Lgico Define valores de cierto o falso de acuerdo con una expresin Conjunto de bits que representa a un grupo de seales de ent. o sal. Nmeros enteros
buffer
Similar al Puerto de Salida (Escritura), pero adems puede ser ledo. El valor ledo (Entrada) es el mismo valor asignado (Salida) al puerto.
bit_vector
(pkg.standard)
integer
(pkg.standard) Paquete (pkg.) en el cual es definido el tipo. Ver: Uso de Libreras y Paquetes
std_logic
(pkg.std_logic_1164)
std_logic_vector
(pkg.std_logic_1164)
Ms tipos
Se irn introduciendo conforme avance el curso
Ejemplo-2: Sumador
Cin Puertos de Entrada A B Entidad Sumador Cout Puertos de Salida SUMA
Identificador de la entidad
Lnea N.
1 2 3 4 5
Ejemplo-3
a3 b3 a2 b2 a1 b1 a0 b0 F
Lnea N. 1
Detector Uso de dos datos con longitudes de 4-bit (Declaracin de Entidad) --Declaracion de la entidad
2
3 4 5
entity circuito is
port (a3, b3, a2, b2, a1, b1, a0, b0: in bit; F: out bit); end circuito;
Ejemplo-4 Cin vector_A vector_B vector_SUMA = [A3, A2, A1, A0] = [B3, B2, B1, B0] = [S3, S2, S1, S0] Entidad Sumador Cout
Declaracin de Puertos Tipo-Vector port (vector_A, vector_B: in bit_vector (3 downto 0); vector_SUMA: out bit_vector (3 downto 0)); Sumador-completo de dos datos con longitudes de 4-bit (Declaracin de Entidad Uso de Vectores) entity sumador is port (A, B: in bit_vector (3 downto 0); Cin: in bit; Cout: out bit; SUMA: out bit_vector (3 downto 0)); end sumador;
Para ordenar en forma ascendente utilizar to en lugar de downto (p.ej. 0 to 3)
Ejemplo-5
a3 b3 a2 b2 a1 b1 a0 b0 F
Lnea N. 1
Detector Uso de dos datos con longitudes de 4-bit (Declaracin de Entidad Uso de Vectores) --Declaracion de la entidad
2
3 4 5
entity circuito is
port (a, b: in bit_vector (3 downto 0); F: out bit); end circuito;
user
work
comps_dsp
Biblioteca (library)
Lugar donde se almacenan los Paquetes definidos por el fabricante de la herramienta de desarrollo o el usuario. Lugar donde se permite almacenar resultados de la compilacin de diseos, con el fin de utilizarlos en otros.
xc
Paquetes
std_logic_arith std_logic_1164
ieee
Un paquete contiene: Declaraciones de Tipos y Subtipos de Datos Definiciones de Constantes Definiciones de Funciones y Procedimientos Declaraciones de Componentes (Sumadores, Restadores, Contadores, Multiplicadores, etc) Un Paquete = Macro-Unidad de Diseo
Bibliotecas
Paquetes
Para llamar un paquete es necesario llamar a la librera/biblioteca que lo contiene (donde ha sido compilado)
IEEE
std_logic_1164 numeric_bit
std_logic_unsigned std_logic_signed
std_logic_misc
Ejemplo-6
X0 X1 Y0 Circuito Multiplicador Z0 Z1 Z2
Y1
Z3
Multiplicador de dos datos con longitudes de 2-bit (Declaracin de Entidad Uso de Biblioteca y Paquete) library ieee; use ieee.std_logic_1164.all; entity multiplica is port (X0, X1, Y0, Y1: in std_logic;
Arquitectura - Qu es?
arquitectura (architecture)
Unidad de Diseo Secundaria que describe el comportamiento interno de una entidad.
Nivel Lgico
Estructural
--Arquitectura Estructural
ARCHITECTURE estructural OF mux IS SIGNAL ax, bx, nosel :bit; BEGIN U0: ENTITY inv PORT MAP (e=>sel, y=>nosel); U1: ENTITY and2 PORT MAP (e1=>a, e2=>nosel, y=>ax); U2: ENTITY and2 PORT MAP (b, sel, bx); U3: ENTITY or2 PORT MAP (e1=>ax, e2=>bx, y=>sal); END estructural ;
Lnea N
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Ejemplo-8 a
Comparador
Ejemplo-9
Lnea N
f1
a b
a
0 0 1
b
0 1 0
f1
0 1 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Flujo de Datos - En este caso, se describe la forma en la que los datos se pueden transferir entre
los diferentes mdulos operativos que constituyen la entidad (sistema o circuito)
La construccin when-else
Lnea N
1 2 3 4 5 6 7 8 9 10 11 12
a b Comparador
a0 b0 a1 b1
Modelos lgicos pueden ser: Diseados por el Usuario Predefinidos por el Fabricante
Ejemplo-12
Comparador (Ejemplo-8)
U0 U1
x0 U2 x1
Lnea N
1 2 3 4 5 6 7 8 9 10 11 12 13 14