OpenLane ASIC Akışı (SKY130)¶
Bu doküman CERES RV32IMC tasarımını açık kaynak araçlarla fiziksel serimden (PnR) geçirip GDS üretmek için eklenen akışı anlatır.
Hedef¶
- RTL:
ceres_wrapper - Akış: OpenLane (Yosys + OpenROAD + Magic + Netgen)
- PDK: SKY130 (
sky130A)
Eklenen Komutlar¶
Repo kökünden:
asic_subrepos komutu aşağıdaki repoları subrepo/asic-tools/ altına alır:
OpenLaneOpenROADOpenROAD-flow-scriptscaravel_user_projectcaravel
Ortam Değişkenleri¶
İhtiyaç halinde:
export OPENLANE_IMAGE=efabless/openlane:2023.09.07
export PDK_ROOT=$HOME/.volare
export PDK=sky130A
export TAG=my_run_tag
export OPENLANE_MODE=auto
OPENLANE_MODE değerleri:
auto: Docker varsa Docker, yoksa local OpenLane (subrepo/asic-tools/OpenLane) denerdocker: sadece Dockerlocal: sadece local OpenLane
Akış Adımları¶
asic_setup- Docker erişimini kontrol eder
- OpenLane image’ını çeker
-
PDK_ROOT/PDKvarlığını doğrular -
asic_prep rtl/içinden OpenLane için kaynakları toplar- FPGA/Vivado odaklı dosyaları hariç tutar (
xilinx_gpio_wrapper.sv,systessis_wrapper.sv) asic/openlane/designs/ceres_wrapper/srcaltına kopyalar-
Docker varsa
davidsiaw/sv2vileceres_wrapper_sv2v.vüretir (Yosys package/import parser limitleri için) -
asic_run flow.tclile tam akışı çalıştırır-
Sonuçları
results/asic/openlane/ceres_wrapper/runs/<tag>altına üretir -
asic_report - En son koşudan temel çıktıları gösterir:
metrics.csv- final GDS
- final DEF
- final gate-level netlist
Docker (Önerilen)¶
Ubuntu 22.04 için:
chmod +x script/shell/install_docker_ubuntu.sh
sudo bash script/shell/install_docker_ubuntu.sh
newgrp docker
docker run --rm hello-world
Ardından OpenLane'i Docker modunda çalıştır:
Tasarım Konfigürasyonu¶
Ana dosyalar:
asic/openlane/designs/ceres_wrapper/config.tclasic/openlane/designs/ceres_wrapper/constraint.sdcasic/openlane/designs/ceres_wrapper/pin_order.cfg
Başlangıç saat tanımı:
clk_i20 ns(50 MHz)
Pilot GDS için varsayılan sentez tanımları:
SYNTHESISMINIMAL_SOC
Bu sayede cache/bpredictor daha küçük konfig ile başlar; ilk hedef akışı sona kadar geçirmek olur.
Önemli Notlar¶
- Tapeout hedefi için 0 DRC ve 0 LVS mismatch şartını hedefle.
- İlk denemelerde
asic_runsonrası raporları inceleyipFP_CORE_UTIL,PL_TARGET_DENSITY,CLOCK_PERIODparametrelerini iteratif ayarla. - Daha güvenli tapeout için post-layout gate-level simülasyon ve SDF doğrulaması ekle.