Diseño de Hardware con VHDL - Laboratorio de...

43
Dise˜ no de Hardware con VHDL Facultad de Ingenier´ ıa LaboratorioElectr´onica Segundo Semestre, 2015

Transcript of Diseño de Hardware con VHDL - Laboratorio de...

Diseno de Hardware con VHDL

Facultad de Ingenierıa

Laboratorio Electronica

Segundo Semestre, 2015

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

FPGA vs Micro

¿Por que utilizar una FPGA y no un Microcontrolador?

4 de 43

Aplicaciones

5 de 43

FPGA

6 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

Sistemas Digitales

11 de 43

Estructura de un modulo VHDL

Prueba.vhdlPrueba.vhdl

12 de 43

Estructura de un modulo VHDL

13 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

Flip Flop.vhdl

16 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

Asignacion de senales

flag <= bandera;tiempo <= 0;RST <= ‘1’;

20 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

Ruteo

22 de 43

Crear Nuevo Proyecto

23 de 43

Configuracion del Dispositivo

24 de 43

Agregar un Modulo

25 de 43

Seleccion Modulo VHDL

26 de 43

Modulo para Sintetizacion

27 de 43

Ejemplo 1

28 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

Agregando el UCF

30 de 43

Agregando el UCF

31 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

UCF Configurado

33 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

Clase 2

35 de 43

Type Casting

36 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

Ejemplo Procesos

41 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

Sintaxis Condicional IF

43 de 43