Diseño de Hardware con VHDL

Documentos relacionados
Diseño de Hardware con VHDL

Objetivos. Instituto Tecnológico de Costa Rica Escuela de Ingeniería Electrónica I SEMESTRE Contenido del Curso EL FLUJO DE DISEÑO O DIGITAL

Tema 3 - Modelado con HDL a nivel RTL

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Introducción a las FPGA

Guía de uso Tarjeta Nexys 2 FPGA Spartan-3E

Laboratorio de Diseño de Sistemas Digitales

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1)

Manual de turbo pascal

IEE 2712 Sistemas Digitales

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES

Lógica Programable -Introducción - Introducción n a los Sistemas Lógicos y Digitales 2008

Dispositivos Lógicos Programables

FPGA (CAMPO DE MATRIZ DE PUERTAS PROGRAMABLES).

Dispositivos Digitales. EL-611 Complemento de Diseño Lógico y. Dispositivos Digitales

Electrónica Digital Departamento de Electrónica VHDL. Bioingeniería Facultad de Ingeniería - UNER

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

XVI. utilizarlos de la forma más eficiente posible en el diseño de sistemas digitales.

ABSTRACCIONES DE UN SISTEMA DIGITAL

circuitos digitales números binario.

VHDL. Lenguaje de descripción hardware Introducción e historia

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

M. C. Felipe Santiago Espinosa

SISTEMAS DE DETECCIÓN DE INTRUSOS EN LA PLATAFORMA NETFPGA USANDO RECONOCIMIENTO DE EXPRESIONES REGULARES.

Investigación y Desarrollos en Open Hardware

Manual de referencia de la tarjeta BASYS 2

Tema 2. Funciones Lógicas. Algebra de Conmutación. Minimización de funciones Lógicas. Introducción al VHDL.

TRAYECTO SISTEMÁTICO DISEÑO DE SISTEMAS EMBEBIDOS

INSTITUTO DE ELECTRÓNICA Y COMPUTACIÓN

LENGUAJE. Tema 2 Elementos de un programa

Tutorial de Xilinx ISE

UNIDAD 1. COMPONENTES DEL COMPUTADOR

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Pasos para conectar la CPLD al cable JTAG USB

TEMA 4. ESTRUCTURAS DE CONTROL

TARJETA DE DESARROLLO CPLD

Implementación en FPGA de Máquinas de Estados con VHDL

Breve Curso de VHDL. M. C. Felipe Santiago Espinosa. Profesor Investigador UTM

INSTITUTO DE ELECTRÓNICA Y COMPUTACIÓN

METODOLOGIAS DE DISEÑO PARA COMPUTACIÓN RECONFIGURABLE.

Electrónica Digital II. Arquitecturas de las Celdas Lógicas. Octubre de 2014

LABORATORIO DE TECNOLOGÍA DE COMPUTADORES PRÁCTICA 7

CAPITULO 5. DISPOSITIVOS DE LOGICA RECONFIGURABLE

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech

Java para no Programadores

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. Introducción. Fabricantes. Elevada complejidad. Facilitar tareas de diseño

PROGRAMA DE LA ASIGNATURA: SISTEMAS ELECTRÓNICOS DIGITALES

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

MCP2200, Conversor serial USB 2.0 a UART de MICROCHIP...

Tipos de Dispositivos Controladores

+ Máquinas de Estado Finitas

Lección 2 Introducción al lenguaje C

PROBLEMA VHDL. 7 dig1. dig2. Entradas : Señales a[3..0] y b [3..0] en código GRAY Salida : Señales Dig1[6..0] y Dig2[6..0] para los visualizadores

DISEÑO LOGICO CON DISPOSITIVOS LOGICOS PROGRAMABLES (PLD S) ING. LUIS F. LAPHAM CARDENAS PROFESOR INVESTIGADOR DIVISION DE ELECTRONICA C.E.T.I.

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO REDES Y TELEPROCESO I GUIA DE LABORATORIO PROGRAMACION BASICA DE SWITCHES

GUÍA PRÁCTICA DEL SOFTWARE ACTIVE-HDL.

INTRODUCCIÓN AL SOFTWARE ISE (Integrated Software Environment) DE XILINX

Manipulación de un Brazo Robótico por medio de una Tarjeta FPGA

DATOS DE IDENTIFICACIÓN DEL CURSO DEPARTAMENTO:

Guía práctica de estudio 05: Diagramas de flujo

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) QUINTA CLASE DE VHDL

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Proyecto de Diseño 2

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

PRÁCTICA DE SÍNTESIS

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

Memorias ROM: FPGA-VHDL Cómo???

Sistemas Electrónicos Digitales Curso de adaptación al Grado

Tema 9. SISTEMAS COMBINACIONALES PROGRAMABLES SISTEMAS COMBINACIONALES PROGRAMABLES NO UNIVERSALES

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

PRÁCTICA: LENGUAJE VHDL

1-Introducción. KIT ARM- Ténicas Digitales II - Ing. Ruben M. Lozano /9

Laboratorio de Dispositivos Integrados Especializados / Diseño de Circuitos y Sistemas Electrónicos

Tutorial de Xilinx ISE Texto original de Eduardo Magdaleno Castelló y Manuel Rodríguez Valido Universidad de La Laguna

Laboratorio 4: Uso de una FPGA

Introducción a los Microprocesadores Facultad de Ingeniería UDELAR 2014

Carrera: Participantes Miembros de la academia de Metal- Mecánica

SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE

Programación Estructurada

5. Decodificadores. Salida _1= A A A A = m = M ... Electrónica Digital. Tema

LÓGICA PROGRAMABLE. Introducción Simple PLDs Complex PLDs FPGAs. Dpto. Ingeniería Electrónica y Comunicaciones

Utilización de las instrucciones concurrentes CSA, SSA, componentdeclaration y component-instantiation aprendidas en clase.

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

CAPITULO 1 INTRODUCCION AL PROYECTO

4. Operadores Operador asignación

Práctica 6. Diseño Lógico Digital mediante VHDL

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

TEMA IV: SÍNTESIS HARDWARE

Discusión. Modelo de una compuerta. Arquitecturas de Computadores Prof. Mauricio Solar. Temario. ...Introducción

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

SISTEMAS ELECTRÓNICOS DIGITALES

El ordenador. Codificación binaria. Código ASCII

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

3.1 Introducción a VHDL

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas.

PHP: Lenguaje de programación

Transcripción:

Diseño de Hardware con VHDL Facultad de Ingeniería Laboratorio Electrónica Segundo Semestre, 2015

Field Programmable Gate Array (FPGA) De una manera superficial podemos decir que las FPGA son chips de silicio reprogramables. Utilizando bloques de lógica pre-construidos y recursos para ruteo programables, podemos configurar estos chips para implementar funcionalidades personalizadas en hardware. El uso de FPGA en la industria ha sido impulsada por el hecho de que estos combinan lo mejor de los ASICs y de los sistemas basados en procesadores. Ofrecen velocidades temporizadas por hardware y fiabilidad, pero sin requerir altos volúmenes de recursos para compensar el gran gasto que genera un diseño personalizado de ASIC. La lógica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta lógica o un sistema combinacional hasta complejos sistemas en un chip. 2 de 43

Ventajas y Desventajas Ventajas Rendimiento (Paralelismo y Algoritmos) Tiempo en llegar al mercado Precio Fiabilidad Mantenimiento a largo plazo Hardware a la medida Desventajas Precio Entornos de desarrollo de propietarios Lenguaje Complejo 3 de 43

FPGA vs Micro Por qué 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 FPGA simple pero versátil para el aprendizaje y desarrollo. Una excelente opción para aprender y experimentar en el diseño de sistemas con FPGA. 7 de 43 FPGA: Spartan XC3S50A 16 Mb SPI flash memory. USB 2.0 interface for On-board flash programming. FPGA configuration via JTAG and USB 8 LEDs,6 Push Buttons, 3 Seven Segment Displays, DIP switch. VGA output, Stereo audio out, Micro SD card adapter. 39 IOs for user defined purposes On-board voltage regulators.

Very high-speed ICs Hardware Description Language (VHDL) VHDL es un lenguaje definido por el IEEE usado por ingenieros para describir circuitos digitales. VHDL es el acrónimo que representa la combinación de VHSIC y HDL, donde VHSIC es el acrónimo de Very High Speed Integrated Circuit y HDL es a su vez el acrónimo de Hardware Description Language. 8 de 43

Origen VHDL VHDL surge a principios de los 80 de un proyecto DARPA (Agencia de investigación del Departamento de Defensa de los EE.UU.) llamado VHSIC. Aparece como una manera de describir circuitos integrados debido a la crisis del ciclo de vida del Hardware; ya que cada día los circuitos integrados eran más complicados, y el coste de reponerlos cada vez era mayor, porque no estaban correctamente documentados. VHDL nació como una manera estándar de documentar los circuitos y al mismo tiempo, se vio que la expresividad de VHDL permitiría reducir el tiempo de diseño de los circuitos, porque se podrían crear directamente de su descripción: utilidad de la síntesis En 1987 el trabajo fue cedido al IEEE, y a partir de ese momento es un estándar abierto. 9 de 43

Para qué 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.vhdl Prueba.vhdl 12 de 43

Estructura de un modulo VHDL 13 de 43

IEEE 1164 El estándar IEEE 1164 define un paquete de diseño de unidad que contiene las declaraciones que soportan la representacion uniforme de un valor lógico en la descripción de hardware brindada 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 señal que entra en la entidad y no sale. La señal puede ser leída pero no escrita. out: Una señal que entra en la entidad y no sale. La señal puede ser leída pero no escrita. inout: Una señal 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 la mayoría de lenguajes de programación Solo pueden contener caracteres alfanuméricos (AZ, az, 09) y el símbolo de guión bajo ( ) Deben iniciar con una letra No deben finalizar con guión bajo No deben existir dos guiones bajos consecutivos VHDL NO ES CASE-SENSITIVE No se permiten espacios en blanco Objetos de datos: Variables Constantes Señales 17 de 43

Señales Contiene información sobre el valor/dato almacenado. Los valores almacenados en una señal pueden ser modificados y leídos Utilizadas para interconectar elementos concurrentes (tal y como si fuesen cables ) En un proceso no obtendrán el valor asignado inmediatamente, sino hasta salir de éste Nunca hay que asignar valor inicial a las señales al momento de declararla Las señales transportan la información entre arquitecturas/módulos Los puertos I/O son también señales 18 de 43

Si la señal se utiliza dentro de una arquitectura: Tipo: std logic std logic vector unsigned signed integer 19 de 43

Asignación de señales flag <= bandera; tiempo <= 0; RST <= 1 ; 20 de 43

Dependiendo del tipo de dato, así será el formato para asignar el valor. 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

Configuración del Dispositivo 24 de 43

Agregar un Módulo 25 de 43

Seleccion Módulo VHDL 26 de 43

Modulo para Sintetización 27 de 43

Ejemplo 1 28 de 43

User Constraints File UCF Este archivo contiene las señales/pines que deben ser mapeadas a una localidad especifica debido a la forma en que la tarjeta esta posicionada. 29 de 43

Agregando el UCF 30 de 43

Agregando el UCF 31 de 43

Configuración del UCF Los pasos para la configuración 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 en la entidad. 32 de 43

UCF Configurado 33 de 43

Sintetización Procesos A: View RTL Schematic: Una vez ya se ha Sintetizado (Corriendo Synthesize - XST) se prosigue a generar el esquemático usando esta opción. B: Check Syntax: Verificar que no hayan errores de sintaxis C: Implement Design: Una vez configurado el UCF se prosigue a implementar el diseño para el dispositivo D: Generate Programming File: Genera el bitstream que se programara en la tarjeta de 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 señales Puede utilizar construcciones muy expresivas: if, else, case, for, while, etc. 38 de 43

Elementos de un proceso 1. Lista Sensitiva Lista de señales que disparan el proceso. Cualquier evento (cambio) en cualquiera de las señales de la lista sensitiva causará que el proceso se ejecute. 2. Declaraciones Declaración de tipos, funciones, procedimientos y variables. Todas las declaraciones son locales 3. Sentencias Secuenciales El código que será ejecutado al activarse el proceso. 39 de 43

Procesos Un proceso describe el comportamiento de un circuito. Su estado puede variar cuando cambian ciertas señales Puede utilizar construcciones muy expresivas: if, else, case, for, while, etc. 40 de 43

Ejemplo Procesos 41 de 43

Condicional IF 1. Pueden utilizarse ÚNICAMENTE dentro de procesos Estos pueden ser secuenciales o concurrentes 2. Pueden ser anidados Es buena práctica anidar la menor cantidad de sentencias IF posibles. 3. Pueden contener más de una condición a evaluar, utilizando conectores lógicos (AND, OR, XOR, etc.) 42 de 43

Sintaxis Condicional IF 43 de 43