理論グループのミーティングの報告
日時: 98/06/30
場所: 齋藤理一郎助教授教官室 西5-517
山岡は、浮動小数点数の加算器を作成し、前回作成した浮動小数点数の乗算器と組み合わせてベクトル(浮動小数点数)の内積計算を実行するVHDLを作成した。沼さんは浮動小数点を扱うことのできるPC、FPGA間のインターフェースをC++Builderにより作成した。
まず、山岡が説明を行なった。
<ベクトルの内積計算>fpinpro.vhd
(component:fpmult.vhd
,fpadder3.vhd)
-
(ソース説明)内積計算のブロック図
-
ハンドシェークを行ない、データを入出力する部分は前回とほぼ同様であるが、変更した機能は内積の結果の32ビットのみをPCへ出力するので、これを2つ目のprocessでBL(1)信号に同期して32ビットを2つに分けて出力している。
入力されたデータの演算はcomponent部で行なわれる。まず、入力された2つの浮動小数点数データを乗算器(fpmult.vhd)を入力し、結果をFC信号で得る。このFCと今まで計算してきた値Qを加算器(fpadder3.vhd)へ入力し、内積の結果をQQで得る。(内積計算のブロック図参照)
浮動小数点数の乗算器と加算器のアルゴリズムは前年度のミーティング報告第一回で見ることができる。
-
-
(動作検証)fpinpro.cpp
(データファイル:test.dat)検証結果
-
この内積計算をCプログラムにより検証した。ここではファイルに書かれたベクトルデータを読み込み、計算結果を表示している。データは2つのベクトルの要素が交互になるように格納されている。
-
以上 山岡 98/06/30/20:30
次に、沼さんが説明を行なった。
<浮動小数点と32ビットデータの変換プログラム>C++ builder用ソース(Zip形式)
C++ソースファイルUnit1.cpp 、プログラムのフォーム
-
(ソース説明)
-
今回は、パソコン側で入力した浮動小数点のデータを、それに対応した32ビットのコードに変換してFPGAに入力し、そして、FPGAから出力された浮動小数点の32ビットのコードをパソコン側で浮動小数点に変換する。というプログラムを作った。
まず、浮動小数点のデータの入ったファイルを入力する(但し、1行目はディメンション入力のため整数)。すると、ステート表示の画面に入力した浮動小数点データの32ビットコードが16進数で表示される。そして、読み込みのボタンを押すと、FPGAから32ビットコードが出力され、それをこのプログラムで浮動小数点に変換され、それがステート表示に表示される。
フォームの変更点は、"消去"というボタンを加えたこと。これを押すと、ステート表示内のデータがすべて消去される。
-
以上 沼 98/06/30/19:30