· HDL (Effi2L./Äîa--JD) HDL HDL 140mg/dLDÅ-Elä 50 130 mg/dL 2 2009, 201 1 )
Diseño de Hardware con VHDL - Laboratorio de...
-
Upload
truongkhanh -
Category
Documents
-
view
212 -
download
0
Transcript of Diseño de Hardware con VHDL - Laboratorio de...
Field Programmable Gate Array (FPGA)
• De una manera superficial podemos decir que las FPGA son chipsde silicio reprogramables. Utilizando bloques de logicapre-construidos y recursos para ruteo programables, podemosconfigurar estos chips para implementar funcionalidadespersonalizadas en hardware.
• El uso de FPGA en la industria ha sido impulsada por el hecho deque estos combinan lo mejor de los ASICs y de los sistemasbasados en procesadores. Ofrecen velocidades temporizadas porhardware y fiabilidad, pero sin requerir altos volumenes de recursospara compensar el gran gasto que genera un diseno personalizadode ASIC.
• La logica programable puede reproducir desde funciones tansencillas como las llevadas a cabo por una puerta logica o unsistema combinacional hasta complejos sistemas en un chip.
2 de 43
Ventajas y Desventajas
Ventajas
• Rendimiento (Paralelismo yAlgoritmos)
• Tiempo en llegar al mercado
• Precio
• Fiabilidad
• Mantenimiento a largo plazo
• Hardware a la medida
Desventajas
• Precio
• Entornos de desarrollo depropietarios
• Lenguaje Complejo
3 de 43
Elbert V2 - Spartan 3A
• ELBERT V2 es una FPGAsimple pero versatil para elaprendizaje y desarrollo.
• Una excelente opcion paraaprender y experimentar en eldiseno de sistemas con FPGA.
• FPGA: Spartan XC3S50A
• 16 Mb SPI flash memory.
• USB 2.0 interface for On-boardflash programming.
• FPGA configuration via JTAGand USB
• 8 LEDs ,6 Push Buttons, 3Seven Segment Displays, DIPswitch.
• VGA output, Stereo audio out,Micro SD card adapter.
• 39 IOs for user defined purposes
• On-board voltage regulators.7 de 43
Very high-speed ICs Hardware Description Language(VHDL)
VHDL es un lenguaje definido por el IEEE usado por ingenieros paradescribir circuitos digitales. VHDL es el acronimo que representa lacombinacion de VHSIC y HDL, donde VHSIC es el acronimo de VeryHigh Speed Integrated Circuit y HDL es a su vez el acronimo deHardware Description Language.
8 de 43
Origen VHDL
VHDL surge a principios de los ’80 de un proyecto DARPA (Agenciade investigacion del Departamento de Defensa de los EE.UU.) llamadoVHSIC. Aparece como una manera de describir circuitos integradosdebido a la crisis del ciclo de vida del Hardware; ya que cada dıa loscircuitos integrados eran mas complicados, y el coste de reponerloscada vez era mayor, porque no estaban correctamente documentados.VHDL nacio como una manera estandar de documentar los circuitos yal mismo tiempo, se vio que la expresividad de VHDL permitirıareducir el tiempo de diseno de los circuitos, porque se podrıan creardirectamente de su descripcion: utilidad de la sıntesisEn 1987 el trabajo fue cedido al IEEE, y a partir de ese momento esun estandar abierto.
9 de 43
¿Para que sirve VHDL?
VHDL nos permite modelar sistemas digitales los cuales nos permiten:
• Simular: Verificar que tiene la funcionalidad deseada.
• Sintetizar: Crear un circuito que funciona como el modelo.
10 de 43
IEEE 1164
El estandar IEEE 1164 defineun paquete de diseno de unidadque contiene las declaracionesque soportan la representacionuniforme de un valor logico enla descripcion de hardwarebrindada por VHDL.
14 de 43
Entidad
Se inicia la declaracion de puertos con el comando:
• Port(
Se termina la declaracion de puertos con:
• );
La sintaxis es la siguiente:
• Nombre: modo TIPO;
Modo:
• in: Una senal que entra en la entidad y no sale. La senal puede serleıda pero no escrita.
• out: Una senal que entra en la entidad y no sale. La senal puedeser leıda pero no escrita.
• inout: Una senal que es bidireccional, entrada/salida de la entidad.
15 de 43
Identificadores
• Se utilizan las mismas reglas que en lamayorıa de lenguajes de programacion
• Solo pueden contener caracteresalfanumericos (AZ, az, 09) y el sımbolo deguion bajo ( )
• Deben iniciar con una letra
• No deben finalizar con guion bajo
• No deben existir dos guiones bajosconsecutivos
• VHDL NO ES CASE-SENSITIVE
• No se permiten espacios en blanco
Objetos de datos:
• Variables
• Constantes
• Senales
17 de 43
Senales
• Contiene informacion sobre el valor/dato almacenado.
• Los valores almacenados en una senal pueden ser modificados yleıdos
• Utilizadas para interconectar elementos concurrentes (tal y como sifuesen ((cables)))
• En un proceso no obtendran el valor asignado inmediatamente,sino hasta salir de este
• Nunca hay que asignar valor inicial a las senales al momento dedeclararla
• Las senales transportan la informacion entre arquitecturas/modulos
• Los puertos I/O son tambien senales
18 de 43
Si la senal se utiliza dentro de una arquitectura:
Tipo:
• std logic
• std logic vector
• unsigned
• signed
• integer
19 de 43
Dependiendo del tipo de dato, ası sera el formato para asignar elvalor. Se utiliza comilla simple (‘ ‘) para:
• std logic
Se utiliza comilla doble (“ ”) para:
• std logic vector
• unsigned
• signed
No se utiliza ninguna comilla para:
• integer
• natural
21 de 43
User Constraints File
UCFEste archivo contiene las senales/pines que deben ser mapeadas a unalocalidad especifica debido a la forma en que la tarjeta estaposicionada.
29 de 43
Configuracion del UCF
Los pasos para la configuracion son los siguientes:
• Dejar comentado todos los pines que NO vamos a usar.
• Des-comentar el pin a utilizar.
• Agregar al pin el nombre de las entradas/salidas que declaramos enla entidad.
32 de 43
Sintetizacion
Procesos
• A: View RTL Schematic: Una vez ya se haSintetizado (Corriendo Synthesize - XST)se prosigue a generar el esquematicousando esta opcion.
• B: Check Syntax: Verificar que no hayanerrores de sintaxis
• C: Implement Design: Una vezconfigurado el UCF se prosigue aimplementar el diseno para el dispositivo
• D: Generate Programming File: Genera elbitstream que se programara en la tarjetade desarrollo.
34 de 43
Importante
Para realizar el type casting es necesario usar la libreria:
• Use IEEE.numeric std.all;
37 de 43
Procesos
Un proceso describe el comportamiento de un circuito.
• Su estado puede variar cuando cambian ciertas senales
• Puede utilizar construcciones muy expresivas: if, else, case, for,while, etc.
38 de 43
Elementos de un proceso
1. Lista Sensitiva◦ Lista de senales que disparan el proceso.◦ Cualquier evento (cambio) en cualquiera de las senales de la lista
sensitiva causara que el proceso se ejecute.
2. Declaraciones◦ Declaracion de tipos, funciones, procedimientos y variables.◦ Todas las declaraciones son locales
3. Sentencias Secuenciales◦ El codigo que sera ejecutado al activarse el proceso.
39 de 43
Procesos
Un proceso describe el comportamiento de un circuito.
• Su estado puede variar cuando cambian ciertas senales
• Puede utilizar construcciones muy expresivas: if, else, case, for,while, etc.
40 de 43
Condicional IF
1. Pueden utilizarse UNICAMENTE dentro de procesos◦ Estos pueden ser secuenciales o concurrentes
2. Pueden ser anidados◦ Es buena practica anidar la menor cantidad de sentencias IF posibles.
3. Pueden contener mas de una condicion a evaluar, utilizandoconectores logicos (AND, OR, XOR, etc.)
42 de 43