Home記事一覧フォーラム

高位合成ツール「Synthesijer」を使う

【更新履歴】
2017/06/04 Synthesijer 20170322版に対応
2016/05/22 Synthesijer 20160511版に対応
2015/11/26 応用例を追加
2015/04/27 公式セットアップスクリプトに準拠する形に修正しました。以前にこのページの方法でセットアップされた方は新しい方法でやり直してください。
2015/03/29 セットアップ用スクリプト「synthesijer-setup.sh」を修正し、方法を少し変えました。以前にこの方法でセットアップされた方は新しいスクリプトに変更して再度スクリプトを実行してください。

Synthesijerは、オープンソースの高位合成ツールです。Javaで書かれたプログラムをHDLにコンバートして論理回路を簡単に設計することができます。
今回はこれをUbuntuにインストールして使ってみます。
PCにUbuntuをインストールする方法については、「Cell/B.E. & SpursEngine プログラミング:PCにUbuntu 15.04 (Vivid Vervet)を「軽量化」インストールする」を参照してください。

必要なパッケージのインストール

ターミナルで、

sudo apt-get install curl unzip git build-essential manpages-dev

JDK 8のインストール

※Ubuntu14.10以降の場合

sudo apt-get install openjdk-8-jdk ant

※Ubuntu14.04以前の場合

OpenJDK8はUbuntu14.04以前のリポジトリにはないのでOracle JDK8をwebupd8teamリポジトリからインストールします。

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer
(Oracleのライセンスに同意する画面が出ます。<了解>で進めます。「Do you accept the Oracle Binary Code license terms?」で<はい>で進めます。)

sudo apt-get install ant

sudo update-alternatives --config java
(複数のJDKがインストールされている場合、バージョン8のJDKを選択します。)

Synthesijerのダウンロード、セットアップ

セットアップ・スクリプトをダウンロードします。

curl -O -L http://synthesijer.github.io/web/dl/20170322/setup_20170322.sh

セットアップ・スクリプトを実行します。

sh setup_20170322.sh

自動的に$HOME/synthesijerディレクトリが作られ、ダウンロード、展開されます。

以下の記述を$HOME/.bashrcの末尾に追加します。

source $HOME/synthesijer/synthesijer_env.sh

nano ~/.bashrc

上書き保存して閉じます。

サンプルのコンパイル

cd ~/synthesijer/synthesijer_sample_*

ls

各サンプルのディレクトリに cd して、

make

Verilog HDLソースコード:〜.v VHDLソースコード:〜.vhd が出力されたら成功です。Top.vかTop.vhdをFPGAのプロジェクトのトップモジュールなどからインスタンス化して使用します。
必要に応じて、synthesijer_lib_* 以下にあるHDLソースコードやIPのライブラリをプロジェクトに追加します。

応用例

SynthesijerでI2Cバスを使う

独自CPUを作る(Synthesijer版)

Synthesijerを使ってFPGA上で動作するゲームを作る

参考文献等

Synthesijer公式サイト

Synthesijer関連資料まとめ