Vous êtes sur la page 1sur 18

2016

Instituto Tecnolgico de Tuxtla Gutirrez

Descripcin general del lenguaje VHDL

Catedrtico:
Hctor Hernndez De Len

Integrantes
Lopez Ruiz Fredi Francisco
Perez Ozuna Marco Emilio

Descripcin general del lenguaje VHDL


12 de abril del 2016
Diseo Digital con VHDL

ndice 2

Elementos del lenguaje VHDL (Estructura de programa, sintaxis y

operadores) . 3

Declaraciones bsicas de objetos.. 9

Declaraciones concurrentes... 10

Ejemplos de declaraciones secuenciales. 12

Funciones y subprogramas. 14

Programacin de FPGAs o CPLDS en una aplicacin. 17

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

1.1 Elementos del lenguaje VHDL 3


Los lenguajes de descripcin de hardware (HDLs) son utilizados para
describir la arquitectura y comportamiento de un sistema electrnico los
cuales fueron desarrollados para trabajar con diseos complejos.
Comparando un HDL con los lenguajes para el desarrollo de software vemos
que en un lenguaje de este tipo un programa que se encuentra en un
lenguaje de alto nivel (VHDL) necesita ser ensamblado a cdigo mquina
(compuertas y conexiones) para poder ser interpretado por el procesador. De
igual manera, el objetivo de un HDL es describir un circuito mediante un
conjunto de instrucciones de alto nivel de abstraccin para que el programa
de sntesis genere (ensamble) un circuito que pueda ser implementado
fsicamente.

1.1.1 Elementos sintcticos del VHDL

El lenguaje VHDL tiene sus elementos sintcticos, sus tipos de datos, y sus
estructuras como cualquier otro tipo de lenguaje. El hecho de que sirva para
la descripcin hardware lo hace un poco diferente de un lenguaje
convencional. Una de estas diferencias es probablemente la posibilidad de
ejecutar instrucciones a la vez de forma concurrente. Algunos de estos
elementos sintcticos son:

1) Comentarios: Cualquier lnea que empieza por dos guiones "--" es un


comentario.

2) 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 Jos
representan el mismo elemento. No puede haber ningn identificador que
coincida con alguna de las palabras clave del VHDL.

3) 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.

4) Caracteres: Es cualquier letra o carcter entre comillas simples:


'l','3','t'.
Descripcin general del lenguaje VHDL
Diseo Digital con VHDL

4
5) Cadenas: Son un conjunto de caracteres englobados por comillas
dobles: "Esto es una cadena".

6) Cadenas de bits: Los tipos bit y bit vector son en realidad de tipo
carcter y matriz de caracteres respectivamente. En VHDL se tiene una
forma elegante 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".

1.1.2 Operadores y expresiones en VHDL

Las expresiones en VHDL son prcticamente iguales a como pudieran ser en


otros lenguajes de programacin o descripcin, por lo que se expondrn
brevemente algunos de los existentes en VHDL y su utilizacin.

Operadores varios

& (Concatenacin) Concatena matrices de manera que la dimensin de la


matriz resultante es la suma de las dimensiones de las matrices sobre las
que opera:

salida <=x&y

Operadores aritmticos

** (Exponencial) Sirve para elevar un nmero a una potencia: 4**2 es 4^2.


El operador de la izquierda puede ser entero o real, pero el de la derecha
sola puede ser entero.

ABS() (Valor absoluto) Como su propio nombre indica esta funcin devuelve
el valor absoluto de su argumento que puede ser de cualquier tipo numrico.

* (Multiplicacin) Sirve para multiplicar dos nmeros de cualquier tipo (los


tipos bit o bit vector no son numricos).

/ (Divisin) Tambin funciona con cualquier dato de tipo numrico.

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

MOD (Mdulo) Calcula en mdulo de dos nmeros. Exactamente se define


5
el mdulo como la operacin que cumple: a=b*N+(a MOD b) donde N es un
entero. Los operadores solo pueden ser enteros. El resultado toma el signo
de b.

REM (Resto) Calcula el resto de la divisin entera y se define como el


operador que cumple: a=(a/b)*b+(a REM b), siendo la divisin entera. Los
operadores solo pueden ser enteros. El resultado toma el signo de a.

+ (Suma y signo positivo) Este operador sirve para indicar suma, si va


entre dos operadores, o signo, si va al principio de una expresin. La
precedencia es diferente en cada caso. Opera sobre valores numricos de
cualquier tipo.

- (resta y signo negativo) Cuando va entre dos operadores se realiza la


operacin de sustraccin, y si va delante de una expresin le cambia el
signo. Los operadores pueden ser numricos de cualquier tipo.

Operadores de desplazamiento

SLL, SRL (desplazamiento lgico a izquierda y a derecha) Desplaza un


vector un nmero de bits a izquierda (SLL) o derecha (SRL) rellenando con
ceros los huecos libres. Se utiliza en notacin infija de manera que la seal a
la izquierda del operador es el vector que se quiere desplazar y el de la
derecha es un valor que indica el nmero de bits a desplazar. 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) El primero devuelve TRUE si los operadores son iguales y


FALSE en caso contrario. El segundo indica desigualdad, funciona justo al

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

revs. Los operadores pueden ser de cualquier tipo con la condicin de que
6
sean ambos del mismo tipo.

<,<=,>,>= (menor mayor) Tienen el significado habitual. La diferencia con


los anteriores es que los tipos de datos que pueden manejar son siempre de
tipo escalar o matrices de una sola dimensin de tipos discretos.

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, bit vector y
booleana. En el caso de realizarse estas operaciones sobre un vector, la
operacin se realiza bit a bit, incluyendo la operacin NOT.

1.1.3 Tipos de datos

Tipos de datos escalares: Conjuntos ordenados de identificadores o


caracteres definidos por el usuario, tiles para definir los estados de una
mquina de estados finitos.

TYPE nombre_del_tipo IS (valor1, valor2,..., valorN);

TYPE variosLogicos IS (X, 0, 1, Z);

TYPE semaforo IS (rojo, verde, ambar, apagado);

Ejemplos

SIGNAL estadoActual: semaforo:= apagado;

VARIABLE logicaMitad: variosLogicos;

Enteros:

Definidos en el paquete estndar

TYPE integer IS RANGE -2147483648 TO 2147483647;


Descripcin general del lenguaje VHDL
Diseo Digital con VHDL

7
Tienen asociados las operaciones matemticas de suma (+), resta (-),
multiplicacin (*) y divisin (/).

El rango puede ser especificado en orden:

Ascendente: (lmiteInferior TO lmiteSuperior).


Descendente: (lmiteSuperior DOWNTO lmiteInferior).

Fsicos:

Fsico Es un tipo enumerado que se utiliza para representar magnitudes


fsicas (tiempo, distancia, capacidad). Tienen un valor y unas unidades.

Internamente son considerados como enteros.

TYPE nombreMagnitud IS RANGE restriccin de rango UNITS

Identificador= valores unidades; END UNITS;

Ejemplos:

TYPE tiempo IS RANGE 0 TO 10000000;

UNITS ns; -- nanosegundo us = 1000 ns; -- microsegundo ms = 1000 us; --


milisegundo s = 1000 ms; -- segundo END UNITS;

TYPE frecuencia IS RANGE 0 TO 10000000; UNITS Hz; -- Herzios KHz =


1000 Hz; -- Kiloherzios MHz = 1000 KHz; -- Megaherzios GHz = 1000 MHz; --
Gigaherzios

END UNITS;

Coma flotante

Nmeros reales definidos en el paquete estndar

TYPE real IS RANGE -1.0E38 TO 1.0E38;

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

8
Tienen asociados las operaciones matemticas de suma (+), resta (-),
multiplicacin (*) y divisin (/).
Declarados de igual forma que los enteros.
Nmeros reales definidos por el usuario

TYPE nombre IS RANGE rango de nmeros reales;

Ejemplos:

TYPE notas IS RANGE 10.0 DOWNTO 0.0;

TYPE probabilidad IS RANGE 0.0 TO 1.0;

Tipos de datos compuestos:


Vectores y matrices

Es una coleccin indexada de elementos que son del mismo tipo.


Cada elemento de un vector o una matriz puede ser accedido por uno o
ms ndices.
Son especialmente tiles para modelar memorias (RAM/ROM).

TYPE identificador IS ARRAY rango OF tipoDatos;

1.1.4 Subtipos de datos

Se utilizan para definir subconjuntos ya declarados en un tipo de datos.


Son tiles para detectar si un objeto toma valores dentro del rango
esperado.
Un tipo y un subtipo se consideran el mismo tipo de datos y pueden
mezclarse en una operacin.

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

SUBTYPE identificadorSubtipo IS identificadorTipo [RANGE valor1


9
O/DOWNTO valor2]

Ejemplo;

TYPE hexadecimal IS (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B , C, D, E,


F);

SUBTYPE octal IS hexadecimal RANGE 0 TO 7;

1.2 Declaraciones bsicas de objetos


1.2.1 Declaracin de constantes Las contantes son elementos que se
inicializan con un valor que no puede ser cambiado

CONSTANT pi=3.14159;

CONSTANT retraso:time:= 10ns

1.2.2 Declaracin de variables Se diferencia de una constante en que si


se puede cambiar su valor. Se le puede dar valor inicial.

VARIABLE contador: natural:=0;

VARIABLE aux:_std_logic_vector (31DOWNTO 0);

1.2.3 Declaracin de seales Se declaran de forma similar a las


contantes y variables, pero pueden ser de 3 tipos; normal, register y
bus. Por defecto se usa el tipo normal.

SIGNAL selec: std_logic_=0;

SIGNAL dato:std_logic_vector (7DOWNTO 0);

1.2.4 Declaracin de ficheros

En algunas ocasiones es interesante utilizar ficheros para leer informacin


o incluso almacenarla. El uso de ficheros nicamente es vlido en la
Descripcin general del lenguaje VHDL
Diseo Digital con VHDL

simulacin, mientras que en la sntesis no es posible su uso. Estos ficheros


10
no pueden almacenar matrices multidimensionales, punteros o ficheros.

En primer lugar se debe declarar el tipo de datos que contendr dicho


archivo. Mediante las palabras reservadas TYPE y FILE se genera la
siguiente estructura.

TYPE fichero_tipo IS FILE OF tipo; FILE nombre : fichero_tipo IS


[modo] "fichero": -- VHDL'87 [fichero_tipo [OPEN modo] IS
"fichero"] -- VHDL'93.

1.3 Declaraciones concurrentes


1.3.1 Declaracin de entidad

La entidad sirve para definir las entradas y salidas que tendr un


determinado circuito. Para definir una entidad se realizar mediante la
palabra reservada ENTITY.
En principio pudiera parecer que esta definicin sea equivalente a la
cabecera de una funcin de un lenguaje cualquiera de programacin. En
VHDL es ms conveniente ver a la entidad como una caja negra con cables
para las entradas y salidas. La ventaja de pensar en una entidad como en
una caja negra a la que se conectan cables es que es ms fcil comprender
la ejecucin concurrente que ocurrir en el hardware. La descripcin de
cmo funciona por dentro esa caja negra es la arquitectura.

ENTITY nombre IS

[GENERIC(lista de parmetros);]

[PORT(lista de puertos);]

END [ENTITY] nombre;

1.3.2 Declaracin de arquitectura

La arquitectura es lo que define cmo se comporta un circuito.

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

11
ARCHITECTURE mux_comportamiento OF mux IS

ARCHITECTURE mux_rtl OF mux IS

ARCHITECTURE mux_estructural OF mux IS

1.3.3 Diferentes tipos de arquitectura (estructural, flujo de datos y


funcional).

La descripcin estructural es mucho ms fcil de sintetizar que la descripcin


funcional por que se refiere a componentes fsicos concretos. Sin embargo es
ms difcil de desarrollar porque requiere de mayor experiencia del diseador
para hacer los diseos ms eficientes.

1.3.4 Ejemplos de descripcin flujo de datos

A la hora de plantearse crear un programa en VHDL no hay que pensar


como si fuera un programa tpico para ordenador. No hay que olvidar que
en VHDL hay que describir un hardware, algo que no se hace en un
programa para ordenador. Un circuito electrnico puede tener muchos
elementos que estn ejecutando acciones a la vez, por ejemplo en un
circuito puede tener una entrada que se aplique a dos puertas lgicas y de
cada una obtener una salida, en este caso tendra dos caminos en los que
se ejecutaran acciones (operaciones lgicas (AND,OR,NOT,IF), de unin,
de interseccin y de complemento) de forma paralela. Esto es lo que se
llama concurrencia.
VHDL es un lenguaje concurrente, como consecuencia no se seguir el
orden en que estn escritas las instrucciones a la hora de ejecutar el
cdigo. De hecho, si hay dos instrucciones, no tiene porqu ejecutarse una
antes que otra, pueden ejecutarse a la vez.

s <= "00" WHEN a = b ELSE "01" WHEN a > b ELSE "11";

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

1.4 Ejemplos de declaraciones secuenciales


12
Permite la ejecucin de un bloque de cdigo dependiendo de una o varias
condiciones.

Ejemplo:

IF (reloj='1' AND enable='1') THEN

salida<=entrada;

ELSIF (enable='1') THEN

salida<=tmp;

ELSE

salida<='0';

END IF;

1.4.1 Ejemplos de diagramas de mquinas de estado

El objetivo es crear un sistema que genere unas salidas determinadas,


dependiendo de los estados por donde va fluyendo la ruta de datos. Por
consiguiente, har falta el reset y reloj del sistema como entradas del
sistema. Tambin se aade una seal para sacar el estado al exterior.

Entradas:
rst: Reset del sistema.

clk: Reloj del sistema.

Salidas:
a: Salida de datos.
b: Salida de datos.
estado: Salida del estado.

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY


maquina_estados IS PORT (clk : IN std_logic; rst : IN std_logic;
a : OUT std_logic; b : OUT std_logic; estado : OUT

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

std_logic_vector(3 downto 0)); END maquina_estados;


13
ARCHITECTURE synth OF maquina_estados IS SIGNAL pstate,
n_state : std_logic_vector(3 downto 0); BEGIN -- maquina de estados
PROCESS (clk, rst) BEGIN IF rst = '1' THEN pstate <= "0000";
ELSIF clk = '1' AND clk'event THEN pstate <= n_state; END IF;
END PROCESS; estado <= pstate; n_state <= "0001" WHEN (pstate
= "0000") ELSE
"0010" WHEN (pstate = "0001") ELSE "0011" WHEN (pstate =
"0010") ELSE
"0100" WHEN (pstate = "0011") ELSE "0101" WHEN (pstate =
"0100") ELSE
"0011" WHEN (pstate = "0101") ELSE
"0111" WHEN (pstate = "0011") ELSE
"1000" WHEN (pstate = "0111") ELSE
"1001" WHEN (pstate = "1000") ELSE "0000"; a <= '1' WHEN
pstate = "0000" ELSE --0 '0'
WHEN pstate = "0001" ELSE --1 '0'
WHEN pstate = "0010" ELSE --2 '1'
WHEN pstate = "0011" ELSE --3 '1'
WHEN pstate = "0100" ELSE --4 '1'
WHEN pstate = "0101" ELSE --5 '1'
WHEN pstate = "0110" ELSE --6 '1'
WHEN pstate = "0111" ELSE --7 '1'
WHEN pstate = "1000" ELSE --8 '1'
WHEN pstate = "1001" ELSE --9 '0';
b <= '1' WHEN pstate = "0000" ELSE --0 '1'
WHEN pstate = "0001" ELSE --1 '1'
WHEN pstate = "0010" ELSE --2 '1'
WHEN pstate = "0011" ELSE --3 '1'
WHEN pstate = "0100" ELSE --4 '0'
WHEN pstate = "0101" ELSE --5 '0'
WHEN pstate = "0110" ELSE --6 '1'
WHEN pstate = "0111" ELSE --7 '1'
WHEN pstate = "1000" ELSE --8 '1'
WHEN pstate = "1001" ELSE --9 '0';
END synth;

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

1.5 Funciones y subprogramas


14
Como en otros lenguajes de programacin, en VHDL es posible estructurar
el cdigo mediante el uso de subprogramas. Realmente, un subprograma
es una funcin o procedimiento que realiza una determinada tarea, aunque
existen ciertas diferencias entre ambas.

Una funcin devuelve un valor y un procedimiento devuelve los valores a


travs de los parmetros que le han sido pasados como argumentos. Por
ello, las primeras debern contener la palabra reservada RETURN, mientras
que las segundas no tienen necesidad de disponer dicha sentencia, en caso
de tener una sentencia de ese tipo interrumpir la ejecucin del
procedimiento.

A consecuencia de la anterior, en una funcin todos sus parmetros son de


entrada, por lo que slo pueden ser leidos dentro de la misma, por el
contrario en un procedimiento los parmetros pueden ser de entrada, de
salida o de entrada y salida (unidireccionales o bidireccionales).

Las funciones se usan en expresiones, sin embargo, los procedimientos se


llaman como una sentencia secuencial o concurrente.

Los procedimientos pueden tener efectos colaterales al poder cambiar


seales externas que han sido pasadas como parmetros, por otro lado las
funciones no poseen estos efectos.

Las funciones nunca pueden tener una sentencia WAIT, pero los
procedimientos s.

1.5.1 Declaracin de procedimientos y funciones

Las declaraciones de estos elementos pueden realizarse en la parte


declarativas de las arquitecturas, bloques, paquetes, etc. A continuacin, se
muestra la estructura de un procedimiento.

PROCEDURE nombre[(parmetros)] IS

[declaraciones]

BEGIN

[sentencias]

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

END [PROCEDURE] [nombre];


15

1.5.2 Subprogramas

Es muy sencillo realizar una invocacin a un subprograma, basta con


indicar el nombre de dicho subprograma seguido de los argumentos, los
cuales irn entre parntesis. En VHDL existen varias formas de pasar los
parmetros a un subprograma.

Asociacin implcita: Poniendo los parmetros en el mismo orden en el que


se declaran en el subprograma. Por ejemplo, si se dispone del siguiente
procedimiento.
PROCEDURE limite(CONSTANT conj : IN std_logic_vector(3 DOWNTO 0);
VARIABLE min, max : INOUT integer) IS

...

limite(cjt(31 DOWNTO 28), valmin, valmax); -- Llamada al procedimiento.

1 Asociacin explcita: Los parmetros se colocan en cualquier orden. Un


ejemplo de la llamada al procedimiento anterior podra ser la siguiente.

limite(min=>valmin, max=>valmax, conj=>cjt(31 DOWNTO 28));

2 Parmetros libres: En VHDL es posible dejar parmetros por especificar,


de forma que tengan unos valores por defecto, y en el caso de pasar un
valor a dichos argumentos puedan tomar el valor especificado. Un ejemplo
de este tipo de llamadas sera el siguiente.

PROCEDURE lee(longuitud : IN integer := 200) IS

BEGIN

....

END PROCEDURE;

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

Posibles llamadas
16
lee; lee(350);

1.5.3 Paquetes

Como se coment al principio, un paquete consta de un conjunto de


subprogramas, constantes, declaraciones, etc., con la intencin de
implementar algn servicio. As se pueden hacer visibles las interfaces
de los subprogramas y ocultar su descripcin.

1.5.4 bibliotecas

Hasta ahora se han visto varios elementos del lenguaje, como pueden
ser las entidades, las arquitecturas, los paquetes, etc. Cuando se realiza
una descripcin en VHDL se utilizan estas unidades, en uno o ms
ficheros, stos se denominan ficheros de diseo. Posteriormente, estos
ficheros sern compilados para obtener una librera o biblioteca de
diseo, de forma que esta biblioteca contiene los elementos que
componen el circuito. La biblioteca donde se guardan los resultados de
la compilacin se denomina work.
Una librera se compone de dos partes bien diferenciadas, dependiendo
de las unidades que la formen. Por un lado, estn las unidades
primarias, que correspondern a entidades, paquetes y archivos de
configuracin. Mientras que las unidades secundarias sern
arquitecturas y cuerpos de paquetes. Por lo tanto, se puede sacar la
conclusin de que cada unidad secundaria deber estar asociada con
una unidad primaria.
Al realizar una compilacin se analizarn las unidades que vayan
apareciendo en el texto. Por consiguiente, es importante establecer un
orden lgico de las distintas unidades, para que de esta forma se
puedan cumplir las dependencias existentes entre las mismas. La forma
que toma la librera una vez compilada es muy diversa; dependiendo de
la herramienta de compilacin utilizada as ser el resultado obtenido,
esto se debe a que en VHDL no existe un estndar para crear
bibliotecas.
Para incluir una librera a un diseo basta con utilizar la palabra
reservada LIBRARY seguida del nombre de la biblioteca a utilizar.
Adems, tambin es posible hacer visibles elementos internos de estas
bibliotecas con el uso de la sentencia USE, como se explic en el
Descripcin general del lenguaje VHDL
Diseo Digital con VHDL

apartado anterior. En el caso de querer hacer visible todos los


elementos de un paquete se puede utilizar la palabra reservada ALL. 17

1.6 Programacion de FPGAs 0 CPLDS en una aplicacin


Mientras el desarrollo de las PALs se enfocaba hacia las GALs y CPLDs
apareci una corriente de desarrollo distinta. Esta corriente de desarrollo
desemboc en un dispositivo basado en la tecnologa de matriz de puertas y
se le denomin field-programmable gate array (FPGA). Algunos ejemplos de
las primeras FPGAs son la matriz 82s100 y el secuenciador 82S105
de Signetics, presentados a finales de los 70. El 82S100 era una matriz de
trminos AND, y tambin tena funciones de biestable.
Las FPGAs utilizan una rejilla de puertas lgicas, similar a la de una matriz
de puertas ordinarias, pero la programacin en este caso la realiza el cliente,
no el fabricante. El trmino field-programmable (literamente programable en
el campo) se refiere a que la matriz se define fuera de la fbrica, o "en el
campo".
Las FPGAs se programan normalmente tras ser soldadas en la placa, en una
forma similar a los CPLDs grandes. En las FPGAs ms grandes, la
configuracin es voltil y debe ser reescrita cada vez que se enciende o se
necesita una funcionalidad diferente. La configuracin se guarda
normalmente en una PROM o EEPROM. Las versiones EEPROM pueden
ser programadas mediante tcnicas como el uso de cables JTAG.
Las FPGAs y los CPLDs son buenas opciones para una misma tarea.
Algunas veces la decisin sobre una u otra es ms econmica que tcnica, o
puede depender de la preferencia personal o experiencia del ingeniero.
Las PALs y GALs estn disponibles slo en tamaos pequeos, equivalentes
a unos pocos cientos de puertas lgicas. Para circuitos lgicos mayores, se
pueden utilizar PLDs complejos o CPLDs. Estos contienen el equivalente a
varias PAL enlazadas por interconexiones programables, todo ello en el
mismo circuito integrado. Las CPLDs pueden reemplazar miles, o incluso
cientos de miles de puertas lgicas.
Algunas CPLDs se programan utilizando un programador PAL, pero este
mtodo no es manejable para dispositivos con cientos de pines. Un segundo
mtodo de programacin es soldar el dispositivo en su circuito impreso. Las
CPLDs contienen un circuito que descodifica la entrada de datos y configura
la CPLD para realizar su funcin lgica especfica.

Descripcin general del lenguaje VHDL


Diseo Digital con VHDL

Cada fabricante tiene un nombre propietario para este sistema de


programacin. Por ejemplo, Lattice Semiconductor la llama In-system 18
programming (Programacin en el sistema). Sin embargo, estos sistemas
propietarios estn dejando paso al estndar del Joint Test Action
Group (JTAG).

Descripcin general del lenguaje VHDL

Vous aimerez peut-être aussi