マイクロプロセッサ実験 情報工学実験第2 天野 実験の目的 • 与えられた課題を実行することのできるプロセッサ のハードウェアとソフトウェアを設計、実装し、FPGA ボード上で実際に動作させる – 課題例:もぐら叩き、ピンポンゲームなど、毎回テーマは 変わる – プロセッサは、POCOのテンプレートを公開、構成変更、 命令付加は自由(ただしFPGAに載るように) – プログラムはアセンブラShapaを利用 – 計算機構成の履修をしてない人は特別コース • 共同作業による製品開発の経験を積む – 典型的なシンセシス型実験で、今までのアナリシス型、経 験重視型実験と違うので注意! 実験の流れ 1 • 第1週 – – – – 解説(45分) チュートリアル:一連の作業を実際にやってみる(1時間) 昼休み 作業分担:ハードウェア1名、ソフトウェア担当2名など(個 性に応じて柔軟に) – 外部仕様、内部仕様の策定、企画書の提出 – 4時ごろ、、企画書についてのディスカッション – ハードウェアの改造、命令の付加 • マイルストーン – ハードウェアの改造 – 外部仕様、内部仕様の決定 実験の流れ 2 • 第2週 – ラップトップ上でフリーで作業 – マイルストーン: • 全てのプログラムがシミュレーション上で動作することを確認 • ハードウェアは合成終了 • 第3週 – 実機上で動作確認 – 終了時にデモ – 点数はほぼここできまる。レポートは外部仕様、内部仕様 を書いて報告するのみ – ディスカッションはない(第1週に終わっている) 一般的注意 • この実験は第一日目の前半以外はフリーでやって もらうが、以下は守ること – 食事、コーヒーブレークは自由に取っていい。しかし、実 験室内では飲食は禁止 – 昼食時、TAが居ない時は部屋を閉めるので注意(第1回 目だけ) – 帰るのはTAにその日のマイルストーンをクリアしたことを 確認してもらった後。 – ラップトップは帰る際に返却し、名簿にチェックをしてもらう – ITCに持ち出して、実験時間以外にもやることができる。 これはチュートリアル資料を参照のこと – TA(教員の天野)も生活があるので、あまり遅くまで残る のは止めよう! 今回のMinimum Requirement • もぐら叩き – もぐらの数は最低3匹 – ランダムに出てくるように見えること(ランダムらしければ よい) – ボタンを押して当ったかどうかの判定が行われること • その他、数を増やす、出方を工夫する、得点等拡張 は自由 • しかし、まずMinimum Requirementを満足させて からステップアップさせていく開発手法をお勧めする。 今回のMinimum Requirement • ピンポンゲーム – ラケット一個で壁打ち、ボールは直線軌道上を移動 – ボールがラケットの位置に存在するときにボタンを押すと、 ボールが跳ね返る • 対戦式、ラケットの上下方向移動、ボールの斜め移 動、スコア、ボールスピードの制御など拡張は自由 • しかし、まずMinimum Requirementを満足させて からステップアップさせていく開発手法をお勧めする。 今回のMinimum Requirement • スロットマシン – 3つの数字、記号が変化 – ボタンを押すと停止し、揃うと得点 – 揃わないと減点 • スコアの付け方、動かし方の詳細は自由 今回のMinimum Requirement • 脳トレ – 4つの数字が一定の時間間隔で表示される – 表示された順に打ち込んで正解ならばOK • スコアの付け方、出し方の詳細は自由 • 数字以外のパターンでもOK • 要するに脳トレっぽければ何でもOK 外部仕様と内部仕様 • 外部仕様 – どのように動かすか、使うか、つまりユーザに向けた使い 方、動き方を示す仕様 • 内部仕様 – – – – – どのように作るかを示す仕様 ハードウェアとソフトウェアに分けて考える ハードウェアは命令フォーマットをきちんと決める 良いものを時間内に作るにはメンバの協 ソフトウェアは流れ図を書く 力が鍵! ステップアップしていく実装法がお勧め • 仕様を決める際は十分相談し、分担、チェック体制 さて、ここでラップトップを配り、アカウントを確認、必要ファ を決めて、共同作業を行うこと。 イルのコピーをやってみよう パスワードを変えるのを忘れずに ファイル構造と変更点 alu.v test_poco.v poco_top_sim.v poco1.v rfile.v シミュレーション用 imem.v (led.datを利用) dmem.v poco_top.v lcdTop.v他 クロック制御 チャタリング防止用 実機用(リアルワールド) ハードウェア改造時 プログラム時 ハードウェアの改造 • 現在基本命令しか付いていない • poco1.vを変更(実験書の解説がある) • J命令は必須、JAL, JRその他必要な命令、 オリジナル命令を付けること • オリジナル命令はpoco.rbを改造すればアセ ンブラに組み込むことができる I/Oの接続(p.8) • LED:0x8000 下位8ビットが対応 1 0 1 0 1 0 0 1 • LCD:0xa000 下位10ビットが有効 – 0000000001: ディスプレイのクリア – 0000000010: ホームポジション(左上)移動 – 10XXXXXXXX: XのASCIIコードが表示 • Write Only (読んでも書いたデータは出てこない)な ので注意! • 立ち上げ直後はLCDは表示できないので注意! I/Oの接続(スイッチ) • 0xC000を読むと下位8ビットが有効 North West Reset S3 S2 S1 S0 1 0 1 East South 0 N S E W S3 S2 S1 S0 チャタリング防止回路は入っている ボタンスイッチは押した時だけ1 アセンブラプログラム • led.prg中にスイッチの値を読んでLEDに表 示するプログラムを示す。 • アセンブル – ./shapa led.prg –o led.dat: シミュレーション用 – ./shapa - - fpga led.prg –o led.dat: 実機用 • datファイル名を変えるときは、imem.v中の ファイル指定を変えること シミュレーション • ./compv: iverilogのコンパイル • vvp a.out: iverilogの実行 • test_poco.vを書き換えてデバッグ – – – – – 時期を見計らってスイッチに値を与える シミュレーション時間の調整 LEDへの書き込み、LCDへの書き込みを引っ掛けて表示 pcで引っ掛けて表示 カウンタを表示 • gtkwave poco.vcdで波形を見てデバッグ • 実験書10頁デバッグのコツ参照 • シミュレーションと実機を結びつける能力はいかなる開発で も非常に重要! FPGA用の配置配線 • ssh cad0.std.expr.st.keio.ac.jp (cad1, cad2も利用可能) • cd jikken • source setup.csh • make clean • make • 上記でXilinx社のise webpackによりpoco_top.v以下のファ イルが論理合成、圧縮、FPGAの配置配線される • エラーが出ないことを確認 • 構成情報poco_top.bitが生成される • ise webpackは無料開放されている 実機動作 • Xilinx社SPARTAN-3ボードを利用 • 班で一台Windowsを立ち上げる – jjikkenでログイン(パスワードは付いてない) • Win-scpを使ってpoco_top.bitを転送 • 192.168.0.15 – cad0で合成した人のアカウントから転送 – 転送先は好きなところへ、、 • IMPACTを立ち上げ、ボードを接続し、USB ケーブルで構成情報を転送 作業中の注意 • 節目節目でバックアップを取ろう – ファイルをコピーしてバージョン番号をつけて保 存 • 十分シミュレーションを行ってから実機へ • LCDに表示を担当する人はその部分だけ早 めに実機へ • では実機動作確認ができたら昼ごはん へ、、、、、
© Copyright 2024 ExpyDoc