条件を指定して絞り込む

現在1128件がヒットしています。check

記事カテゴリ
製品カテゴリ
メーカー

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

こんにちは、マス男です。

今週から新企画 “タイミング解析シリーズ全6回” を連載していきます!!!

新人研修で最も難しかったのが、タイミング解析の講義でした。本コラムでは、タイミング解析の講義資料やノートをまとめ、つまずいた点をご紹介したいと思います。

Fmax ( 最大動作周波数 )

タイミング解析では、あるクロック周波数において、FPGA が正確に動作するかを検証します。タイミング解析の指標となるのが Fmax 値 です。Fmax とは、FPGA が動作する最大周波数であり、式1 で定義されています。データが1クロック・サイクルの間に送信レジスタから受信レジスタに到達可能かを計算しているんですね!

図1. Fmax の定義

 

 

TdataDelay : データ遅延時間。 回路デザインに依存する。

Tclk2– Tclk1: Clock Skew。 配線に依存する。

μTsu : セットアップ・タイム。 レジスタの入力クロック・エッジに対してデータが予め確定・保持している必要がある時間。 デバイス固有値。

μTco : Clock-to-output。 レジスタの入力クロック・エッジに対してデータ出力されるまでの時間。 デバイス固有値。

 

式1 より、Fmax は “回路デザイン” と “Clock Skew” に依存していることが分かります。ここで、アルテラ FPGA デバイスには、Skew が最小になるように調整された専用配線領域( Global Clock , Regional Clock )が内蔵されています。クロック信号を Global Clock に配線したとき Clock Skew = 0 ( Tclk2 = Tclk1 ) となるので、式1 に値をあてはめると 式2 になります。

式2より、Fmax は “回路デザイン” に依存することになります。ユーザは Fmax が期待値になるよう、FPGA 回路設計することが求められます。

セットアップ・タイム と ホールド・タイム

正しくデータを取得するためには、クロック・エッジの前後でデータが安定している必要があります( 図2 )。

 

セットアップ・タイム( Tsu  ) :クロック・エッジ前に DATA を確定しなければならない時間。

ホールド・タイム( Th  ) : クロック・エッジ後に DATA を保持しなければならない時間。

図2. セットアップ・タイム と ホールド・タイム

 

 

タイミング解析では、セットアップ・タイムとホールド・タイムを満たしているか全レジスタ間のパスを解析しています。データとクロック・エッジのタイミングが合わないとき、セットアップ・タイム / ホールド・タイム違反となります。





突然ですが、ここでクイズです!!図3 の左端のクロック・エッジを基準としたとき、 dataA と dataB はどちらが時間的に早い/遅いでしょうか??

図3. DATA の流れ

 

 

答えは、dataA => 遅い dataB => 早い です。

 



マス男は「データが流れる方向に dataB よりも dataA の位置が前だから、時間的にも dataA の方が早く進んでいる」と錯覚しました(←つまずいた点)。 しかし、論理回路の動きを表現する場合、時間軸は左から右に表されます。つまり、クロック・エッジに対して

左側が時間軸としては早く

右側が時間軸としては遅く

 

なっています。

クロック・エッジに対してデータの有効範囲を見ることがタイミング解析を理解する上でとても重要なポイントだと気づきました!!結論としては、データ到達がクロック・エッジに対して遅いときセットアップ・タイム違反で、データ到達が早いときホールド・タイム違反となります。( 図4 )

図4. セットアップ・タイム違反 と ホールド・タイム違反の様子

 

 

まとめ

  • Fmax のパラメータは “回路デザイン” に大きく影響を受ける( 式2 )。

  • クロック・エッジに対してデータ到達が遅いときセットアップ・タイム違反になる。

  • クロック・エッジに対してデータ到達が早いときホールド・タイム違反になる。

次回はタイミング解析では必ず必要な SDC ファイルついてご紹介します!