IntroduceHowto
注意点
今のところsh4(sh7751r)もどきにするためのファイルしか用意していないので、ほかのプロセッサを使用している場合はそのデータシートを元にsh4config.tclを書き換えて、たとえばarm7config.tclを作る必要があります。
もしあなたが作ったものを提供していただけるならば、id:molelordにメール添付で送ってください。
既存のプロジェクトにNOODLYBOXを用いるには
既存のプロジェクトに組み入れる形で、NOODLYBOXを使用したシミュレーションを行いたい場合、以下のような手順を踏んでください。
既存のプロジェクトの名前をxprojとし、以下のようなディレクトリ構成であると仮定して説明します。
xproj/
bench/ シミュレーション記述を格納
rtl/ 合成対象のHDLソースを格納
sim/ ModelSIM用のワークディレクトリ
NOODLYBOXの配布物を配置する
- xprojディレクトリ直下に、noodlyboxディレクトリを配置します。
- xprojディレクトリ直下に、noodlybox/sample/の以下のファイルとディレクトリをコピーします。
settings.sh
s
sh4config.tcl
sh4config_for_accessfpga.tcl
c
- 以下のような構成になっていることを確認します。
xproj/
settings.sh
s
sh4config.tcl
sh4config_for_accessfpga.tcl
bench/
c/
noodlybox/
rtl/
sim/
シミュレーション記述を作る
- ModelSIMのプロジェクトにnoodlybox/model/NOODLYBOX.vhdを追加します。
- noodlybox/sample/model/tSAMPLEFPGA.vhdを参考に、benchディレクトリにシミュレーション時の最上位階層になるファイル(以降tXFPGA.vhd)を作ります。
- ModelSIMのプロジェクトにbench/tXFPGA.vhdを追加します。
component宣言を作る
- Msysのシェルを起動し、下記のコマンドを打ち込みます。makefileを書ける方はsample/makefileを流用してやってもかまいません。
cd xproj
. settings.sh
mkdir pkg
compo.rb noodlybox/model/NOODLYBOX.vhd > pkg/NOODLYBOX_PKG.vhd
- ModelSIMのプロジェクトにpkg/NOODLYBOX_PKG.vhdを追加します。
環境ファイルとconfigファイルを作る
- settings.shの1行目をコメントアウトして代わりに2行目を有効にします。
- sh4config.tclをもとに、お使いのプロセッサのデータシートにあわせて新たなファイル(以降fooconfig.tcl)を作成します。
- sh4config_for_accessfpga.tclをもとに、tXFPGA.vhdでのNOODLYBOXインスタンスの位置にあわせて新たなファイル(以降fooconfig_for_accessfpga.tcl)を作成します。
C言語部分の修正
- sample/c/samplefpga.csvをもとに、FPGAのレジスタのアドレス、型、名前などにあわせてCSV形式のファイル(以降xfpga.csv)を作成します。
- c/accessfpga.cを開き、sim->config()の行をfooconfig.tclとfooconfig_for_accessfpga.tclを参照するように修正します。
- (accessfpga.c修正続き)"Samplefpga"の部分はCSVのファイル名に依存するので、"Xfpga"に置換します。
- (accessfpga.c修正続き)includeするヘッダの名前も"samplefpga.h"から"xfpga.h"に置換します。
- (accessfpga.c修正続き)任意のレジスタを読み書きするようにします。
- c/makefileの、"samplefpga"を"xfpga"に置換します。
- Msysのシェルを起動し、以下のコマンドを打ち込みます。
cd xproj
. settings.sh
cd c
make
- makeで何かエラーがでたら、該当するソースファイルを修正して、再度makeしてください。
実行!
- ModelSIMを起動します。
- Transcriptウィンドウで do s します。
- Transcriptウィンドウに以下のコマンドを打ち込みます。
do fsm.tcl -c ../c/accessfpga.exe