¿En qué se diferencia el diseño ASIC de la síntesis FPGA HDL?

38

He tenido algo de experiencia con conjuntos de herramientas FPGA / HDL como Xilinx ISE, Lattice Diamond, etc. El flujo de trabajo general es escribir Verilog / VHDL, simular, probar y luego programar el FPGA.

He escuchado a un par de personas decir que el diseño ASIC es muy diferente. ¿Cuáles son los conjuntos de herramientas utilizados para los dos tipos principales de ASIC, ASIC de nivel de puerta y ASIC de nivel de transistor? He estado buscando herramientas de síntesis de alto nivel como Catapult C y Cadence C to Silicon, pero nunca he probado ninguna. ¿Puede explicar los diferentes tipos de herramientas disponibles en el campo ASIC / FPGA que pueden cambiar / acelerar el flujo de trabajo HDL típico?

    
pregunta Robinicks

2 respuestas

38

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

  1. Construye una biblioteca de células. (Como alternativa, la mayoría de los procesos tienen bibliotecas de puertas que están disponibles comercialmente. Recomendaría esto a menos que sepa que necesite algo que no esté disponible). Esto implica el diseño de múltiples puertas de resistencia de unidad para tantas funciones lógicas como sea necesario. , diseñando controladores de pad / receptores, y cualquier macros como un multiplicador de matriz o memoria. Una vez que se diseñe y verifique el esquema de cada celda, se debe diseñar la distribución física. He usado Cadence Virtuoso para este proceso, junto con simuladores de circuitos analógicos como Spectre y HSPICE.

  2. Caracteriza la biblioteca de células. (Si tiene una biblioteca de puerta de terceros, esto generalmente se hace por usted). Cada celda de su biblioteca debe simularse para generar tablas de tiempo para el Análisis de tiempo estático (STA). Esto implica tomar la celda terminada, extraer los parásitos del diseño usando Assura , Diva o Calibre , y simular el circuito en diferentes condiciones de entrada y salida. cargas Esto crea un modelo de tiempo para cada compuerta que es compatible con su paquete STA. Los modelos de tiempo generalmente están en el formato de archivo Liberty . He utilizado Silicon Smart y Liberty-NCX para simular todas las condiciones necesarias. Tenga en cuenta que probablemente necesitará modelos de tiempo en "el peor de los casos", "nominal" y "el mejor de los casos" para que la mayoría del software funcione correctamente.

  3. Sintetiza tu diseño. No tengo experiencia con compiladores de alto nivel, pero al final del día, la cadena de compiladores o compiladores debe tomar su diseño de alto nivel y generar una lista de redes de nivel de puerta. El resultado de la síntesis es el primer vistazo que se obtiene en el rendimiento teórico del sistema, y en el que se abordan por primera vez los problemas de la potencia del variador. He utilizado Compilador de diseño para el código RTL.

  4. Coloque y encamine su diseño. Esto toma el netlist de nivel de puerta del sintetizador y lo convierte en un diseño físico. Idealmente, esto genera un diseño de pad-to-pad que está listo para la fabricación. Es realmente fácil configurar el software P & R para que cometa automáticamente miles de errores de DRC, por lo que tampoco es todo diversión y juegos en este paso. La mayoría del software administrará los problemas de fuerza de la unidad y generará árboles de reloj según las indicaciones. Algunos paquetes de software incluyen Astro, IC Compiler, Silicon Encounter, y Silicon Ensemble. El resultado final del lugar y la ruta es la lista de redes final, el diseño final y el diseño extraído. parasitics.

  5. Análisis de temporización estática posterior al diseño. El objetivo aquí es verificar que su diseño cumpla con la especificación de tiempo y no tenga problemas de configuración, retención o activación. Si sus requisitos de diseño son ajustados, puede pasar mucho tiempo aquí corrigiendo errores y actualizando las correcciones en su herramienta P & R. La última herramienta de STA que usamos fue PrimeTime.

  6. Verificación física del diseño. Una vez que la herramienta P & R ha generado un diseño, debe verificar que el diseño cumpla con las reglas de diseño del proceso (Control de Reglas de Diseño / DRC) y que el diseño coincida con el esquema (Diseño frente a Esquema / LVS). Deben seguirse estos pasos para garantizar que el diseño esté correctamente cableado y se pueda fabricar. De nuevo, algunas herramientas de verificación física son Assura , Diva o Calibre.

  7. Simulación del diseño final. Dependiendo de la complejidad, puede realizar una simulación a nivel de transistor utilizando Specter o HSPICE , una simulación de "especia rápida" utilizando HSIM , o una simulación completamente digital utilizando ModelSim o VCS . Debería poder generar una simulación con retrasos realistas con la ayuda de su herramienta STA o P & R

Comenzar con una biblioteca de puertas existente es un gran ahorro de tiempo, así como el uso de macros que beneficien su diseño, como la memoria, un microcontrolador o bloques de procesamiento alternativos. La gestión de la complejidad del diseño también es una parte importante: un diseño de un solo reloj será más fácil de verificar que un circuito con múltiples dominios de reloj.

    
respondido por el W5VO
7

La respuesta de W5VO tiende a centrarse en el back-end, y esta es una diferencia importante entre los flujos ASIC y FPGA; Pero se pierde la parte de verificación de diseño digital.

Cuando obtener un diseño en silicio puede costar un millón de dólares o más, y puedes empacar muchas más puertas utilizables en un ASIC en comparación con un FPGA, entonces pasas mucho más tiempo fuera del laboratorio y los PCB's frente a las estaciones de trabajo. ejecutando granjas de simuladores y emuladores y escribiendo pruebas para verificar más completamente un diseño ASIC antes de lanzarlo 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.

    
respondido por el Paddy3118

Lea otras preguntas en las etiquetas

Comentarios Recientes

Las prácticas de diseño varían. La contribución del modelo físico del componente de silicio al diseño de los transistores, así como la presentación del dispositivo, son dominios comunes. Hay algunas razones clave de especialidad que se considera un diseño efectivo. Primero, permite al usuario construir muchos FPGA diferentes. Existen diseños especializados para circuitos críticos de alta resistencia con diferentes componentes, salidas de capacitancia de disco y rangos de frecuencia de encendido / apagado.... Lees verder