理論グループのミーティングの報告

日時: 98/05/19
場所: コンピュータ室 西2-220

山岡は、前回に引続きメモリの読み書きのできるプロセッサを作成し、沼さんはPCとFPGAのデータ操作のできるCプログラムを山岡の動作記述に即して作成し、これを説明した。

まず、山岡が説明を行なった。

<メモリ読み書き>ソースはここにあります。

(ソース説明)
前回のプログラムと動作自体ほぼ同じであるが、ステートマシンの記述のしかた、初期設定の条件、バスの取り扱い方などの変更をし、実際に動作させることができた。ただし、ここで扱っているメモリは1個である。
まず、初期設定の部分では、クロックの立ち上がりに同期してB(3)が'1'ならばSTOPのステートに移行しリセットをかけ、B(0)が'1'ならばアドレスをセットし、B(1)が'1'ならばPCからメモリに書き込むデータを取り込み、このデータをメモリに書き込むWRITEステートに移行し、B(3)が'1'ならば指定したメモリアドレスのデータを読み込むREADステートを開始し、最後にAポート下位8ビットにこのデータを出力する。ここで、READサイクル時においてDATAバスにハイインピーダンス'Z'を加える変更をした。これによりDATAバスのメモリ側とFPGA側の信号が競合することなくやりとりできるものと思われます。

(動作確認)
沼さんの作成したCによる検証プログラムにより、実際に動作していることを確認した。

以上 山岡 98/05/20/14:00
次に、沼さんが説明を行なった。

<メモリ読み書きの検証>ソースはここにあります。 改良版ソースはここにあります。

(ソース説明)
今回のプログラムではVHDLで作った山岡君のプログラムがメモリの読み書きができるかを検証するプログラムを作った。
今回のプログラムで、パソコンとのインターフェース8255とFPGAのポートの設定は前回と同じ。新しく追加したところはwhile(kbhit())以下の行。プログラムの動作に関してはソースに書いてある通り。山岡君のプログラムとの関係を示すと、まず'i'もしくは'I'を入力すると"Input BH > "というデータ入力画面が出てくる。ここで8ビットの値を16進数で入力する。すると、Bポート上位を出力ポートとして設定しているので、"AL AH BL BH"画面で、BH にそのデータの数値が出力される(Bポートに出力しながら、パソコンの画面に入力している)。
そこで'1'を入力するとその数値がその数値のアドレスにセットされる。'2'を入力するとアドレスのデータをメモリへ書き込まれる。'3'を入力するとメモリからデータを読み込み、パソコンへ出力する、そのときAポート下位を入力ポートとして設定しているので、ALにBH にそのデータの数値が出力される。'4'はアドレスのリセットである。
また、'q','Q','0'を入力するとプログラムは終了する
(改良版のソース説明)
改良版では、操作方法をプログラムを実行したとき、最初にそれを表示するようにした。そして、データの読み書きをするとき、'1'から'4'を押した後にそれらの動作を確認するためのメッセージも追加した。

以上 沼 98/05/21/14:40 (改良版) 98/05/22/18:20