El projecte OpenROAD (Open Realization of Autonomous Design) és un important projecte de codi obert que pretén proporcionar un flux de disseny de circuits integrats digitals de principi a fi (RTL a GDSII) completament automatitzat, eliminant així la necessitat d'intervenció humana. El projecte, liderat per la UC San Diego, té com a objectiu democratitzar el disseny de maquinari i promoure la innovació ràpida en el disseny de circuits integrats (CI) reduint les barreres relacionades amb el cost, el temps i l'experiència.

OpenROAD es va iniciar el 2018 per abordar l'alt cost, l'experiència necessària i la imprevisibilitat de les eines EDA convencionals com a part de la iniciativa IDEA de DARPA. El seu objectiu és establir un flux de 24 hores sense presència humana (NHIL) que coincideixi amb la qualitat habitual de disseny i produeixi dissenys directament adequats per a la fabricació. OpenROAD es publica sota una llicència BSD permissiva per mantenir-lo disponible gratuïtament, tot i la inclusió d'eines comercials.

Entre les principals característiques d'OpenROAD hi ha les interfícies d'scripting (Tcl/Python) i una base de dades comuna (OpenDB), que ajuden els dissenyadors a automatitzar o personalitzar cada fase del procés de disseny digital. Els projectes que utilitzen el flux van des de Hammer a la Universitat de Califòrnia, Berkeley, fins al flux analògic/de senyal mixt FASoC i el compilador de silici Zero-ASIC. Els fluxos ASIC oberts prefabricats inclouen scripts OpenLane i OpenROAD.

Història i motivació El disseny modern de circuits integrats digitals és un procés complex i de diverses etapes que requereix eines especialitzades, cares i pròpies, juntament amb experiència en l'ajust dels seus paràmetres. El programa IDEA de DARPA sota la direcció d'Andreas Olofsson, va iniciar OpenROAD, un flux RTL-a-GDSII autònom i de codi obert dissenyat per abordar la "crisi dels costos de disseny" eliminant la necessitat de retocs i llicències expertes, democratitzant així el disseny de xips i permetent que les empreses més petites, els grups de recerca i les institucions acadèmiques produeixin dissenys de semiconductors. L'objectiu era crear un flux sense humans en bucle que pogués prendre una descripció RTL i generar un disseny llest per a màscara GDSII en menys de 24 hores, amb un rendiment, potència i àrea (PPA) equivalents als processos de disseny comercials.

OpenROAD va ser dirigit pel professor Andrew Kahng de la UC San Diego. Compta amb el suport de socis comercials com Arm, Qualcomm, SkyWater i altres. La primera iteració (v1.0, 2020) d'una tecnologia FinFET actual (GF12LP, ~12 nm) va produir un flux complet i integrat que produïa dissenys nets de DRC. Juntament amb una millora gairebé completa dels nodes tecnològics del PPA, la versió 2.0 (2021) inclou capacitats avançades (extracció de RC, codisseny de paquets de xips). Centenars de dissenys a l'obert SkyWater 130 nm PDK (complet amb un llançador Google MPW) i execucions experimentals en Intel 22 nm FinFET el 2021 ha ajudat a la comunitat a millorar el flux al llarg del temps. Formant la base dels projectes OpenLane i ChipIgnite, l'ecosistema de codi obert per a dissenys RISC-V System-on-Chip (SoC) s'ha expandit ràpidament i ara es considera la infraestructura de disseny físic de codi obert líder per a circuits integrats digitals. A través de cursos universitaris i esdeveniments com ara el 7 nm OpenROAD Design Challenge, que té com a objectiu augmentar la base d'usuaris, la iniciativa promou agressivament l'educació i la formació dels treballadors.

Filosofia del disseny i tècnica arquitectònica Les pedres angulars de la filosofia de disseny d'OpenROAD són l'obertura i l'automatització. La seva arquitectura es basa en una base de dades de disseny en memòria compartida i motors modulars, cadascun dels quals executa un pas del flux. Creades per Athena Design Systems i convertides en codi obert per a aquest projecte, totes les eines comparteixen un model de dades OpenDB comú i transmeten dades a través de LEF/DEF estàndard (i les seves variants binàries). Per a RTL-to-GDS, els dissenyadors poden emprar un pipeline autònom d'scripts de flux OpenROAD (ORFS) o, per a un control addicional, poden cridar certes etapes mitjançant ordres Tcl/Python impulsades per scripts. Per tant, OpenROAD no és només un flux autònom de referència, sinó també una plataforma versàtil per a fluxos personalitzats o recerca.

No-Human-In-Loop (NHIL) Els instruments estan dissenyats per funcionar sense la direcció humana. Per exemple, l'AutoTuner d'OpenROAD, una arquitectura d'aprenentatge automàtic, explora metòdicament la configuració de les eines, reduint així la necessitat d'un ajust manual per part d'experts.

Model de dades integrat Totes les eines desen el disseny en una base de dades oberta (OpenDB). OpenDB és jeràrquic (permet qualsevol jerarquia de cel·les), ric en característiques EDA com ara connexions de xarxa, geometria de disseny i temporització, i compatible amb LEF/DEF. Això significa que qualsevol pas pot consultar o modificar les dades del xip sense incórrer en la despesa d'E/S de fitxers. Per exemple, els resultats de la col·locació es poden transmetre immediatament a la síntesi de l'arbre de rellotge, o els paràsits en memòria de l'encaminament es poden reportar a l'anàlisi de sincronització estàtica.

Extensibilitat i scripts Tots els components d'OpenROAD es poden avaluar mitjançant una ordre Tcl, com ara clock_tree_synthesis, location i route, que poden incloure scripts i extensions. Una API de Python, el paquet OpenROAD-OpenDbPy, permet el mateix accés des de Python. Això permet als usuaris integrar OpenROAD en fluxos d'eines més generals o construir els seus propis scripts de disseny. Els dissenyadors poden utilitzar l'API per gestionar tasques que no són natives d'OpenROAD, com ara ubicacions simètriques o generació personalitzada de la xarxa elèctrica.

Integració i qualitat contínues OpenROAD utilitza Jenkins a Google Cloud per mantenir un pipeline d'integració contínua (CI) rigorós, per detectar errors i omissions el més aviat possible. Els nous dissenys, incloent-hi projectes MPW genuïns i eines d'anàlisi de codi (com ara Coverity i sanejadors de codi), comproven si hi ha errors i sovint s'utilitzen en proves de regressió. Aquest enfocament en l'automatització i les proves permet la identificació primerenca d'errors i l'estabilitat en una àmplia gamma de dissenys d'usuari.

Suport multinode OpenROAD és agnòstic a la tecnologia i admet múltiples nodes. Verificació en una gamma de PDK, incloent-hi GlobalFoundries (GF) 12 nm, predictiu 7 nm (ASAP7), SkyWater 130 nm i GF 65 nm (CLN65LP), s'ha confirmat. Alternativament, quan un usuari subministra biblioteques LEF/DEF o GDSII per a la tecnologia de destinació i inclou les resistències de pin necessàries per a la sincronització i les capacitats de capa per a l'encaminament, OpenROAD canvia automàticament el seu flux. En conseqüència, es pot aplicar tant a processos més antics com a nodes complexos.

Base de dades interna (OpenDB) OpenROAD es basa en OpenDB, la base de dades de disseny en memòria compartida. Desenvolupat inicialment per Athena Design Systems i publicat sota una llicència BSD el 2019, OpenDB pretén donar suport a aquesta iniciativa. Està estretament basat en l'estàndard IEEE LEF/DEF, que ara és compatible amb LEF/DEF 5.6 i inclou millores per a un emmagatzematge adequat.

Cada eina OpenROAD funciona des d'una única instància d'OpenDB. Per exemple, la planificació de planta estableix les cel·les allà; la col·locació canvia aquestes posicions; les eines d'arbre de rellotge afegeixen memòries intermèdies a OpenDB; l'encaminament afegeix geometria de cables; i l'anàlisi de temps obté paràsits d'OpenDB. Les dades de la llista de xarxes i la biblioteca de cel·les es col·loquen a OpenDB després de la síntesi lògica. Aquest enfocament de base de dades compartida elimina el cost de la traducció de formats entre etapes i permet una integració estreta, és a dir, canvis incrementals i depuració. OpenDB té com a principals qualitats:

Model complet de llista de xarxes física OpenDB pot representar tota l'arquitectura física, incloent-hi obstacles, cables (geometries d'enrutament), pins, instàncies (amb ubicacions geomètriques), definicions mestres de cel·la i llistes de xarxa. Gràcies al seu suport de N nivells de jerarquia, es poden emmagatzemar i referenciar blocs i submòduls IP.

Propietats i atributs OpenDB ofereix un mètode per afegir dades personalitzades a objectes mitjançant atributs dispersos o densos. Això permet als desenvolupadors afegir més dades, com ara intervals de temps o puntuacions de congestió, a xarxes o cel·les sense haver de reescriure completament la base de dades.

Format binari i E/S LEF/DEF OpenDB té un analitzador sintàctic LEF/DEF integrat i els dissenys sovint s'introdueixen a OpenDB des del format LEF/DEF. OpenDB també admet un format de desament binari propietari per a més velocitat, cosa que permet recarregar els dissenys molt més ràpidament que els formats textuals LEF/DEF. Això és crucial per a un procés autònom que pugui iterar ràpidament.

Consultes ràpides OpenDB està dissenyat per respondre ràpidament a les consultes que solen requerir els algorismes EDA. Amb estructures de dades indexades, és a dir, per cercar xarxes per nom, objectes per un quadre delimitador, etc., pot emmagatzemar la geometria (com ara cables i barreres) de manera compacta. Els encaminadors globals i els analitzadors de congestió, entre altres eines, utilitzen aquestes cerques per avaluar el disseny de manera eficient.

Exportacions de signatura A més de revisar el disseny final, OpenDB us permet documentar-lo. Pot produir DEF i fins i tot GDSII per a l'aprovació del disseny. OpenROAD genera un GDSII utilitzant OpenDB per executar-se fora del DRC i les eines Layout versus schematic (LVS) en el disseny final.

Flux RTL a GDSII Open ROAD segueix els passos habituals d'un backend ASIC. Cada etapa es duu a terme mitjançant una eina oberta i les interfícies utilitzen formats de dades estàndard (LEF/DEF, Liberty, SDC). En cada etapa, OpenROAD proporciona informes i complements complets. Els usuaris poden cercar densitat de cel·les, dades de sincronització (mitjançant OpenSTA), mapes de congestió i altra informació rellevant. Alternativament, executeu en mode sense cap o examineu el flux mitjançant la GUI de l'aplicació OpenROAD. Com que OpenROAD utilitza formats de disseny comuns (Verilog, SDC, Liberty i LEF/DEF) a les seves entrades i sortides, pot interactuar amb moltes eines. Una execució d'OpenROAD-flow-scripts pot, per exemple, cridar write_gds al final i Yosys (read_verilog, synth) al principi. Cada fase de l'operació es pot automatitzar o pausar en qualsevol moment per a la seva inspecció i revisió.

El flux habitual es pot considerar de la següent manera:

Síntesi lògica Una descripció RTL (en Verilog) es converteix primer en una llista de xarxes a nivell de porta mitjançant una eina de síntesi lògica. OpenROAD no té el seu propi sintetitzador i, en canvi, utilitza eines existents. La majoria dels usuaris utilitzen Yosys de codi obert. Llegint l'RTL i una biblioteca de cel·les objectiu (fitxers LIBerty.lib), Yosys produeix una llista de xarxes Verilog aplanada. OpenDB carrega la llista de connexions, que inclou els arcs de temps, a la memòria.

Planificació de planta i col·locació macro La planificació física comença un cop establerta la llista de xarxes, que implica la distribució de macros complexes, blocs prefabricats com ara matrius de memòria, DSP i pads d'E/S, a través del xip. Aquí, OpenROAD ofereix dos enfocaments complementaris:

Macro Placer (TritonMacroPlacer)