FPGA - Flujo de Diseño UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García.

Slides:



Advertisements
Presentaciones similares
Org. y Arquitectura del Computador
Advertisements

Lenguajes de Descripción de Hardware
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
Métodos de diseño en VHDL.
FAMILIA DE LÓGICA PROGRAMABLE EMBEBIDA ALTERA FLEX 10K.
SENTENCIAS SECUENCIALES
ARQUITECTURA DE COMPUTADORES - INTRODUCCION
Síntesis Lógica con HDL
Circuitos Digitales II
RESUMEN: Softmicro de 8 bits Xilinx
Vhdl para síntesis Alfredo Rosado Muñoz Universidad de Valencia Ingeniería Electrónica Diseño de Circuitos y Sistemas Electrónicos.
DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS
CURSO: UNIDAD 4: LENGUAJES HDL
VHDL.
Arquitectura del Computador
Interfaces de entrada / salida
Interfases de Entrada / Salida
GESTION DE LA JERARQUIA
Técnicas Digitales III Familia DSP56F801 Universidad Tecnológica Nacional Facultad Regional San Nicolás.
Capítulo.2 - Fundamentos del Lenguaje VHDL
Unidad 7 Entrada/Salida
DSL Domain Specific Language (Lenguaje Especifico del Dominio)
Secciones y Segmentos STARTUP
SOFTWARE DE PROGRAMACIÓN
VHDL Breve introducción.
Others, soporte para síntesis. Los agregados tienen la habilidad de usar la sentencia others, la cual asignará un valor a todos los otros elementos de.
Diseño lógico combinacional mediante VHDL
Presenta: Mario Alberto García-Martínez Asesor: Guillermo Morales-Luna
Ing. Diego Barragán Guerrero
Introducción Electrónica Digital
Control de Flujo.
Introducción a las Interfaces de entrada / salida.
Diseño Lógico Combinacional con VHDL
VHDL El nombre proviene de VHSIC Hardware Description Language, donde VHSIC significa Very High Speed Integrated Circuits. Es un lenguaje formal de especificación.
Proyecto de Sistemas Informáticos Curso Carlos Sánchez-Vellisco Sánchez Antonio José García Martínez David Fernández Máiquez.
Introducción a VHDL Agenda Un poco de historia Definiciones generales Entidades Arquitecturas Configuraciones.
Integración de entidades en VHDL
Curso: “Sistemas de control programado na área de tecnoloxía “
Librerías y packages (paquetes)
Capítulo.3 - Diseño Lógico Combinacional con VHDL
(Field Programmable Gate Array)
Universidad Tecnológica del Centro Programa de la Asignatura ARQUITECTURA DEL COMPUTADOR Universidad Tecnológica del Centro Programa de la Asignatura ARQUITECTURA.
DIPLOMADO EN SISTEMAS DIGITALES USO DE LOS PERIFERICOS DEL SISTEMA DE DESARROLLO SPARTAN 3E Instructor: MC. Rodrigo Lucio Maya Ramírez.
Proyecto de Sistemas Informáticos Curso Carlos Sánchez-Vellisco Sánchez Antonio José García Martínez David Fernández Máiquez.
Organización del Computador 1
Edición del código Podemos usar casi cualquier cosa Bloc de notas de Windows GNU Emacs VIM Set Edit...
LA ARQUITECTURA O LA FUNCIONALIDAD DEL SISTEMA DefiniciónDefiniciónDefinición Declaración y reglas sintácticas.Declaración y reglas sintácticas.Declaración.
PICOBLAZE RESUMEN.
RESUMEN: Softmicro de 8 bits Xilinx
(Field Programmable Gate Array)
BANCOS DE PRUEBAS CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
I N F O R M A T I C A. Hardware En computación, término inglés que hace referencia a cualquier componente físico tecnológico, que trabaja o interactúa.
Diseño Lógico 2 Metodología de Diseño
Malla asegurada en fase (Phase Locked Loops)
CONCEPTOS BÁSICOS ING. SUSANA BELTRAN.
Trabajo practico: Microprocesadores Escuela: Rodolfo Walsh Rodolfo WalshRodolfo Walsh Materia: Tecnologia| Tecnologia Profesor: Gustavo Cucuzza Integrantes:
NCO (Numerically Controlled Oscillator). NCO: Oscilador controlado numéricamente Aplicaciones Conversores digitales up/down PLLs digitales Sistemas de.
1 LENGUAJE DE DESCRIPCION DE HARDWARE ELECTRONICA DIGITAL NAYIBE CHIO CHO NAYIBE CHIO CHO.
Tecnologías y Arquitecturas de SE
Organización del Computador 1 Lógica Digital 2 Circuitos y memorias.
BANCOS DE PRUEBA CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
Asignación de señales en VHDL. VHDL: Asignación de señales La asignación a una señal establece una o más transacciones sobre la misma Cada señal tiene.
U.M.S.A. ETN-601 Sistemas Digitales Decodificador 3 a 8 Aux. David Marza Herrera.
CONSIDERACIONES DE RUIDO EN SISTEMAS PCM ING. JAVIER GARCIA.
PICOBLAZE RESUMEN.
Hardware Description Language
Programación en VHDL.
PICOBLAZE RESUMEN.
(Numerically Controlled Oscillator)
Transcripción de la presentación:

FPGA - Flujo de Diseño UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

FPGA Field Programmable Gate Array UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

FPGA - ¿Qué es? Arreglo de celdas básicas programables cuyas Definición simplificada: Arreglo de celdas básicas programables cuyas interconexiones también son programables Arquitectura genérica de FPGA ? - A high capacity programmable logic device - An array of programmable basic logic cells surrounded by programmable interconnects - Can be configured (programmed) by end-users (field-programmable) to implement specific applications - Capacity up to multi-millions logic gates and speed up to 500MHz - Popular applications: prototyping, on-site hardware reconfiguration, DSP, logic emulation, network components, etc… UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

FPGA - Flujo de Diseño Flujo de diseño típico: Verificación Entrada Síntesis Lógica Place & Route Programación Lenguaje de descripción de Hardware: VHDL Verilog UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

FPGA - Flujo de Diseño Xilinx - CLB: Celdas lógicas programables Flip-Flop Actel - VersaTiles VersaTiles Tecnología Flash. La programación de la celda no se pierde al quitar la alimentación FPGA - Flujo de Diseño Flujo de diseño típico: Verificación Entrada de Diseño Síntesis Lógica Place & Route Programación LUT: Look-Up Table Bloque RAM 16 bits: 4 entradas – 1 salida ENTRADA SALIDA 0 0 0 0 S0 0 0 0 1 S1 … … 1 1 1 1 S15 Transformación a un nivel de abstracción MENOR Mapeo del diseño según la TECNOLOGÍA especificada Incluye optimizaciones: Mayor velocidad Menor área Optimización de lógica, de tiempos, etc ¡No todo código VHDL es sintetizable! a <= not(a) after 5.4 ns; UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

FPGA - Flujo de Diseño Síntesis - Xilinx: XST Verificación Entrada Lógica Place & Route Programación UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Síntesis - Actel: Symplify Pro FPGA - Flujo de Diseño Síntesis - Actel: Symplify Pro Verificación Entrada de Diseño Síntesis Lógica Place & Route Programación UBA - Sistemas Embebidos - FPGA – SoftCores - 2010

FPGA - Flujo de Diseño Flujo de diseño típico: Verificación Entrada Síntesis Lógica Place & Route Programación Elección de: celdas lógicas rutas de interconexionado bloques de memoria RAM/Flash, PLLs, etc. También posee opciones de optimización de tiempo. Retardos en las líneas de conexión más importantes que retardos en celdas lógicas. Los tiempos de retardos estimados en el proceso de síntesis no tienen en cuenta los retardos en las conexiones. Simulación Post-Place&Route: más exacta!!! UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Place & Route – Xilinx: PlanAhead FPGA - Flujo de Diseño Place & Route – Xilinx: PlanAhead Verificación Entrada de Diseño Síntesis Lógica Place & Route Programación UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Place & Route – Actel: Designer FPGA - Flujo de Diseño Place & Route – Actel: Designer Verificación Entrada de Diseño Síntesis Lógica Place & Route Programación Compile Performs design rule check on the input netlist. Compile also performs some optimizations on the design through logic combining and buffer tree modifications. Compile options vary by family. UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

FPGA - Flujo de Diseño Flujo de diseño típico: Comportamiento Req. de tiempos Req. de potencia Flujo de diseño típico: Verificación Entrada de Diseño Síntesis Lógica Place & Route Programación UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Verificación: ModelSim FPGA - Flujo de Diseño Verificación: ModelSim Verificación Entrada de Diseño Síntesis Lógica Place & Route Programación UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Verificación - Actel: SmartTime FPGA - Flujo de Diseño Verificación - Actel: SmartTime Verificación Entrada de Diseño Síntesis Lógica Place & Route Programación Q CE R D RETARDO UBA - Sistemas Embebidos - FPGA – SoftCores - 2010

Verificación - Actel: SmartPower FPGA - Flujo de Diseño Verificación - Actel: SmartPower Verificación Entrada de Diseño Síntesis Lógica Place & Route Programación UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Verificación - Xilinx: XPower Analyzer FPGA - Flujo de Diseño Verificación - Xilinx: XPower Analyzer Verificación Entrada de Diseño Síntesis Lógica Place & Route Programación UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Ejemplo: Circuito debouncing UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

registro de desplazamiento lógica de generación de ‘salida’ Ejemplo: Circuito debouncing Q D clk switch_in salida Q1 Q2 QN QN-1 La salida del circuito sólo será ‘1’ cuando: Q1 = Q2 = … = QN-1 = ‘1’ QN = ‘0’ Solución propuesta: registro de desplazamiento + lógica de generación de ‘salida’ UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Ejemplo: Circuito debouncing Q D clk switch_in salida Q1 Q2 QN QN-1 VHDL – Entidad: entity switch_seguro is port( clk : IN std_logic; reset : IN std_logic; switch_in : IN std_logic; salida : OUT std_logic ); end switch_seguro; UBA - Sistemas Embebidos - FPGA – SoftCores - 2010

Ejemplo: Circuito debouncing VHDL – Arquitectura: architecture arch1 of switch_seguro is signal switch_buffer : std_logic_vector(7 downto 0); begin --Proceso: una gran sentencia concurrente! process(clk,reset) if reset = '1' then switch_buffer <= x"00"; elsif rising_edge(clk) then switch_buffer <= switch_buffer(6 downto 0) & switch_in; end if; end process; --Otra sentencia concurrente: salida <= '1' when switch_buffer = x"7F" else '0'; end arch1; Después de esta presentación mostrar el proyecto “uba_2010_presentacion_0” UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Ejemplo: Circuito debouncing Agregado de Flip-Flop a la salida: --Otra sentencia concurrente: salida_d <= '1' when switch_buffer = x"7F" else '0'; --Proceso: Flip-Flop de salida. process(clk,reset) begin if reset = '1' then salida <= '0'; elsif rising_edge(clk) then salida <= salida_d; end if; end process; end arch2; UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Flujo de Diseño FPGA + SoftCore UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

FPGA + SoftCore - Flujo de Diseño Verificación Entrada de Diseño Simulación Código Compilación Síntesis Programación ¿Debug? Ruteo * Al trabajar con FPGA no es común disponer de un equivalente al proceso de Depuración o Debugging. Programación UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Actel IDEs & ARM Cortex-M1 UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Actel IDEs Libero SoftConsole Administra el proceso de síntesis, place & route y programación de la FPGA - Herramienta gráfica. - Muestra el diseño en diagrama de bloques. - Útil para la interconexión de los bloques de un sist. que incluye un uP Basado en Eclipse - Compilador GNU C - Debugger GNU SmartDesign UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Actel IDEs Libero SoftConsole UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Actel IDEs: SmartDesign Catálogo: UARTs, FIFOs, RAM, Fash, PLL Cortex-M1, buses, controladores de RAM/Flash externas, etc. UBA - Sistemas Embebidos - FPGA – SoftCores - 2010

Catálogos de Cores - Cortex-M1 ver. 2.7 Tightly Coupled Memory no implementado 1 única interrupción UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Catálogos de Cores - Cortex-M1 ver. 3.0 - ITCM: 8KB - DTCM: 4KB - 16 interrupciones - multiplicador 3 ciclos UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Catálogos de Cores – Buses & Periféricos Útil para conexión del Cortex-M1 con otros proyectos en FPGA sin conexión AMBA. UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Mapeo de componentes en Memoria Bus AHB Bus APB UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Actel IDEs: SoftConsole UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Actel IDEs: Firmware Catalog Actel has a broad offering of proven and pre-implemented synthesizable IP building blocks that can be easily configured and used within Actel FPGA system-level designs. Software drivers for many Actel IP Cores are available within the Firmware Catalog. The drivers are free of charge and delivered as C source, so they can be easily compiled and linked into a user's program or executable. These drivers hide the implementation details of peripheral operations behind a driver application program interface (API), so the developer need only be concerned with the peripheral's function. Provee los Drivers de los IP Cores que interactúan con el uP. - Código disponible escrito en C. - Permite ocultar los detalles del funcionamiento de los periféricos UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Actel IDEs: Firmware Catalog UART: void UART_init(UART_instance_t * this_uart, addr_t base_addr, uint8_t baud_value, uint8_t line_config); void UART_send(UART_instance_t * this_uart, const uint8_t * tx_buffer, size_t tx_size); size_t UART_get_rx(UART_instance_t * this_uart,uint8_t * rx_buffer, size_t buff_size); GPIO: Actel has a broad offering of proven and pre-implemented synthesizable IP building blocks that can be easily configured and used within Actel FPGA system-level designs. Software drivers for many Actel IP Cores are available within the Firmware Catalog. The drivers are free of charge and delivered as C source, so they can be easily compiled and linked into a user's program or executable. These drivers hide the implementation details of peripheral operations behind a driver application program interface (API), so the developer need only be concerned with the peripheral's function. void GPIO_init(gpio_instance_t * this_gpio, addr_t base_address, uint32_t initial_output); void GPIO_set_output(gpio_instance_t * this_gpio, uint32_t value); uint32_t GPIO_get_input(gpio_instance_t * this_gpio); UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Actel IDEs: SoftConsole Mapeo de memoria en el Entorno de programación #ifndef __UBA_2010_PRESENTACION_1_H_ #define __UBA_2010_PRESENTACION_1_H_ /************************************************* * Peripheral Memory Map ************************************************/ #define COREAHBNVM_BASE_ADDR 0x00000000UL #define EXT_SRAM_BASE_ADDR 0x18000000UL #define COREAHBSRAM_BASE_ADDR 0x20000000UL #define COREGPIO0_BASE_ADDR 0xC5000000UL #define COREAI_BASE_ADDR 0xC6000000UL #define CORETIMER0_BASE_ADDR 0xC7000000UL #endif /* __UBA_2010_PRESENTACION_1_H_ */ Actel has a broad offering of proven and pre-implemented synthesizable IP building blocks that can be easily configured and used within Actel FPGA system-level designs. Software drivers for many Actel IP Cores are available within the Firmware Catalog. The drivers are free of charge and delivered as C source, so they can be easily compiled and linked into a user's program or executable. These drivers hide the implementation details of peripheral operations behind a driver application program interface (API), so the developer need only be concerned with the peripheral's function. UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Ejemplo: Implementación Cortex-M1 en Actel M1AFS-EMBEDDED KIT UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García

Actel M1AFS-EMBEDDED KIT UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García FPGA Fusion M1AFS1500 350 MHz máx. FPGA basada en Flash 1MByte Flash interna ADC 12 bits @ 600 Ksps 30 Entradas analógicas: -10,5 - +12 Volt. Oscilador interno RC 100 MHz 38.400 celdas lógicas 2 PLLs JTAG Precio: 1- U$S 250