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