• 検索結果がありません。

4.3 設計モジュール

4.3.3 積和器

メモリコントローラ、加算器および乗算器を用いて積和器を設計した。この積和器 は昨年山岡が、FLEX2ndに実装するモジュールとして設計したものを、DRAMコ ントローラの追加、正常に動作する乗算器のために、その同期が取れるように改良し た。entityの構成を表4.9に、VHDLソースを付録 B.3.1に示す。

このFPGA間のデータバス(56bit)の配分は、データの通信(DATA BUS)32bit、 アドレスの通信(ADRS BUS)16bitFPGA間の制御(CTRL BUS)6bitFLEX1st

が命令した計算が終わったことを知らせる信号(CALC DONE)とデータバスの方向 制御(OE ALU)1bitずつ使用する。この場合のデータバスのピン配置を表4.8に示 す。方向はFLEX2ndからの方向とする。

信号名 用途 方向 ピン数 ピン番号

DATABUS データ通信 inout 32 BC5,BB6,BC7,BB8,BC9,BB10,BC11,BB12, BC13,BB14,BC15,BB16,BC17,BB18,BC19,BB20,

BC23,BB24,BC25,BB26,BC27,BB28,BC29,BB30,

BC31,BB32,BC33,BB34,BC35,BB36,BC37,BB38

ADRSBUS アドレス通信 in 16 AV18,AU19,AV20,AU21,AV22,AU23,AV24,AU25, AV28,AU29,AV30,AU31,AV32,AU33,AV34,AU35

CTRLBUS FPGA間制御 in 6 AV10,AU11,AV12,AU13,AV14,AU15

CALCDONE 計算終了 out 1 AU9

OEALU データバスの方向制御 in 1 AV8

4.8: FLEX 1stFLEX2ndとの間のデータバスのピン配線

信号名 用途 方向

CLK クロック in stdlogic

DATABUS FPGA間のデータバス inout stdlogicvector(31downto0)

ADRSBUS FPGA間のアドレスバス in stdlogicvector(15downto0)

CTRLBUS FPGA間のコントロールバス in stdlogicvector(5downto0)

CALCDONE 計算終了信号 out stdlogic

OEALU FPGA間のデータバスの方向制御 in stdlogic

RDATA 右メモリのデータバス inout stdlogicvector(31downto0)

RADRS 右メモリのアドレスバス out stdlogicvector(15downto0)

RSCS 右メモリのチップセレクト(SRAM) out stdlogicvector(3downto0)

RSOE 右メモリのアウトプットイネーブル(SRAM) out stdlogic

RSWE 右メモリのライトイネーブル(SRAM) out stdlogic

RDWE 右メモリのライトイネーブル(SRAM) out stdlogic

RDRAS 右メモリの行アドレス指定(DRAM) out stdlogicvector(3downto0)

RDCAS 右メモリの列アドレス指定(DRAM) out stdlogicvector(3downto0)

LDATA 左メモリのデータバス out stdlogicvector(31downto0)

LADRS 左メモリのアドレスバス out stdlogicvector(16downto0)

LSCS 左メモリのチップセレクト out stdlogicvector(3downto0)

LSOE 左メモリのアウトプットイネーブル out stdlogic

LSWE 左メモリのライトイネーブル out stdlogic

LDWE 左メモリのライトイネーブル(SRAM) out stdlogic

LDRAS 左メモリの行アドレス指定(DRAM) out stdlogicvector(3downto0)

LDCAS 左メモリの列アドレス指定(DRAM) out stdlogicvector(3downto0)

4.9: entityの構成

そして、メモリやFLEX1stから送られているデータの演算やメモリの読み書きの 動作もこの積和器で行なう。このFLEX1stからの動作はすべてFLEX1stから制御さ

れる。FLEX1stからの制御信号を表4.10、表4.11に示す。表4.11は今回追加した、

DRAMに関する制御信号である。

この信号はFLEX1stからFLEX2ndFPGA間の6bitのコントロールバス(CTRL BUS) で伝えることにより、積和器が表4.10およびの表4.11の動作を行なうことができる。

そして、この動作が終了したら、FLEX2ndから計算終了信号(CALC DONE)を伝 える。

信号名 用途

RMEMWR SRAMの書き込み

RMEMRD SRAMの読み込み

LMEMWR SRAMの書き込み

LMEMRD SRAMの読み込み

LRMEMWR 左右SRAMの書き込み

MEMSTOP メモリ制御信号のリセット

RRINPRO 右メモリデータの積和

LLINPRO 左メモリデータの積和

LRINPRO 左右メモリデータの積和

INPROF 積和結果をFPGAへ転送

INPROMEMR 積和結果を右SRAMへ転送

INPROMEML 積和結果を左SRAMへ転送

INPROMEMLR 積和結果を左右SRAMへ転送

FFMUL FPGAデータの乗算

FRMEMMUL FPGA,SRAMデータの乗算

FLMEMMUL FPGA,SRAMデータの乗算

RRMEMMUL SRAMデータの乗算

LLMEMMUL SRAMデータの乗算

LRMEMMUL 左右SRAMデータの乗算

FFADD FPGAデータの加算

FRMEMADD FPGA,SRAMデータの加算

FLMEMADD FPGA,SRAMデータの加算

RRMEMADD SRAMデータの加算

LLMEMADD SRAMデータの加算

LRMEMADD 左右SRAMデータの加算

CALCF 計算結果をFPGAへ転送

CALCMEMR 計算結果を右SRAMへ転送

CALCMEML 計算結果を左SRAMへ転送

CALCMEMLR 計算結果を左右SRAMへ転送

4.10: 制御信号

信号名 用途

LRDRAMWR 左右DRAMの書き込み

LDRAMWR DRAMの書き込み

RDRAMWR DRAMの書き込み

LRDRAMRD 左右DRAMの読み込み

LDRAMRD DRAMの読み込み

RDRAMRD DRAMの読み込み

INPRODRAMR 積和結果を右DRAMへ転送

INPRODRAML 積和結果を左DRAMへ転送

FRDRAMMUL FPGA,DRAMデータの乗算

FLDRAMMUL FPGA,DRAMデータの乗算

LRDRAMMUL 左右DRAMデータの乗算

CALCDRAMR 計算結果を右DRAMへ転送

CALCDRAML 計算結果を左DRAMへ転送

CALCDRAMLR 計算結果を左右DRAMへ転送

RRDRAMMEM DRAMから右SRAMへデータ転送

LLDRAMMEM DRAMから左SRAMへデータ転送

LRDRAMMEM DRAMから右SRAMへデータ転送

4.11: 制御信号(DRAM追加分)

本研究では、FPGA1stSRAMの制御だけでなく、DRAMも加わるので、SRAM を使うものはMEMDRAMを使うものはDRAMが信号名の2つ目のところに表記 してある。

4.3.4 ハウスホルダ法