• 検索結果がありません。

第 6 章 自動構築した画像処理回路のハード ウェア化 ―超解像処理回路を例としてウェア化 ―超解像処理回路を例として

6.3 超解像処理回路のシミュレーション

表6.3: 3章の実験結果(GPU)とRTLシミュレーション結果の比較

PSNR GPU RTL sim.

Face Training 35.14 34.21

Test 34.40 33.57

Building Training 31.37 31.37

Test 30.22 30.22

Text Training 19.18 19.26

Test 20.35 20.39

SSIM GPU RTL sim.

Face Training 0.957 0.940

Test 0.948 0.925

Building Training 0.914 0.913

Test 0.904 0.903

Text Training 0.910 0.908

Test 0.925 0.920

表6.4:各回路の最高クロック周波数 Max clock frequency [MHz]

Face 60.51

Building 25.5

Text 63.07

6.3.3 タイミング解析

実際の回路では,クロック周波数が高すぎるとゲート遅延によって回路中のフリップフロップ間 などでデータの送受信にずれが生じ,回路が設計通りの動作をしない場合がある.これをタイミン グ違反という.したがってタイミング解析を行って設計通りに動作させることのできる最高クロッ ク周波数を見積もる必要がある.

タイミング解析では主にセットアップ解析とホールド解析を行う.これらの概念図を図6.3に示 す.t0におけるクロックエッジによって,送信側フリップフロップの出力(Data arrival)が変化し,

それを受けて受信側フリップフロップの出力(Data required)が変化する.この送信側フリップフ ロップの変化から受信側フリップフロップの変化の間の時間をセットアップ時間と呼ぶ.また,t0 におけるクロックエッジによる受信側フリップフロップの出力の変化から,t1におけるクロック エッジによる送信側フリップフロップの出力の変化の間の時間をホールド時間と呼ぶ.図6.3(b)に 示すようにセットアップ時間が長すぎると,受信側フリップフロップの出力が変化する前に,t1に おけるクロックエッジで送信側フリップフロップの出力が変化してしまう可能性がある.つまり,

データが伝わるのが遅すぎてタイミング違反が生じる可能性がある.セットアップ解析ではこの セットアップ時間を算出し,データがフリップフロップ間を伝わるのが遅すぎないかどうかを解析 する.一方,図6.3(c)に示すようにホールド時間が短すぎると,同様にt0におけるクロックエッジ によって受信側フリップフロップの出力が変化する前に,t1におけるクロックエッジによって送信 側フリップフロップの出力が変化してしまう可能性がある.つまり,データが伝わるのが速すぎて タイミング違反が生じる可能性がある.ホールド解析ではこのホールド時間を算出し,データがフ リップフロップ間を伝わるのが速すぎないかどうかを解析する.

3種類の回路についてタイミング解析を行った結果,算出された最高クロック周波数を表6.4に 示す.基本的に回路が複雑であるほど最高クロック周波数は低くなる.図3.7に示される建物の回 路には平均値関数のユニットがあり,除算器が含まれている.除算器は複雑でありゲート遅延が大 きいため,3つの回路の中でクロック周波数が最も低くなっている.

Launch clock Latch clock Data arrival Data required

Launch clock Latch clock Data arrival Data required

setup hold

CLK

Data CLK

Data Receiving FF Sending FF

t0 t1

(a)正常なセットアップ時間とホールド時間の例

Launch clock Latch clock Data arrival

Data required

setup

CLK

Data CLK

Data

Receiving FF Sending FF

t0 t1

(b)セットアップ時間が長すぎる例

Launch clock Latch clock Data arrival Data required

hold

CLK

Data CLK

Data Receiving FF Sending FF

t0 t1

(c)ホールド時間が短すぎる例 図6.3:セットアップ解析とホールド解析

表6.5:ゲートレベルシミュレーションの設定 Clock frequency [MHz] Device Temperature [C]

Face 55.6

Building 25.0 80

Text 62.5

表6.6:ゲートレベルシミュレーションの結果から見積もった処理時間 Running time [msec] Running time (GPU) [msec]

Face 14 48

Building 94 78

Text 87 160

6.3.4 ゲートレベルシミュレーション

設計した3つの回路のゲートレベルシミュレーションを行う.ゲートレベルシミュレーションに は非常に時間を要するため,3つの回路に対してそれぞれ画像1枚だけを用い,ハードウェア実装 した場合に正常に動作するかどうかを確認するだけの目的で行う.シミュレーションの設定を表 6.5に示す.

3種類の回路についてシミュレーションを行った結果,タイミング違反なく正常に動作すること を確認し,ハードウェア上で実現可能であることを示した.表6.5の周波数をもとに式(6.1)を用 いて処理時間を見積もった結果を表6.6に示す.参考として表3.7に示すGPUでの処理時間も表 6.6に示している.6.3.3に節で述べた理由によって建物の回路は処理時間が遅くなっているものの,

その他の回路は処理時間が短くなっていることがわかる.

今後,これらの回路をFPGAボード上に実装して実際に動作させ,検証を行う必要がある.