Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Verilog

Flujo de diseño ASIC completo: De requisitos a producción

Un flujo de diseño típico sigue una estructura que puede dividirse en múltiples pasos. Algunas fases ocurren en paralelo y otras secuencialmente. Veremos cómo es un ciclo típico de proyecto en la industria actual.

Requisitos

Un cliente de una empresa de semiconductores suele ser otra compañía que planea usar el chip en sus sistemas o productos finales. Por tanto, los requisitos del cliente juegan un papel importante en decidir cómo diseñar el chip. Naturalmente, el primer paso es recopilar requisitos, estimar el valor de mercado del producto final y evaluar los recursos necesarios para el proyecto.

Especificaciones

El siguiente paso es recopilar "especificaciones" que describan abstractamente la funcionalidad, interfaz y arquitectura general del chip a diseñar. Puede ser algo como:

  1. Potencia computacional para ejecutar algoritmos de imagen para realidad virtual
  2. Dos procesadores ARM A53 con interconexión coherente a 600 MHz
  3. Interfaces USB 3.0, Bluetooth y PCIe 2ª generación
  4. Soporte para pantalla 1920x1080 con controlador apropiado

Arquitectura

Ahora los arquitecturas crean una visión a nivel de sistema de cómo debe operar el chip. Deciden qué otros componentes se necesitan, qué frecuencias de reloj deben usar y cómo cumplir requisitos de potencia y rendimiento. También deciden cómo debe fluir la información dentro del chip. Un ejemplo sería el flujo de datos cuando un procesador obtiene datos de imagen de la RAM del sistema y los ejecuta. Mientras tanto, el motor gráfico ejecuta datos post-procesados del lote anterior volcado en otra parte de memoria, etc.

Diseño Digital

Debido a la complejidad de los chips modernos, no es posible construir algo desde cero y en muchos casos se reutilizan muchos componentes. Si la empresa X requiere un módulo FlexCAN para interactuar con otros módulos en un automóvil, pueden comprar el diseño FlexCAN a otra empresa para ahorrar tiempo o gastar recursos en construirlo. Tampoco es práctico diseñar tal sistema desde bloques básicos como flip-flops y transistores CMOS. En su lugar, se desarrolla una descripción conductual para analizar el diseño en términos de funcionalidad, rendimiento y otros aspectos de alto nivel usando un HDL como Verilog o VHDL. Esto lo suele hacer un diseñador digital, similar a un programador de alto nivel con conocimientos de electrónica digital.

Verificación

Una vez listo el diseño RTL, debe verificarse su corrección funcional. Por ejemplo, se espera que un procesador DSP emita transacciones de bus para obtener instrucciones de memoria, pero ¿cómo saber que ocurrirá como se espera? Aquí se requiere verificación funcional, realizada con simuladores EDA que modelan el diseño y aplican diferentes estímulos. Es el trabajo de un ingeniero de verificación pre-silicio.

Para ahorrar tiempo y alcanzar cierre funcional, los equipos de diseño y verificación operan en paralelo: los diseñadores "liberan" una versión RTL y el equipo de verificación desarrolla testbench y casos de prueba. Si alguna prueba falla, puede indicar un problema de diseño y se reporta un "bug". Este debe corregirse en la siguiente versión RTL. El proceso continúa hasta tener confianza en la corrección funcional.

Síntesis Lógica

Una vez satisfechos con el diseño, es hora de convertirlo en un esquema de hardware con elementos reales como puertas combinacionales y flip-flops. Este paso se llama síntesis. Las herramientas de síntesis lógica convierten la descripción RTL en HDL a una netlist a nivel de puerta. Esta netlist es una descripción del circuito en términos de puertas y conexiones. Podría verse así:

and_2_0 u_and2_0 ( .in_a (_net_112), .in_b (_net_56), .out (_net_222));
ff_lt u_ff_lt_122 (.d (_net_222), .clk (_net_11), .q (_net_76));

Las herramientas de síntesis aseguran que la netlist cumpla especificaciones de timing, área y potencia. Tienen acceso a diferentes procesos de nodos tecnológicos y bibliotecas de elementos digitales y hacen cálculos inteligentes para cumplir todos los criterios. Estas bibliotecas provienen de fábricas de semiconductores que proveen datos de características para componentes como tiempos de subida/bajada para flip-flops, tiempos entrada-salida para puertas combinacionales, etc.

Equivalencia Lógica

La netlist a nivel de puerta se verifica para equivalencia lógica con el RTL, y a veces se realiza una "verificación a nivel de puerta" donde se verifican ciertos elementos de nuevo, pero a nivel de puerta y menor abstracción. Los tiempos de simulación son más lentos por la gran cantidad de elementos y la información de retardos back-annotated.

Colocación y Enrutado (Place and Route)

La netlist se introduce en el flujo de diseño físico, donde se hace colocación y enrutado automático (APR o PnR) con herramientas EDA. Ejemplos son Cadence Encounter y Synopsys IC Compiler. Esto selecciona y coloca celdas estándar en filas, define mapas de bolas para I/O, crea capas de metal y coloca buffers para cumplir timing. Una vez hecho, se genera un layout y se envía para fabricación. Esta etapa la maneja el equipo de diseño físico, expertos en nodo tecnológico y detalles de implementación física.

Validación

No termina aquí. Un chip de muestra se fabrica por la misma empresa o se envía a una fundición tercerizada como TSMC o GlobalFoundries. Esta muestra pasa por validación post-silicio donde otro equipo de ingenieros ejecuta diferentes patrones en un tester. Es mucho más difícil depurar en validación post-silicio que en verificación pre-silicio porque la visibilidad de nodos internos se reduce drásticamente. Además, un millón de ciclos de reloj terminan en un segundo y rastrear el momento exacto del error lleva tiempo. Si hay problemas reales o bugs de diseño en esta etapa, deben corregirse en RTL, re-verificarse y repetir todos los pasos siguientes.

Aunque hay múltiples pasos en el flujo de diseño, gran parte de la actividad se concentra en la optimización y verificación de la descripción RTL del circuito. Es importante notar que aunque hay herramientas EDA para automatizar procesos, un uso inadecuado lleva a diseños ineficientes, por lo que el diseñador debe tomar decisiones conscientes durante el proceso.

Verilog

  1. 4 factores clave para un diseño efectivo de paneles de control
  2. Principios Esenciales de Diseño para Gabinetes de Control en Automatización Industrial
  3. Dominando el Diseño de Paneles de Control Eléctrico: Principios Clave y Mejores Prácticas
  4. Respuestas expertas rápidas a preguntas esenciales de diseño de PCB
  5. Mejora del diseño PCB: Estrategias probadas para aumentar rendimiento antiinterferencia
  6. Dominar la mitigación de interferencias en PCB: Guía profesional para garantizar el cumplimiento EMC
  7. Tres estrategias clave de diseño para EMC óptimo en PCBs de portátiles
  8. Entendiendo el Diseño Arquitectónico: Principios, Prácticas e Impacto
  9. ¿Cuándo crear un perfil de caudal? Guía experta de Atlas Copco
  10. Dominar Verilog: Tutorial completo para diseño de circuitos digitales
  11. Capas de abstracción en diseño: Guía clara para arquitectura de chips