45 votos

¿Cómo es diferente el diseño ASIC de la síntesis de FPGA HDL?

He tenido experiencia con algunas suites de herramientas FPGA/HDL como Xilinx ISE, Lattice Diamond, etc. El flujo de trabajo general es escribir Verilog/VHDL, simulación, pruebas y luego programar el FPGA.

He escuchado a algunas personas decir que el diseño ASIC es muy diferente. ¿Cuáles son los conjuntos de herramientas utilizados para los dos principales tipos de ASIC, a nivel de compuertas y a nivel de transistores? He estado investigando herramientas de Síntesis de Alto Nivel como Catapult C y Cadence C to Silicon, pero aún no he probado ninguna. ¿Puedes explicar los diferentes tipos de herramientas disponibles en el campo de ASIC/FPGA que pueden cambiar/acelerar el flujo de trabajo típico de HDL?

42voto

BWW Puntos 302

Normalmente, el diseño ASIC es un esfuerzo en equipo debido a la complejidad y cantidad de trabajo. Daré un orden aproximado de los pasos, aunque algunos pasos se pueden completar en paralelo o fuera de orden. Listaré las herramientas que he utilizado para cada tarea, pero no será una lista enciclopédica.

  1. Construir una biblioteca de celdas. (Alternativamente, la mayoría de los procesos tienen bibliotecas de compuertas disponibles comercialmente. Recomendaría esto a menos que sepas que necesitas algo que no está disponible). Esto implica diseñar múltiples compuertas de diferentes fuerzas de impulsión para todas las funciones lógicas necesarias, diseñar controladores/receptores de pads, y cualquier macro como un multiplicador de arreglos o memoria. Una vez que se diseña y verifica el esquemático para cada celda, se debe diseñar el diseño físico. He utilizado Cadence Virtuoso para este proceso, junto con simuladores de circuitos analógicos como Spectre y HSPICE.

  2. Caracterizar la biblioteca de celdas. (Si tienes una biblioteca de compuertas de terceros, esto suele hacerse por ti). Cada celda en tu biblioteca debe ser simulada para generar tablas de temporización para el Análisis de Temporalidad Estática (STA). Esto implica tomar la celda terminada, extraer los parásitos de diseño utilizando Assura, Diva o Calibre, y simular el circuito bajo diferentes condiciones de entrada y cargas de salida. Esto construye un modelo de temporización para cada compuerta que sea compatible con tu paquete de STA. Los modelos de temporización suelen estar en el formato de archivo Liberty. He utilizado Silicon Smart y Liberty-NCX para simular todas las condiciones necesarias. Ten en cuenta que probablemente necesitarás modelos de temporización en "caso peor", "nominal" y "mejor caso" para que la mayoría de los software funcionen correctamente.

  3. Sintetizar tu diseño. No tengo experiencia con compiladores de alto nivel, pero al final del día, el compilador o cadena de compiladores debe tomar tu diseño de alto nivel y generar un netlist a nivel de compuerta. El resultado de la síntesis es la primera vista que tienes del rendimiento teórico del sistema, y donde se abordan por primera vez los problemas de fuerza de impulsión. He utilizado Design Compiler para código RTL.

  4. Colocar y enrutar tu diseño. Esto toma el netlist a nivel de compuerta del sintetizador y lo convierte en un diseño físico. Idealmente esto genera un diseño de pad a pad listo para la fabricación. Es muy fácil configurar tu software de P&R para hacer automáticamente miles de errores de DRC, por lo que tampoco todo es diversión y juegos en este paso. La mayoría del software gestionará problemas de fuerza de impulsión y generará árboles de reloj según se indique. Algunos paquetes de software incluyen Astro, IC Compiler, Silicon Encounter, y Silicon Ensemble. El resultado final de la colocación y el enrutamiento es el netlist final, el diseño final, y los parásitos de diseño extraídos.

  5. Análisis de Temporalidad Estática Poscolocación. El objetivo aquí es verificar que tu diseño cumple con tu especificación de temporización, y no tiene problemas de configuración, mantenimiento o de bloqueo. Si los requisitos de tu diseño son estrictos, es posible que pases mucho tiempo aquí corrigiendo errores y actualizando las correcciones en tu herramienta de P&R. La herramienta final de STA que utilizamos fue PrimeTime.

  6. Verificación Física del Diseño. Una vez que una disposición ha sido generada por la herramienta P&R, necesitas verificar que el diseño cumpla con las reglas de diseño del proceso (Revisión de Reglas de Diseño / DRC) y que la disposición coincida con el esquemático (Comparación de Diseño con Esquemático / LVS). Estos pasos deben seguirse para asegurarse de que la disposición esté cableada correctamente y sea fabricable. Nuevamente, algunas herramientas de verificación física son Assura, Diva o Calibre.

  7. Simulación del diseño final. Dependiendo de la complejidad, puedes hacer una simulación a nivel de transistor utilizando Spectre o HSPICE, una simulación de "spice rápido" utilizando HSIM, o una simulación completamente digital usando ModelSim o VCS. Deberías ser capaz de generar una simulación con retardos realistas con la ayuda de tu herramienta de STA o P&R.

Empezar con una biblioteca de compuertas existente es un gran ahorro de tiempo, al igual que usar cualquier macro que beneficie tu diseño, como memoria, un microcontrolador, o bloques de procesamiento alternativos. Gestionar la complejidad del diseño es también una gran parte - un diseño de reloj único será más fácil de verificar que un circuito con múltiples dominios de reloj.

10voto

jop Puntos 31978

La respuesta de W5VO tiende a centrarse en la parte de atrás, y esto es una diferencia importante entre los flujos de ASIC y FPGA; pero se pierde la parte de la verificación del diseño digital.

Cuando llevar un diseño al silicio puede costar un millón de dólares o más, y puedes empacar muchas más compuertas utilizables en un ASIC en comparación con un FPGA, entonces pasas mucho más tiempo lejos del laboratorio y de las placas de circuito impreso frente a estaciones de trabajo ejecutando granjas de simuladores y emuladores y escribiendo pruebas para verificar más completamente un diseño de ASIC antes de liberarlo para producción. Los diseñadores de FPGA tienden a hacer una gran parte de sus pruebas utilizando el FPGA en el sistema del que formará parte.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X