OpenRoad adalah aplikasi dasar open-source terkemuka untuk desain digital semikonduktor. Aliran OpenRoad memberikan aliran otonom, no-human-in-loop (NHIL), perputaran 24 jam dari RTL-GDSII untuk eksplorasi desain yang cepat dan implementasi desain fisik.
%% {
init: {
'Tema': 'Netral',
'ThemeVariable': {
'TextColor': '#000000',
'NotEtextColor': '#000000',
'FontSize': '20px'
}
}
} %%
LR FOLKCHART
b0 [] --- b2 [] --- b4 [] --- orflow --- b1 [] --- b3 [] --- b5 []
Style B0 Stroke-Width: 0px, Isi: #ffffff00, Warna: #ffffff00
Gaya B1 Stroke-lebar: 0px, Isi: #ffffff00
Style B2 Stroke-Width: 0px, Isi: #ffffff00
Gaya B3 Stroke-lebar: 0px, Isi: #ffffff00
Style B4 Stroke-Width: 0px, Isi: #ffffff00
Style B5 Stroke-Width: 0px, Isi: #ffffff00, Warna: #ffffff00
LinkStyle 0 Stroke-Width: 0px
Linkstyle 1 Stroke-lebar: 0px
Linkstyle 2 Stroke-lebar: 0px
Linkstyle 3 Stroke-lebar: 0px
Linkstyle 4 Stroke-lebar: 0px
Linkstyle 5 Stroke-lebar: 0px
Subgraph Orflow
arah tb
Style Orflow Fill:#ffffff00, Stroke-lebar: 0px
A [Verilog
+ Perpustakaan
+ kendala] -> aliran
Style A Fill:#74C2B5, Stroke:#000000, Stroke-lebar: 4px
Aliran Subgraph
Gaya Aliran Gaya:#FFFFFF00, Stroke-lebar: 4px
arah tb
B [sintesis]
B -> C [Floorplan]
C -> d [penempatan]
D -> E [sintesis pohon jam]
E -> f [routing]
F -> g [finishing]
Style B Fill:#f8cecc, stroke:#000000, stroke-lebar: 4px
Style C Fill:#FFF2CC, Stroke:#000000, Stroke-lebar: 4px
Gaya D Isi:#CCE5FF, Stroke:#000000, Stroke-lebar: 4px
Style E Fill:#67AB9F, Stroke:#000000, Stroke-lebar: 4px
Gaya F Fill:#FA6800, Stroke:#000000, Stroke-lebar: 4px
Gaya G Isi:#FF6666, Stroke:#000000, Stroke-lebar: 4px
akhir
Flow -> H [GDSII
Tata letak terakhir]
%% h --- h1 []
%% gaya h1 stroke-lebar: 0px, isi: #ffffff00
%% linkstyle 11 stroke-lebar: 0px
Style H Fill:#FF0000, Stroke:#000000, Stroke-lebar: 4px
akhir
OpenRoad menghilangkan hambatan biaya, risiko jadwal dan ketidakpastian dalam desain perangkat keras untuk mempromosikan akses terbuka ke perangkat lunak desain IC yang cepat dan berbiaya rendah dan keahlian dan inovasi sistem. Aplikasi OpenRoad memungkinkan kontrol aliran fleksibel melalui API dengan binding di TCL dan Python.
OpenRoad digunakan dalam aplikasi penelitian dan komersial seperti,
OpenRoad mendorong ekosistem pengguna yang semarak melalui kolaborasi aktif dan kemitraan melalui pengembangan perangkat lunak dan aliansi utama. Komunitas pengguna kami yang berkembang termasuk desainer perangkat keras, insinyur perangkat lunak, kolaborator industri, penggemar VLSI, siswa dan peneliti.
OpenRoad sangat mengadvokasi dan memungkinkan inisiatif pendidikan dan pengembangan tenaga kerja berbasis desain IC melalui konten pelatihan dan kursus di beberapa universitas global, angkutan Google-Skywater juga mencakup shuttle globalfoundries, kontes desain, dan lokakarya desain IC. Aliran OpenRoad telah berhasil digunakan hingga saat ini di lebih dari 600 tapeout siap silikon untuk teknologi hingga 12nm.
OpenRoAd menyediakan skrip aliran-openroad sebagai aliran asli yang siap digunakan dan aliran tapeout. Namun, ini juga memungkinkan pembuatan pengontrol aliran khusus berdasarkan alat yang mendasari, database, dan mesin analisis. Silakan merujuk ke dokumentasi aliran di sini.
Openroad-Flow-Scripts (ORFS) adalah aliran RTL-GDSII yang sepenuhnya otonom untuk arsitektur cepat dan eksplorasi ruang desain, prediksi awal QOR dan implementasi desain fisik yang terperinci. Namun, ORF juga memungkinkan intervensi manual untuk kontrol pengguna yang lebih baik dari masing -masing tahap aliran melalui perintah TCL dan API Python.
Gambar di bawah ini menunjukkan tahap utama dari skrip aliran-openroad:
%% {init: {'logglevel': 'debug', 'tema': 'gelap'
}} %%
Timeline
Judul RTL-GDSII Menggunakan OpenRoad-Flow-Scripts
Sintesis
: Input [rtl, sdc, .lib, .lef]
: Sintesis logika (Yosys)
: File output [netlist, sdc]
Denah lantai
: Inisialisasi planus lantai
: Penempatan IO (acak)
: Penempatan ukuran campuran waktu yang digerakkan
: Penempatan makro
: Penyisipan tapcell dan welltie
: Generasi PDN
Penempatan
: Penempatan global tanpa ditempatkan iOS
: Penempatan IO (dioptimalkan)
: Penempatan global dengan iOS yang ditempatkan
: Mengubah ukuran dan buffering
: Penempatan terperinci
CTS: sintesis pohon jam
: Optimalisasi Waktu
: Penyisipan sel pengisi
Rute
: Routing global
: Routing terperinci
Finishing
: Penyisipan Logam Isi
: Laporan Waktu Menandatangani
: Menghasilkan GDSII (klayout)
: DRC/LVS Check (klayout)
Berikut adalah langkah -langkah utama untuk implementasi desain fisik menggunakan OpenRoad;
FloorplanningGlobal PlacementDetailed PlacementClock Tree SynthesisOptimize setup/hold timingGlobal RoutingDetailed RoutingChip FinishingOpenRoad GUI adalah alat visualisasi, analisis, dan debugging yang kuat dengan antarmuka TCL yang dapat disesuaikan. Angka-angka di bawah ini menunjukkan pemandangan GUI untuk berbagai tahap aliran termasuk perencanaan lantai, kemacetan penempatan, CTS dan desain pasca-rute.





Aplikasi OpenRoad adalah PDK Independent. Namun, telah diuji dan divalidasi dengan PDK spesifik dalam konteks berbagai pengontrol aliran.
Openlane mendukung Skywater 130nm dan GlobalFoundries 180nm.
OpenRoAd-Flow-Scripts mendukung beberapa PDK publik dan swasta termasuk:
GF180 - 180nmSKY130 - 130nmNangate45 - 45nmASAP7 - prediktif finfet 7nm PDK ini hanya didukung dalam skrip-aliran openroad. Mereka digunakan untuk menguji dan mengkalibrasi openroad terhadap platform komersial dan memastikan QOR yang baik. File khusus PDK dan platform untuk kit ini tidak dapat disediakan karena pembatasan NDA. Namun, jika Anda dapat mengakses platform ini secara mandiri, Anda dapat membuat sendiri file khusus platform yang diperlukan.
GF55 - 55nmGF12 - 12nmIntel22 - 22nmIntel16 - 16nmTSMC65 - 65NM OpenRoad telah digunakan untuk implementasi fisik penuh di lebih dari 600 tapeout di Sky130 dan GF180 melalui program MPW Shuttle dan Chipignite yang disponsori Google, EFABLESS.


Proyek OpenRoad secara aktif menambahkan berhasil merekam desain antar -jemput MPW ke pengujian regresi CI. Contoh-contoh desain termasuk inti prosesor terbuka, SOC berbasis RISC-V, penambang cryptocurrency, prosesor aplikasi robot, transceiver radio satelit amatir, microwatt berbasis daya terbuka dll.
Untuk membangun alat openroad secara lokal di mesin Anda, ikuti langkah -langkah dari sini.
Ada satu set skrip tes regresi yang dapat dieksekusi di ./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 > Tes aliran memeriksa hasil seperti kelonggaran terburuk terhadap nilai referensi. Gunakan report_flow_metrics [test]... untuk melihat semua metrik.
% 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
Untuk memperbarui regresi yang gagal, ikuti instruksi di bawah ini:
# 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
Sumber OpenRoad File Perintah TCL ~/.openroad kecuali opsi baris perintah -no_init ditentukan.
OpenRoad kemudian sumber file perintah cmd_file jika ditentukan pada baris perintah. Kecuali jika bendera baris perintah -exit ditentukan, ia memasuki interpreter perintah TCL interaktif.
Daftar alat/modul yang tersedia yang termasuk dalam aplikasi OpenRoad dan deskripsinya tersedia di sini.
OpenRoad menggunakan GIT untuk kontrol dan kontribusi versi. Biasakan dengan tutorial QuickStart untuk kontribusi di sini.
Melihat peringatan atau kesalahan openroad yang tidak Anda mengerti? Kami telah menyusun tabel semua pesan dan Anda berpotensi menemukan jawaban Anda di sini.
Lisensi BSD 3 Clause. Lihat file lisensi.