ミニマルファブIC設計環境のインストール

ミニマルファブを利用して集積回路を製造するための集積回路設計環境を導入した際の手順をメモしておきます。ミニマルファブにユーザ登録すると、ミニマルEDAサーバの設計環境が無料で使えるそうですが、ここでは、LSI開発に必要なCADツールを自分のWindows PCにインストールします。CADツールとミニマルファブPDK(Process Design Kit)は全て無料です。メモリを多めに積んだPCがあれば、10分~30分程度の作業で一通りのLSI設計環境が手に入ります。

1.WSLの準備

LSI設計CADツールの多くがLinux上での利用を想定して開発されています。先ず、下記「WSLのインストールメモ」を参考にWindowsにWSL(Windows Subsystem for Linux)をインストールしてください。WSL上でCADツールを動作させます。Linuxのディストリビューションは、Ubuntu 24.02を想定しています。

WSLのインストールメモ

2.CADツールのインストール

WSLを起動し、Ubuntuのターミナルから、下記の手順でCADツールをインストールします。

(1) Xschem

回路図エディタです。

Xschem公式ページから、Download RELEASED Source codeページのCurrent releaseをダウンロードし、以下の手順でインストール。インストールが済んだ.tar.gzファイルと解凍したディレクトリは削除してかまいません。1

sudo apt install libxpm-dev flex bison tk tk-dev
tar zxvf xschem-*    // *はバージョン番号
cd xschem-*
./configure
make
sudo make install
  1. WindowsでダウンロードしたファイルをWSL上にコピーする場合は、エクスプローラのフォルダーツリー(左ペイン)で、Linux – Ubuntu を選び、ライブラリ欄(右欄)で、/home/<ユーザ名>/ の配下にコピー。 ↩︎

設定ファイルを生成するため xschem を起動して一旦終了。~/.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をダウンロード。以下の手順でインストール。インストールが済んだ.tar.gzファイルと解凍したディレクトリは削除してかまいません。

sudo apt install libxaw7-dev libreadline-dev
tar zxvf ngspice-*    // *はバージョン番号
cd ngspice-*
./configure
make
sudo make install
(3) Gaw

波形ビューワです。多くの波形を並べて表示したい場合は、こちらが便利です。

Gaw公式ページからダウンロードページに入り、gaw3-yyyymmdd.tar.gzをダウンロード。下記の手順でインストール。インストールが済んだ.gzファイルと解凍したディレクトリは削除してかまいません。

sudo apt install pkg-config libgtk-3-dev
tar zxvf gaw3-yyyymmdd.tar.gz
cd gaw3-yyyymmdd
./configure
make
sudo make install

設定ファイルを生成するため gaw を起動して一旦終了。~/.gaw/gawrc に以下の変更を行います。Xschemとの通信に必要です。

up_listenPort = 2020

(4) KLayout

レイアウトツールです。設計規則チェックにも使います。

KLayoutホームページで、上部メニューからGet KLayout – Ubuntu 24 をクリック(自分のLinux環境に合わせる)。Current Versionの.debファイルをダウンロード。インストールが済んだ.debファイルは削除してかまいません。

sudo apt install libqt5opengl5t64
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
cd ICPS2023_5
git pull

PDKのドキュメントは、/home/ユーザ名/.klayout/salt/ICPS2023_5/Technology/doc/ にあります。設計規則も記載されています。

ミニマル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をダウンロード。下記手順でインストール。インストールが済んだ.tar.gzファイルと解凍したディレクトリは削除してかまいません。

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 をダウンロード(*はバージョン番号)。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。

sudo apt install tk tk-dev
tar zxvf qrouter-*    // *はバージョン番号
cd qrouter-*
./configure
make
sudo make install

4.Magic

レイアウトエディタです。GDSを出力します。Open Circuit DesignのMagicページで、magic-*.tgz をダウンロード(*はバージョン番号)。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。

sudo apt install libglu1-mesa-dev
tar zxvf magic-*    // *はバージョン番号
cd magic-*
./configure
make
sudo make install

5.Netgen

ネットリスト比較ツールです。LVSを行います。Open Circuit DesignのNetgenページで、netgen-*.tgz をダウンロード(*はバージョン番号)。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。

tar zxvf netgen-*.tgz    // *はバージョン番号
cd netgen-*
./configure
make
sudo make install

6.Qflow

VerilogHDL, VHDL入力に対応したセミカスタム設計フローのスクリプトです。上記のツールを全てインストールした後に、Qflowをインストールしてください。Open Circuit DesignのQflowページで、qflow-*.tgz をダウンロード(*はバージョン番号)。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。

sudo apt -y install python3-tk
sudo apt install tcsh
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 をダウンロード(*はバージョン番号)。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。

tar zxvf verilog-*    // *はバージョン番号
cd verilog-*
./configure
make
sudo make install

(2) GTKwave

GTKWaveのサイトから、gtkwave-*.tar.gz をダウンロード(*はバージョン番号)。Ubuntuターミナルで、下記手順によりインストール。インストールが済んだ.tgzファイルと解凍したディレクトリは削除してかまいません。

sudo apt install gperf libgtk2.0-dev
tar zxvf gtkwave-*    // *はバージョン番号
cd gtkwave-*
./configure
make
sudo make install