2026年3月2日月曜日

IIC-OSIC環境を使ってLibreLaneを実行する:チュートリアルを動かしてみよう (2026年2月版)

IIC-OSIC の環境を使って LibreLane による配置配線を試みる.

IIC-OSIC のインストール

基本的には土谷先生の方法でよい.

IIC-OSIC ツールの実行

基本的には公式ビデオを参考にすればよいのだが,いろいろ不完全なので補足を入れていく.

まずは Tutorial ファイルをダウンロードする.動画のスライド p17 のファイルをダウンロードする.


このとき Docker 内に最終的にファイルを置かないといけないので,Docker 内の Ubuntu でFireFox などでダウンロードするか,
C:\Users\[ユーザー名]\eda\designs
に Explorer からアクセスすると Ubuntu の起動時のディレクトリにアクセスできる.

Verilog シミュレーションと yosys による合成

verilog ディレクトリに移動する
$ cd /foss/designs/kvic_336007_ws25-main/verilog

シミュレーションは tb ディレクトリで実行する.
$ cd tb
$ sh ./simulate.sh counter

simulate.sh の引数である [回路名] に対し,verilog/src/[回路名].v,verilog/tb/[回路名]_tb.vを探し,verilator で LINT,iverilog で Verilog シミュレーション,波形ファイル生成([回路名]_tb.vcd),gtkwave で波形を表示できる.



3 bit カウンターとして動いている事を確認する.

次に合成する.src ディレクトリの yosys_stats.sh を実行する.
$ cd ../src
$ sh ./yosys_stats.sh counter

実行すると,yosys にょって
read_verilog 
proc (process をnetlistに変換)
opt (簡単な最適化)
flatten (階層展開)
techmap (テクノロジマッピング)
stat (回路の統計情報表示)
が実行される.ただしここでのテクノロジマッピングは特定のプロセスライブラリではなくyosys の持つ仮想ライブラリで合成されるようだ.

LibreLaneによる配置配線

次に LibreLane で配置配線を行う.
$ cd ../../librelane

run_librelane.sh に実行権限を与えて実行してみる.
$ chmod +x run_librelane.sh
$ ./run_librelane.sh

run_librelane.sh では,テクノロジライブラリを指定 (sky130A),LibreLane による実行,LibreLane の実行結果を OpenROAD で開く.


LibreLane の全体設定ファイルは config.json で,回路名,Verilog 記述の場所,シリコン面積,SDC などの設定,IO ピンの順番などを指定できる.
(逆に言うと,この程度しかカスタマイズの余地はないのか)

実行結果は runs/RUN_[日付]_[時間]/ 内部に処理ステップに沿って以下のように格納される.
 

最終的に出力されるものは final に格納される.
例えば最終的なGDSを見たければ runs/RUN_[日付]_[時間]/final/klayout_gds にアクセスするとよい.
$ klayout runs/RUN_2026-01-30_08-00-21/final/klayout_gds/tt_um_counter_top.klayout.gds


回路のPPA,QoR,DRC/LVSなどの統計は  runs/RUN_[日付]_[時間]/final/metrics.csv に書かれている.
$ cat runs/RUN_2026-01-30_08-00-21/final/metrics.csv 

 

0 件のコメント:

コメントを投稿