INTRODUCCIÓN AL DISEÑO FPGA-DSP. Cristian Sisterna, MSc UNSJ-C7T



Documentos relacionados
INTRODUCCIÓN A SIMULINK/SYSTEM GENERATOR (XILINX FPGA) C7 Technology 1

Diseño de DSP en FPGA con System Generator y MATLab. Jesús Barba Romero (30/05/2012)

Introducción a FPGAs. Contenido

Introducción a las FPGA

Curso de diseño de FPGA Xilinx Spartan-6 en VHDL

ESTUDIO SOBRE LA IMPLEMENTACIÓN DE REDES NEURONALES ARTIFICIALES USANDO XILINX SYSTEM GENERATOR

Lab 5: Contador decimal en System Generator

Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006

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

TELECOMMUNICATION APPLICATION USING FPGA. A RADIO SOFTWARE APPROXIMATION

Diseños de altas prestaciones con Spartan-6 y Virtex-6

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

FPGA (CAMPO DE MATRIZ DE PUERTAS PROGRAMABLES).

Metodología de diseño en FPGA usando Xilinx System Generator

Arquitecturas DSP. Phil Lapsley, Jeff Bier, Amit Shoham, Edward A. Lee DSP Processor Fundamentals. Architectures and Features IEEE Press 1997

Arquitectura Básica para Controladores de Lógica Difusa a Programarse en FPGAs

Circuito de refresco de un Display

CAPITULO 5. DISPOSITIVOS DE LOGICA RECONFIGURABLE

TEMA 6. Circuitos Aritméticos.

El diseño de filtros digitales en FPGAs.

Uso de DCMs y simulación con tiempos

Computación I Representación Interna Curso 2011

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

DESARROLLO DE UN COPROCESADOR EN PUNTO FLOTANTE PARA LA RESOLUCIÓN DE LA ECUACIÓN DE POISSON 1D EN ESTRUCTURAS SOI. Ingeniería Electrónica

GENERADOR AUTOMÁTICO DE FFT CON ALTO GRADO DE PARALELISMO

Figura 1.4. Elementos que integran a la Tecnología de Información.

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

Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

Co-Simulación en Hardware Simulink/SysGen

Redes y Sistemas Computarizados de Control CAPITULO 1. Introducción a las Redes de Comunicación Industrial

HOY en día, los arreglos de compuertas

Umbral Científico Fundación Universitaria Manuela Beltrán ISSN (Versión impresa): COLOMBIA

FPGA: Herramientas de diseño

Introducción a LabVIEW FPGA y CompactRIO

Diseños de altas prestaciones con Spartan-6, Virtex-6 y series 7

CONTROL DIGITAL PARA CONVERTIDOR MULTINIVEL ALIMENTADO CON ENERGÍA SOLAR. Anexo A: FPGA. Introducción

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA

Tema I. Sistemas Numéricos y Códigos Binarios

Nombre de la asignatura: Clave de la asignatura: SIB Carrera:

Introducción a Computación

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU)

Laboratorio 4: Uso de una FPGA

SAN LUIS, 2 O ABR 2015 VISTO: El Expediente EXP-USL: 1567/2015 mediante el cual se solicita la

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

Matemáticas para la Computación

Implementación de la transformada wavelet discreta para imágenes en un FPGA

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Lógica Estándar. Compuertas lógicas, flip flop, decodificadores, disponibles en chips SSI y MSI. No son una buena solución de diseños grandes.

Palabras Clave: Vídeo en FPGA, Procesamiento en Tiempo Real RESUMEN

Formato para prácticas de laboratorio

Diseño de bloques de convolución para procesado de imágenes con FPGA

1.1. Tecnologías de diseño de circuitos integrados

Tipos de Dispositivos Controladores

TARJETA DE DESARROLLO CPLD

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2008

Capítulo 6: Conclusiones

Diseño de Funciones DSP Usando VHDL y CPLDs-FPGAs

Laboratorio de Diseño de Sistemas Digitales

Introducción a Aplicaciones Industriales con LabVIEW FPGA y CompactRIO. Ing. Javier Olea Ing. De Campo Noreste de México National Instruments

6 de Mayo Bogotá, Colombia. ni.com/colombia o (1)

Técnicas Digitales III

Resolución de problemas en paralelo

Simulación de sistemas con Simulink

Laboratorio 1 Implementación de un sumador binario

PRÁCTICA DE SÍNTESIS

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

ETN 404 Mediciones Eléctricas Docente: Ing. Juan Carlos Avilés Cortez. 2014

Introducción HPC. Curso: Modelización y simulación matemática de sistemas. Esteban E. Mocskos (emocskos@dc.uba.ar) Escuela Complutense Latinoamericana

BLOQUE 2. (PARTE 3: Tema 1) CONJUNTO CONFIGURABLE DE PUERTAS FPGA (Field Programmable Gate Array) Clasificación y descripción

Diapositiva 1. Por supuesto, también se puede hacer lo contrario. Un demultiplexor envía una señal a una de muchas líneas.

Capítulo 1 CAPÍTULO 1-INTRODUCCIÓN-

INSTITUTO DE ELECTRÓNICA Y COMPUTACIÓN

Uso del simulador Modelsim

Introducción TEMA 1 TECNOLOGÍA DE LOS CI. ME Tema 1 Lección 1 Aspectos generales sobre diseño microelectrónico 1

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

DESCRIPCION DEL SITEMA MASTER.

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES

DESARROLLO DE PRÁCTICAS DE LABORATORIO SOBRE LA CAPA FÍSICA WIMAX D DE LA IEEE

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

DISEÑO DE SISTEMAS DIGITALES COMPLEJOS

Organización de Computadoras. Turno Recursantes Clase 8

Implementación de DSP en FPGAs

Sistemas Electrónicos Digitales. Práctica 1 Multiplicador de 8 bits secuencial con desplazamiento hacia la derecha

SALIDAS ANALÓGICAS. Adquisición de datos y acondicionamiento de la señal Tema 6

Conclusiones. Particionado Consciente de los Datos

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

ELO211: Sistemas Digitales. Tomás Arredondo Vidal

Conceptos básicos: 1,2 puntos

CURSO DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS. 40 horas (15 horas teoría + 25 horas práctica)

Sumador: C o. C in. Sumador serie: Sumador paralelo con propagación de arrastre:

4. SUMADORES EN BINARIO PURO (I)

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

Preliminares. Tipos de variables y Expresiones

Proyecto de Diseño 2

Encuesta sobre utilización de la microelectrónica en la Argentina

Tutorial de ModelSim PE Student Edition

3.8 Construcción de una ALU básica

CODIFICADORES CON PRIORIDAD. Grupo 2

Hardware Libre: Clasificación y desarrollo de hardware reconfigurable en entornos GNU/Linux

Transcripción:

INTRODUCCIÓN AL DISEÑO FPGA-DSP Cristian Sisterna, MSc UNSJ-C7T

AGENDA Introducción Bloques DSPs en ilinx FPGAs MatLab/Simulink Simulink ilinx System Generator Ejemplo de Diseño con SysGen 2

ALGORITMOS DSPS 3

ALGORITMOS DSPS DÓNDE IMPLEMENTARLOS? Algoritmo DSP Procesadores DSP (AMD, TI) FPGAs Simulink FPGA 4

FLUJO DE DISEÑO SIMULINK-FPGA lx DSP Toolset System Generator Desarrollo en Simulink Bloques DSP SysGen Simulación en Simulink (opcional) Entorno MatLab Simulación Entorno ModelSim/ISE lx CoreGen Generación del VHDL o Verilog Generación de Test Bench Entorno ISE ISE (ilinx) Síntesis y P&R Download al FPGA Verificación ModelSim 5

DSP BLOCKS ilinx FPGAs

ILIN FPGA BLOQUE DSP48 Desde un punto de vista simple el DSP48 puede multiplicar dos números de 18 bits (18x18) y acumular el resultado en un ACC de 48 bits. Todo expresado en complemento a dos. Nota: Dos DSP48 slices componen lo que se llama un treme DSP Tile 7

ILIN DSP48 SLICE 8

ILIN DSP48 TILE Un DSP48 Tile consiste de dos DSP48 Slices 9

BLOQUE DSP48 - REGISTROS Existen diferentes opciones del uso de los registros disponibles en el DSP48 Los registros pueden tener n = 0, 1 o 2 para las entradas del multiplicador. Los registros pueden tener m = 0 o 1. 10

ILIN FPGA BLOQUE DSP48 El bloque DSP48 es parte del los bloques prediseñados ASMBLs (Application Specific Modular Blocks). El bloque DSP48 casi no usa el ruteo del FPGA, solo entrada y salidas. Ello implica: bajo consumo de potencia, muy alta frecuencia de trabajo y una implementación en silicio muy eficiente. Bloques DSP48E pueden fácilmente conectarse con sus bloques DSP48 vecinos. Pudiendo formar una cascada de bloques DSP48. 11

DSP48E VIRTE 5/6 12

DSP48 FPGA VISTA INTERNA 1 CLB Bloques DSP48 13

DSP48 FPGA VISTA INTERNA 2 14

DSP MAC LIMITES Procesamiento sequencial processing limita max. frec. dato salida MAC tiempo compartida Reloj de alta frecuencia complica la performance Filtro FIR de 256 Tap 256 multiplica y acumula (MAC) operaciones por dato muestreado Una salida cada 256 ciclos de reloj Data In Loop Algorithm 256 times MAC unit Data Out

FPGA MACS Procesamiento paralelo maximiza frecuencia dato de salida Soporta cualquier nivel de paralelismo Filtro FIR de 256 Taps 256 multiplica y acumula (MAC) operaciones por dato muestreado One output every clock cycle Flexible architecture Bloques DSP, Bloques de Memoria, istros, Controladores de Reloj, etc. Data In 0 1 2 255 C0 C1 C2... C255 All 256 MAC operations in one clock cycle Data Out

RAZÓN 1 Procesador DSP - Secuencial Coeficientes 256 ciclos de reloj Data In Data Out MAC Unit Data In C0 FPGA Implementación en Paralelo C1 C0 256 operaciones en 1 ciclo de reloj C2 C3 Data Out C255 1 GHz 256 clock cycles 256 clock cycles = 4 MSPS 500 MHz 1 clock cycle = 500 MSPS 1 clock cycle

RAZÓN 2 20MHz Samples LPF LPF LPF LPF ch1 ch2 ch3 ch4 80MHz Samples LPF Filtro Multi Canal

RAZÓN 3 Parallel Semi- Parallel Serial D Q D Q Velocidad Optimización? Area

IMPORTANCIA BLOQUE DSP EN FPGA Multiplicación y Suma Paralela en FPGA sin Bloque DSP Data In C0 C1 C0 C2 Sumadores Implementados en Lógica C3 C4 C5 C0 C6 C7 C30 C31 Latencia Variable Ruteo y Locación puede reducir Performance Data Out

IMPORTANCIA BLOQUE DSP EN FPGA Multiplicación y Suma Paralela en FPGA con Bloque DSP Data In C4 C0 C1 C2 C3 C4 C5 C6 C7 C30 C31 Data Out

MATLAB -SIMULINK Introducción

MATLAB -SIMULINK El entorno MatLab/Simulik es un entorno gráfico para la modelación y simulación de sistemas dinámicos. Soporta: Sistemas lineales y no lineales, modelados en tiempo continuo, tiempo discreto (muestras) o un híbrido de los dos. 23

MATLAB SIMULINK (CONT.) Editor gráfico de bloques Simulador controlado por evento(s) (event driven) Puede modelar/simular paralelismo Una extensa librería de funciones con parámetros variables: Bloques matemáticos de Simulink Bloques de fuentes de señal y absorción de señal Bloques: DSPs Comunicaciones 24

SYSTEM GENERATOR ilinx DSP Toolkit

SYSTEM GENERATOR -SIMULINK Flujo de diseño integrado a Simulink, generando directamente el archivo de programación.bit Integra: MatLab, Simulink HDL Síntesis Librerías de DSP Herramientas de implementación del FPGA Simulación en doble precisión y punto fijo Abstracción Aritmética Punto-fijo arbitrario, incluyendo cuantización y overflow System Generator es un Blockset dentro del entorno Simulink 26

SYSTEM GENERATOR -SIMULINK 27

SYSTEM GENERATOR -SIMULINK Librería de funciones: 28

SYSGEN: PRINCIPALES BLOQUES Elementos básicos: contadores, retardos, lógica binaria, etc. Comunicaciones: ECC bloques, Viterbi, Reed Solomon, etc. Tipo de Datos: convertir, rotar, concatenar, etc. DSP: IIR, FIR, FFT, etc. Math: multiplicar, acumular, invertir, contadores, etc. Memoria, dual port RAM, single port RAM, ROM, FIFO. Tools: ModelSim, Estimador de Recursos, SysGen Token 29

SYSGEN-SIMULINK: GENERACIÓN ARCHIVOS Generación del código VHDL y Verilog para: Virtex-7, Virtex-6, Virtex-5, Virtex-4, Spartan-7, Spartan-6, Spartan-3E Mapeo y expansión del hardware respectivo a cada bloque Preservación de la jerarquía del modelo una vez generados los códigos VHDL y Verilog Utilización de IP cores de CoreGen Generación automática de: Un proyecto ISE Archivo de restricciones (constraint file *.ucf) Archivo de simulación Test Bench y script *.do (ModelSim) 30

SYSGEN SIMULINK E/S DEL FPGA Salida del FPGA Entrada al FPGA FPGA 31

SYSGEN IN/OUT Simulink usa double para representar números en simulación. A double es un número en punto flotante en complemento a dos de 64 bits. TODOS los bloques de ilinx usan representación en n-bits en punto fijo (complemento a dos es opcional). Por ello se usa un bloque para la conversión de datos desde Simulink a un bloque de ilinx, llamado Gateway In. Y otro bloque para la conversión desde un bloque de ilinx a Simulink, llamado Gateway Out. 32

SYSGEN: BLOQUE GATEWAY IN Controla la conversión desde un número representado en double, entero o punto fijo a un número booleano de N-bits, que puede ser con signo (complemento a dos) o sin signo punto fijo (unsigned fixed-point) Presenta la opción de manejar los extra bits durante la conversión Este bloque define cuales van a ser las entradas del diseño codificado en HDL por SysGen Define los estímulos en caso de que la opción de Create Testbench haya sido seleccionada 33

SYSGEN: BLOQUE GATEWAY IN 34

SYSGEN: BLOQUE GATEWAY OUT Convierte los datos de punto fijo de System Generator a dato doble de Simulink Define cuales van a ser los puertos de salida del sistema codificado en HDL por System Generator 35

SYSGEN: TIPOS DE DATOS FI UFI FI: tipo de dato fijo, es un número representado en complemento a dos UFI: es un número representado sin signo 36

SYSGEN: TIPOS DE DATOS Boolean: pueda tomar valores 1 o 0. Se usa para controlar señales como LOAD, CS, RESET, etc. 37

SYSGEN EJEMPLO CONFIGURACION 38

EJEMPLO DE DISEÑO Flujo de Diseño Simulink/SysGen/ISE/ModelSim

CREANDO UN DISEÑO CON SYSGEN 40

CREANDO UN DISEÑO CON SYSGEN 41

EJEMPLO DE DISEÑO: FIR Gateway In/OUT: interface entre SysGen y Simulink Simulink Graficos de Senal Simulink Fuente de Senal Lógica a implementar en el FPGA 42

SIMULACIÓN EN SIMULINK 43

BLOQUE SYSTEM GENERATOR 44

SYSGEN -ARCHIVOS GENERADOS Archivos de Diseño.vhd o.v.edn o.ngc.xcf.ise.tcl Archivos de Proyecto Archivos de Simulación.do.dat _tb.vhd o _tb.v 45

PROYECTO FPGA CREADO POR SYSGEN 46

VISTA DEL FIR IMPLEMENTADO EN EL FPGA 47

FIR- SIMULACIÓN EN MODELSIM 48

EJEMPLO DE DISEÑO 49

Contacto: cristian@unsj.edu.ar cristian@c7t-hdl.com Mas información (notas de aplicación, notas técnicas, etc): http://www.c7t-hdl.com Blog http://hdl-fpga.blogspot.com.ar/ 50