miniatura|Passos de disseny físic dins del flux de disseny de circuits integrats En el disseny de circuits integrats, el disseny físic és un pas del cicle de disseny estàndard que segueix al disseny del circuit. En aquest pas, les representacions de circuits dels components (dispositius i interconnexions) del disseny es converteixen en representacions geomètriques de formes que, quan es fabriquen en les capes de materials corresponents, garantiran el funcionament requerit dels components. Aquesta representació geomètrica s'anomena disseny de circuit integrat. Aquest pas se sol dividir en diversos subpassos, que inclouen tant el disseny com la verificació i validació del disseny.N. Sherwani, "Algorithms for VLSI Physical Design Automation", Kluwer (1998), A. Kahng, J. Lienig, I. Markov, J. Hu: "VLSI Physical Design: From Graph Partitioning to Timing Closure", Springer (2022), , , p. 6-10.

El disseny de circuits integrats (CI) modern es divideix en disseny front-end mitjançant HDL i disseny back-end o disseny físic. Les entrades per al disseny físic són (i) una llista de xarxes (netlist), (ii) informació de la biblioteca sobre els dispositius bàsics del disseny i (iii) un fitxer tecnològic que conté les restriccions de fabricació. El disseny físic normalment conclou amb el postprocessament del disseny, en què es realitzen modificacions i addicions al disseny del xip. A continuació, ve la fabricació de les oblies, el procés de fabricació pel qual els dissenys es transfereixen mitjançant fotomàscares a matrius de silici que després s'empaquetaven en circuits integrats.

Cadascuna de les fases esmentades anteriorment té fluxos de disseny associats. Aquests fluxos de disseny estableixen el procés i les directrius/marc per a aquesta fase. El flux de disseny físic utilitza les biblioteques tecnològiques que proporcionen les cases de fabricació. Aquests fitxers tecnològics proporcionen informació sobre el tipus d'oblea de silici utilitzada, les cel·les estàndard utilitzades, les regles de disseny (com ara DRC a VLSI), etc.

L'enginyer de disseny físic (de vegades anomenat enginyer físic o dissenyador físic) és responsable del disseny i la maquetació (enrutament), específicament en el disseny d'ASIC/FPGA.

Divisions Normalment, el disseny físic de circuits integrats es classifica en dissenys totalment personalitzats, semipersonalitzats, de matriu de portes i de FPGA.

Totalment personalitzat: el dissenyador té plena flexibilitat en el disseny de la maquetació; es poden utilitzar o no cel·les predefinides. El dissenyador té control total tant sobre el disseny i la col·locació de les cel·les com sobre l'enrutament que les connecta. Semipersonalitzat: S'utilitzen cel·les de biblioteca predissenyades (preferiblement provades amb DFM), i el dissenyador té flexibilitat en la col·locació de les cel·les i l'encaminament. Matriu de portes (i tecnologies similars): Les cel·les de la biblioteca són fixes i possiblement prefabricades. El dissenyador només controla l'enrutament. Matriu de portes programables en camp (FPGA): Tant la biblioteca de cel·les com l'encaminament són fixos. El dissenyador controla la configuració dels interruptors que connecten diverses unitats lògiques als cables predefinits.

El flux de disseny utilitzat depèn en gran manera dels requisits. El disseny totalment personalitzat és el més lent i car, però ofereix potencialment el rendiment més alt. El semi-personalitzat o ASIC és una mica més fàcil, ja que els components han estat pre-caracteritzats, tot i que en alguns casos el dissenyador té la flexibilitat de dissenyar/modificar blocs de disseny de biblioteques proporcionades pel proveïdor en ASIC.Mehrotra, Alok; Van Ginneken, Lukas P P P; Trivedi, Yatin. "Design flow and methodology for 50M gate ASIC", IEEE Conference Publications, Aquesta flexibilitat falta per als fluxos que utilitzen FPGA (per exemple, Altera o Xilinx), que són els més fàcils d'implementar, ja que els xips ja estan fabricats. Aquests ofereixen l'avantatge de no tenir temps de fabricació (un xip dissenyat avui pot funcionar demà) i, amb diferència, la depuració més fàcil, però tenen el rendiment més baix i el cost per porta més alt.

Flux de disseny físic ASIC miniatura|Un flux típic de backend d'ASIC Els passos principals en el flux de disseny físic d'un ASIC són, començant per la llista de xarxes post-síntesi:

Planificació de la planta Partició Col·locació Síntesi d'arbre de rellotge (CTS) Enrutament Verificació física Postprocessament de disseny amb preparació de dades de màscara

Aquests passos són només els bàsics. Hi ha fluxos de PD detallats que s'utilitzen en funció de les eines utilitzades i la metodologia/tecnologia. Algunes de les eines/programari que s'utilitzen habitualment en el disseny del back-end són:

Cadence (Compilador RTL de Cadence Encounter, Implementació digital d'Encounter, Solució d'integritat de potència de circuit integrat Cadence Voltus, Solució de signatura de sincronització de Cadence Tempus) Synopsys (Compilador de disseny, Compilador de CI II, Validador de CI, PrimeTime, PrimePower, PrimeRail) Magma (BlastFusion, etc.) Mentor Graphics (Olympus SoC, IC-Station, Calibre)

El flux de disseny físic de l'ASIC utilitza les biblioteques tecnològiques proporcionades pels fabricants. Les tecnologies es classifiquen habitualment segons la mida mínima de les seves característiques. Les mides estàndard, en ordre de miniaturització, són 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. També es poden classificar segons els principals enfocaments de fabricació: procés n-Well, procés twin-well, procés SOI, etc.

Llista de xarxes de disseny El disseny físic es basa en una netlist que és el resultat final del procés de síntesi lògica. La síntesi converteix el disseny RTL, generalment codificat en VHDL o Verilog HDL, en descripcions a nivell de porta que el següent conjunt d'eines pot llegir i entendre. Aquesta llista de xarxes conté informació sobre les cel·les utilitzades, les seves interconnexions, l'àrea utilitzada i altres detalls. Les eines de síntesi típiques són:

Compilador RTL de Cadence/Portes de construcció/Síntesi amb coneixements físics (PKS) Compilador de disseny de Synopsys

Durant el procés de síntesi, s'apliquen restriccions per garantir que el disseny compleixi la funcionalitat i la velocitat especificades. Només després que la llista de connexions s'hagi verificat quant a funcionalitat i temps, s'envia al flux de disseny físic. Tingueu en compte, però, que el temps en aquest punt només és una estimació, ja que els paràsits del disseny físic encara no es coneixen.

Passos Partició La partició és un procés de dividir el xip en blocs petits. Això es fa principalment per separar diferents blocs funcionals i també per facilitar la col·locació i l'enrutament. El particionament es pot fer en la fase de disseny RTL quan l'enginyer de disseny divideix tot el disseny en subblocs i després procedeix a dissenyar cada mòdul. Aquests mòduls estan enllaçats entre si en el mòdul principal anomenat mòdul TOP LEVEL. Aquest tipus de partició s'anomena comunament partició lògica. L'objectiu del particionament és dividir el circuit de manera que es minimitzi el nombre de connexions entre particions.

Planificació de la planta El segon pas en el flux de disseny físic és la planificació de la planta. La planificació de planta és el procés d'identificar estructures que s'han de col·locar a prop les unes de les altres i assignar-hi espai de manera que es compleixin els objectius, de vegades contradictoris, d'espai disponible (cost del xip), rendiment requerit i el desig de tenir-ho tot a prop de tot.

En funció de l'àrea de disseny i la jerarquia, es decideix una distribució adequada. La planificació de planta té en compte les macros utilitzades en el disseny, la memòria, altres nuclis IP i les seves necessitats de col·locació, les possibilitats d'enrutament i també l'àrea de tot el disseny. La planificació de la planta també determina l'estructura d'E/S i la relació d'aspecte del disseny. Un mal plànol de planta comportarà un malbaratament de l'àrea del dau i una congestió de l'enrutament.

En moltes metodologies de disseny, l'àrea i la velocitat són objecte de compromisos. Això es deu als recursos d'enrutament limitats, ja que com més recursos s'utilitzen, més lent és el funcionament. L'optimització per a una àrea mínima permet que el disseny utilitzi menys recursos i que les seccions del disseny siguin més properes. Això porta a distàncies d'interconnexió més curtes, menys recursos d'enrutament utilitzats, camins de senyal d'extrem a extrem més ràpids i temps de lloc i ruta encara més ràpids i consistents. Si es fa correctament, la planificació del sòl no té cap inconvenient.

Com a regla general, les seccions de ruta de dades es beneficien més de la planificació del terreny, mentre que la lògica aleatòria, les màquines d'estat i altres lògiques no estructurades es poden deixar amb seguretat a la secció de col·locació del programari de lloc i ruta.

Les rutes de dades són normalment les àrees del disseny on es processen diversos bits en paral·lel, i cada bit es modifica de la mateixa manera amb potser alguna influència dels bits adjacents. Exemples d'estructures que formen els camins de dades són sumadors, restadors, comptadors, registres i multiplexors.

Col·locació Les etapes inicials, quan la col·locació és desconeguda, generalment utilitzen un model de càrrega de filferro (WLM) simple, sovint una estimació basada en el fanout. La col·locació utilitza valors RC més precisos, normalment estimats a partir del quadre delimitador de tots els pins d'una xarxa, però sense un enrutament detallat.

La col·locació es realitza en quatre fases d'optimització:

Optimització prèvia a la col·locació Optimització en la col·locació Optimització posterior a la col·locació (PPO) abans de la síntesi de l'arbre de rellotge (CTS) PPO després de CTS.

L'optimització prèvia a la col·locació optimitza la llista de xarxes abans de la col·locació, les HFN (xarxes d'alt fanout) es col·lapsen. També pot reduir la mida de les cèl·lules. L'optimització in situ reoptimitza la lògica basant-se en les càrregues de cable estimades. Això pot realitzar el dimensionament de cel·les, el moviment de cel·les, la derivació de cel·les, la divisió de xarxes, la duplicació de portes, la inserció de memòria intermèdia i la recuperació d'àrees. L'optimització realitza la iteració de la correcció de la configuració, la sincronització incremental i la col·locació basada en la congestió. Optimització posterior a la col·locació abans que CTS realitzi l'optimització de la llista de xarxes amb rellotges ideals. Pot corregir infraccions de configuració, retenció i transaccions/límits màxims. Pot fer optimització de col·locació basada en l'enrutament global. Refà la síntesi de HFN. L'optimització posterior a la col·locació després del CTS optimitza la sincronització amb el rellotge propagat. Intenta preservar el biaix del rellotge.

Síntesi d'arbre de rellotge miniatura|300x300px|Rellotge ideal abans del CTS