●遅延モデルの指定
- 遅延モデルは.mdlファイルに記述する
- デフォルトの遅延モデルを用いて合成する場合は、
% bachc -mn process -model default.mdl test.c
で合成することができる
●FPGA内のブロックRAMを使用する
- メモリモデルファイルを生成し、メモリのピン名を指定(ファイル名は拡張子.rmdlのファイル)
メモリモデルファイルの内容の例
NAME = "myram"
CLK_NAME = "CLK"
CLK_POL = RISE
ADR_NAME = "ADDR"
DI_NAME = "DIN"
DO_NAME = "DOUT"
WE_NAME = "WE"
※これはシングルポートのブロックRAMにあわせた記述例である。他のメモリの場合にはそれにあわせた記述をしなければならない
●メモリモデルファイルの指定
- 明示的にメモリモデルファイルを指定
#pragma configure_ram mem1 (model=memmodel);
こうすると、RAMのmem1のメモリモデルをmemmodel.rmdlに指定することができる
- bachcコマンドでメモリモデルファイルを指定
% bachc -mn process -ram_model memmodel.rmdl test.c
こうすると、#pragma で指定してないメモリのメモリモデルは全部memmodel.rmdlに指定することができる
●ISEで合成するときの手順
- ISEの起動
- 新規プロジェクト
Project name → 任意のプロジェクト
Project location → 任意の場所
Top-level source type → HDL
- Device Propaties
ターゲットデバイスを考えて選択
- Create a new Source
新しくファイルを作る必要がなければ次へ
- Add Exsisting Sources
bachcコマンドでできたvhdファイルを全部選択(テストベンチ以外)
上記とは別にbachstd.vhdを/home/vdec/sharp/bach-3.5/lib/bachstd.vhdから持ってくる
- Finish
- BLOCK RAMを用いる場合
- inst_memmodel_1 - memmodel等の"?"になっている部分を選択し、右クリックからnew source
- ファイル名はメモリモデル名と同じにするとよい
- IP(Core Generator & Architecture Wizard)を選択し、次へ
- Memories & Storage Elements → RAMS & ROMS → Single Port Block Memory
- Finish
- Memory Size のWrite Widthは、RAMの型に合わせる。
char型なら8、int型なら16を指定
- Memory Size のWrite Depthは、RAMの大きさに合わせる。
#pragma device RAM int t_mem0[1024];と指定したならば、1024を入れる。
- トップモジュールを指定し、Synthesize、Implement Designを行う。
|