Bach-C→ISE

●遅延モデルの指定

  1. 遅延モデルは.mdlファイルに記述する
  2. デフォルトの遅延モデルを用いて合成する場合は、
    % bachc -mn process -model default.mdl test.c
    で合成することができる

●FPGA内のブロックRAMを使用する

  1. メモリモデルファイルを生成し、メモリのピン名を指定(ファイル名は拡張子.rmdlのファイル)
    メモリモデルファイルの内容の例
    NAME = "myram"
    CLK_NAME = "CLK"
    CLK_POL = RISE
    ADR_NAME = "ADDR"
    DI_NAME = "DIN"
    DO_NAME = "DOUT"
    WE_NAME = "WE"
    ※これはシングルポートのブロックRAMにあわせた記述例である。他のメモリの場合にはそれにあわせた記述をしなければならない

●メモリモデルファイルの指定

  1. 明示的にメモリモデルファイルを指定
    #pragma configure_ram mem1 (model=memmodel);
    こうすると、RAMのmem1のメモリモデルをmemmodel.rmdlに指定することができる
  2. bachcコマンドでメモリモデルファイルを指定
    % bachc -mn process -ram_model memmodel.rmdl test.c
    こうすると、#pragma で指定してないメモリのメモリモデルは全部memmodel.rmdlに指定することができる

●ISEで合成するときの手順

  1. ISEの起動
  2. 新規プロジェクト
    Project name → 任意のプロジェクト
    Project location → 任意の場所
    Top-level source type → HDL
  3. Device Propaties
    ターゲットデバイスを考えて選択
  4. Create a new Source
    新しくファイルを作る必要がなければ次へ
  5. Add Exsisting Sources
    bachcコマンドでできたvhdファイルを全部選択(テストベンチ以外)
    上記とは別にbachstd.vhdを/home/vdec/sharp/bach-3.5/lib/bachstd.vhdから持ってくる
  6. Finish
  7. BLOCK RAMを用いる場合
    1. inst_memmodel_1 - memmodel等の"?"になっている部分を選択し、右クリックからnew source
    2. ファイル名はメモリモデル名と同じにするとよい
    3. IP(Core Generator & Architecture Wizard)を選択し、次へ
    4. Memories & Storage Elements → RAMS & ROMS → Single Port Block Memory
    5. Finish
    6. Memory Size のWrite Widthは、RAMの型に合わせる。
      char型なら8、int型なら16を指定
    7. Memory Size のWrite Depthは、RAMの大きさに合わせる。
      #pragma device RAM int t_mem0[1024];と指定したならば、1024を入れる。
  8. トップモジュールを指定し、Synthesize、Implement Designを行う。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-29 (木) 00:03:49