Documente Academic
Documente Profesional
Documente Cultură
INTRODUCCION
DEFINICION
VHDL permite
1.
2.
3.
4.
VHDL permite
LIMITACIONES
VHDL es principalmente un
lenguaje para diseo digital.
Actualmente tiene capacidades
muy limitadas en el rea
analgica, pero existen trabajos
para crear una versin analgica
del lenguaje.
El estndar 1076 define un
estndar y su sintaxis, sin
describir ningun estilo para
usarlo en un diseo. Hay otros
estndares que usan, o que
requieren definir un estilo antes
de usar el lenguaje en ciertas
reas.
VENTAJAS
SOPORTE PARA
LENGUAJE DE SINTESIS
Solo es posible
sintetizar lgicamente
desde un subgrupo del
lenguaje de VHDL.
Cada compaia tiene su
herramienta que tienen
su propio subgrupo
ligeramente distinto de
los dems.
SINTAXIS
SINTAXIS
CONCEPTOS
SINTESIS
ABSTRACCION
NIVELES DE ABSTRACCION
1.
2.
3.
4.
SENTENCIAS
CONCURRENTES
ocurren en paralelo
SECUENCIALES
se ejecutan una despus
de la otra.
FUNCION
PRODECIMIENTO
PROCESO
PROCESO
Etiqueta
Lista de sensitividad
Mux:process(A,B,SEL)
begin
ifSEL='1'then
Z<=A;
Sentencias
else
secuenciales
Z<=B;
endif;
endprocessMUX;
Proceso
Proceso
Proceso
SentenciasConcurrentes
P1:process
begin
SentenciasSecuenciales
endprocessP1;
SentenciasConcurrentes
P2:process
begin
SentenciasSecuenciales
endprocessP2;
SentenciasConcurrentes
endA;
Proceso 1
Proceso 2
Ejecucin de procesos
Concurrente: 2 drivers
architectureCONCURRENTofMULTIPLEis
signalZ,A,B,C,D:std_logic;
begin
Z<=A&B;
Z<=C&D;
endCONCURRENT;
A
B
C
D
Ejecucin de procesos
architectureSEQUENTIALofMULTIPLEis
signalZ,A,B,C,D:std_ulogic;
begin
process(A,B,C,D)
begin
Z<=A&B;
Z<=C&D;
endprocess;
endSEQUENTIAL;
C
D
Nocin de process
Implementacin de Procesos
Lgica combinatoria.
Lgica sincrnica.
Lgica sincrnica con inicializacin asincrnica.
Estructura de Proceso
[ etiqueta: ] process ( lista de sensibilidad )
-- declaraciones
-- variables eventuales
Begin
-- parte operatoria
-- instrucciones secuenciales
-- (if, case, loop)
End process;
Lista de sensibilidad, cambia la asignacin de seales
asignadas en el proceso.
Metodologa de Procesos.
Proceso Combinatorio
[ etiqueta: ] process ( lista de sensibilidad )
-- declaraciones
Begin
-- instrucciones secuenciales
-- (if, case, loop)
End process [ etiqueta];
Ejemplo Combinatorio.
Mux: process (A, B,SEL )
Begin
if SEL=0
then SALIDA<=A;
else SALIDA<=B;
end if;
End process;
Ejemplo sncrono.
Process
Begin
wait until ( CK event and CK=1 );
COUNT <= COUNT + 1;
End process;
Proceso Sncrono
[ etiqueta: ] process ( CK )
-- declaraciones
Begin
if (CK event and CK=1)
then --instrucciones secuenciales.
end if;
End process [etiqueta];
Ejemplo Sncrono
Process ( CK )
Begin
if ( CK event and CK=1 )
then COUNT <= COUNT + 1;
end if;
End process;
SENSITIVIDAD
Lista de Sensitividad
MUX:process(A,B,SEL)
begin
ifSEL='1'then
Z<=A;
else
Z<=B;
endif;
SEL
A
B
Z
endprocessMUX;
Lista de Sensitividad
Falta SEL
MUX:process(A,B)
begin
ifSEL='1'then
Z<=A;
else
Z<=B;
endif;
endprocessMUX;
SEL
A
B
Z
Variables y Seales:
Las Seales:
Objetos que pueden ser declarados en el interior de
una entidad (ports) o de una arquitectura (seales
internas).
La asignacin de un valor a una seal se hace con un
retardo (infinitesimal).
Variables
Son objetos que pueden ser declarados dentro de un
process (u otras entidades secuenciales).
La Sentencia IF
Sintaxis if- then else.
if CONDITION then
--- Sentencias secuenciales
end if;
if CONDITION then
--- Sentencias secuenciales
else
--- Sentencias secuenciales
end if;
Estructura if elsif.
if CONDITION then
--- Sentencias secuenciales
elsif CONDITION then
--- Sentencias secuenciales
elsif CONDITION then
--- Sentencias secuenciales
.
.
.
else
--- Sentencias secuenciales
end if;
IF-ELSIF
if CONDITION then
El
orden
de
las
sentencias
en
la
estructura if-elsif es muy
importante. Ms de una
condicin
puede
ser
verdadera, y es la
primera
condicin
verdadera la que provoca
que se ejecuten el grupo
de sentencias que le
siguen
-- sentencias secuenciales
elsif CONDITION then
-- sentencias secuenciales
elsif CONDITION then
-- sentencias secuenciales
else
-- sentencias secuenciales
end if;
Ejemplo de IF-ELSIF
process (A,B,C,X)
begin
If (X=0000) then
Z<=A;
elsif (X<=0101) then
Z<=B;
else
Z<=C;
end if;
end process;
Ejemplo 2 de IF-ELSIF
process (A,B,C,D,SEL)
process (A,B,C,D,SEL)
begin
begin
Utilizacin de Clock_Enable
architecture ARCHI of SECUENCE is
begin
process
begin
wait until CKevent and CK = 1 ;
If ENABLE = 1 then COUNT<=COUNT+1;
end if;
end process;
end ARCHI;
Utilizacin de Clock_Enable
GESTION DE LA JERARQUIA
Modelo de un proceso
El
modelo
de
simulacin en VHDL
consiste de mltiples
procesos
que
se
encuentran
ejecutndose
secuencialmente.
____
___
____
__
___
____
____
___
____
__
___
____
Proceso
Proceso
____
___
____
__
___
____
Proceso
architecture A of E is
begin
-- concurrent statements
P1: process
begin
-- sequential statements
end process P1;
-- concurrent statements
P2: process
begin
-- sequential statements
end process P2;
-- concurrent statments
end A;
A
B
?
C
D
Tenemos dos
asignaciones a la seal
Z, realizadas fuera de un
proceso. Las sentencias
fuera de un proceso son
concurrentes y por lo
tanto Z tiene dos drivers
architecture SEQUENTIAL of
MULTIPLE is
signal Z, A, B, C, D : std_ulogic;
begin
process(A, B, C, D)
begin
Z <= A and B;
Z <= C and D;
end process;
end SEQUENTIAL;
C
D
ltima asignacin
Diferente significado
process (A, B, C, D)
begin
Z <= A and B;
Z <= C and D;
end process;
=
Architecture X of MULTIPLE is
begin
Z <= A and B;
Z <= C and D;
end X;
Ejemplo
SEALES ASIGNADAS
DESPUES DE UNA
LECTURA.
Tenemos un proceso con
asignacin a la seal M,
y el valor de M es
tambin ledo en el
proceso
B cambia de 0 a 1.
Proceso
llamado
Evento en
B
A: 0
B:1
M:0
Z:0
Actualizacin de valores
La asignacin no
es inmediata!
Ejemplo: process(A,B,M)
begin
Y <= A;
M <=B;
Z <=M;
end process Ejemplo;
En este punto Z
sigue teniendo
valor 0!
Actualizacin de valores
Z no ha sido actualizada!
A
B
M
Z
T1process
Ejemplo: process(A,B,M)
Begin
Y <= A;
M <=B;
Z <=M;
end process Ejemplo;
A
B
M
Z
T1process
Actualizacin de valores
A
B
M
Z
T1
T2
process
process
ENTRADA Y SALIDA
Definicin de entrada/salida
B)
Buffer E/S
Salida de 3 estados
Cdigo VHDL
Sntesis
EN
EN
OUT
OUT
IN
Z
Las herramientas de
sntesis tienen la
habilidad de inferir
automticamente celdas
de entrada/salida tanto
salidas de 3 estados
como bidireccionales.
if (EN = 0) then
OUT_PAD <= BUS_OUT;
else
OUT_PAD <= Z;
end if;
El uso de la asignacin
de Z es la que permite a
la herramienta de sntesis
inferir en el buffer de tres
estados.
Sntesis
EN
BUS _OUT
OUT_PAD
Sntesis
CORE_OUT
CORE_IN
EN
Sentencia
concurrente
Uso de la asignacin
al valor Z
BIDI
Q
Terminal de
Salida
CLK
La implementacin es
automtica utilizando un
registro en la celda de
entrada/salida apropiada
si esta disponible.
Debe soportar el uso
implcito de enable y
reset sncronos en la
celda.
Pull-up
Xilinx en su mayora de
dispositivos permite el uso de
pull-up/down, en las terminales
de entrada/salida.
Requerimentos de ruteo
especiales
XC3000
BUFG
XC5200
BUFG
XC4000E BUFGP,BUFGS
BUFG
Puede ser aplicado sobre un IBUF (buffer de entrada), o
sobre redes internas que manejan seales de CLK.
El efecto que tiene es conectar una seal, por la ruta
mas corta, a la red sobre la que se aplica el BUFG
Ejemplos:
BUFG = CLK: mapea hacia una lnea global de reloj
(GCK)
BUFG = OE: mapea hacia una lnea global de control 3estado.
BUFG = SR: mapea a una linea global de control
set/reset
Sintaxis BUFG
TIEMPO
ESTRUCTURA
Composicin de
elementos.
ENTIDAD
La entidad en VHDL
describe la interfase de un
bloque jerrquico, sin
describir su comportamiento.
La entidad es equivalente a
un smbolo en un diseo
basado en una estructura
esquemtica.
Es la porcin de cdigo que
permite definir en particular
Entradas y Salidas
ENTIDAD:
Informaciones Complementarias
Equivalente a smbolos en los esquemas.
- Los ports de entrada/salida deben imperativamente
estar declarados dentro de la entidad y definir su modo:
in, out, inout, buffer.
Modo por defecto:in
- Los ports pueden igualmente ser declarados en forma
de seales simples (ej. Bit) o en forma de bus (ej:
bit_Vector).
-
EJEMPLO DE ENTIDAD
Ejemplo:
entity Ejemplo is
port(
A,B:in bit_vector(7 downto 0);
SEL:in bit;
Mux_OR:out bit );
end Ejemplo;
Equivalencia
Esquemtica
Smbolo Ejemplo
A[7:0]
B[7:0]
Sel
MUX_OR
ARQUITECTURA
Entidad y Arquitectura
PAQUETE
ARREGLOS
Signal
C_BUS
Signal
Z_BUS
B11111010
B1111_1010
XFA
B11111010
O372
B011111010
SIG_A
1 1 1 0 0 0 1 1
Designacin
Base
Binaria
Octal
Hexadecimal
Dos objetos de tipo arreglo pueden ser asignados uno al otro, mientras sean
del mismo tamao y del mismo tipo:
Notar que la asignacin es por posicin y no por nmero de ndice. El
concepto de bit ms significativo no esta definido en VHDL.
signal
signal
Signal
C_BUS
Signal
Z_BUS
legal
Z_BUS (3 downto 0) <=00
C_BUS:(2 to 4) <= Z_BUS (3 downto 1);
ilegal
Z_BUS (0 to 1) <=111
Concatenacin y agregados.
Concatenacin
VHDL tiene la habilidad de asociar bits individuales y vectores para formar una
estructura de arreglo. Esto es conocido como concatenacin y utiliza el operador
ampersand (&). Los ejemplos muestran que bits individuales y vectores de bits
pueden ser concatenados para formar nuevos vectores
signal
signal
signal
signal
signal
Agregados.
Otro mtodo de
asignacin a
elementos de un
arreglo es conocido
como agregado.
Un agregado esta
contenido entre
parntesis y las
asignaciones a cada
elemento son
separadas por
comas.
signal
signal
Z_BUS(3)<=A;
Z_BUS(2)<=B;
Z_BUS(1)<=C;
Z_BUS(0)<=D;
signal
signal
signal
nombre
rango
nombre
signal
signal
signal
Un-initialised
High Impedance
Drive strengths
Dont care
Logic 0
Logic 1
Unknown
Dont care
Un-initialised
High impedance
VDD
1
?
c
c
input
Output
VDD
RONPU
Output=Vdd
Input=L
ROFFPD
ROFFP
ROFFPD
RONPU
=H
VDD
RONPU
Output=Vdd
Input=H
RONPD
RONPD
RONPD
RONPU
=L
1
0
VDD
0
c
c
input
Output
OBJETOS MANIPULABLES
Declaracin de Objetos
La formula de declaracin de constantes,
variables y seales es:
Por ejemplo:
SIGNAL nodno1: BIT:='1';
VARIABLE var1:BIT;
CONST pi: REAL:=3.14159;
Seales
Seales
Seales
Forma de declarar una seal:
signal identificator: tipo: [rango];
Ejemplo:
signal vcc: bit: 1;
signal suma: bit_vector: (3 downto 0);
Seales
Seales
Seales
Ejemplos:
signal count: integer range 1 to 50; (el valor inicial ser
1)
signal GROUND: BIT:='0';
signal YS_BUS std_logic_vector (7 downto 0);
port (B,A: in integer range 0 to 9);
signal bogus: bit_vector; (Errnea, no hay dimensin)
Driver de seal
Creacin de un driver
ARCHITECTURE t1 OF d1 IS
BEGIN
a <= b AFTER 10 ns ;
a <= c AFTER 10 ns ;
END t1;
Funcin de resolucin
SLAST_VALUE
evento.
SLAST_ACTIVE
transaccin
Habiendo definido el tipo, podemos definir seales de este tipo. Aqu hemos
declarado la seal STATE de tipo MY_STATE. Debemos observar las reglas
estrictas cuando usemos estas seales: no podemos asignar nada a la
seal STATE que no sea del tipo MY_STATE
type MY_SATE is
(RESET, IDLE, RW_CYCLE, INT_CYCLE);
Signal
STATE: MY_STATE;
Signal
TWO_BIT: bit_vector (0 to 1);
STATE<=RESET;
STATE<=00;
STATE<=TWO_BIT;
CONSTANTES
Una constante es un objeto que se inicializa
a un determinado valor y no puede ser cambiado una vez
inicializado.
Ejemplos
VARIABLES
: tipo
[expresion];
Ejemplos
ARCHIVOS (FICHEROS)
Permiten comunicar un diseo VHDL con el exterior, el modelo
lee y escribe datos persistentes.
En el paquete texti o de la biblioteca standar hay
tipos de datos y operaciones de lectura/escritura de archivos de
texto.
VHDL soporta subprogramas para leer y escribir
archivos en forma secuencial.
: tipo
: tipo
Ejemplos
file Estimulos : FicheroEnteros open read_mode is datos.in;
file Salida
: FicheroEnteros open write_mode id datos.out;
ASIGNACION DE UN VALOR
DEFINICION DE PUERTOS
Modo de Puerto
in
Un puerto es de modo in si la informacin correspondiente al mismo, entra a la
entidad y se suele usar para relojes, entradas de control (como las tpicas load, reset y
enable), y para datos de entrada unidireccionales.
out
Un puerto es de modo out si la informacin fluye hacia fuera de la entidad.
Este modo no permite realimentacin ya que al declarar un puerto como out estamos
indicando al compilador que el estado lgico en el que se encuentra no es leble.
buffer
Este modo es similar al modo out, pero adems, permite la realimentacin y no es
bidireccional, y solo puede ser conectado directamente a una seal interna, o a un
puerto de modo buffer de otra entidad. Una aplicacin muy comn de este modo es
la de salida de un contador, ya que debemos saber la salida en el momento actual
para determinar la salida en el momento siguiente.
inout
Es usado para seales bidireccionales, es decir, si necesitamos que por el mismo
puerto fluya informacin tanto hacia dentro como hacia afuera de la entidad. Este
modo permite la realimentacin interna y puede reemplazar a cualquiera de los
modos anteriores, pudindose usar este modo para todos los puertos.
bit
Puede tomar dos valores: 0 1 ( o tambin "low" o "high", segn se prefiera). Es el tipo
ms usado de los nativos
bit_vector
Es un vector de bits. Debemos tener cuidado al definir el peso de los bits que lo integran,
ya que segn pongamos la palabra reservada downto o to estaremos diciendo que el bit
ms significativo es el nmero ms alto o el ms bajo del vector, respectivamente..
numero : bit_vector (0 to 7);
numero : bit_vector (7 downto 0);
integer
Para mantenerr nmeros enteros. Hay que advertir que el uso de enteros consume
muchos recursos del dispositivo de lgica programable, siempre y cuando sea
sintetizable, debido a que est prcticamente creado para la simulacin.
behavioral
dataflow
structural
mixto
Estilo behavioral
entity compa is
port (
a,b: in bit_vector(3 downto 0);
igual: out bit
);
end compa;
Estilo dataflow
architecture dataflow1 of compa is
begin
igual<='1' when (a=b) else '0';
end dataflow1;
Estilo structural
Estilo mixto
architecture struct of compa is
signal x: bit_vector(0 to 3);
Component xnor2
Port (e1,e2:in bit; y:out bit);
End component;
Component and4
Port (e1,e2,e3,e4:in bit; y:out bit);
End component;
begin
u0: xnor2 port map (a(0),b(0),x(0));
u1: xnor2 port map (a(1),b(1),x(1));
u2: xnor2 port map (a(2),b(2),x(2));
u3: xnor2 port map (a(3),b(3),x(3));
u4: and4 port map (x(0),x(1),x(2),x(3),igual);
end struct;
TIPO
Ejemplo:
Entity HALFADD is
port (A,B
: in bit;
Tipos predefinidos
Escalares
Enumerados
BOOLEAN,BIT,CHARACTER
Enteros
INTEGER
Fsicos
TIME
Flotantes
REAL
Compuestos
Arrays
STRING,BIT_VECTOR
Otros
Puntero
ACCESS
Archivos
FILE
TIPO BOOLEAN
Este tipo de dato puede tomar un valor
falso o verdadero
TRUE
FALSO
TIPO BIT
El tipo BIT sirve para modelar niveles lgicos.
Conjunto de valores 0 y 1
Operaciones definidas sobre el:
Lgicas: not,and,nand,or,nor,xor y xnor
Comparacin: =, /=,<, <=, >, >=
Concatenacin: &
type bit is (0, 1)
TIPO CHARACTER
TIPO INTEGER
Un tipo integer es un dato cuyo contenido es un
valor numerico entero que esta dentro del siguiente rango :
2,147,483,647 a +2,147,483,647.
Ejemplos
+1
682
-139
+239
TYPE Integer IS 0 TO 255;
TYPE index IS RANGE 7 DOWNTO 1;
TIPO TIME
El tipo TIME sirve para especificar valores de
tiempo en los modelos
Se define la unidad bsica y las derivadas de ellas.
type time is orange -2147483647 to 2147483647
units
fs;
ps = 1000 fs;
ns = 1000 ps;
us = 1000 ns;
min = 60 sec;
end units;
TIPO REAL
TIPO STRING
El tipo string se define como un arreglo
de cadenas de caracteres.
Ejemplos
error en sincronia
Hola Mundo
TIPO BIT_VECTOR
SUBTIPOS DE DATOS
Ejemplo:
SUBTYPE raro IS integer RANGE 4 TO 7;
SUBTYPE digitos IS character RANGE '0' TO
'9';
El segundo tipo de subtipos son aquellos que
restringen el rango de una matriz:
Ejemplo:
SUBTYPE id IS string(1 TO 20);
SUBTYPE word IS bit_vector(31 DOWNTO 0);
Tipos enumerated.
La mayora de las herramientas de sntesis pueden construir lgica desde una seal
del tipo enumerated. Usualmente la seal tiene el nmero mnimo de bits requerido
para representar el nmero de valores posibles. Este ejemplo muestra cada como cada
valor es usualmente codificado en la implementacin del hardware.
type MY_SATE is
(RESET, IDLE, RW_CYCLE, INT_CYCLE);
Codificacin de derecha a izquierda en secuencia binaria
RESET
IDLE
RW
INT_CYCLE
Mnimo nmero de bits
00
01
10
11
Integer
real
STANDARD_LOGIC
TIPO STD_ULOGIC
TIPO STD_LOGIC
Z<= A;
Z<= B;
RES_Z<= A;
RES_Z<= B;
library IEEE;
use IEEE.Std.Logic_1164.all;
entity MVLS is
port (A,B: in std_ulogic;
Z: out std_ulogic);
end MVLS;
OPERADORES LOGICOS
OPERADORES RELACIONALES
OPERADORES ARITMETICOS
Operan
sobre objetos de
tipo INTEGER.
Pueden
igualmente
operar sobre
STD_LOGIC_VECTOR
utilizando los paquetes
STD_LOGIC_UNSIGNED
y STD_LOGIC_ARITH.
OPERADORES DE DESPLAZAMIENTO
rol
ror
sll
srl
sla
sra
( rotate left )
( rotate right )
( shift left logical )
( shift rigth logical )
( shift left arithmetic )
( shift right arithmetic )
INSTRUCCIONES
SECUENCIALES Y
CONCURRENTES
Instrucciones concurrentes
Ejemplo
Entity CONCURRENT is
port(A, B, C : in bit;
S, T : out bit); end CONCURRENT;
Architecture ARCHI of CONCURRENT is
begin
S <= (A and B) and not(C);
T <= B xor C;
end ARCHI;
X <= A + B;
Z <= C + X;
Z <= C + X;
X <= A + B;
Asignacin concurrente
Los diseos esquemticos son usados para representar
hardware, por lo que son concurrentes por naturaleza.
X <= A + B;
Z <= C + X;
Z <= C + X;
X <= A + B;
A
B
C
Asignacin Concurrente
En Software;
Registro X
Registro X
No para Hardware
Siendo una sentencia concurrente, esta misma lnea de
cdigo est describiendo un sumador, sin registros de
almacenamiento implcitos.
X <= x + y;
En Hardware;
x y
+
x
Instrucciones secuenciales
Las operaciones se efectan en secuencia.
El orden afecta los resultados de simulacin y sintsis.
Estilo de escritura parecido a los lenguajes de
informtica de alto nivel.
Las instrucciones secuenciales se usan en partes
especficas del cdigo: PROCESO o subprogramas.
Ejemplo
Architecture ARCHI of SECUENCIA is
begin
process begin
wait until CKevent and CK = 1;
if ENA = 1 then COUNT <= COUNT+1;
end if;
end process;
end ARCHI;
Instrucciones concurrentes
Asignacin de seales por condicin: WHENELSE
Sintaxis:
Signal_x <= valor_x when signal_y = valor_y
else valor_z;
Notar que el valor_z es indicado directamente despus
de else. (El smbolo de asignacin <= es implcito)
Ejemplo
entity CONCURRENT is
port (A, B, C : in bit; S, T : out bit);
end CONCURRENT;
architecture ARCHI of CONCURRENT is
begin
S <= A when C = 1 else B;
T <= B xor C;
end ARCHI;
Ejemplo
entity CONCURRENT is
port (A, B, C : in bit; S, T : out bit);
end CONCURRENT;
architecture ARCHI of CONCURRENT is
Begin
if (c = 1) then S <= A
else S <= B;
T <= B xor C;
end ARCHI;
Ejemplo
Entity CONCURRENT is
port (A, B, C : in bit; S, T : out bit);
end CONCURRENT;
architecture ARCHI of CONCURRENT is
begin
S <= A when C = 1 else B;
T <= not B;
end ARCHI;
Las
dos
instrucciones
(o
asignaciones)
son
concurrentes. El orden de escritura no afecta los
resultados.
Estas instrucciones generan:
A
B
C
Ejemplo
Entity TRISTATE is
port (A, B, C, : in std_logic; S : out std_logic );
end TRISTATE
Architecture ARCHI of TRISTATE is
begin
S <= A when C = 0 else Z;
S <= B when C = 1 else Z;
end ARCHI;
C
A
Entity is
port (A, B : in std_logic_vector(15 downto 0);
C : in std_logic;
S : out std_logic_vector(15 downto o));
end TRISTATE;
Architecture ARCHI of TRISTATE is
begin
S<=A when C=0 else ZZZZZZZZZZZZZZZZ;
S<=B when C=1 else ZZZZZZZZZZZZZZZZ;
End ARCHI;
B[ 15:0]
A[ 15:0]
S[ 15:0]
Ejemplo:
Ejemplo 2:
A
B
C
D
SEL[1:0
]
S
B
Ciclos con:
for - in to - generate
Sintaxis:
Decodificador.
Hexadecimal 7 Segmentos.
Tabla de verdad:
A
a
f
g
e
c
d
CONFIGURACION
La configuracin es como
una lista de partes,
especificando cual
arquitectura debe ser
usada para cada entidad
del diseo.
Permitir una
configuracin por default
permite que el cdigo sea
ms portable.
CONFIGURACION
COMPILACION
Despus de que se ha
escrito el cdigo de VHDL en
un archivo de texto, el
cdigo es analizado para
determinar si tiene errores
de sintaxis, y se crea un
archivo binario.
Este proceso es realizado
por unas de las herramientas
para compilacin y por otras
herramientas para anlisis.
MAPEO DE BIBLIOTECAS
Las herramientas de
simulacin y sntesis de
VHDL acceden a un archivo
que tiene un mapa de los
nombres de las bibliotecas
de VHDL con los directorios
fsicos en la computadora.
Como se ejecuta
una simulacin
Mecanismo
de
Cola
En un momento dado dentro de una simulacin se generan 2
colas:
Cola de seales a actualizar
Cola de procesos a ejecutar
Actualizacin de la
seal
M <= B;
Proceso puesto
en la cola
B actualizada
Actualizacin de la
seal
CicloComoDelta
resultado de la actualizacin de las seales, otros procesos
Ejemplo: process(A,B,M)
Begin
Y <= A;
M <=B;
Z <=M;
end process Ejemplo;
Actualizacin de
la seal
Ejecucin del
proceso
Ejecucin sobre el
tiempo
Actualizacin
de la seal
Ejecucin
del proceso
Actualizacin
de la seal
Ejecucin
del proceso
Tiempo de simulacin
La clusula after
La
5 ns
Tiempo de simulacin
5 ns
Tiempo de simulacin