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_[日付]_[時間]/ 内部に処理ステップに沿って以下のように格納される.




0 件のコメント:
コメントを投稿