Handel-Cによるイライラ棒の設計 発表項目 FPGAとHandel-Cについて 設計の仕様 ポインタ、道の表示方法 工夫した点 考察 デモンストレーション FPGAとHandel-Cについて FPGA:Handel-Cによってハードウェア構 成を設計できるIC Handel-C:ANSI-Cの仕様に加え、par文 による並列処理、ビット幅宣言などのハード ウェア設計に必要な仕様を追加した言語。 今回は、これらを用いてハードウェア上に ゲーム「イライラ棒」を作成する。 設計の仕様 黒で示された道を白のポインタで辿っていく。 緑の壁に当たるとゲームオーバーとなる。 ポインタはドラッグによって動かすことができ る。ボタンを離すとポインタと制限時間など が初期化される。 制限時間は60秒、この時間を越えるとゲー ムオーバーとなる。 制限時間の表示はRC10(FPGAが載って いるボード)の7セグメントLEDで行う。 ポインタ、道の表示方法 ピクセルによって表現、道(黒)は0、壁(緑) は1とする。 道や壁の描画と並列してポインタ(マウス)の 位置を検出、壁に触れていないかの判断を行 う。 工夫した点 制限時間をカウントする関数を利用して、あ る一定周期で画面を変化させ、ゲーム性を 向上させた。 ゲームオーバー、クリア時の画面はビット演 算を利用して元の配列を拡大させて表示さ せた。 考察 大規模な配列を数多く用意してしまったため マッピングに時間がかかり、作業効率が低 下してしまった。→ビット演算による拡大、回 転をうまく使うことで回避するべきだった。 同時に大量の配列を参照し、描画するため、 処理が追いつかず画面がちらつくことがあっ た。→最適なクロックレートを与えてやること が必要。 質問用のスライド 画像の描画の詳しい方法は? -64×64の配列で表現したマッ プを用意し、並列にアクセスす ることで実現。 X座標とY座標をビット結合す ることで値を取り出している。 例、x=011、y=100のとき、 y@x=100011(2)=35 map[x@y]=map[35]=0 →黒を表示 質問用のスライド クロックレートとは?またそれを調整するとな ぜ画面のちらつきがなくなるのか? →クロックレートとは、1秒間に実行するこ とのできる命令の数のこと。 これが大きすぎると、描画などの処理がお いつかず、ちらつきの原因となる。 質問用のスライド 道を一定間隔で変化させる方法は? -制限時間の一桁目を格納する変数を2で割り、そ の余りでどちらの絵を描画するかを判断する。これ により1秒ごとに道を変化させている。 if((Timer%2)==1) else
© Copyright 2024 ExpyDoc