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

[] [] []


タイミング制約の書き方の前に、タイミング解析ツール(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の付け方もAlteraXilinxでは異なっていて紛らわしい。Alteraでは同じSpeed Grade(数字が小さいほど速い)でもIND(Tj=-40 to 100)COM(Tj=0 to 85)より遅延値は大きい。一方、Xilinxでは同じSpeed Grade(数字が大きいほど速い)ならばIND品でもCOM品でも遅延値は同じである。

◇◇

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

パス

項目

条件

FFFF

セットアップ

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コーナー)


[] [] []