Professional Documents
Culture Documents
Pgina 1
Hay 2 bibliotecas que siempre son visibles por defecto: std (la
standard) y work (la de trabajo) y que no es necesario declarar.
Entidades (Entity): Es el modelo de interfaz de un circuito con
el exterior mediante unos terminales de entrada y de salida. Es
la caja negra que define las entradas y salidas.
Arquitectura (Architecture): Describe el funcionamiento del
circuito.
Pgina 2
Caja negra:
Pgina 3
Libreras:
Una librera es una coleccin de piezas de cdigo usualmente
empleadas. Esto permite poder reusar esas piezas compartirlas con
otros diseos.
Sintxis:
LIBRARY <nombre de la librera>;
USE <nombre de un package>;
Ejemplos:
LIBRARY ieee;
USE ieee.std_logic_1164;
El cdigo es escrito en forma de Funciones (Functions), Procesos
(Process), Procedimientos (Procedures) Componentes
(Components) y luego ubicados dentro de Paquetes (Packages) para
ser compilados dentro de la Librera destino.
Pgina 4
ieee.std_logic_1164.all;
ieee.std_logic_arith.all;
ieee.std_logic_signed.all;
ieee.std_logic_unsigned.all;
LIBRARY std;
Librera que no requiere ser declarada en un diseo.
Contiene declaraciones de tipos de datos y funciones de entradasalida de texto entre otros.
USE std.standard.all;
USE std.texto.all;
Standard: donde se definen los tipos lgicos y numricos bsicos.
TEXTO: Define tipos para la creacin de texto y procedimientos para
el ingreso e impresin de textos.
LIBRARY work;
USE work.all;
Librera que no requiere ser declarada en un diseo.
Es donde se salvan todos los archivos relacionados con el diseo en
curso (creados por el compilador, simulador, etc.).
USE ieee.std_logic_1164:
Especifica el STD_LOGIC (8 niveles) y el STD_ULOGIC (9 niveles)
para sistemas lgicos multinivel.
De todos estos niveles slo 3 son sintetizables sin restricciones; el
resto sirven para simulacin.
USE ieee.std_logic_arith:
Especifica tipos de datos con y sin signo, operaciones aritmticas y de
comparacin numrica y funciones para conversin de datos.
Pgina 5
USE ieee.std_logic_signed:
Permite operaciones con signo con datos tipo STD_LOGIC_VECTOR.
USE ieee.std_logic_unsigned:
Permite operaciones sin signo con datos tipo STD_LOGIC_VECTOR.
Tipo de seal:
TIPO
BIT
Booleana
Caractersticas
En este tipo las seales solo toman los valores de "1" y "0"
En este tipo las seales solo toman los valores de True y False
Std_logic
Integer
Pgina 6
Bit_Vector
En este tipo los valores de las seales son una cadena de unos
y ceros. Ejemplo: 1000
En este tipo los valores de las seales son una cadena de los
Literales:
Enteros.
Punto flotante.
Literales fsicos (ejemplo ns).
Bases (ejemplo 2#1011#, 8#17#, 16#9FD#).
Caracteres ASCII (ejemplo `M, `5).
Cadena de caracteres (ejemplo: esto es un string).
Otros.
Operadores:
Lgicos: AND, OR, NAND, NOR, XOR, XNOR, NOT para tipos BIT,
BOOLEAN y arrays de ellos.
Relacionales: =, /=, <, <=, >, >= donde los operandos deben ser
del mismo tipo y el resultado es BOOLEAN.
Shift: SLL, SRL, SLA, SRA, ROL, ROR donde el operando izquierdo
debe ser BIT BOOLEAN y el derecho INTEGER.
Pgina 7
Suma y resta: + y -.
MULT y DIV: *, /, MOD y REM.
Miscelneos: exponenciacin (**) y valor absoluto (ABS).Los
comentarios comienzan con doble lnea --.
Las sentencias terminan con ;.
Identificadores:
No hay longitud mxima.
No hay diferencia entre maysculas y minsculas.
Deben empezar con carcter alfabtico.
No pueden terminar con underline.
Pgina 8
DISEO ESTRUCTURAL
Es una forma de disear instanciando subcomponentes que realizan
operaciones mas pequeas del modelo completo.
Ejemplo:
Diseo del mismo mux 4:1 pero con una descripcin estructural
de la arquitectura que ahora denominaremos netlist.
La misma est formada por compuertas de tres tipos diferentes
(andgate, inverter y orgate) interconectadas convenientemente.
Cada tipo de compuerta est especificado como un COMPONENTE
diferente.
andgate es de 3 puertos de entrada y uno de salida.
orgate es de 4 puertos de entrada y uno de salida.
inverter es de un puerto de entrada y uno de salida.
La forma de describir que hace cada compuertas est en la seccin:
BEGIN ..... END de la estructura netlist;
Pgina 9
DISEO ALGORTMICO
Otra forma de describir la funcionalidad de un dispositivo es la de
hacerlo algortmicamente dentro de una sentencia PROCESS.
La sentencia PROCESS consta de una serie de partes:
La primera es la lista de sensibilidad.
La segunda la declarativa
La tercera es la de statement. Comienza en BEGIN.... .
Pgina 10
Ejemplo:
Diseo del mismo multiplexor mux2 en una arquitectura ahora
denominada secuencial donde la misma contiene slo una sentencia
PROCESS....END PROCESS.
(a, b, c, d, s0, s1) es la lista de sensibilidad.
sel es una variable local que se declara (similar a NODE en AHDL).
La ejecucin de la sentencia PROCESS comienza en BEGIN y
termina en END PROCESS.
En esta seccin se han utilizado las funciones IF y CASE para
describir el comportamiento del multiplexor.
Pgina 11
Pgina 12
// If-Else
if(<constant_expression>)
begin : <if_block_name>
// Generate Items
end
else
begin : <else_block_name>
// Generate Items
end
Case:
case <expression> is
when <constant_expression> =>
-- Sequential Statement(s)
when <constant_expression> =>
-- Sequential Statement(s)
when others =>
-- Sequential Statement(s)
end case;
Ingeniero Dagoberto Rodrguez Cedeo
Pgina 13
For:
For (<genvar_id> = <constant_expr>; <constant_expr>;
<genvar_id> = <constant_expr>)
begin : <required_block_name>
// Generate Items
End
While:
while(<expression>)
begin
// Statements
end
DoWhile:
do
begin
// Statements
end
while(<expression>);
Herramientas:
Warp
Altera
Xilinx
ActiveVHDL
GHDL (GNU)
Max+Plus II
Quartus II
ModelSim/ISE
Otros programas estn incluyendo en sus ltimas versiones la
capacidad de programar FPGA usando sus propios lenguajes,
pero tambin incluyen mdulos en VHDL, por ejemplo Protel
DXP, Labview o Matlab.
Pgina 14
BIBLIOGRAFIA:
1. Roth, Charles H. Fundamentos de Diseo Lgico. Ed. Thomson.
2. John F. Wakerly, Diseo digital, principios y prcticas
3. www.altera.com
4. Uyemura, John P. Introduccin al Diseo de Sistemas Digitales. Ed.
Thomson.
Pgina 15