4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

フィボナッチを求める回路をSynthesijerとMessagePack-RPCでFPGAに実装してみた(シミュレーション編)

Last updated at Posted at 2015-11-13

#はじめに

フィボナッチを求める回路をVHDLとMessagePack-RPCでFPGAに実装してみた(シミュレーション編)ではフィボナッチ回路はVHDLで記述しましたが、今回はJavaで記述してSynthesijerを使って高位合成したRTLを単体シミュレーションする例を示します。

#用意するもの

Dummy_Plug は AXI4/AXI4-Stream のBFM(バスファンクションモデル)ライブラリです。

#ブロック図

akgeo2.jpg

AXI4_Stream_Master_Player、AXI4_Stream_Slave_PlayerはYAML形式のシナリオファイルを読み込んでAXI4-Stream I/F信号の入出力を行うためのDummy_Plugライブラリのコンポーネントです。

#ソースコード

フィボナッチを求めるjavaのソースコードです。kazunori279さんのフィボナッチをFPGAで書いてみたを参考にしました。

Fib.java
public class Fib {
    public long fib(int n) {
        long cur  = 0;
        long next = 1;
        for (int i = 0; i < n; ++i) {
            long tmp = cur;
            cur = next;
            next += tmp;
        }
        return cur;
    }
}

#手順

##リポジトリと各submodule をダウンロード

shell% git clone git://github.com/ikwzm/msgpack-vhdl-examples.git
shell% cd msgpack-vhdl-examples
shell% git submodule init
shell% git submodule update

##Fib.javaを高位合成

shell% export SYNTHESIJER=~/work/synthesijer/synthesijer/bin 
shell% cd examples/fibonacci/src/main/synthesijer
shell% make

なお、SYNTHESIJER にはsynthesijerをインストールしているパスをしてください。

##テストシナリオの作成

AXI4_Stream_Master_PlayerおよびAXI4_Stream_Slave_Player用のテストシナリオを作ります。

shell% cd examples/fibonacci/src/test/scenarios
shell% ruby test_1.rb

test_1.rb はテストシナリオ(YAML形式)を生成するためのrubyスクリプトです。

##Vivado プロジェクトの作成

Vivado プロジェクトを作成するためのTclファイル(create_project.tcl)を用意しています。
Vivadoを起動して次のメニューからTclファイルを実行してください。

Vivado > Tools > Run Tcl Script... > examples/fibonacci/sim/vivado/synthesijer/create_project.tcl

##シミュレーションを実行

Vivado プロジェクトを開き、次のようにシミュレーションを実行してください。

Vivado > Flow > Run Simulation > Run Behavioral Simulation

#参照

フィボナッチをFPGAで書いてみた

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?