OpenRAM 環境の構築
SRAM のモジュールを生成する OpenRAM の環境構築とサンプル設定からのモジュール生成を行います.
注釈
OpenRAM では Miniconda が利用されますが,本ドキュメントでは,Anaconda レポジトリライセンスを避けるため,conda-forge レポジトリを用いる Miniforge を利用します.
注釈
あらかじめ Caravel template(mpw-9k) が構築された環境を前提としています.
動作環境
動作環境 : Windows11 23H2, Virtualbox 7.1.14, Ubuntu 22.04.5 LTS
使用ソフトウェア : OpenRAM v1.2.48, Miniforge, Caravel template (mpw-9k)
参考資料
https://github.com/VLSIDA/OpenRAM/blob/stable/docs/source/basic_setup.md
https://github.com/VLSIDA/OpenRAM/blob/stable/docker/Dockerfile
https://github.com/VLSIDA/OpenRAM/blob/stable/docs/source/OpenRAM.ipynb
Miniforge のセットアップと仮想環境の作成
Miniforge の github レポジトリから最新の Miniforge3-Windows-x86_64 インストーラを取得し,これを実行します.
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh
インストーラ実行時のオプションは次のように設定します.
license term : すべて yes
location : default
automatically initialize : no
以上のデフォルト設定では,${HOME}/miniforge3 にセットアップが行われ,仮想環境は ${HOME}/miniforge3/env に構成されます.
インストーラ実行後,.bashrc へ次の行を追加します.本設定により,次回のターミナル起動から Miniforge 環境が利用できるようになります.基本構成(base)の呼び出しは conda activate コマンドを事項します.
source "${HOME}/miniforge3/etc/profile.d/conda.sh"
インストーラ直後では,下記のコマンド実行により環境変数の設定を行い,基本構成(base)を呼び出します.
source "${HOME}/miniforge3/etc/profile.d/conda.sh"
conda activate
基本構成(base)の仮想環境が起動されると,プロンプト先頭に(base)が表記されます.
基本構成(base)起動後,conda 本体や基本パッケージのアップデートを行います.
conda update conda
conda update --all
次に,仮想環境(名称は env_openram とします)を作成し,仮想環境に移行します.
conda create -n env_openram python=3.12
conda activate env_openram
OpenRAM のセットアップ
OpenRAM セットアップのディレクトリは $HOME/OpenRAM とし,Miniforge の env_openram 仮想環境が起動されている前提にインストールを行います.
まず,OpenRAM レポジトリの v1.2.48 をクローンし,Miniconda を起動する install_conda.sh を空の内容(シェルスクリプト指定のみ)へ変更します.
cd
git clone -b v1.2.48 https://github.com/VLSIDA/OpenRAM
cd OpenRAM
mv install_conda.sh install_conda.bak
touch install_conda.sh
chmod u+x install_conda.sh
echo '#!/bin/bash' | tee -a install_conda.sh
次に,OpenRAM の必要パッケージを導入します.conda/pip コマンドによるインストールは仮想環境のみに影響します.(klayout はシステム上にインストールします)
sudo apt install klayout
conda install -c litex-hub iverilog
conda install -c litex-hub magic
conda install -c litex-hub netgen
conda install -c litex-hub ngspice
conda install -c litex-hub trilinos
python3 -m pip install -r requirements.txt
pip install xyce
環境変数の設定と PDK (sky130) の導入
OpenRAM の環境変数設定ファイル setpath.sh を下記の通り修正します.本ドキュメントでは,PDK を OpenRAM 用に別途 $HOME/OpenRAM/pdk へ構成しています.また,sky130 を対象としています.
export CONDA_HOME="$HOME/miniforge3/envs/env_openram"
export OPENRAM_HOME="$HOME/OpenRAM/compiler"
export OPENRAM_TECH="$HOME/OpenRAM/technology"
export PDK_ROOT="$HOME/OpenRAM/pdk"
export PYTHONPATH="$OPENRAM_HOME:$OPENRAM_TECH/sky130:$OPENRAM_TECH/sky130/custom"
環境変数を設定し,PDK をビルドします.
source setpath.sh
make sky130-pdk
make sky130-install
make build_library
OpenRAM のサンプル回路の合成
macros ディレクトリの example_config_scn4m_subm サンプル設定を用いて SRAM マクロのビルドの動作確認を行います.
cd macros
make example_config_scn4m_subm
生成されたマクロの確認を行います.
klayout example_config_scn4m_subm/example_config_scn4m_subm.gds
(備考)ウィンドウシステムが wayland の場合,「Info: Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.」と表示され klayout が起動しないことがあります.起動しない場合,設定を一時的に変更したコマンドを実行します.起動時にいくつか警告ダイアログが表示されますが,OK を選択します.
XDG_SESSION_TYPE="xcb" klayout example_config_scn4m_subm/example_config_scn4m_subm.gds