FPGAのソフトコアCPUをベンチマークで測定するMAX 10 FPGAで学ぶFPGA開発入門(7)(4/6 ページ)

» 2016年02月16日 07時00分 公開
[大原 雄介MONOist]

ビルドしてDhrystoneを実行

 さて、これをビルドして実行であるが、Run Configurationの前に実行するプロジェクトをキチンと切り替えておくことを忘れずに(Photo05)。切り替えて実行したところ、見事にDhrystoneが完走した(Photo06)。

Photo05:プロジェクト切り替えを忘れると、Dhrystoneを走らせるハズが、延々と温度を表示し続ける Photo05:プロジェクト切り替えを忘れると、Dhrystoneを走らせるハズが、延々と温度を表示し続ける
Phoot06:この表示は「正しくDhrystoneが実際されたか」を確認するもので、結果は全て正しいことが分かる。問題はElapsedが0な事だけだ Phoot06:この表示は「正しくDhrystoneが実際されたか」を確認するもので、結果は全て正しいことが分かる。問題はElapsedが0な事だけだ

 ただ、走った事はいいのだが、肝心の時間測定ができていない。実はalt_timestamp()はシステム・クロック(のTimestamp Timer)が利用できないと戻り値が0になる仕様なので、これの対応を追加してやる必要がある。

 ということで、再びQSYSに戻る。QSYSは現状この状態になっていて、よく見ると「one_sec_timer」なるInterval Timerが既に存在しているのだが、こちらは1秒単位での測定しかしないものなので、もう少し細かい精度がほしい。

 そこで左上からProcessors and Peripherals → Peripherals→ Interval Timer と選び、もう1つInterval Timerを追加した(Photo06)。こちらは右ペインにあるように、Periodを1μsとしたので、かなり細かく数字が取れるはずだ。

Photo07:Interval Timerを追加。名前は後で右クリック→"rename"で変更できる Photo07:Interval Timerを追加。名前は後で右クリック→"rename"で変更できる

 ちなみに配線としてclk/reset/s1/irqの各配線はone_sec_timerと同じようにつないでおく。以上が完了したら右下の「Generate HDL」ボタンを押して設定ファイルを生成、ついでQuartus IIの画面に戻ってビルドをやり直し、最後にProgrammerを使ってMAX 10に書き込むところまでを繰り返す。

Copyright © ITmedia, Inc. All Rights Reserved.