タイミング解析の基本概念

[] [] []


タイミング制約の書き方の前に、タイミング解析ツール(Static Timing Analysis(STA))がどうやって判定しているのかを知っておいた方がよい。

タイミング解析の対象となるパスは次図の4種類だが、このうち入出力ピンとFFの間のパスは、仮想的な外部FFを置いてFF間のパスとして解析する。

解析は、起点から終点まで実際にかかる時間(Arrival Time)と満たすべき時間(Required Time)を計算し、その差(Slack)が正ならばMET、負ならVIOLATEDと判定する。パスのうち、入力ピン出力ピンは伝搬時間のmin/maxを計算し、FF間はセットアップとホールドの2つの項目を計算する

項目

Arrival Time

Required Time

Slack

セットアップ

d1(max) + d2(max)

T + d3(max) - d4(setup)

Required - Arrival

ホールド

d1(min) + d2(min)

d3(min) + d4(hold)

Arrival - Required

ここで、遅延値がmin/maxになる条件をFast/Slowコーナとよび、プロセスばらつき、電源電圧、ジャンクション温度の3つの要因(PVTとよぶ)によって決まる。

条件

プロセス(P)

電圧(V)

温度(T) (1)

Slowコーナ

最速

min

max

Fastコーナ

最遅

max

min

(1) 65nm以下のプロセスでは高温でなく低温の方がSlowコーナになることがある。

これは温度が変わると、FETのキャリア移動度としきい値電圧の2つのパラメータが

速度について逆方向に変化するので、どちらが支配的かに依存するためである。

QuartusVivadoではFast/Slowコーナの取り方に少し違いがある。Vivadoでは選択したデバイス型名のSpeed Gradeにおける最速/最遅プロセスとしているが、QuartusではSlowコーナはVivadoと同じだがFastコーナは最速Speed Gradeにおける最速プロセスとしている。また、温度について、QuartusではSlowコーナは高温と低温の2つの場合を計算している(どちらが遅くなるか不確定)が、Vivadoでは1つの場合しか計算されない(高温か低温かは特に言っていない)

ちなみに、Speed Gradeの付け方もIntelXilinxでは異なっていて紛らわしい。Intelでは同じSpeed Grade(数字が小さいほど速い)でもIND(Tj=-40 to 100)COM(Tj=0 to 85)より遅延値は大きい。一方、Xilinxでは同じSpeed Grade(数字が大きいほど速い)ならばIND品でもCOM品でも遅延値は同じである。

◇◇

パスに対する解析の項目と条件をまとめると次表のようになる

パス

項目

条件

FF→FF

セットアップ

Slowコーナ

ホールド

Fastコーナ

入力ピン→FF

セットアップ(tSU)

tSU>0のときSlowコーナ

tSU<0のときFastコーナ

ホールド(tH)

tH>0のときFastコーナ

tH<0のときSlowコーナ

FF→出力ピン

クロックツーアウトプット(tCO),max

Slowコーナ

クロックツーアウトプット(tCO),min

Fastコーナ

入力ピン出力ピン

伝搬遅延(tPD),max

Slowコーナ

伝搬遅延(tPD),min

Fastコーナ

この表において、入力ピン→FFのパスで、tSU,Hの正負によって条件が変わるのは次の理由による。

FFのセットアップ時間は正であるが、FPGAの入力ピンで見たセットアップ時間(tSU)

 tSU (FFsetup) (データ遅延) (クロック遅延)

なので、データ遅延とクロック遅延との大小関係によって正にも負にもなりうる。

このとき、入力ピンへデータが到達するRequired Timeが最も早くなる条件を考えると

 tSU>0の場合、|tSU|maxになるとき(Slowコーナ)

 tSU<0の場合、|tSU|minになるとき(Fastコーナ)

だから、tSUの正負によって、Slow/Fastコーナどちらの条件で計算するかが変わるのである。

同様に、FPGAの入力ピンで見たホールド時間(tH)

 tH (FFhold) (データ遅延) (クロック遅延)

であり、入力ピンへデータが到達するRequired Timeが最も遅くなる条件は次のようになる。

 tH>0の場合、|tH|minになるとき(Fastコーナ)

 tH<0の場合、|tH|maxになるとき(Slowコーナ)


[] [] []