オープンロードは、半導体デジタルデザインの主要なオープンソースの基礎アプリケーションです。オープンロードの流れは、RTL-GDSIIから24時間のターンアラウンドで、迅速な設計探索と物理デザインの実装を行うために、自律的でヒューマンのないループ(NHIL)フローを提供します。
%% {
init:{
「テーマ」:「ニュートラル」、
「Themevariables」:{
「TextColor」: '#000000'、
'noteTextColor': '#000000'、
'fontsize': '20px'
}
}
} %%
フローチャートLR
b0 [] --- b2 [] --- b4 [] --- orflow --- b1 [] --- b3 [] --- b5 []
スタイルB0ストローク幅:0px、fill:#fffffff00、color:#ffffff00
スタイルB1ストローク幅:0px、fill:#ffffff00
スタイルB2ストローク幅:0px、fill:#ffffff00
スタイルB3ストローク幅:0px、fill:#ffffff00
スタイルB4ストローク幅:0px、fill:#ffffff00
スタイルB5ストローク幅:0px、fill:#fffffff00、color:#ffffff00
LinkStyle 0ストロークウィッド:0px
LinkStyle 1ストローク幅:0px
LinkStyle 2ストローク幅:0px
LinkStyle 3ストローク幅:0px
LinkStyle 4ストローク幅:0px
LinkStyle 5ストローク幅:0px
サブグラフorflow
方向TB
スタイルオルフロウフィル:#fffffff00、ストロークウィッド:0px
a [verilog
+ライブラリ
+制約] - >フロー
スタイルAフィル:#74C2B5、ストローク:#000000、ストロークウィッド:4px
サブグラフの流れ
スタイルフローフィル:#fffffff00、ストローク幅:4px
方向TB
B [合成]
b-> c [フロアプラン]
C-> D [配置]
d-> e [クロックツリー合成]
E-> f [ルーティング]
f-> g [仕上げ]
スタイルBフィル:#F8CECC、ストローク:#000000、ストロークウィッド:4PX
スタイルCフィル:#fff2cc、ストローク:#000000、ストロークウィッド:4px
スタイルDフィル:#cce5ff、ストローク:#000000、ストロークウィッド:4px
スタイルEフィル:#67AB9F、ストローク:#000000、ストロークウィッド:4px
スタイルFフィル:#FA6800、ストローク:#000000、ストロークウィッド:4px
スタイルGフィル:#FF6666、ストローク:#000000、ストロークウィッド:4px
終わり
フロー - > h [gdsii
最終レイアウト]
%% h --- H1 []
%%スタイルH1ストローク幅:0px、fill:#ffffff00
%% linkstyle 11ストロークウィッド:0px
スタイルHフィル:#FF0000、ストローク:#000000、ストロークウィッド:4PX
終わり
オープンロードは、ハードウェア設計のコスト、スケジュールのリスク、不確実性の障壁を排除し、迅速で低コストのIC設計ソフトウェアと専門知識とシステムの革新へのオープンアクセスを促進します。 Openroadアプリケーションにより、TCLとPythonのバインディングを備えたAPIを介した柔軟なフロー制御が可能になります。
OpenRadは、、、、などの研究および商業用アプリケーションで使用されています。
オープンロードは、ソフトウェア開発と主要な提携を通じて、積極的なコラボレーションとパートナーシップを通じて、ユーザーの活気に満ちたエコシステムを促進します。成長するユーザーコミュニティには、ハードウェアデザイナー、ソフトウェアエンジニア、業界の協力者、VLSI愛好家、学生、研究者が含まれます。
Openroadは、いくつかのグローバル大学でのトレーニングコンテンツとコースを通じて、ICデザインベースの教育および労働力開発イニシアチブを強く支持し、可能にします。Google-Skywaterシャトルには、グローバルファウンドのシャトル、デザインコンテスト、ICデザインワークショップも含まれます。オープンロードフローは、最大12nmのテクノロジー用の600を超えるシリコン対応テープアウトでこれまでに使用されることに成功しています。
オープンロードは、ネイティブですぐに使用できるプロトタイピングとテープアウトフローとしてオープンロードフロースクリプトを提供します。ただし、基礎となるツール、データベース、および分析エンジンに基づいて、カスタムフローコントローラーを作成することもできます。こちらのフロードキュメントを参照してください。
Openroad-Flow-Scripts(ORFS)は、迅速なアーキテクチャおよび設計スペース探索、QORの早期予測、および詳細な物理設計実装のための完全に自律的なRTL-GDSIIフローです。ただし、ORFは、TCLコマンドとPython APIを介した個々のフロー段階のより細かいユーザー制御のための手動介入も可能にします。
以下の図は、オープンロードフロースクリプトの主要な段階を示しています。
%% {init:{'loglevel': 'debug'、 'theme': 'dark'
}} %%
タイムライン
Openroad-FlowScriptsを使用したタイトルRTL-GDSII
合成
:inputs [rtl、sdc、.lib、.lef]
:論理統合(Yosys)
:出力ファイル[NetList、SDC]
フロアプラン
:フロアプランの初期化
:IO配置(ランダム)
:タイミング駆動型のミックスサイズの配置
:マクロ配置
:TapCellおよびWelltie挿入
:PDN生成
配置
:IOSを配置せずにグローバル配置
:IO配置(最適化)
:配置されたiOSによるグローバル配置
:サイズ変更とバッファリング
:詳細な配置
CTS:時計ツリーの合成
:タイミングの最適化
:フィラーセルの挿入
ルーティング
:グローバルルーティング
:詳細なルーティング
仕上げ
:金属充填挿入
:サインオフタイミングレポート
:gdsiiを生成する(klayout)
:DRC/LVSチェック(Klayout)
オープンロードを使用した物理的な設計実装の主な手順は次のとおりです。
FloorplanningGlobal PlacementDetailed PlacementClock Tree SynthesisOptimize setup/hold timingGlobal RoutingDetailed RoutingChip FinishingOpenroad GUIは、カスタマイズ可能なTCLインターフェイスを備えた強力な視覚化、分析、およびデバッグツールです。以下の図は、フロアプランニング、配置渋滞、CTS、ポストルーティングデザインなど、さまざまなフロー段階のGUIビューを示しています。





オープンロードアプリケーションはPDK独立です。ただし、さまざまなフローコントローラーのコンテキストで、特定のPDKでテストおよび検証されています。
OpenLaneは、Skywater 130NMとGlobalFoundries 180NMをサポートしています。
Openroad-FlowScriptsは、次のようないくつかの公共および民間のPDKをサポートしています。
GF180SKY130Nangate45ASAP7 -Predicive Finfet 7nm これらのPDKは、オープンロードフロースクリプトでのみサポートされています。それらは、商用プラットフォームに対してオープンロードをテストおよび較正し、良いQORを確保するために使用されます。これらのキットのPDKとプラットフォーム固有のファイルは、NDAの制限のために提供できません。ただし、これらのプラットフォームに個別にアクセスできる場合は、必要なプラットフォーム固有のファイルを自分で作成できます。
GF55GF12Intel22Intel16TSMC65 Openroadは、Googleが後援するEfabless MPWシャトルおよびChipigniteプログラムを通じて、SKY130とGF180の600を超えるテープアウトの完全な物理的実装に使用されています。


オープンロードプロジェクトは、CI回帰テストにMPWシャトルデザインを積極的にテープで留めています。デザインの例には、オープンプロセッサコア、RISC-VベースのSOCS、暗号通貨鉱夫、ロボットアプリプロセッサ、アマチュア衛星無線トランシーバー、オープンパワーベースのマイクロワットなどがあります。
機械でローカルにオープンロードツールを構築するには、ここから手順に従ってください。
./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 >フローテストは、参照値に対する最悪のスラックなどの結果を確認します。 report_flow_metrics [test]...を使用して、すべてのメトリックを確認します。
% 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
失敗した回帰を更新するには、以下の指示に従ってください。
# 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は、コマンドラインオプション-no_initが指定されていない限り、TCLコマンドファイル~/.openroadを調達します。
オープンロードは、コマンドラインで指定されている場合、コマンドファイルcmd_fileを調達します。 -exitコマンドラインフラグが指定されていない限り、インタラクティブなTCLコマンドインタープレーターに入ります。
Openroadアプリに含まれる利用可能なツール/モジュールのリストとその説明は、こちらから入手できます。
Openroadは、バージョンの制御と貢献にGitを使用しています。ここで貢献するためのQuickStartチュートリアルに慣れてください。
あなたが理解していないオープンロードの警告やエラーを見ていますか?すべてのメッセージのテーブルをまとめましたが、ここで答えを見つける可能性があります。
BSD 3-Clauseライセンス。ライセンスファイルを参照してください。