Openroad ist die führende Open-Source-Anwendung für das digitale Halbleiterdesign. Der Openroad Flow liefert einen autonomen, No-Human-in-Loop-Fluss (NHIL), der 24 Stunden Turnaround von RTL-GdII für eine schnelle Exploration und die Implementierung des physischen Entwurfs von RTL-GDII.
%% {
init: {
'Thema': 'Neutral',
'themevariables': {
'textColor': '#000000',
'NotetextColor': '#000000',
'Fontsize': '20px'
}
}
} %% mich
Flussdiagramm LR
B0 [] --- B2 [] --- B4 [] --- Orflow --- B1 [] --- B3 [] --- B5 []
Style B0 Strich-Width: 0px, Füllung: #ffffff00, Farbe: #ffffff00
Stil B1 Hub-Width: 0px, Füllung: #ffffff00
Stil B2 Hub-Width: 0px, Füllung: #ffffff00
Stil B3 Hub-Width: 0px, Füllung: #ffffff00
Stil B4 Hub-Width: 0px, Füllung: #ffffff00
Stil B5 Strich-Width: 0px, Füllung: #ffffff00, Farbe: #ffffff00
LinkStyle 0 Stroke-Width: 0px
LinkStyle 1 Stroke-Width: 0px
LinkStyle 2 Strichbreite: 0px
LinkStyle 3 Strichbreite: 0px
LinkStyle 4 Strichbreite: 0px
LinkStyle 5 Strichbreite: 0px
Subgraph Orflow
Richtung TB
Style Orflow Fill:#ffffff00, Schlaganfallbreite: 0px
A [Verilog
+ Bibliotheken
+ Einschränkungen] -> Fluss
Style a Fill:#74c2b5, Schlaganfall:#000000, Schlaganfall-Width: 4px
Subgraphenfluss
Stilflussfüllung:#ffffff00, Schlaganfallbreite: 4px
Richtung TB
B [Synthese]
B -> C [Grundriss]
C -> D [Platzierung]
D -> E [Uhr Baumsynthese]
E -> f [Routing]
F -> G [FINDING]
STYLE B FILL:#F8CECC, Schlaganfall:#000000, Schlaganfallbreite: 4px
STYLE C FILL:#FFF2CC, Schlaganfall:#000000, Schlaganfallbreite: 4px
STYLE D FILL:#CCE5FF, Schlaganfall:#000000, Schlaganfallbreite: 4px
STYLE E FILL:#67AB9F, Schlaganfall:#000000, Schlaganfallbreite: 4px
STYLE F FILL:#FA6800, Schlaganfall:#000000, Hub-Width: 4px
STYLE G FILL:#FF6666, Schlaganfall:#000000, Schlaganfallbreite: 4px
Ende
FLOW -> H [GDSII
Endgültiges Layout]
%% H --- H1 []
%% Style H1-Stroke-Width: 0px, FILL: #ffffff00
%% LinkStyle 11 Strich-Breite: 0px
STYLE H FILL:#FF0000, Schlaganfall:#000000, Hub-Width: 4px
Ende
Openroad eliminiert die Hindernisse für Kosten, Zeitplanrisiko und Unsicherheit in der Hardwaredesign, um den offenen Zugriff auf schnelle, kostengünstige IC-Designsoftware sowie Fachkenntnisse und Systeminnovationen zu fördern. Die Openroad -Anwendung ermöglicht eine flexible Durchflussregelung durch eine API mit Bindungen in TCL und Python.
Openroad wird in Forschung und kommerziellen Anwendungen verwendet, wie z.
Openroad fördert durch aktive Zusammenarbeit und Partnerschaft durch Softwareentwicklung und wichtige Allianzen ein lebendiges Ökosystem von Benutzern. Unsere wachsende Benutzergemeinschaft umfasst Hardware -Designer, Software -Ingenieure, Branchenkollege, VLSI -Enthusiasten, Studenten und Forscher.
Openroad setzt sich nachdrücklich ein und ermöglicht IC-Design-basierte Bildungs- und Belegentwicklungsinitiativen durch Schulung von Inhalten und Kursen an mehreren globalen Universitäten. Die Google-Skywater-Shuttles umfassen auch GlobalFoundries-Shuttles, Designwettbewerbe und IC-Design-Workshops. Der Openroad-Fluss wurde bisher erfolgreich in über 600 Silizium-Bereichen für Technologien von bis zu 12 nm verwendet.
Openroad bietet Openroad-Flow-Skripte als native, einsatzbereite Prototyping und Bandfluss. Es ermöglicht jedoch auch die Erstellung von benutzerdefinierten Flow -Controllern auf der Grundlage der zugrunde liegenden Tools, Datenbank- und Analysemotoren. Weitere Informationen finden Sie in der Flow -Dokumentation hier.
Openroad-Flow-Skripts (ORFs) ist ein vollständig autonomer RTL-GdII-Fluss für schnelle Architektur- und Design-Raum-Erkundungen, frühzeitige Vorhersage von QOR und detaillierte Implementierung für physische Design. ORFS ermöglicht jedoch auch eine manuelle Intervention für die feinere Benutzersteuerung einzelner Durchflussstufen durch TCL -Befehle und Python -APIs.
Abbildung unten zeigt die Hauptstufen der Openroad-Flow-Skripte:
%% {init: {'loglevel': 'debug', 'thema': 'dark'
}} %%%
Zeitleiste
Titel RTL-GdII unter Verwendung von Openroad-Flow-Skripten
Synthese
: Inputs [RTL, SDC, .LIB, .lef]
: Logische Synthese (Yosys)
: Ausgabedateien [NetList, SDC]
Grundriss
: Grundrissinitialisierung
: IO -Platzierung (zufällig)
: Timing-gesteuerte Platzierung gemischter Größe
: Makroplatzierung
: Tapcell und Welltie Insertion
: PDN -Generation
Platzierung
: Globale Platzierung ohne platzierte iOS
: IO -Platzierung (optimiert)
: Globale Platzierung mit platzierten iOS
: Größe und Pufferung
: Detaillierte Platzierung
CTS: Taktbaumsynthese
: Timing -Optimierung
: Füllzellzelleneinfügung
Routing
: Globales Routing
: Detailliertes Routing
Fertig
: Metallfülleinfügung
: Signoff -Timing -Bericht
: Generieren gdSII (klayout)
: DRC/LVS Check (Klayout)
Hier sind die Hauptschritte für eine Implementierung des physischen Designs mit Openroad.
FloorplanningGlobal PlacementDetailed PlacementClock Tree SynthesisOptimize setup/hold timingGlobal RoutingDetailed RoutingChip FinishingDie Openroad -GUI ist eine leistungsstarke Visualisierungs-, Analyse- und Debugging -Tool mit einer anpassbaren TCL -Schnittstelle. Die folgenden Abbildungen zeigen die GUI-Aussichten für verschiedene Strömungsphasen, einschließlich Bodenplanung, Stauung, CTS und nach dem Routed Design.





Der Openroad -Antrag ist PDK unabhängig. Es wurde jedoch im Kontext verschiedener Flusscontroller mit spezifischen PDKs getestet und validiert.
OpenLane unterstützt Skywater 130nm und GlobalFoundries 180 nm.
Openroad-Flow-Skripte unterstützt mehrere öffentliche und private PDKs, darunter:
GF180 - 180 nmSKY130 - 130 nmNangate45 - 45nmASAP7 - Predictive Finfet 7nm Diese PDKs werden nur in Openroad-Flow-Skripten unterstützt. Sie werden verwendet, um Openroad gegen kommerzielle Plattformen zu testen und zu kalibrieren und einen guten QOR zu gewährleisten. Die PDKs und plattformspezifischen Dateien für diese Kits können aufgrund von NDA-Beschränkungen nicht bereitgestellt werden. Wenn Sie jedoch unabhängig voneinander auf diese Plattformen zugreifen können, können Sie selbst die erforderlichen plattformspezifischen Dateien erstellen.
GF55 - 55 nmGF12 - 12 nmIntel22 - 22nmIntel16 - 16nmTSMC65 - 65 nm Openroad wurde für die vollständige physische Implementierung in über 600 Tapeouts in Sky130 und GF180 über die von Google gesponserten, eFabless MPW-Shuttle- und Chipignite-Programme verwendet.


Das Openroad -Projekt fügt den CI -Regressionstests aktiv mit MPW Shuttle -Designs erfolgreich aufgenommen. Beispiele für Entwürfe sind offene Prozessorkerne, RISC-V-basierte SoCs, Kryptowährungsminer, Roboter-App-Prozessoren, Amateur-Satelliten-Radio-Transceiver, OpenPower-basierte Mikrowatt usw.
Befolgen Sie die Schritte von hier, um Openroad -Tools lokal in Ihrer Maschine zu erstellen.
Es gibt eine Reihe von ausführbaren Regressionstest -Skripten in ./test/ .
# run tests for all tools
./test/regression
# run all flow tests
./test/regression flow
# run <tool> tests
./test/regression < tool >
# run all <tool>-specific unit tests
cd src/ < tool >
./test/regression
# run only <TEST_NAME> for <tool>
cd src/ < tool >
./test/regression < TEST_NAME > Die Flusstests prüfen die Ergebnisse wie die schlimmste Lücke gegen Referenzwerte. Verwenden Sie report_flow_metrics [test]... um alle Metriken anzuzeigen.
% report_flow_metrics gcd_nangate45
insts area util slack_min slack_max tns_max clk_skew max_slew max_cap max_fanout DPL ANT drv
gcd_nangate45 368 564 8.8 0.112 -0.015 -0.1 0.004 0 0 0 0 0 0
Um eine fehlgeschlagene Regression zu aktualisieren, befolgen Sie die folgenden Anweisungen:
# update log files (i.e. *ok)
save_ok <TEST_NAME>
# update "*.metrics" for tests that use flow test
save_flow_metrics <TEST_NAME>
# update "*.metrics_limits" files
save_flow_metrics_limits <TEST_NAME> openroad [-help] [-version] [-no_init] [-exit] [-gui]
[-threads count|max] [-log file_name] cmd_file
-help show help and exit
-version show version and exit
-no_init do not read .openroad init file
-threads count|max use count threads
-no_splash do not show the license splash at startup
-exit exit after reading cmd_file
-gui start in gui mode
-python start with python interpreter [limited to db operations]
-log <file_name> write a log in <file_name>
cmd_file source cmd_file
Openroad Quellen Die TCL -Befehlsdatei ~/.openroad , es sei denn, die Befehlszeilenoption -no_init ist angegeben.
Openroad dann bezieht die Befehlsdatei cmd_file wenn sie in der Befehlszeile angegeben ist. Es sei denn, das Befehlszeilenflag -exit wird angegeben, er gibt einen interaktiven TCL -Befehlsinterpreter ein.
Eine Liste der verfügbaren Tools/Module, die in der Openroad -App enthalten sind, und deren Beschreibungen finden Sie hier.
Openroad verwendet GIT für Versionskontrolle und Beiträge. Machen Sie sich mit einem QuickStart -Tutorial vertraut, um hier einen Beitrag zu erhalten.
Wenn Sie Openroad -Warnungen oder Fehler sehen, verstehen Sie nicht? Wir haben eine Tabelle aller Nachrichten zusammengestellt und Sie können hier möglicherweise Ihre Antwort finden.
BSD 3-Klausel-Lizenz. Siehe Lizenzdatei.