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.
Escuché a un par de personas decir que el diseño de 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 investigando herramientas de síntesis de alto nivel como Catapult C y Cadence C to Silicon, pero nunca he probado ninguna todavía. ¿Puede explicar los diferentes tipos de herramientas disponibles en el campo ASIC/FPGA que pueden cambiar/acelerar el flujo de trabajo típico de HDL?
Por lo general, el diseño de 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 utilizado para cada tarea, pero no será enciclopédico.
Cree una biblioteca de células. (Alternativamente, la mayoría de los procesos tienen bibliotecas de puertas que están disponibles comercialmente. Recomendaría esto a menos que sepa que necesita algo que no está disponible). y cualquier macro, como un multiplicador de matriz o memoria. Una vez que se diseña y verifica el esquema de 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 .
Caracterizar la biblioteca celular. (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 de diseño usando Assura , Diva o Calibre , y simular el circuito bajo diferentes condiciones de entrada y cargas de salida. Esto crea un modelo de tiempo para cada puerta que es compatible con su paquete STA. Los modelos de temporización suelen estar en formato de archivo Liberty . He usado Silicon Smart y Liberty-NCXpara simular todas las condiciones necesarias. Tenga en cuenta que probablemente necesitará modelos de temporización en el "peor caso", "nominal" y "mejor caso" para que la mayoría del software funcione correctamente.
Sintetiza tu diseño. No tengo experiencia con compiladores de alto nivel, pero al final del día, el compilador o la cadena de compiladores debe tomar su diseño de alto nivel y generar una lista de conexiones a nivel de puerta. El resultado de la síntesis es el primer vistazo que obtiene al rendimiento teórico del sistema y donde se abordan primero los problemas de potencia de la unidad. He usado Design Compiler para código RTL.
Coloque y enrute su diseño. Esto toma la netlist a nivel de puerta del sintetizador y la convierte en un diseño físico. Idealmente, esto genera un diseño de pad a pad que está listo para la fabricación. Es realmente fácil configurar su software P&R para que cometa automáticamente miles de errores DRC, por lo que no todo es diversión y juegos en este paso tampoco. La mayoría del software gestionará los problemas de potencia de la unidad y generará árboles de reloj según las instrucciones. Algunos paquetes de software incluyen Astro, IC Compiler, Silicon Encounter y Silicon Ensemble. El resultado final del lugar y la ruta es la netlist final, el diseño final y los parásitos de diseño extraídos.
Análisis de temporización estática posterior al diseño. El objetivo aquí es verificar que su diseño cumpla con su especificación de tiempo y no tenga problemas de configuración, retención o activación. Si sus requisitos de diseño son estrictos, puede terminar dedicando mucho tiempo a corregir errores y actualizar las correcciones en su herramienta P&R. La última herramienta de STA que usamos fue PrimeTime .
Verificación física del Layout. 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 (Comprobación de reglas de diseño/DRC) y que el diseño coincida con el esquema (Layout versus Schematic/LVS). Se deben seguir estos pasos para asegurarse de que el diseño esté cableado correctamente y se pueda fabricar. De nuevo, algunas herramientas de verificación física son Assura , Diva o Calibre .
Simulación del diseño final. Según la complejidad, es posible que pueda realizar una simulación a nivel de transistor con Spectre o HSPICE , una simulación de "especia rápida" con HSIM o una simulación completamente digital con 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 usar cualquier macro que beneficie 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 reloj único será más fácil de verificar que un circuito con múltiples dominios de reloj.
La respuesta de W5VO tiende a centrarse en el back-end, y esta es una gran diferencia entre los flujos ASIC y FPGA; pero se pierde la parte de verificación del diseño digital.
Cuando obtener un diseño en silicio puede costar un millón de dólares y más, y puede empaquetar muchas más puertas utilizables en un ASIC en comparación con un FPGA, entonces pasa mucho más tiempo lejos del laboratorio y las PCB frente a las estaciones de trabajo que ejecutan granjas de simuladores. y emuladores y pruebas de escritura para verificar más completamente un diseño ASIC antes de lanzarlo para producción. Los diseñadores de FPGA tienden a realizar una gran parte de sus pruebas utilizando el FPGA en el sistema del que formará parte.
clabacchio
W5VO
clabacchio
W5VO
martin thompson
W5VO
Ale..chenski
W5VO
Ale..chenski