ミニマルファブを利用して集積回路を製造するための集積回路設計環境を導入した際の手順をメモしておきます。ミニマルファブにユーザ登録すると、ミニマルEDAサーバの設計環境が無料で使えるそうですが、ここでは、LSI開発に必要なCADツールを自分のWindows PCにインストールします。CADツールとミニマルファブPDK(Process Design Kit)1は全て無料です。メモリを多めに積んだPCがあれば、60分程度の作業で一通りのLSI設計環境が手に入ります。
- PDKは、トランジスタの特性やレイアウト設計規則など、回路設計に必要な製造技術に関する情報をまとめたものです。
フルカスタム設計環境
1.WSLの準備
LSI設計CADツールの多くがLinux上での利用を想定して開発されています。先ず、下記「WSLのインストールメモ」を参考にWindowsにWSL(Windows Subsystem for Linux)をインストールしてください。WSL上でCADツールを動作させます。Linuxのディストリビューションは、Ubuntu 24.02を想定しています。
基本的なプログラミング環境をまだ入れていない場合は、Ubuntuのターミナルから、下記のコマンドでインストールを行ってください。上記WSLのインストールメモをそのまま実行した場合は、既にインストールされています(複数回実行しても問題ありません)。
sudo apt install build-essential nodejs npm python3 python3-pip python3-venv x11-xserver-utils
2.CADツールのインストール
WSLを起動し、Ubuntuのターミナルから、下記の手順でCADツールをインストールします。
多量にソースファイルをダウンロードするため、ダウンロードしたファイルを置くディレクトリを作成します。
mkdir ~/src
(1) Xschem
シンプルな回路図エディタです。
Xschem公式ページから、Download RELEASED Source codeページのCurrent releaseをダウンロードして、~/src にコピーします2。以下の手順でインストール。インストールが済んだ.tar.gzファイルと解凍したディレクトリは削除してかまいません。
- WindowsでダウンロードしたファイルをWSL上にコピーする場合は、エクスプローラのフォルダーツリー(左ペイン)で、Linux – Ubuntu を選び、ライブラリ欄(右欄)で、/home/<ユーザ名>/ の配下のディレクトリにコピー。
sudo apt install libxpm-dev flex bison tk tk-dev
cd ~/src
tar zxvf xschem-* // *はバージョン番号
cd xschem-*
./configure
make
sudo make install
設定ファイルを生成するため xschem を起動して一旦終了し、 ~/.xschem/xschemrc をテキストエディタで開きます。
emacs ~/.xschem/xschemrc &
~/.xschem/xschemrc に以下の設定を追加します。
### Minimal Fab. ICPS2023_5 ###
lappend tcl_files [list ${XSCHEM_SHAREDIR}/ngspice_backannotate.tcl]
set XSCHEM_LIBRARY_PATH {}
append XSCHEM_LIBRARY_PATH [pwd]
set PDK "$env(HOME)/.klayout/salt/ICPS2023_5/Technology/tech"
append XSCHEM_LIBRARY_PATH :$PDK/symbols/Xschem/ICPS2023_5
append XSCHEM_LIBRARY_PATH :$PDK/symbols/Xschem
append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/xschem_library/devices
(2) Ngspice
高機能な回路シミュレータです。動作モデルの記述にVerilog-Aが使えますので、MEMSや新デバイスにも対応可能です。
Ngspice公式ページから、ダウンロードページに入って、stable releaseをダウンロードし、~/src にコピーします。以下の手順でインストール。インストールが済んだ.tar.gzファイルと解凍したディレクトリは削除してかまいません。
sudo apt install libxaw7-dev libreadline-dev automake
cd ~/src
tar zxvf ngspice-* // *はバージョン番号
cd ngspice-*
./configure
make
sudo make install
(3) Gaw
波形ビューワです。多くの波形を並べて表示したい場合は、こちらが便利です。
Gaw公式ページからダウンロードページに入り、gaw3-yyyymmdd.tar.gzをダウンロードし、~/src にコピーします。下記の手順でインストール。インストールが済んだ.gzファイルと解凍したディレクトリは削除してかまいません。
sudo apt install pkg-config libgtk-3-dev
cd ~/src
tar zxvf gaw3-yyyymmdd.tar.gz
cd gaw3-yyyymmdd
./configure
make
sudo make install
設定ファイルを生成するため gaw を起動して一旦終了し、~/.gaw/gawrc をテキストエディタで開きます。
emacs ~/.gaw/gawrc &
設定ファイルを生成するため gaw を起動して一旦終了し、。~/.gaw/gawrc に以下の変更を行います。Xschemとの通信に必要です。
up_listenPort = 2020
(4) KLayout
レイアウト設計ツールです。設計規則チェックにも使います。
KLayoutホームページで、上部メニューからGet KLayout – Ubuntu 24 をクリック(自分のLinux環境に合わせる)。Current Versionの.debファイルをダウンロードし、~/src にコピーします。インストールが済んだ.debファイルは削除してかまいません。
sudo apt install libqt5opengl5t64
cd ~/src
sudo dpkg --install klayout_*_amd64.deb // *はversion番号
// エラーが出る場合は、
sudo apt --fix-broken install
// を実行してから、インストール(dpkg)を実行
3.PDK(Process Design Kits)の取得
ミニマルファブから公開されているSOI CMOS用PDK(2個)を下記手順でインストールします。.klayout は、KLayoutの初回起動時に作成されるので、下記のコマンド(1行目)でKLayoutを起動。
klayout -e & // KLayoutを起動して終了
mkdir ~/.klayout/salt
cd ~/.klayout/salt
git clone https://github.com/mineda-support/AnagixLoader.git
git clone https://github.com/mineda-support/ICPS2023_5.git
PDKのドキュメントは、/home/ユーザ名/.klayout/salt/ICPS2023_5/Technology/doc/ にあります。設計規則も記載されています。
PDKは、時々更新されています。下記のコマンドで、PDKの更新を自分のPCに反映させることができます。
cd ~/.klayout/salt/AnagixLoader
git pull
cd ../ICPS2023_5
git pull
セミカスタム設計環境
ミニマルEDAサーバにQflowがインストールされているので、ミニマルファブがセミカスタム設計(ディジタル回路設計)に対応済みと考えていましたが、ミニマルファブ用のスタンダードセルライブラリは開発中のようです。とりあえず、Qflow + 必須ツールをインストール。
1.Yosys
論理合成ツールです。下記の手順でGitHubから取得してインストールします。インストール後は、git cloneで作成したリポジトリを削除してかまいません。
sudo apt install clang lld bison flex \
libreadline-dev gawk tcl-dev \
libffi-dev graphviz xdot \
pkg-config libboost-system-dev \
libboost-python-dev \
libboost-filesystem-dev \
zlib1g-dev
mkdir ~/git
cd ~/git
git clone https://github.com/YosysHQ/yosys.git
cd yosys
git submodule update --init --recursive
make
sudo make install
2.graywolf
自動配置配線ツールです。まだ、libgsl (GNU Scientific Library) をインストールしていない場合は、先ず、libgslをインストールします。GSL公式サイトで、Current stable versionのGSLをダウンロードし、~/src にコピーします。下記手順でインストール。インストールが済んだ.tar.gzファイルと解凍したディレクトリは削除してかまいません。
cd ~/src
tar zxvf gsl-latest.tar.gz
cd gsl-* // *はバージョン番号
./configure
make
sudo make install
次に、graywolfをGitHubから取得してインストールします。インストール後は、git cloneで作成したリポジトリを削除してかまいません。
sudo apt install cmake
cd ~/git
git clone https://github.com/rubund/graywolf
cd graywolf
mkdir build
cd build
cmake ..
make
sudo make install
3.Qrouter
詳細配線ツールです。Open Circuit DesignのQrouterページで、qrouter-*.tgz をダウンロード(*はバージョン番号)し、~/src にコピーします。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。
sudo apt install tk tk-dev
cd ~/src
tar zxvf qrouter-* // *はバージョン番号
cd qrouter-*
./configure
make
sudo make install
4.Magic
レイアウトエディタです。GDSを出力します。Open Circuit DesignのMagicページで、magic-*.tgz をダウンロード(*はバージョン番号)し、~/src にコピーします。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。
sudo apt install libglu1-mesa-dev
cd ~/src
tar zxvf magic-* // *はバージョン番号
cd magic-*
./configure
make
sudo make install
5.Netgen
ネットリスト比較ツールです。LVSを行います。Open Circuit DesignのNetgenページで、netgen-*.tgz をダウンロード(*はバージョン番号)し、~/src にコピーします。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。
cd ~/src
tar zxvf netgen-*.tgz // *はバージョン番号
cd netgen-*
./configure
make
sudo make install
6.Qflow
VerilogHDL, VHDL入力に対応したセミカスタム設計フローのスクリプトです。上記のツールを全てインストールした後に、Qflowをインストールしてください。Open Circuit DesignのQflowページで、qflow-*.tgz をダウンロード(*はバージョン番号)し、~/src にコピーします。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。
sudo apt -y install python3-tk
sudo apt install tcsh
cd ~/src
tar zxvf qflow-* // *はバージョン番号
cd qflow-*
./configure
make
sudo make install
7.Verilogシミュレータ
合成結果はSTA(Static Timing Analysis)レポートで確認できますが、製造後の動作確認やデバッグの際にHDLシミュレータも欲しくなるので、ついでに、Icarus Verilog(VerilogHDLシミュレータ)とGTKwave(波形ビューワ)も入れておきます。
(1) Icarus Verilog
SOURCEFIRGEから、verilog-*.tar.gz をダウンロード(*はバージョン番号)し、~/src にコピーします。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。
cd ~/src
tar zxvf verilog-* // *はバージョン番号
cd verilog-*
./configure
make
sudo make install
(2) GTKwave
GTKWaveのサイトから、gtkwave-*.tar.gz をダウンロード(*はバージョン番号)し、~/src にコピーします。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。
sudo apt install gperf libgtk2.0-dev
cd ~/src
tar zxvf gtkwave-* // *はバージョン番号
cd gtkwave-*
./configure
make
sudo make install
コメント
“ミニマルファブIC設計環境のインストール” への1件のコメント
[…] ミニマルファブPDKのリファレンス・マニュアルに掲載されているEDAツールのインストール手順は、別の投稿で示したとおりですが、私はXschemの操作にあまり慣れていないので、LTspiceを回路図エディタおよびシミュレータとして使いたい、ということで、LTspiceを使ったフルカスタム設計手順もメモしておきます。確認した範囲では、NgspiceとLTspiceのシミュレーション結果は、完全に一致しているようです。以下、LTspiceの操作は慣れているものとして説明します。 […]