EAB を使ったメモリ(2001)


Flex10K は、論理回路を構成出来るLC(Logic Cell)の他にEAB(Embeded Array Block)というものを持っている。本研究室で用いるデバイスEPF10K200SRC240-3ではEAB 1個辺り 16bit×256(4096bit) のRAM を構成することができ、このEAB が24個ある。例えば、16bit メモリが欲しい場合、EAB を 1つ使うとFlex10KE だと256Word 分構成できる。ここにそのEAB を使ったRAMの設計方法を示す。



シミュレーションモデルの作り方

RAM を組み込んだ回路をシミュレーションする際、そのシミュレーションモデルと初期値ファイルが必要です。ここではそのシミュレーションモデルの作り方を示します。
  1. DOSプロンプト上でシミュレーションモデルを作成するディレクトリに移動
  2. DOSプロンプト上で\maxplus2\genmem synram 256x32 -vhdl と入力します。
    synram => 同期RAM
    ansynram => 非同期RAM
    256x32 => Width32bit で 256Word のメモリ
    -vhdl => シミュレーションモデルをVHDL で出力。
  3. \genmem を実行すると以下の図1のようになります。

    図1

  4. ここでADDRESS,input DATA,output DATA をRegister するかどうかを選択。
  5. 通常はここで 2を選択 => 高速な動作可能
    これは、Write 時はアドレスとデータはクロック同期でRead 時はクロック非同期というモードです。実際には、アドレスがクロック同期であるため、Read 時にも見かけ上データがクロック同期しているように見える。
  6. 指定したディレクトリにsyn_ram_256x32irou.vhd などというファイルができる。
  7. syn_ram_256x32 はデフォルトでエンティティ名がsyn_ram_256x32 となっているので、この名前をこれからシミュレーションしたい回路のメモリマクロ名に変える。
  8. シミュレータでコンパイルするとシミュレーションモデルが作られる。
  9. これから作成する回路のマクロ名をシミュレーションモデルのマクロ名と合わせることにより、そのままコンパイルして組み込むことができる。

初期値ファイルの作り方

初期値ファイルを作成するにはIntel HEX ファイルとMaxplus2 独自のMIF ファイルというものがある。ここではMIF ファイルの作成方法を示す。

    テキストエディターを使用した場合
  1. maxplus2 を起動する。
  2. File/New を選択しText Editor File を選択したら OK をクリック。
  3. 図 2のようなフォーマットでアドレスとデータを入力。

  4. 拡張子を.tdf ではなく .mif に変えてシミュレーションモデルと同じディレクトリに保存
    ダイアロゴボックスを使う場合
    この方法は合成した後に作成したほうがいい。
  1. maxplus2 を起動する。
  2. maxplus2 で合成結果edif ファイルを開く。
  3. File/Project/Set Project to Cuurent File をクリックする。
  4. シミュレーションを行う手続きを行う。Simulator を起動してもSTART はまだクリックしない。 => Max+ 2の使い方 タイミングシミュレーションの実行
  5. Simulator を起動したら、Initialize/Initialize Memory をクリックすると、図 2のようなダイアロゴボックスが開く。

    図2

  6. Value のところにDATA を入力する。
  7. DATA を入力したら、Import File をクリックしてファイル名を指定して保存する。

合成の方法

RAM を構成することができるLPM というハードマクロ を使ったVHDL の合成方法をMaxplus2 のLPM_RAM_DQ をサンプルに例を示して説明します。


LPM_RAM_DQ のGraphic Design File

シミュレーション結果

  1. 初期値ファイルを取り込む

      テキストエディターで作成したmifファイルを取り込む
    1. MegaWizard Plug-In Manager で作成したcoderam.tdf をテキストエディターで開く。
    2. VARIABLE で設定しているパラメータに
      LPM_FILE= *.mif
      と入力。

      ダイアロゴボックスで作成したmif ファイルを取り組む => こちら

  2. シミュレーション結果


(inari 01.10.10)
参考になったサイト => FPGA で幸せになろう
コメント、アドバイスがある場合は以下のアドレスへどうぞ。
inari@tube.ee.uec.ac.jp
戻る