Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
C7 Technology
1
Algoritmos DSP
C. Sisterna
FPGAs
Flujo de Diseo
System Generator
Entorno MatLab
Xlx CoreGen
Hardware Co-Simulation
FPGA Board
C. Sisterna
DSP Blocks
Xilinx FPGAs
Desde un punto de vista simple el DSP48 puede multiplicar dos nmeros 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 Xtreme DSP Tile
C. Sisterna
6
C. Sisterna
Los registros pueden tener n = 0, 1 o 2 para las entradas del multiplicador. Los registros pueden tener m = 0 o 1.
C. Sisterna
8
C. Sisterna
C. Sisterna
10
Bloques DSP48
C. Sisterna
11
12
Matlab
Matlab provee un entorno de computacin tcnica que facilita la exploracin de soluciones matemticas a problemas de sistemas:
Extensas libreras de funciones matemticas, procesamiento de seales, comunicaciones, etc. Visualizacin: gran variedad de funciones para el ploteo y visualizacin de datos.
C. Sisterna
13
Simulink
Simulink provee un entorno de diseo grfico para el desarrollo y simulacin de sistemas dinmicos:
Totalmente integrado a Matlab Editor grfico Simulador disparado por evento Extensa librera de funciones parametrizadas
Bloques: matemtica, fuentes, destinos, comunicaciones, DSP, Sistemas de Control, etc.
C. Sisterna
14
Simulink
Visual Data Flow. Alternativa al uso de lenguajes de programacin (C). Posibilita visualizar la naturaleza dinmica de un sistema. Puede modelar concurrencia en un sistema:
C. Sisterna
Periodo de Muestreo
Cada seal usada en un diseo DSP en Simulink debe ser muestreada cada cierto tiempo llamado periodo de muestreo. Si bien el periodo de muestro puede ser arbitrario, los diferentes bloques disponibles en Simulink usan un periodo de muestreo. Un periodo de muestreo de 1/1000 (0.001) indica que la funcin del bloque se ejecutar cada 0.001 segundo y producir la respectiva salida. Recordar el Teorema de Nyquist:
Fm >= 2fmax
C. Sisterna
17
En los bloques que no es especificado, el periodo de muestreo es derivado del periodo de muestreo de las entradas al mismo.
C. Sisterna
18
Ejemplo Simulink 1
1Hz
C. Sisterna
19
Ejemplo Simulink 2
100Hz
C. Sisterna
20
SYSTEM GENERATOR
21
System Generator
Flujo de diseo integrado a Simulink, generando directamente el archivo de configuracin del FPGA (.bit) Integra:
MatLab, Simulink HDL Sntesis Libreras de DSP Herramientas de implementacin del FPGA Simulacin en doble precisin y punto fijo
Abstraccin Aritmtica
Punto-fijo arbitrario, incluyendo cuantizacin y overflow
C. Sisterna
22
System Generator
Es un Toolbox plug-in al entorno Simulink. Provee:
Bloques de distintas funciones implementables en FPGA Generacin de archivos VHDL Simulacin IP Cores (48, hasta ahora) Test benches
C. Sisterna
23
Mapeo y expansin del hardware respectivo a cada bloque Preservacin de la jerarqua del modelo una vez generados los cdigos VHDL y Verilog Utilizacin de IP cores de CoreGenerator Generacin automtica de:
Un proyecto ISE Archivo de restricciones (constraint file *.ucf) Archivo de simulacin Test Bench y script *.do (ModelSim)
C. Sisterna
24
.ise .tcl
Archivos de Proyecto
Archivos de Simulacin
C. Sisterna
Simulink Librera
C. Sisterna
26
Librera de Xilinx
C. Sisterna
27
Librera de Xilinx
Elementos bsicos: contadores, retardos, lgica 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
C. Sisterna
28
Xilinx Librera
Bloque de Filtro FIR disponible en la librera
C. Sisterna
29
Interface Simulink-FPGA
Simulink usa double para representar nmeros en simulacin. A double es un nmero en punto flotante en complemento a dos de 64 bits. TODOS los bloques de Xilinx usan representacin en n-bits en punto fijo (complemento a dos es opcional).
Por ello se usa un bloque para la conversin de datos desde Simulink a un bloque de Xilinx, llamado Gateway In.Y otro bloque para la conversin desde un bloque de Xilinx a Simulink, llamado Gateway Out.
Bloques FPGA Destino Simulink
30
Fuente Simulink
C. Sisterna
Ejemplo de Diseo
Entrada al FPGA
FPGA
C. Sisterna
31
Bloque Gateway In
Controla la conversin desde un nmero representado en double, entero o punto fijo a un nmero booleano de N-bits, que puede ser con signo (complemento a dos) o sin signo, con o sin punto fijo. Presenta la opcin de manejar los extra bits durante la conversin (ovreflow). Este bloque define cuales van a ser las entradas del diseo codificado en HDL por SysGen. Define los estmulos en caso de que la opcin de Create Testbench haya sido seleccionada. Nombra los correspondientes puertos de entrada de la entidad (entity) generada por System Generator.
C. Sisterna
32
Bloque Gateway In
C. Sisterna
33
Define cuales van a ser los puertos de salida del sistema generado por System Generator. Nombra los correspondientes puertos de salida de la entidad (entity) generada por System Generator.
C. Sisterna
34
FIX UFIX
FIX: tipo de dato fijo, es un nmero en punto fijo representado en complemento a dos. UFIX: es un nmero en punto fijo representado sin signo.
35
C. Sisterna
Boolean: pueda tomar valores 1 o 0. Se usa para controlar seales como LOAD, CS, RESET, etc.
C. Sisterna
36
C. Sisterna
37
Cada diagrama usando bloques de Xilinx in Simulink requiere que el bloque System Generator sea colocado en el diagrama. El bloque no se conecta a nada. Pero controla el proceso de generacin del cdigo HDL y de la implementacin del sistema. Parmetros del bloque SysGen determinan FPGA a usar, cdigo HDL, frecuencia objetivo, directorio de trabajo, etc.
C. Sisterna
38
C. Sisterna
39
C. Sisterna
40
C. Sisterna
41
Ejemplo de Diseo
Gateway In/OUT: interface entre SysGen y Simulink
C. Sisterna
42
Simulacin en Simulink
C. Sisterna
43
C. Sisterna
44
Simulacion en Xilinx
C. Sisterna
45
C. Sisterna
46
Muchas Gracias !
C7 Technology
http://www.c7t-hdl.com
http://hdl-fpga.blogspot.com.ar/
C. Sisterna
47