小野寺 道寛(9.6-7)

Download Report

Transcript 小野寺 道寛(9.6-7)

計算機アーキテクチャ特論
Chapter9(6-7)
学籍番号:6311622 小野寺 道寛
Chapter 9.6
テストベンチの作り方
テストベンチを作るためには
ここでのテストベンチとは?
ハードウェア部とソフトウェア部の性能テストを行うシステムのこと
テストベンチ作成に必要なこと(概要)
•プラットホーム(テストを行う場所)の作成
•FPGAベンダツールを用いて、プラットホームの環境設定を行う
Xilinx Platform Studioを使用する
•プラットホームを実機(FPGAのプロトタイプボード)に実装する
使用するボードは、 VirTexⅡプロトタイプボード
VirTexⅡプロトタイプボード
•実際に用いるVirTexⅡプロトタイプボードはMemec Design社製
V2MB1000ボード
•テストベンチに必要な入出力の資源・便利なその他機能が揃っている。
前準備
テストベンチの作成に必要となるものを生成する必要がある
•プラットホームの構築時に使用するハードウェア(HDLファイル)
•3DESアルゴリズムが表記してあるファイル
•テストベンチのソースファイル等
生成法(概要)
Impulse C の統合開発環境ツールであるCoDeveloperを使用する。
前準備
生成法(詳細)
1.↓のような生成オプションダイアログで設定を行う。
1
2
A
B
3
C
D
前準備
考慮すべき点1
•プラットホームサポートパッケージの指定
•テストベンチで使用するものを考慮して指定する必要がある。
FPGAのプロトタイプボード、ソフトウェアプロセッサコア、バスアーキテクチャ等
•今回は、 Xilinx MicroBlaze FSLを指定する。
考慮すべき点2
•項目Aには、ハードウェア部のソースを生成するディレクトリを指定
•項目Bには、ソフトウェア部のソースを生成するディレクトリを指定
•項目C,Dには、生成されたソースの移動先ディレクトリを指定
考慮すべき点3
•チェックが入っているかどうか確認する(入っていなかったら、チェックを入れる)。
•FPGAのコンポーネント(トリプルDES暗号化コア)がMicroBlazeプロセッサとは異
なるクロック周波数で動作することを意味する。
前準備
生成法(詳細)
2. CoDeveloperの[Project]メニューから[Generate HDL]を選
択する。
これを選択する
前準備
3.コンパイルが行われ、HDLファイル等の様々なファイルが
出力される。
プラットホームの作成について
Xilinx Platform Studio(XPS)という統合環境ツールを用いて、
プラットホームの作成・環境設定を行う。
XPSを使用する前に、プロジェクトディレクトリの中にEDKという名
前のサブディレクトリを作成しておく
後に、前準備の段階で
生成されたファイルを
ここに移すことになる
このディレクトリにはXPSで作られる
プロジェクトファイルが出力される
プラットホームの作成について
(プロジェクトファイルの作成)
1.
2.
3.
XPSを起動する。
Base System Builder Wizardを選択する。
新しいプロジェクトファイル(system.xmp)を作成する。
Project/system.xmp
System.xmpの作成
処理2
処理3
プラットホームの作成について
(使用するボードの選択)
次に進むと、使用するボードを選択する画面が現れる。
これを選択
このように入力すればよい
プラットホームの作成について
(使用するプロセッサの選択)
次に進むと、使用するプロセッサを選択する画面が現れる。
これを選択
プラットホームの作成について
(MicroBlazeの環境設定)
次に進むと、
右図のようなMicroBlazeの
環境設定を行う画面が現れる。
基準クロックの
周波数
プロセッサバスの
クロック周波数
どちらの周波数も100MHzに設定
基準クロック:
CPUや周辺機能など各装置の
同期を取るための周期的な信号
これを選択
プロセッサバス:
コンピュータ内部で、メモリや入出力装置
などとCPUを接続するデータ伝送路のこと
デフォルトでは8KBなので、
64KBに増加させておく。
プラットホームの作成について
(I/Oインターフェイスの設定)
次に進むと、I/Oインターフェイスの設定を行う画面が表示される。
使用するI/Oインターフェースとして、
RS232デバイスとSRAM_256Kx32を選択する。
なお、選択する際には次のようにパラメーターを設定する
RS232デバイスの選択
SRAM_256Kx32の選択
I/0 Device: RS232
Peripheral: OPB UARTLITE
Baudrate(データの伝送速度): 9600(bit/s)
Data Bits(1個のデータにおけるビット数): 8
Parity(パリティチェックするかどうか): NONE
Use Interrupt
(割り込み処理を行うかどうか): disabled
I/0 Device: SRAM_256Kx32
Peripheral: OPB EMC
プラットホームの作成について
(ソフトウェアの設定ダイアログ)
次に進むと、ソフトウェアの設定ダイアログが表示される。
チェックを入れる
入出力のインターフェースとして
RS232を選択する
プラットホームの作成について
(環境設定の完了)
次に進むと、
今まで作成してきた
プラットホームの概要が表示される。
[Generate]ボタンを
クリックすることによって、
プラットホームとプロジェクトファイルが
生成される。
前準備で作成したファイルを
XPSプロジェクトに移動
前準備で作成したファイルをEDKディレクトリに移動させる。
目的:
XPSプロジェクトでも、前準備で生成されたHWを利用できるようにするため。
方法:
1. CoDeveloperを起動する。
2. 「 Export Generated Hardware options 」というコマンドを選択
3. 「 Export Generated Software options 」というコマンドを選択
HWのプラットホームへのインポート
次に、先程EDKに移した3DESハードウェアを
プラットホームにインポートする。
インポートするためには
1. 3DESハードウェアのIPコア(fsl_des)をプラットホームに追加する。
2. fsl_desをFSLバスに接続する。
最初に行うこと
1. XPSを起動する。
2. 先程作成したSystem.xpsを開く。
fsl_desのプラットホームへの追加
fsl_desの追加方法
1.
2.
「Project→Add/Edit Cores」という項目を選択して、ダイアログを開く。
右下のリストからfsl_desを選択し、Addボタンを押す。
使用可能な
全てのIPコア
処理2によって
追加された
処理2
FSLバスのパラメーターの設定
fsl_desをFSLバスに接続する前に、FSLバスのパラメーターの設定を行う。
パラメーターの設定方法
ここをクリック
これを選択
3を入力
使用するFSLバスのコネクション数を表す。
この場合は3個使用するということ。
クリック
fsl_desとFSLバスのコネクションの作成
コネクションの作成法
これを選択
ここをクリック
ここを3回クリックする。
3つのコネクションを作成するため。
fsl_v20_0に接続
fsl_v20_1に接続
fsl_v20_2に接続
3DESハードウェア用の二次クロックの作成
デュアルクロックシステムを実現するために、 3DESハードウェア用に
MicroBlazeプロセッサとは異なるクロック(二次クロック)を作成する。
作成法
ダイアログの[Ports]タグをクリックする。それ以降の処理は以下の通り。
co_clkポートのネット名を変更
(二次クロックの完成)
リストに追加される
clkとco_clkを追加
二次クロックに外部ポートを追加
ここで、作成した二次クロックに外部ポートを追加する。
方法
Make Externalを選択後、
ここに追加される
二次クロックを持つ
ポートを選択する
これをクリック
(外部ポートの追加)
FSLバスのコネクション用クロックの接続
先程作成したFSLバスのコネクション用のクロックを接続する。
方法
ダイアログの[Ports]タグをクリックする。それ以降の処理は以下の通り。
FSL_ Clkポートにはsys_clk_sを
SYS_Rstポートにはnet_gndを
選択する。
各コネクション
(fsl_v20_0,fsl_v20_1,fsl_v20_2)の
FSL_ ClkとSYS_Rstポートを追加
OPBタイマーコアの追加
OPBタイマーのIPコアを追加する必要がある。
このタイマーは、3DESアルゴリズムのSWとHWの処理速度を
計るために使用される。
追加法
1.
Add/EditダイアログのPeripheralsタブを選択して、opb_timerを追加
する(opb_timer_0が生成される)。
2.
Bus Connectionsタブを選択して、mb_opdバスにopb_timer_0を接続
する。
3.
Portsタブを選択し、 opb_timer_0 のOPB_Clkポートにsys_clk_sを選
択する
周辺機器のアドレスの指定
例:opb_timer
プラットホームの作成に使われた周辺機器のアドレスの指定を行う。
方法
ここをクリック
ここをクリックすることによって、
各周辺機器のアドレスが自動的に割り当てられる。
2個目のシステムクロック端子の追加
2個目のシステムクロック端子は
3DESハードウェアを動かすときに使うので、追加する必要がある。
追加法
1.
system.ucfファイル(プロジェクトファイルの下にある)を開く。
2.
「 Net sys_clk_2 LOC=A11; 」という記述を追加する。
なお、今回使用するボードにおいて、A11は24Mhzの周波数を意味する。
アプリケーションSWのインポート
テストベンチを表すソフトウェアのソースファイルを
プロジェクトにインポートする
方法
4.3を行うと、この画面が表示される。
ここで、co_init.cとdes_sw.cを選ぶ。
1.ここをクリック
2.ここにあるTestApp.cを削除。
3.ここで右クリックして「Add Files」を選択。
FPGAのビットマップイメージの生成
ボードにアプリケーションをダウンロードするために、
FPGAのビットマップイメージを生成する。
生成法
1.XPSで、「Tools→Generate Bitstream」を選択する。
この処理で、FPGAのビットマップイメージが出力されるが、
ソフトウェアのバイナリイメージは出力されない。
2.「Tools→ Build All User Applications」を選択する。
この処理によって、ソフトウェアのバイナリイメージが出力される。
3.「Tools→ Update Bitstream」を選択する。
この処理によって、処理2で出力されたソフトウェアのバイナリイメージが
処理1で出力されたFPGAのビットマップイメージに追加される。
アプリケーションのダウンロードと実行
1.Hyper Terminalウィンドウを開く。
この処理によって、ボード上のRS232の周辺機器に
接続されたシリアルポートへ作成したプラットホームを接続します。
2.ボードの電源をオンにして、「Tools→Download」を選択する。
処理2の後に、
このようなメッセージが
表示されれば、テストは成功。
暗号化の実行のために
消費した時間
Chapter 9.7
まとめ
この章では、ソフトウェア部分がストリームベースの通信を使用して、
ハードウェアのプロセスと直接通信する混合ハードウェア/ソフトウェア
アプリケーション(即ち、テストベンチ)の作成を行った。
このテストを用いて、アルゴリズムの迅速な検証や
様々な入力パターンの試行が可能である。
次章では、このテストを用いて、システムの性能の最適化について
議論する。