pid_controller.v
)を OpenLane で配置配線し、GDSII まで生成する以下のように pid_controller
用のプロジェクトディレクトリを構成します:
f_chapter4_openlane/
└── openlane/
└── pid_controller/
├── config.tcl
└── src/
└── pid_controller.v
set ::env(DESIGN_NAME) pid_controller
set ::env(VERILOG_FILES) [glob $::env(DESIGN_DIR)/src/pid_controller.v]
set ::env(CLOCK_PORT) "clk"
set ::env(CLOCK_PERIOD) "10.0"
set ::env(FP_CORE_UTIL) 30
set ::env(PL_TARGET_DENSITY) 0.5
cd OpenLane/
./flow.tcl -design ../f_chapter4_openlane/openlane/pid_controller
runs/pid_controller/
├── config.tcl
├── logs/
├── reports/
│ ├── synthesis/area.rpt
│ ├── signoff/drc.rpt
│ └── signoff/lvs.rpt
└── results/
└── final/
├── gds/pid_controller.gds
├── def/pid_controller.def
└── verilog/final.v
項目 | 内容 |
---|---|
✅ DRC | DRC違反数が 0 であること |
✅ 面積 | FSMとの相対比較。算術演算の分だけインスタンス数は多くなる想定 |
✅ タイミング | Slack 確保とタイミング収束 |
klayout runs/pid_controller/results/final/gds/pid_controller.gds
または
magic -T sky130A.tech runs/pid_controller/results/final/gds/pid_controller.gds