Técnicas de Programación Hardware: CAD para FPGAs y CPLDs Clase 1: Lógica Configurable Por: Nelson Acosta & Daniel Simonelli UNICEN - Tandil - 1999 1
Organización del curso Clases teórico/prácticas: 1 hora de teoría. 2 horas de práctica usando el kit de Xilinx. Objetivos del curso: Presentación del hardware configurable. Familiarización con las herramientas de diseño. Conocimiento del diseño usando FPGAs. Diseño de un procesador RISC completo en FPGA. Forma de aprobación: trabajo en laboratorio. 2
Introducción (1) Diseños de software Requerimientos del usuario Aplicación Requerimientos de entrada/salida Requerimientos de tiempo 3
Introducción (2) Microcomputadoras CISC o RISC o MISC Microcontroladores CISC o RISC o MISC Microcontroladores dedicados (CISC o RISC o MISC) Co-procesadores Procesadores acoplados Procesadores a medida (o dedicados) 4
Válvulas Transistores Introducción (3) Integrados estándar (TTL, CMOS) Microprocesador (8080,...) 80x86, procesador COPIABLE (razón por la cual aparecieron los CLONES) ASIC FPGAs y CPLDs PROCESADORES re-configurables 5
Introducción (4) PROCESADORES reconfigurables Placa de múltiples propósitos Re-programable Programable por el usuario (diseñador) RAM propia y RAM externa Hasta más de 1000000 de puertas equivalentes Gran cantidad de pines de entrada/salida 6
Introducción (5) PROCESADORES re-configurables Sistemas de control en TIEMPO REAL Sistemas de control dedicados Procesador de cálculo a medida Análisis de imágenes en TIEMPO REAL Sistemas de visión por computadora Redes neuronales y sistemas difusos de TR Algoritmos genéticos 7
FCCM (1) FPGA-based CUSTOM COMPUTING MACHINES Características principales: Arreglo (uni/bi/tri)-dimensional de FPGAs Interfáz al bus de una computadora Interfáz a grandes bancos de memoria Interfáz a sistemas de I/O masivo de datos Gran capacidad de manejo de I/O 8
FCCM (2) Premisas principales de diseñadores de FCCM Placas básicas interconectadas Escalabilidad (de 1 a 64 placas básicas) Bancos de RAM por FPGA o por placa básica (de 4 a 128 MBytes) Arquitectura BIT-SLICE para procesos en pipelining. 9
FCCM (3) Placa de la Pammette Interfáz de bus FPGA Banco de RAM 10
FCCM (4) V Merack 11
FPGA FCCM (5) Banco de RAM Bus RPM Banco de RAM 12
FCCM (6) RPM 9 Placas Bus inter-placas 13
FCCM (7) TERAMAC 14
Teramac board FCCM (8) FPGA RAM RAM Conexiones este/oeste RAM 15
XESS FCCM (9) 16
XESS FCCM (10) 17
FCCM (11) XESS 18
Xilinx Tools (1) Herramientas de Diseño Captura esquemática (Sistemas CAD, CAE) Sistemas de generación automática (Máquinas de estados, ALUs, Multiplicadores) Lista de conexiones (net list: edif, xnf,...) HDL: lenguajes de descripción de hardware (VHDL, Handel-C, ABEL, Verilog, Hardware- C,...) 19
Xilinx Tools (2) Ambientes de desarrollo Definición del diseño (HDL, esquema,...) Simulación lógica Implementación tecnológica (mapeo tecnológico, place & route, análisis retardos, generación implementación) Simulación física Configuración / Materialización física 20
Xilinx Tools (3) Xilinx Foundation Series versión 1.4 CAE: Editor de esquemas (glue-logic like) Librería de componentes (banco de trabajo) M1 (realiza el mapeo tecnológico del diseño) FPGA: xc4005e, con encapsulado PLCC 84 Interfáz TTL / CMOS 21
Xilinx Tools (4) Librería de componentes Puertas lógicas (and, inversores, nand, or, nor, xor, multiplexores,...) Memorias (flip flops, ram, rom, registros, latch, codificadores, shift-registers,...) Cálculo aritmético (sumadores, restadores, comparadores, contadores,...) Elementos de entrada/salida (buffers, pads) 22
Xilinx Tools (5) Flujo de diseño tradicional Especificaciones Definir I/O Crear tablas de verdad Obtener ecuaciones Diseño en puertas Simular circuito Construir circuito Debug circuito Flujo de diseño para FPGAs Especificaciones Definir I/O Crear diseño (esq, hdl) Simulación funcional Mapeo y Place&Route Simulación temporal Cargar el diseño Debug del circuito 23
Creación de un proyecto, usando el Xilinx Foundation Project Manager. File Nombre New Project Xilinx Tools (6) Icono de la Herramienta Directorio Componente 24
Xilinx Tools (7) Projecto prac00 listo para comenzar el diseño Editor de esquemas HDL M1-Design Manager Simulador Funcional Simulador Temporal Editor de Máquinas de Estado 25
Xilinx Tools (8) Editor de esquemas. Jerarquía Simulador Librerías Cables Buses Rótulos Gnd/Vcc Gráficos 26
Xilinx Tools (9) Acceso a las funciones de librería. En este caso se accede a un sumador de 16 bits, ADD16. Pegado del componente Descripción Acceso por nombre o parcial 27
Xilinx Tools (10) Esquema completo del diseño de un sumador de 16 bits. 28
Xilinx Tools (11) Administrador de Diseños, para comenzar la implementación. Design/Implement entonces... 29
Xilinx Tools (12) Design Manager, completadas las etapas de: Traducción Mapeo Tecnológico Place&Route Configuración 30
Xilinx Tools (13) Completada la etapa del Flujo de Diseño, se retorna al Design Manager. Design Flow Timing Analyser PROM Generator Hardware Debugger EPIC 31
Fin 32