メモリモジュールの作成


KITEプロセッサのメインメモリとなるメモリモジュールを作成します。
module memory (CLK,      ADDR, DATAI, DATAO, MREQ, RW, ACK );


メインメモリは、16ビット幅で2Kワード用意します。
メモリは配列として宣言します。
	reg   [15:0] MEM[0:2047];
メモリの書込み動作については、always を用いて記述しますが、 書き方の違いにより、メモリがFPGAの内部ブロックメモリとして実装されるか、 それともFFの集まりとして実装されるかが異なります。 その書き方は使用する論理合ソフトウェアによっても異なります。

今回使用するXilinx社製ISEでは、以下のように記述すると内部メモリとして実 装することができます。

考え方:


実行するプログラムによるメモリの初期化:

KITEプロセッサにより実行するプログラムは、そのプログラムのバイナリイメー ジ(機械命令)をメモリ上に実装することで実現します。

Verilog HDL の場合 $readmemh() を用いることで、メモリの内容をあらかじめ KITEのプログラムで初期化することができます。
メモリ用に確保した MEM 配列に対して、kite.ram ファイルの内容で初期化する 場合は以下のように記述します。
   initial
   begin
      $readmemh( "kite.ram", MEM );
   end
メモリ初期化用のファイルは、kite_asm を用いて .lst ファイルを作成した後、 lst2ram コマンドを用いて $readmemh に使えるファイル形式にします。
なお、$readmemh の仕様が Verilog XL シミュレータと、Xilinx ISE 論理合成 とでは異なるため、lst2ram コマンドには以下のようにオプションを忘れないよ うにします。
kiteasm -l xxxx.asm
lst2ram -s -f -2 xxxx.lst
上記こコマンドで作成した .ram ファイルは、 Verilog XL シミュレータと、 Xilinx ISE 論理合成の両方で使用できます。


| Back |