Академический Документы
Профессиональный Документы
Культура Документы
Sistemas Embebidos
CLASE N 01:
Introduccin a los FPGA con VHDL
Ing. Guillermo Evangelista Adrianzn
Universidad Privada Antenor Orrego
gevangelistaa@upao.edu.pe
QU ES FPGA?
Un FPGA (Field Programmable Gate Array) es un dispositivo semiconductor que contiene bloques
de lgica cuya interconexin y funcionalidad puede ser configurado mediante un leguaje de
descripcin especializado. La lgica programable puede reproducir desde funciones tan sencillas
como las llevadas a cabo por una compuerta lgica o un sistema combinacional hasta los SOC
(System on a Chip).
Las FPGAs se utilizan en aplicaciones similares a los ASICs (Application-Specific Integrated Circuit)
sin embargo son ms lentas, tienen un mayor consumo de potencia y no pueden abarcar sistemas tan
complejos como ellos. A pesar de esto, las FPGAs tiene la ventaja de ser reprogramables (aade
flexibilidad al flujo de diseo), menor costo de desarrollo y adquisicin para pequeas cantidades de
dispositivos y tambin menor tiempo de desarrollo.
Historicamente las FPGA surge como una evolucin de los conceptos desarrollados en PAL y CPLD.
Ingresar a la pgina de
Xilinx, revisar su hoja
tcnica y capacidades de
entrenamiento.
Actualmente definido por el IEEE (Institute of Electrical and Electronics Engineers) (ANSI/IEEE) y
usado por ingenieros para describir (algotirmos) y disear (hardware) circuitos y sistemas digitales,
sean estos simples o complejos, mediante la programacin de dispositivos tales como GAL (Generic
Array Logic), PLD (Programmable Logic Device), CPLD (Complex Programmable Logic Device),
FPGA, ASIC y similares.
En concreto, permite mediante programacin modelar hardware; y a partir de estos modelos simular
(comprobar la funcionalidad deseada) y sintetizar la creacin de un circuito.
3. Capacidad de descripcin: Facilidad y potencia para describir los distintos elementos que
forman parte de un sistema digital. Es un lenguaje considerado excesivamente prolijo.
4. Estructura sintctica: Los HDL deben poseen un conjunto de elementos que definan una
sintaxis independientemente del nivel. Por ejemplo, los mdulos (module) de Verilog o el
conjunto entidad-arquitectura (entity-architecture) de VHDL. Adems deben poseen
instrucciones dependientes del nivel de descripcin en el que se encuentra el diseo.
7. Universalidad: Debe, asimismo, ser compatible con el mayor nmero posible de herramientas
de automatizacin del diseo electrnico (Electronic Design Automation, EDA), como por
ejemplo, simuladores, generadores de patrones de prueba, etc.
The ISE Design Suite: Logic Edition allows to go from design entry, through implementation and
verification, to device programming from within the unified environment of the Project Navigator or from
the command line. XST, ISim, PhanAhead, Core Generator, SmartGuide, Design Preservation, Team
Design, Partial Reconfiguration, XPower Analyzer, Power Optimization, iMPACT, ChipScope.
The ISE Design Suite: Embedded Edition includes all the tools and capabilities of the Logic Edition with
the added capabilities of the Embedded Development Kit (EDK). This edition provides an integrated
development environment (Xilinx Platform Studio) of embedded processing tools, processor cores
(PowerPC hard processor and MicroBlaze soft processor), IP, software libraries, and design generators.
XPS, PlatGen, BSB, SimGen, SDK, XMD, GNU, LibGen, BitInit.
The ISE Design Suite: System Edition includes all of the tools and capabilities of the Logic Edition,
Embedded Edition, and DSP Edition.
The ISE WebPACK software includes the tools you need to design small to medium-sized FPGAs and
CPLDs. It includes the PlanAhead tool, standard IP, and DSP IP as well as System Generator for DSP and
the Embedded Development Kit (EDK).
En tanto, a su vez, cada mdulo tiene una secuencia de instrucciones o sentencias, las cuales, en
conjunto con las declaraciones de las unidades involucradas en el programa, permiten la descripcin,
comprensin, evaluacin y solucin para un sistema digital.
Es importante destacar que VHDL cuenta con una lista de palabras reservadas, las cuales no pueden
utilizarse como identificadores.
1. Enumerados
2. Escalares
4. Fsicos
Arreglo ascendente:
A3 S0 A(A0,A1,A2,A3)
A2 S1
A[3:0] S[0:3]
A1 S2 4 4 B(B0,B1,B2,B3)
A0 S3
Entity Entity
B3 C3
B2 C2 4 Arreglo descendente:
B[3:0] C[3:0]
B1 C1 4
B0 C0 A(A3,A2,A1,A0)
B(B3,B2,B1,B0)
----------------------------------
-- Declaracin utilizando vectores
A[3:0] S[0:3]
4 4 ----------------------------------
entity circuito is
Entity port(A,B: in bit_vector (3 downto 0);
4 S: out bit_vector (0 to 3);
B[3:0] C[3:0]
4 C: inout bit_vector (3 downto 0));
end circuito;
Serafn A. Prez, Enrique Soto, Santiago Fernndez, Diseo de Sistemas Digitales con VHDL, Thomson,
Espaa, 2002.
IEEE, The IEEE standard VHDL Language Reference Manual, IEEE-std, 1988.
Kloos, C. y E. Cerny, Hardware Description Language and Their Aplications, Speciftcation, modeling,
verification and synthesis of microelectronic systems, Chapman & Hall, 1997.
Son caracteres utilizados en determinadas operaciones y sentencias, estos pueden ser de dos tipos:
En las descripciones se puede introducir comentarios que ayuden a la comprensin del cdigo y a su
documentacin. Cualquier comentario empieza con dos guiones seguidos y termina al final de la
lnea. El compilador ignora lo escrito en los comentarios, un ejemplo:
----------------------------------
-- Esto es un comentario
-------------------------------------
-- Comienzo de la entidad <<ejemplo>>
-------------------------------------
entity ejemplo is
port( A: in bit; --entrada A
B: out bit); --salida B
end ejemplo;
VHDL predefine un conjunto relativamente limitado de tipos de datos, pero dispone de gran
versatilidad para que el propio usuario los cree segn sus necesidades. Los tipos de datos
predefinidos se encuentran casi en su totalidad en el paquete starndard de la biblioteca std. La Tabla
N 1 y 2 muestran a los principales tipos de datos.
Tabla N 1: Tipos predefinidos de datos Parte I Tabla N 2: Tipos predefinidos de datos Parte II
TIPO RANGO DESCRIPCIN
TIPO RANGO DESCRIPCIN
Bit 0,1 Valores binarios
Integer -MAXINT MAXINT Nmeros enteros
Bit_vector conjunto de bits Cadena de bits
Natural 0 MAXINT Nmeros naturales
Character Caracteres
Positive 1 MAXINT Nmeros positivos
String Conjunto de caracteres Cadena de caracteres
Real -MAXREAL MAXREAL Nmeros reales
Time -MAXINT MAXINT Nmeros reales con
Boolean TRUE, FALSE Valores booleanos
<unidad> unidades de tiempo
El lenguaje VHDL permite expresar un nmero en cualquier base, de acuerdo al siguiente formato:
Ambos enteros debe estar representados en la base indicada a la izquierda. El exponente representa
una potencia de dicha base. Ejemplos:
2#0010_0001#E3 --33x2^3
8#714# --460
16#D3.A2#E-1 --211,6328125 x 16^-1
10#35#E8 --35x10^8. Como la base es 10 no es preciso indicarla,
--puesto que es la que se toma por defecto. Por lo
--tanto es suficiente con la representacin 35#E8, o
--simplemente 35E8
Cuando una cadena de caracteres est compuesta por un conjunto de bits se le denomina bit string
literal (literal de cadena de bits) y admite una expresin simplificada con base numrica:
Ejemplo:
62027 --se puede representar en hexadecimal:
XF24B --o bien en octal:
O63_72 --o bien en binario:
B1111001001001011
La base binaria se toma por defecto, es decir, puede prescindirse de indicar B. X representa la base
hexadecimal y O la octal.
VHDL posee una gran variedad para la definicin de nuevos tipos y subtipos de datos. A
continuacin se muestra una clasificacin de los distintos tipos que es posible declarar:
Escalares
Enumerados
Enteros
Fsicos
Compuestos: homogneos (arrays), heterogneos (records)
Acceso
Fichero.