
En el diseño de circuitos integrados , el diseño físico es un paso del ciclo de diseño estándar que sigue al diseño del circuito . En este paso, las representaciones de circuito de los componentes (dispositivos e interconexiones) del diseño se convierten en representaciones geométricas de formas que, al fabricarse en las capas de materiales correspondientes, garantizarán el funcionamiento requerido de los componentes. Esta representación geométrica se denomina diseño del circuito integrado . Este paso suele dividirse en varios subpasos, que incluyen tanto el diseño como la verificación y validación del diseño. [ 1 ] [ 2 ]
El diseño de circuitos integrados (CI) modernos se divide en diseño de front-end mediante HDL y diseño de back-end o diseño físico . Las entradas para el diseño físico son (i) una lista de conexiones, (ii) información de la biblioteca sobre los dispositivos básicos del diseño y (iii) un archivo de tecnología que contiene las restricciones de fabricación . El diseño físico generalmente concluye con el posprocesamiento de la disposición , en el que se realizan modificaciones y adiciones a la disposición del chip. [ 3 ] A esto le sigue la fabricación de obleas , el proceso de fabricación en el que los diseños se transfieren mediante fotomáscaras a chips de silicio que luego se empaquetan en CI.
Cada una de las fases mencionadas anteriormente tiene flujos de diseño asociados. Estos flujos de diseño establecen el proceso y las directrices/marco de trabajo para dicha fase. El flujo de diseño físico utiliza las bibliotecas tecnológicas proporcionadas por los fabricantes. Estos archivos tecnológicos ofrecen información sobre el tipo de oblea de silicio utilizada, las celdas estándar empleadas, las reglas de diseño (como DRC en VLSI), etc.
El ingeniero de diseño físico (a veces llamado ingeniero físico o diseñador físico) es responsable del diseño y la disposición (enrutamiento), específicamente en el diseño de ASIC / FPGA .
Divisiones
Por lo general, el diseño físico de los circuitos integrados se clasifica en diseño totalmente personalizado , semi-personalizado, de matriz de puertas lógicas y de FPGA.
- Diseño totalmente personalizado: El diseñador tiene total flexibilidad en el diseño de la maquetación; se pueden usar o no celdas predefinidas. El diseñador tiene control total sobre el diseño y la ubicación de las celdas, así como sobre el enrutamiento que las conecta.
- Semicustomizado: Se utilizan celdas de biblioteca prediseñadas (preferiblemente probadas con DFM ), y el diseñador tiene flexibilidad en la ubicación de las celdas y el enrutamiento. [ 4 ]
- Matriz de puertas lógicas (y tecnologías similares): Las celdas de la biblioteca son fijas y posiblemente prefabricadas. El diseñador controla únicamente el enrutamiento.
- Matriz de puertas programables en campo (FPGA): Tanto la biblioteca de celdas como el enrutamiento son fijos. El diseñador controla la configuración de los interruptores que conectan las distintas unidades lógicas a los cables predefinidos.
El flujo de diseño utilizado depende en gran medida de los requisitos. El diseño totalmente personalizado es el más lento y costoso, pero ofrece potencialmente el mayor rendimiento. El diseño semicustomizado o ASIC es algo más sencillo, ya que los componentes han sido precaracterizados, aunque en algunos casos el diseñador tiene la flexibilidad de diseñar/modificar bloques de diseño a partir de bibliotecas proporcionadas por el proveedor en ASIC. [ 5 ] Esta flexibilidad no existe en los flujos que utilizan FPGA (por ejemplo , Altera o Xilinx ), que son los más fáciles de implementar, ya que los chips ya están fabricados. Estos ofrecen la ventaja de no requerir tiempo de fabricación (un chip diseñado hoy puede estar funcionando mañana) y, con mucho, la depuración más sencilla, pero tienen el menor rendimiento y el mayor costo por puerta.
Flujo de diseño físico de ASIC

Los pasos principales en el flujo de diseño físico de ASIC son, comenzando con la lista de conexiones posterior a la síntesis:
- Planificación de espacios
- Particionamiento
- Colocación
- Síntesis de árbol de reloj (CTS)
- Enrutamiento
- Verificación física
- Procesamiento posterior del diseño con preparación de datos de máscara
Estos pasos son solo los básicos. Existen flujos de desarrollo de procesos detallados que se utilizan según las herramientas y la metodología/tecnología empleadas. Algunas de las herramientas/software que se utilizan habitualmente en el diseño del back-end son:
- Cadence (Compilador RTL Cadence Encounter, Implementación digital Encounter, Solución de integridad de potencia de circuitos integrados Cadence Voltus, Solución de verificación de temporización Cadence Tempus)
- Synopsys (Design Compiler, IC Compiler II, IC Validator, PrimeTime, PrimePower, PrimeRail)
- Magma (BlastFusion, etc.)
- Mentor Graphics (Olympus SoC, IC-Station, Calibre)
El flujo de diseño físico de ASIC utiliza las bibliotecas de tecnología proporcionadas por los fabricantes. Las tecnologías se clasifican comúnmente según el tamaño mínimo de las características. Los tamaños estándar, en orden de miniaturización, son 2 μm , 1 μm, 0,5 μm , 0,35 μm , 0,25 μm, 180 nm , 130 nm , 90 nm , 65 nm , 45 nm , 28 nm , 22 nm , 18 nm, 14 nm , etc. También se pueden clasificar según los principales métodos de fabricación: proceso n-Well, proceso twin-well, proceso SOI , etc.
Lista de conexiones de diseño
El diseño físico se basa en una lista de conexiones (netlist), que es el resultado final del proceso de síntesis lógica . La síntesis convierte el diseño RTL, generalmente codificado en VHDL o Verilog HDL, en descripciones a nivel de compuertas que las herramientas posteriores pueden leer y comprender. Esta lista de conexiones contiene información sobre las celdas utilizadas, sus interconexiones, el área empleada y otros detalles. Las herramientas de síntesis típicas son:
- Compilador RTL de Cadence/Puertas de construcción/Síntesis con conocimiento físico (PKS)
- Compilador de diseño de Synopsys
Durante el proceso de síntesis, se aplican restricciones para garantizar que el diseño cumpla con la funcionalidad y la velocidad especificadas. Solo después de verificar la funcionalidad y la temporización de la lista de conexiones, esta se envía al flujo de diseño físico. Sin embargo, cabe destacar que la temporización en este punto es solo una estimación, ya que aún se desconocen los efectos parásitos del diseño físico.
Pasos
Particionamiento
La partición es un proceso que divide el chip en pequeños bloques. Esto se realiza principalmente para separar diferentes bloques funcionales y facilitar la colocación y el enrutamiento. La partición se puede realizar en la fase de diseño RTL, cuando el ingeniero de diseño divide el diseño completo en subbloques y luego procede a diseñar cada módulo. Estos módulos se enlazan en el módulo principal, denominado módulo de nivel superior. Este tipo de partición se conoce comúnmente como partición lógica. El objetivo de la partición es dividir el circuito de manera que se minimice el número de conexiones entre particiones.
Planificación de espacios
El segundo paso en el flujo de diseño físico es la planificación de la distribución del espacio . La planificación de la distribución del espacio consiste en identificar las estructuras que deben colocarse cerca unas de otras y asignarles espacio de manera que se satisfagan los objetivos, a veces contradictorios, del espacio disponible (coste del chip), el rendimiento requerido y el deseo de que todo esté cerca de todo lo demás.
En función del área del diseño y la jerarquía, se decide un plano de distribución adecuado. Este plano tiene en cuenta las macros utilizadas en el diseño, la memoria, otros núcleos IP y sus necesidades de ubicación, las posibilidades de enrutamiento y el área total del diseño. Asimismo, determina la estructura de E/S y la relación de aspecto del diseño. Un plano de distribución deficiente conlleva un desperdicio de área del chip y congestión en el enrutamiento.
En muchas metodologías de diseño, el área y la velocidad son factores que deben sopesarse. Esto se debe a la limitación de recursos de enrutamiento, ya que cuantos más recursos se utilicen, más lento será el funcionamiento. La optimización para un área mínima permite que el diseño utilice menos recursos y que las secciones estén más cerca unas de otras. Esto se traduce en distancias de interconexión más cortas, menor consumo de recursos de enrutamiento, rutas de señal de extremo a extremo más rápidas e incluso tiempos de ubicación y enrutamiento más rápidos y consistentes. Si se realiza correctamente, la planificación de la distribución física no presenta inconvenientes.
Por regla general, las secciones de ruta de datos son las que más se benefician de la planificación de la distribución física, mientras que la lógica aleatoria, las máquinas de estados y otra lógica no estructurada pueden dejarse con seguridad a la sección de colocación del software de colocación y enrutamiento.
Las rutas de datos suelen ser las áreas del diseño donde se procesan varios bits en paralelo, modificándose cada bit de la misma manera, posiblemente con cierta influencia de los bits adyacentes. Ejemplos de estructuras que conforman rutas de datos son los sumadores, restadores, contadores, registros y multiplexores.
Colocación
En las etapas iniciales, cuando se desconoce la ubicación, generalmente se utiliza un modelo de carga de cables (WLM) simple, a menudo una estimación basada en el factor de ramificación. La ubicación utiliza valores RC más precisos, generalmente estimados a partir del cuadro delimitador de todos los pines de una red, pero sin un enrutamiento detallado.
La colocación se realiza en cuatro fases de optimización:
- Optimización previa a la colocación
- En la optimización de la colocación
- Optimización posterior a la colocación (PPO) antes de la síntesis del árbol de reloj (CTS)
- PPO después de CTS.
- La optimización previa a la colocación optimiza la lista de conexiones antes de la colocación, colapsando las redes de alta ramificación (HFN, por sus siglas en inglés). También puede reducir el tamaño de las celdas.
- La optimización en la ubicación reoptimiza la lógica en función de las cargas de cableado estimadas. Esto permite dimensionar celdas, moverlas, omitirlas, dividir redes, duplicar compuertas, insertar búferes y recuperar áreas. La optimización realiza iteraciones de corrección de configuración, ajuste de temporización incremental y ubicación basada en la congestión.
- Optimización de la colocación posterior antes de que CTS optimice la lista de conexiones con relojes ideales. Puede corregir errores de configuración, retención y trans/capacidad máxima. Puede realizar optimización de la colocación basada en el enrutamiento global. Vuelve a realizar la síntesis HFN.
- La optimización posterior a la colocación, tras la optimización de la temporización mediante CTS con el reloj propagado, intenta preservar la desviación del reloj.
Síntesis del árbol del reloj

El objetivo de la síntesis del árbol de reloj ( CTS ) es asegurar el correcto funcionamiento de un circuito síncrono, principalmente minimizando la desviación y controlando el retardo de inserción. El reloj es una única señal lógica de alta ramificación antes de la CTS, como se muestra en la imagen. Después de la CTS, se deben cumplir los tiempos de configuración y mejorar la holgura de retención. Un árbol de reloj comienza en una fuente (normalmente definida en un archivo .sdc) y termina en los pines de reloj de los flip-flops. Hay dos tipos de pines de parada conocidos como pines de ignorado y pines de sincronización . Los circuitos y pines que no se deben tocar en la etapa de entrada (síntesis lógica) se tratan como circuitos o pines de ignorado en la etapa de salida (síntesis física). Los pines de ignorado se ignoran para el análisis de temporización. Si el reloj se divide en varias fases, entonces es necesario un análisis de desviación independiente.
- La desviación global es la desviación entre dos pines sincronizados cualesquiera, sin tener en cuenta ninguna relación lógica.
- La desviación local es la desviación entre dos pines sincronizados que están conectados mediante lógica.
- Se define como desviación útil aquella condición en la que el reloj se desvía intencionalmente para mejorar el margen de ajuste.
Rigidez es el término acuñado en Astro para indicar la relajación de las restricciones. A mayor rigidez, mayores restricciones.
En la optimización del árbol de reloj (CTO), el reloj se puede blindar para que el ruido no se acople a otras señales. Pero el blindaje aumenta el área entre un 12 y un 15 %. Dado que la señal de reloj es de naturaleza global, la misma capa metálica que se usa para el enrutamiento de la alimentación se usa también para el reloj. La CTO se logra mediante el dimensionamiento del búfer, el dimensionamiento de la puerta, la reubicación del búfer, el ajuste de nivel y la síntesis HFN. Intentamos mejorar la holgura de configuración en la optimización previa a la colocación, en la colocación y posterior a la colocación antes de las etapas CTS, mientras que descuidamos la holgura de retención. En la optimización posterior a la colocación después de CTS, se mejora la holgura de retención. Como resultado de CTS, se agregan muchos búferes. Generalmente, para 100k puertas se agregan alrededor de 650 búferes.
Enrutamiento
En el proceso de diseño físico existen dos tipos de enrutamiento : el enrutamiento global y el enrutamiento detallado. El enrutamiento global asigna los recursos de enrutamiento que se utilizan para las conexiones. También realiza la asignación de pistas para una red específica.
El enrutamiento detallado realiza las conexiones reales. Las diferentes restricciones que deben tenerse en cuenta durante el enrutamiento son la verificación de reglas de diseño (DRC), la longitud del cable, la temporización, etc.
Verificación física
La verificación física comprueba la corrección del diseño de la disposición generada. Esto incluye verificar que la disposición
- Cumple con todos los requisitos tecnológicos: verificación de reglas de diseño (DRC).
- Es coherente con la lista de conexiones original: diseño versus esquema (LVS).
- No tiene efectos de antena – Verificación de reglas de antena
- Esto también incluye la verificación de densidad a nivel de chip completo... La limpieza de la densidad es un paso muy crítico en los nodos tecnológicos más bajos.
- Cumple con todos los requisitos eléctricos – Verificación de Normas Eléctricas (ERC). [ 6 ]
Procesamiento posterior del diseño
El procesamiento posterior del diseño, también conocido como preparación de datos de máscara , suele concluir el diseño físico y la verificación. Convierte el diseño físico (polígonos) en datos de máscara (instrucciones para el escritor de fotomáscaras ). Incluye [ 3 ]
- Acabado de chips, como la inserción de etiquetas de la empresa/chip y estructuras finales (por ejemplo, anillo de sellado, estructuras de relleno),
- Generar un diseño de retícula con patrones de prueba y marcas de alineación,
- Preparación del diseño para la máscara, que amplía los datos de diseño con operaciones gráficas (por ejemplo, tecnologías de mejora de la resolución , RET) y ajusta los datos a los dispositivos de producción de máscaras (escritor de fotomáscaras).
Véase también
Referencias
- ↑ N. Sherwani, "Algoritmos para la automatización del diseño físico de VLSI", Kluwer (1998), ISBN 9780792383932
- ↑ A. Kahng, J. Lienig, I. Markov, J. Hu: "Diseño físico VLSI: desde la partición de grafos hasta el cierre de temporización", Springer (2022), doi : 10.1007/978-90-481-9591-6 , ISBN 978-3-030-96414-6, págs. 6-10.
- 1 2 J. Lienig, J. Scheible (2020). «Cap. 3.3: Datos de máscara: Procesamiento posterior del diseño». Fundamentos del diseño de circuitos electrónicos . Springer. págs. 102–110 . doi : 10.1007/978-3-030-39284-0 . ISBN 978-3-030-39284-0. S2CID 215840278 .
- ↑ "Flujo de diseño semicustomizado" (PDF) . Conferencia de automatización del diseño . Archivado del original (PDF) el 24 de marzo de 2018.
- ↑ Mehrotra, Alok; Van Ginneken, Lukas PPP; Trivedi, Yatin. "Flujo de diseño y metodología para ASIC de 50 millones de puertas" , Publicaciones de la Conferencia IEEE, ISBN 0-7803-7659-5
- ↑ A. Kahng, J. Lienig, I. Markov, J. Hu: "Diseño físico VLSI: desde la partición de grafos hasta el cierre de temporización", Springer (2022), doi : 10.1007/978-3-030-96415-3 , ISBN 978-3-030-96414-6, pág. 26.
- Automatización del diseño electrónico
- Empleos en la industria de semiconductores