Chapter 5. Describing a FIR Filter 5.3後半~5.6

Slides:



Advertisements
Similar presentations
太原研究室 M1 割田臣一.  既に述べたように、イメージフィルタは一般に、 動作しているイメージデータの画面に作用する。 ◦ この例では、 3×3 ウィンドウ上でフィルタを作用させる。 ◦ 処理においては 3 つの新しい値と、先程のピクセルの計 算で用いた 6 つの同じ値を使う。  カラム(
Advertisements

OWL-Sを用いたWebアプリケーションの検査と生成
Windows HPC Server を使ってみる
コンピュータプラクティス I 再現性 水野嘉明
Chapter11-4(前半) 加藤健.
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
京都大学情報学研究科 通信情報システム専攻 湯淺研究室 M2 平石 拓
プログラミング基礎I(再) 山元進.
Capter9 Creating an Embedded Test Bench ( )
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
計算機アーキテクチャ特論Chapter.6.6~6.9
JavaによるCAI学習ソフトウェアの開発
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
情報科学1(G1) 2016年度.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
第4章 Impulse C の導入 安達ほのか シグナルやストリーム 、メモリーは型だからそのまま訳す.
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
第7回 条件による繰り返し.
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
プログラミング 2 ファイル処理.
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
図書館職員のための アプリケーション開発講習会
C言語でスレッド (Pthread) 2007年1月11日 海谷 治彦.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第2回 ファイル処理 情報・知能工学系 山本一公
オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
実行時情報に基づく OSカーネルのコンフィグ最小化
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力
第14章 モデルの結合 修士2年 山川佳洋.
第7回 条件による繰り返し.
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
社会シミュレーションのための モデル作成環境
Ibaraki Univ. Dept of Electrical & Electronic Eng.
ゲーム開発モデルの基礎.
デジタル画像とC言語.
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
Talkプログラムのヒント 1 CS-B3 ネットワークプログラミング  &情報科学科実験I.
情報処理 タイマの基礎 R8C タイマの基礎.
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
第4回 ファイル入出力方法.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
C言語 はじめに 2016年 吉田研究室.
JAVAバイトコードにおける データ依存解析手法の提案と実装
統計ソフトウエアRの基礎.
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
マイグレーションを支援する分散集合オブジェクト
プログラミング演習I 2003年7月2日(第11回) 木村巌.
5.チューリングマシンと計算.
保守請負時を対象とした 労力見積のためのメトリクスの提案
ニューラルテスト理論分析ソフト「neutet」の特徴と使い方
2008/7/16(情報コース)2008/7/22(通信コース) 住井
プログラム分散化のための アスペクト指向言語
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
モジュール分割.
コンパイラ 2012年10月11日
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
プログラミング演習I 2003年6月11日(第9回) 木村巌.
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
情報処理Ⅱ 2005年11月25日(金).
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

Chapter 5. Describing a FIR Filter 5.3後半~5.6 6311682 渡辺 隆弘

Use the full power of C and C++ for test benches テストベンチ設計におけるANSI Cの利点 C++とMinGW,MicrosoftMFC,ATL,SystemCを含む多くのライブラリを用いることが可能 大きく、複雑なテストベンチを作ることが出来る ※ ANSI C:ANSI(米国規格協会)によって1989年に標準化されたC言語の規格 テストベンチ:ある設計が正確・妥当であるかどうかを検証するための仮想的環境 ANSI Cを使ったテストベンチ設計において留意すること co_initialize(初期化)機能の保持 設定サブルーチン、ハードウェアプロセス、ソフトウェアプロセスの存在 ANCI Cにおける構文制限 (※impulse Cハードウェアコンパイラによって分析するべき部分の識別のため)

The producer and consumer processes 前章で扱った例(HelloFPGA)との相違点 テストデータをファイルから読込み,結果をファイルに出力する ※データ入力:coef.dat waveform.dat データ出力:results.dat 入出力を伴うファイル処理によって,予め用意された既知セット(他の出力結果)と 出力された値での比較を直接行うことが可能. ※今回の例では簡単化の為,1セットのファイルから入力値を読み込み,またフィルタリング結果   を出力ファイルに書き込む最小限のテストベンチについて扱う. (waveform_filteredと定義) (waveform_rawと定義) 図:FIR filter test bench block diagram

The producer Process 目標 FIRフィルタ係数と被フィルタリングデータを外部ファイルから読み込み, ハードウェアプロセスに入力波形として渡す. FIRフィルタリングで用いる計算式 入力データf[m],出力データg[m],フィルタ係数h[k] 入力ファイル宣言にはサンプル係数と入力波形の値を含む これは他の試験ソフトや特定の機器によって抽出されたデータでもよく, このファイル値は10進数形式で容易にフォーマットが可能 cosim_logwindow_create…ログウィンドウの生成 示された名前とローカルポイント(cosim_logwindow型)に関連付け付けされる

C言語のfopen関数を呼び,続く反復ループによってcoef.datファイルから係数値を読む   これらの値はco_stream_writeを用いてフィルタの入力ストリーム(生産プロセス中では waveform_rawと定義)に書かれる cosim_logwindow_fwrite…既存ログウィンドウへの書き込み   書き込む内容はフォーマット済みのテキストメッセージであり,fprint関数で利用可能な形 式と同様 フィルタ係数はファイルから読まれ,ストリームに渡される   この段階で入力ファイルは閉じられるが,ストリームは次ステップの為に開かれたままと なる 入力データが残っている限り,Producerループを繰り返し,特定フォーマットで, フィルタへ波形データをwaveform_rawデータストリーム経由で出力し続ける

The producer Process(流れ図) :フィルタ係数関連 :被フィルタリング値関連 “Producer”ログウィンドウ の生成(log) ログウィンドウにcoefValueの 内容を書き込み waveform_rawストリームに rawValueの内容を書き込み coef.datをopen 結果はcoefFile coefFileをclose (coef.dat) ログウィンドウにrawValueの 内容を書き込み waveform.rawストリームをopen waveform.datをopen 結果はinFile ログウィンドウにメッセージ 書き込み(“Finished~”) ログウィンドウにメッセージ 書き込み(“Sending~”) waveform.rawストリームをopen waveform_rawストリームを close coefValueにcoefFileの内容を読み込み ログウィンドウにメッセージ 書き込み(“Sending~”) inFileをclose (waveform.dat) waveform_rawストリームにcoefValueの内容を書き込み rawValueにinFileの 内容を読み込み

The consumer Process フィルタリング結果を受け取り,これを出力ファイルとログウィンドウに書き込む 目標   FIRフィルタからの出力であるwaveform_filteredストリーム上の   フィルタリング結果を受け取り,これを出力ファイルとログウィンドウに書き込む 出力ファイル(results.dat)宣言及びcosim_logwindow_create関数の呼び出し Impulse Cの関数co_stream_openはメイン処理ループの後に呼び出す メインループではwaveform_filteredストリームから値を繰り返し読み, これをresults.dat及びログウィンドウの両方に書き込む (ログウィンドウへの書き込みは前述のcosim_logwindow_fwriteを使用) FIRフィルタリング終了時には,Consumer機能では出力ファイルを閉じること, ログウィンドウ上における最終的なカウントを書き込むことによってクリーンアップ を行う このアプリケーションの機能によってコンフィグレーション関数(config_fir)と co_initialize関数を結合させ,ソフトウェア(または、デスクトップ)シミュレーション のためのコンパイル準備済みCプログラムを生成する

The consumer Process(流れ図) の生成(log) ログウィンドウにwaveformValue の内容を書き込み result.datをopen 結果はoutFile ログウィンドウにwaveformCountを書き込み Waveform_filtered ストリームをopen waveform_filteredストリーム をclose ログウィンドウにメッセージ 書き込み(“Consumer~”) outFileをclose (result.dat) waveformValueにwaveform_ filteredの内容を読み込み outFileにwaveformValueの内容を書き込み

main関数でハードウェアの初期化(Initialize),アーキテクチャの生成を行い, co_executeによってソフトウェアのプロセス(Producer/Consumer)とハードウェア プロセス(FIR filter)が並列に処理され,シミュレーションが実行される. ※その他の関数(4章にて既出) co_stream_create(名前,データサイズ,型) 役割:ストリームの生成 co_process_create(名前, co_function 関数, 引数の数, 引数1, 引数2, ...); 役割:関数をプロセスとして生成 co_process_config(プロセス名, アトリビュート(co_loc固定), 定数("PE0"固定)); 役割:ハードウェア化したいプロセスを指定 co_architecture_create(文字列, generic, コンフィグレーション関数名, 引数); アーキテクチャを生成

5.4 DESKTOP SIMULATION デスクトップシミュレーションとは… 完成したImpulse Cアプリケーションをデバッキングする方法のことを指し ハードウェア,ソフトウェア両方の並列プロセスのオペレーティングのことを表す. デスクトップシミュレーションは標準的なC言語開発環境でコンパイルされる. デスクトップシミュレーションの利点 多くのサードパーティライブラリをC言語やC++言語に対して利用することが可能 包括的なテストフィクスチャやテストベンチを構成可能 実際のハードウェアでコンパイルする前にアプリケーションの正しい機能の検証が可能 フィクスチャ(fixtures)とは…  テストコードがモデルやデータに依存する場合、テストで利用する一時的なサンプルデータ  をデータテーブルに読み込むために利用するもの.

デスクトップシミュレーションの実装 アプリケーション中の様々な並列プロセス(FIRフィルタアプリケ―ションの場合では 3つ)がスレッドを使って実装される 上記の実装によってアプリケーションの並列動作をエミュレートが可能である

5.5 APPLICATION MONITORING cosim_によるアプリケーション監視機能 アプリケーションの個々に対するメカニズムで,目的に合わせて個々に計測可能 cosim_による計測機能はすべてのデスクトップコンパイラに互換性がある Impule Cのアプリケーションモニターとの通信が必要 なぜ,モニタリング機能が必要なのか? 標準的なCデバッガではアプリケーション内の処理の流れや,特定のプロセス内の 変数の値を調べるのが可能であるが、アプリケーションモニタリングでは アプリケーションソースコード内で直接デバッグ関連の道具を追加出来るという点で便利 上記から「アプリケーションやその構成アルゴリズムがどの様に最適化されているか」 について理解を深めることが出来るとも考えられる. cosim = Co_simulation(ハード/ソフト協調シミュレーション) ※本来ハードウェア,ソフトウェアの両面から行っていた動作検証を同時に行う.

Monitoring with Log Windows 1.アプリケーションの構成機能内からcosim_logwindow_init機能を呼び出す 2.動作中の機能プロセスから、cosim_logwindow型の変数を宣言する 3.cosim_logwindow_createを用いてログウィンドウの名前を定義し,Step.2で宣言 した変数にcosim_logwindow_createの返り値を割り当てる 4.cosim_logwindow_write、cosim_logwindow_fwriteを用いて,ログウィンドウに 任意の時間を書きこむ 5.デスクトップシミュレーション環境でアプリケーション(独立型のアプリケーション であるかデバッガのコントロール下にあるもの)を実行する前に, アプリケーションモニタープログラムをスタートする

5.6SUMMARY 5章の内容 次章以降の内容 一般的なFIRフィルタを定義するのにImpulse Cがどの様に活用出来るか? デスクトップシミュレーションやアプリケーションモニタリングが アプリケーションデバッグにどの様に用いられ,有効的であるか? 次章以降の内容 FIRフィルタの例やハードウェア生成ツールについて コンパイラツールの流れについて 生成されたハードウェアについて ハードウェアシミュレータを使った検証について パフォーマンス面である種の到達点になり得るアルゴリズムに着眼点をおいた FIRフィルタの異なる実装について

ご清聴ありがとうございました