Synthesijerは、オープンソースの高位合成ツールです。Javaで書かれたプログラムをHDLにコンバートして論理回路を簡単に設計することができます。
今回はこれをUbuntuにインストールして使ってみます。
PCにUbuntuをインストールする方法については、「PCにUbuntu 18.04 (Bionic Beaver)を「軽量化」インストールする」を参照してください。
必要なパッケージのインストール
ターミナルで、
sudo apt-get install curl unzip git build-essential manpages-dev
JDK 11のインストール
※Ubuntu18.04以降の場合
sudo apt-get install openjdk-11-jdk ant
sudo update-alternatives --config java
(複数のJDKがインストールされている場合、バージョン11のJDKを選択します。)
Synthesijerのダウンロード、セットアップ
ここでは、githubにあるsynthesijer最新版をホームディレクトリ直下にインストールし、その下にextra-libs(追加ライブラリ)をインストールします。
cd ~
git clone https://github.com/synthesijer/synthesijer.git
cd ~/synthesijer
ant jar
cd ~/synthesijer
git clone https://github.com/synthesijer/extra-libs.git
cd ~/synthesijer/extra-libs
make
環境変数の設定を行います。
nano ~/.bashrc
以下の記述を$HOME/.bashrcの末尾に追加します。
export SYNTHESIJER=$HOME/synthesijer/synthesijer.jar
export SYNTHESIJER_LIB=$HOME/synthesijer/lib
export SYNTHESIJER_EXTRA_LIB=$HOME/synthesijer/extra-libs
上書き保存して閉じます。
設定を反映させます。
source ~/.bashrc
サンプルのコンパイル
cd ~/synthesijer/sample
ls
各サンプルのディレクトリに cd して、
make
Verilog HDLソースコード:〜.v VHDLソースコード:〜.vhd が出力されたら成功です。Top.vかTop.vhdをFPGAのプロジェクトのトップモジュールなどからインスタンス化して使用します。
必要に応じて、synthesijer/lib, synthesijer/extra-libs/hdl 以下にあるHDLソースコードやIPのライブラリをプロジェクトに追加します。
synthesijer/extra-libs/sample 以下にもその他のサンプルがあります。
応用例
SynthesijerでのVGA出力ライブラリの実装例
Synthesijerを使ってFPGA上で動作するゲームを作る
SynthesijerでI2Cバスを使う
独自CPUを自作する(Synthesijer版)
Synthesijer用スプライト/キャラクター表示ライブラリの作成
SynthesijerでSynthesizerを作ってみた
参考文献等
Synthesijer公式サイト
Synthesijer githubリポジトリ
Synthesijer関連資料まとめ