Red de conocimiento del abogados - Preguntas y respuestas jurídicas - Guía de diseño FPGA: un catálogo de dispositivos, herramientas y flujos

Guía de diseño FPGA: un catálogo de dispositivos, herramientas y flujos

Introducción al Capítulo 1

1.1 Qué es FPGA

1.2 Por qué son interesantes los FPGA

1.3 ¿Cuáles son los usos de los FPGA?

1.4 Contenido de este libro

1.5 Qué no incluye este libro

1.6 Lectores destinatarios

Capítulo 2 Conceptos básicos

2.1 Núcleo de FPGA

2.2 Función programable simple

2.3 Tecnología de conexión de fusibles

2.4 Tecnología antifusibles

2.5 Programación del módulo de máscara dispositivo

2.6 PROM

2.7 Tecnología basada en EPROM

2.8 Tecnología basada en EEPROM

2.9 Tecnología basada en memoria Flash

p>

2.10 Tecnología basada en SRAM

2.11 Resumen

Capítulo 3 El origen de FPGA

3.1 Tecnologías relacionadas

3.2 Transistores

3.3 Circuitos integrados

3.4 SRAM/DRAM y microprocesadores

3.5 SPLD y CPLD

3.5.1 PROM

3.5.2 PLA

3.5.3 PAL y GAL

3.5.4 Otras opciones programables

3.5.5 CPLD p>

3.5.6 ABEL, CUPL, PALASM, JEDEC, etc.

3.6 Circuitos integrados de aplicación específica (gate arrays, etc.)

3.6.1 Personalización completa

3.6.2 Micromatrix y Micromosaic

3.6.3 Matriz de puertas

3.6.4 Dispositivo de unidad estándar

3.6.5 ASIC estructurado

3.7 FPGA

3.7.1 Plataforma FPGA

3.7.2 Híbrido FPGA-ASIC

3.7.3 Cómo los fabricantes de FPGA chips de diseño

Capítulo 4 Comparación de estructuras FPGA

4.1 Un pequeño recordatorio

4.2 Algunos antecedentes

4.3 Antifuse, SRAM y otros

4.3.1 Dispositivos basados ​​en SRAM

4.3.2 Problemas y soluciones de seguridad para dispositivos basados ​​en SRAM

4.3.3 Dispositivos basados ​​en Antifuse

4.3.4 Dispositivos basados ​​en EPROM

4.3.5 Dispositivos basados ​​en E2PROM/FLASH

4.3.6 Dispositivos híbridos FLASH-SRAM

4.3 7 Resumen

4.4 Estructuras de grano fino, medio y grueso

4.5 Bloques lógicos basados ​​en MUX y LUT

4.5.1 MUX-. estructuras basadas

p>

4.5.2 Estructura basada en LUT

4.5.3 Basado en MUX o LUT

4.5.4 3, 4, LUT de 5 o 6 entradas

4.5.5 LUT y RAM distribuida y SR

4.6 CLB, LAB y cortes

4.6.1 Unidad lógica Xlilinx

4.6.2 Componentes lógicos de Altera

4.6.3 Cortar y cortar en cubitos

4.6.4 CLB y LAB

4.6.5 RAM distribuida y turno registrarse

4.7 Cadena de transporte rápido

4.8 RAM integrada

4.9 Multiplicador, sumador, MAC, etc. integrados.

4.10 Núcleo de procesador integrado (duro y blando)

4.10.1 Núcleo de microprocesador duro

4.10.2 Núcleo de microprocesador blando

4.11 Árbol de reloj y gestión del tiempo

Controlador

4.11.1 Árbol de reloj

4.11.2 Administrador de reloj

4.12 E/S generales

4.12.1 E/S configurables Estándares O

4.12.2 Impedancia de E/S configurable

4.12.3 Voltaje de núcleo y E/S

4.13 Transmisión Gigabit

4.14 IP dura, IP blanda e IP sólida

4.15 Puertas del sistema y puertas reales

4.16 Año FPGA

Capítulo 5 Programación FPGA (Configuración)

5.1 Introducción

5.2 Archivo de configuración

5.3 Unidad de configuración

5.4 FPGA basada en Antifuse

5.5 FPGA basada en SRAM

5.5.1 El proceso rápido engaña a los ojos

5.5.2 Programación de RAM integrada (en bloques) y RAM distribuida

5.5.3 Múltiples cadenas de programación

5.5.4 Reinicialización rápida de dispositivos

5.6 Uso del puerto de configuración

5.6.1 FPGA como descarga serie del dispositivo maestro

5.6. 2 FPGA como dispositivo maestro para descarga paralela

5.6.3 FPGA como dispositivo esclavo para descarga paralela

5.6.4 FPGA como dispositivo esclavo para descarga en serie

5.7 Usando el puerto JTAG

5.8 Usando el procesador integrado

Capítulo 6 Quién está en el juego

6.1 Introducción

6.2 Proveedores de FPGA y FPAA

6.3 Proveedores de FPNA

6.4 Proveedores de EDA de línea completa

6.5 Proveedores profesionales de FPGA y EDA independientes

6.6 FPGA consultores de diseño que utilizan herramientas especializadas

6.7 Herramientas de diseño de código abierto, gratuitas y de bajo coste

Capítulo 7 Estilos de diseño FPGA y ASIC

7.1 Introducción

7.2 Estilo de codificación

7.3 Pipeline y jerarquía lógica

7.3.1 ¿Qué es un pipeline?

7.3.2 Sistema electrónico El pipeline en

7.4.3 Cadena de retardo

7.5 Consideraciones sobre el reloj

7.5.1 Dominio del reloj

7.5.2 Equilibrio del reloj

7.5 .3 Reloj cerrado y reloj habilitado

7.5.4 PLL y circuito de ajuste de reloj

7.5.5 Fiabilidad de la transmisión de datos entre dominios de reloj

7.6 Registro y bloqueo consideraciones

7.6.1 Pestillos

7.6.2 Flip-flops con entradas "set" y "reset"

7.6.3 Condiciones de inicialización y reset global

7.7 Compartir recursos (multiplexación por división de tiempo)

7.7.1 Úsalo o déjalo

7.7.2 Otros contenidos

7.8 Codificación de máquina de estados

7.9 Metodología de prueba

Capítulo 8 Proceso de diseño basado en esquemas

8.1 Los últimos días

8.2 Los primeros días de EDA

8.2.1 Herramientas de front-end, como simulación lógica

8.2.2 Herramientas de back-end, como diseño de diseño

8.2.3 CAE + CAD = EDA

8.3 Proceso de diseño ASIC simple basado en esquemas

8.4 Proceso de diseño FPGA simple (temprano) basado en esquemas

8.4.1 Mapeo

8.4.2 Embalaje

8.4.3 Colocación y enrutamiento

8.4.4 Análisis de tiempos y simulación posterior a la colocación y enrutamiento

8.5 Plano esquema esquemático y en capas

Esquemas

8.5.1 Esquemas planos aburridos

8.5.2 Esquemas jerárquicos (basados ​​en módulos)

8.6 Diseño actual basado en esquemas Proceso

Capítulo 9 Proceso de diseño basado en HDL

9.1 Problemas basados ​​en procesos esquemáticos

9.2 El surgimiento del proceso de diseño basado en HDL

9.2.1 Diferentes niveles de abstracción

9.2.2 Proceso inicial de diseño de ASIC basado en HDL

9.2.3 Proceso inicial de diseño de FPGA basado en HDL

9.2 .4 FPGA consciente de la estructura flujo

9.2.5 Síntesis lógica y síntesis basada en la física

9.3 Vida útil del insumo del diseño gráfico

9.4 Exceso absoluto de HDL

9.4.1 Verilog HDL

9.4.2 VHDL y VITAL

9.4.3 Diseño de lenguaje mixto

9.4.4 UDL/I

9.4.5 Superlog y SystemVerilog

9.4.6 SystemC

9.5 Cosas que vale la pena reflexionar

9.5.1 Preocupación, mucha preocupación

9.5.2 Multiplexores serie y paralelo

9.5.3 Tenga cuidado con los pestillos

9.5.4 Utilice las constantes con prudencia

9.5.5 Consideraciones sobre la utilización de recursos

9.5.6 También hay algunos contenidos que no se pueden ignorar

Capítulo 10 Creación de prototipos virtuales de silicio en el diseño de FPGA

10.1 ¿Qué es la creación de prototipos virtuales de silicio?

10.2 Método SVP basado en ASIC

10.2.1 SVP a nivel de puerta (generado por síntesis rápida)

10.2 .2 SVP a nivel de puerta (producido por síntesis basada en ganancia)

10.2.3 SVP de clúster

10.2.4 SVP basado en RTL

10.3 SVP basado en FPGA

10.3.1 Operación interactiva

10.3.2 Lugar y ruta incremental

10.3.3 FPGASVP basado en RTL

Capítulo 11 Proceso de diseño basado en C/C++ y otros lenguajes

11.1 Problemas en el proceso de diseño HDL tradicional

11.2 C vs. C++ vs. ejecución paralela vs. ejecución secuencial

11.3 Proceso de diseño basado en SystemC

11.3.1 Qué es SystemC y de dónde viene

11.3.2 SystemC 1.0

11.3.3 SystemC 2.0

11.3.4 Nivel de abstracción

11.3.5 Alternativas basadas en el flujo de diseño de SystemC

11.3.6 Lo amas o lo odias

p>

11.4 Proceso de diseño basado en C/C++ mejorado

11.4.1 Qué es C/C++ mejorado

11.4.2 Proceso de diseño C/C++ mejorado opcional

11.5 Proceso de diseño basado en C/C++ puro

11.6 Diferentes niveles de abstracción de síntesis

11.7 Entorno de verificación y diseño de lenguaje mixto

Capítulo 12 Proceso de diseño basado en DSP

12.1 Introducción a DSP

12.2 Soluciones de implementación de DSP opcionales

12.2.1 Elige cualquier dispositivo, pero no me dejes ver qué dispositivo

12.2.2 Evaluación y algoritmo a nivel de sistema verificación

12.2.3 Software ejecutándose en el núcleo DSP

12.2 .4 Hardware DSP dedicado

12.2.5 Recursos FPGA integrados relacionados con DSP

12.3 Flujo de diseño centrado en FPGA para DSP

12.3.

1. Lenguaje específico de dominio

12.3.2 Entorno de simulación y diseño a nivel de sistema

12.3.3 Representación de punto flotante y punto fijo

12.3. 4 Orientación del nivel del sistema/algoritmo Conversión de RTL (conversión manual)

12.3.5 Conversión del nivel del sistema/algoritmo a RTL (generado automáticamente)

12.3.6 Conversión del sistema/algoritmo nivel a C/C++

12.3.7 Entorno IP a nivel de módulo

12.3.8 No olvides la plataforma de prueba

12.4 DSP y VHDL/Verilog entorno de diseño mixto

Capítulo 13 Proceso de diseño basado en procesadores integrados

13.1 Introducción

13.2 Núcleo duro y núcleo blando

13.2.1 Núcleo duro

13.2.2 Núcleo blando del microprocesador

13.3 Dividir el diseño en partes de hardware y software

13.4 La visión del mundo del hardware y el software

13.5 Uso de FPGA como su propio entorno de desarrollo

13.6 Visibilidad de diseño mejorada

13.7 Algunos otros métodos de verificación híbridos

13.7.1 RTL (VHDL o Verilog )

13.7.2 C/C++, SystemC, etc.

13.7.3 Chip físico en simulador de hardware

13.7.4 Simulador de conjunto de instrucciones

13.8 Un entorno de diseño bastante inteligente

Capítulo 14 Diseño modular y diseño incremental

14.1 Procesar el diseño como un módulo grande

14.2 Dividir el diseño en módulos más pequeños

14.2.1 Diseño modular

14.2.2 Diseño incremental

14.2.3 Problemas existentes

14.3 Siempre hay de otras maneras

Capítulo 15 Diseño de alta velocidad y otras consideraciones de diseño de PCB

15.1 Antes de comenzar

15.2 Todos somos jóvenes, por lo tanto

15.3 La era del cambio

15.4 Otras consideraciones

15.4.1 Diseño de alta velocidad

15.4.2 Análisis de integridad de la señal

15.4.3 SPICE e IBIS

15.4.4 Alimentación de arranque

15.4.5 Uso de la impedancia del terminal interno

15.4.6 Serie o procesar datos en paralelo

Capítulo 16 Observación de los nodos internos de la FPGA

16.1 Falta de visibilidad

16.2 Uso de tecnología de multiplexación

16.3 Circuito de depuración dedicado

16.4 Analizador lógico virtual

16.5 Circuito virtual

16.5.1 Descripción del problema

16.5.2 Solución de línea virtual

Capítulo 17 IP

17.1 Fuente de IP

17.2 IP optimizada manualmente

17.2.1 IP de nivel RTL sin cifrar

17.2. 2 IP cifrada a nivel RTL

17.2.3 IP a nivel de Netlist sin ubicación ni enrutamiento

17.2.4 Después de la colocación y enrutamiento IP a nivel de Netlist

17.3 Generador de núcleos IP

17.4 Información completa

Capítulo 18 Migración entre diseño ASIC y diseño FPGA

18.1 Métodos de diseño alternativos

18.1.1 Sólo diseño FPGA

18.1.2 Conversión entre FPGA

18.1.3 Conversión de FPGA a ASIC

18.1.4 Conversión de ASIC a FPGA

Capítulo 19 Herramientas de diseño para simulación, síntesis y verificación

19.1 Introducción

19.2 Simulación (basada en ciclos, basada en eventos, etc.)

19.2.1 ¿Qué es la lógica basada en eventos?

Simulador de editor

19.2.2 Breve descripción del proceso de desarrollo del simulador lógico controlado por eventos

19.2.3 Valor lógico y sistema de valores lógicos diferentes

19.2. 4 Mezcla de simulación de lenguaje

19.2.5 Otros formatos de retardo

19.2.6 Simuladores basados ​​en ciclos

19.2.7 Elija el mejor simulador de lógica del mundo

19.3 Síntesis (Síntesis Lógica/HDL y Síntesis Física)

19.3.1 Tecnología de Síntesis Lógica/HDL

19.3.2 Tecnología de Síntesis Física

19.3.3 Reprogramación de tiempos, copia y síntesis secundaria

19.3.4 Elección de las mejores herramientas de síntesis del mundo

19.4 Análisis de tiempos (estático y dinámico)

19.4.1 Análisis de tiempos estático

19.4.2 Análisis de tiempos estático estadístico

19.4.3 Análisis de tiempos dinámicos

19.5 Verificación general

19.5.1 Verificar IP

19.5.2 Verificar el entorno y crear un banco de pruebas

19.5.3 Analizar los resultados de la simulación

19.6 Verificación formal

19.6.1 Diferentes tipos de verificación formal

19.6.2 ¿Qué es exactamente la verificación formal?

19.6.3 Términos y definiciones

19.6.4 Otra afirmación opcional/ técnicas de especificación de propiedades

19.6.5 Verificación formal estática y verificación formal dinámica

19.6.6 Resumen de varios lenguajes

19.7 Diseño mixto

19.7.1 Conversión de lenguaje HDL a lenguaje C

19.7.2 Cobertura de código

19.7.3 Análisis de rendimiento

Capítulo 20 Elección del dispositivo adecuado

20.1 Opciones ricas

20.2 Sería genial si hubiera herramientas de selección

20.3 Proceso

20.4 Recursos básicos y empaque

20.5 Interfaz de E/S general

20.6 Multiplicador integrado, RAM, etc.

20.7 Núcleo de procesador integrado

20.8 Capacidades de E/S Gigabit

20.9 IP disponibles

20.10 Clasificaciones de velocidad

20.11 Notas fáciles

No. Capítulo 21 Transceptor Gigabit

21.1 Introducción

21.2 Par diferencial

21.3 Varios estándares

21.4 Codificación de 8 bits/10 bits, etc.

21.5 Profundizando en el transceptor módulo

21.6 Combinación de múltiples transceptores

21.7 Recursos configurables

21.7.1 Detección de coma

21.7.2 Oscilación de salida diferencial

21.7.3 Resistencia terminal en chip

21.7.4 Preénfasis

21.7.5 Ecualización

21.8 Recuperación de reloj, fluctuación y diagrama de ojo

21.8.1 Recuperación de reloj

21.8.2 Diagrama de ojo y fluctuación

Capítulo 22 Computación reconfigurable

22.1 Reconfigurable dinámicamente Lógica

22.2 Interconexiones dinámicamente reconfigurables

22.3 Computación reconfigurable

Capítulo 23 Matriz de nodos programables en campo

23.1 Introducción

23.2 Evaluación de algoritmos

23.3 Tecnología picoArray de picoChip

23.3.1 Una aplicación picoArray ideal: estación base inalámbrica

23.3.2 Entorno de diseño picoArray

23.4 Tecnología ACM de QuickSilver

23.4.1 Diseño de nodos híbridos

23.4.2 Nodos del controlador del sistema, entrada y salida

Nodos de salida y otros nodos

23.4.3 Segmentación espacial y temporal

23.4.4 Creación y ejecución de programas en ACM

23.4.5 Y más contenido

23.5 Esto es silicio, pero no como lo conocemos

Capítulo 24 Herramientas de diseño independientes

24.1 Introducción

24.2 ParaCore Architect

24.2.1 Generar módulo de función de procesamiento de punto flotante

24.2.2 Generar módulo de función FFT

24.2.3 Interfaz basada en red

24.3 Confluencia lenguaje de diseño del sistema

24.3.1 Un ejemplo sencillo

24.3.2 Hay más funciones

24.3. Versión de evaluación gratuita

24.4 ¿Tienes esta herramienta?

Capítulo 25 Creando un proceso de diseño basado en código abierto

25.1 Cómo iniciar un estudio de diseño FPGA desde cero

25.2 Desarrollo plataforma: Linux

25.3 Entorno de verificación

25.3.1 Icarus Verilog

25.3.2 Dinotrace y GTKWave

25.3.3 Código cubierto Herramienta de cobertura

25.3.4 Verilator

25.3.5 Python

25.4 Verificación formal

25.4.1 Comprobación de modelo de código abierto

25.4.2 Inferencia automática basada en código abierto

25.4.3 ¿Cuál es el verdadero problema?

25.5 Visitar componentes IP públicos ***

25.5.1 OpenCores

25.5.2 OVL

25.6 Herramientas de síntesis e implementación

25.7 Placa de desarrollo FPGA

25.8 Materiales integrales

Capítulo 26 Desarrollo futuro de FPGA

26.1 Una preocupación

26.2 Estructura y tecnología de próxima generación

26.2.1 Mil millones de transistores a escala dispositivos

26.2.2 E/S ultrarrápidas

26.2.3 Configuración ultrarrápida

26.2.4 Más IP dura

26.2.5 Dispositivos analógicos y de señal mixta

26.2.6 ASMBL y otras estructuras

26.2.7 Diferentes granularidades estructurales

26.2.8 Núcleos FPGA integrados en estructuras ASIC

26.2.9 Núcleos FPNA integrados en estructuras ASIC y FPGA o viceversa

26.2.10 Dispositivos basados ​​en MRAM

p>

26.3 Herramientas de diseño

26.4 Espere lo inesperado

Apéndice

Apéndice A Introducción a la integridad de la señal

Apéndice B Efecto de retardo submicrónico profundo

Apéndice C Registro de desplazamiento lineal