改訂版EDA用語辞典とは・著者一覧

 STAは,static timing analysis(静的タイミング解析)の略で,論理回路のタイミングを検証する手法である。回路を動作させるための検証パターンが不要で,短時間で解析できるという特徴を持つ。基本的に同期設計回路がSTAの対象である。STAには,グラフ理論に基づいて回路を網羅的に検証するグラフ・ベース解析(graph-based analysis:GBA)と,特定のパスを指定して検証するパス・ベース解析(path-based analysis:PBA)の2つの解析方法がある。

 従来,サインオフ時のタイミング検証では,検証パターンを準備し,論理シミュレーションを実行していた。この手法は,非同期回路も検証できる半面,論理シミュレーションの実行時間が長い,最もタイミングが厳しいパスを活性化するパターンが必要になる,といった課題も持ち合わせていた。

 近年,LSIの大規模化に伴い,論理シミュレーションをベースにしたタイミング検証の課題が深刻になり,それに代わって,STAが台頭してきた。現在では,一部の非同期回路を除き,STAによるタイミングのサインオフ検証が一般的になった。

論理値を考慮せずに処理

 STAを利用する際には,STAが論理値を考慮せずにタイミング検証していることに注意が要る。例えば,図1の例を見てみる。フリップフロップZのデータ端子(d)への立ち上がり遅延を考える。この場合,4つのパスが存在し,各パス遅延は,
Path1=(A(clk)→i1(a)↑)+(i1(a)→i3(a)↑)+(i3(a)→Z(d)↑)
Path2=(B(clk)→i1(b)↑)+(i1(b)→i3(a)↑)+(i3(a)→Z(d)↑)
Path3= (C(clk)→i2(a)↑)+(i2(a)→i3(b)↑)+(i3(b)→Z(d)↑)
Path4= (D(clk)→i2(b)↑)+(i2(b)→i3(b)↑)+(i3(b)→Z(d)↑)
と表せる(↑:立ち上がり遅延)。

【図1 STAの動作原理】レジスタにいたる最小パス遅延,最大パス遅延を計算し,タイミングを検証する。 出典はルネサス テクノロジ。
【図1 STAの動作原理】レジスタにいたる最小パス遅延,最大パス遅延を計算し,タイミングを検証する。 出典はルネサス テクノロジ。 (画像のクリックで拡大)

 4つのパス遅延のうち,最小値と最大値に注目する。最小遅延がフリップフロップZのホールド時間よりも短い場合はホールド・エラーと判定する。一方,最大遅延がZのセットアップ時間とクロック周期の和よりも遅い場合は,セットアップ・エラーと判定する(なお,図1では,ホールド,セットアップいずれのタイミング違反も生じていない)。

 STAでは,このようなタイミングの判定を「スラック」という量で行う(図2)。タイミング違反が生じている場合,スラックは負値となる。タイミング違反が生じていない場合は,スラックは非負値となる。スラック量は,タイミングの過不足の絶対値を表している。スラックが-100psの場合は,100psのタイミング未達があることが示す。+200psの場合は,タイミングに200psの余裕があることを示している。

【図2 スラック】STAはスラック値を計算して,タイミングを判定する。出典はルネサス テクノロジ。
【図2 スラック】STAはスラック値を計算して,タイミングを判定する。出典はルネサス テクノロジ。 (画像のクリックで拡大)

 このような手順で処理しているため,検証パターンを準備することなく網羅的に検証ができる。ただし,論理値を考慮せずに検証するため,実際には活性化されないパスでも検証対象となってしまう。例えば,図1で,インスタンスi1のaが論理0に固定されていれば,Path2を活性化することはできない。しかし,STAでは検証対象になってしまう。

 あるいは論理的には動作させることが可能でも,実製品の論理動作では使われないパスが存在することもある。このようなパスをフォールス・パスと言う。ユーザーはフォールス・パスを明示的に指定して,検証対象外にする必要がある。

実行時間が短いグラフ・ベース解析

 次にSTAの二つの解析手法を説明する。まず,グラフ・ベース解析である。この手法は,短時間に網羅的な解析が実行できる特徴を持つ。

 一般に,回路中の総パス数は回路規模に対して指数関数的に増加する。このため,すべてのパスを列挙して,最大・最小値を探索すると,短時間で解析できない。そこでグラフ・ベース解析では,グラフ理論の技術を使って,解析時間の短縮を図る。

 具体的には,回路中のセルをノード,接続関係を枝としてグラフ化し,遅延情報から経路中の最大パス遅延,最小パス遅延となる,経路を効率的に探索している(図3)。例えば,最大パス遅延を探索する場合,インスタンスi1では2つのパスが合流するが,その際パス遅延の大きい方の値のみを次のインスタンスi3へ伝播させていく。この処理はインスタンスに対して1度だけでよいため,回路規模に比例する時間で実行できることになる。

【図3 グラフ・ベース解析の原理】STAではグラフ理論を用いて,最小パス遅延と最大パス遅延を効率的に計算する。ここでは最大遅延の計算原理を示している。出典はルネサス テクノロジ。
【図3 グラフ・ベース解析の原理】STAではグラフ理論を用いて,最小パス遅延と最大パス遅延を効率的に計算する。ここでは最大遅延の計算原理を示している。出典はルネサス テクノロジ。 (画像のクリックで拡大)

パス・ベース解析で悲観的を削減

 処理時間が短い半面,グラフ・ベース解析ではタイミングを悲観的に見てしまうことがある。例えば図3で,インスタンスi3/a→i3/yの遅延Delay(i3/a→i3/y)を計算するためには,入力スルー(波形のなまり具合)の情報T(i3/a)が必要である。I3/aに至る経路は複数存在する。この例では最大遅延を求めているので,遅延が大きくなる最大の入力スルー値を使う。計算された遅延値を用いて,D(i3/y)の値を選択する。

 その際,D(i1/a)+Delay(i3/a→i3/y)の計算を行うが,それぞれの最大値を加算しているため,D(i1/a)の値を決めているパスと,Delay(i3/a→i3/y)の遅延計算を行ったときに採用されたT(i3/a)の値を決めているパスが異なる場合が生じる。このようなケースでは,実際には起こりえない悲観的な値を最大パス遅延として伝播してしまうことになる。

 このような悲観的な解析を避けるため,パス・ベース解析が存在する。パス・ベース解析では,あらかじめ解析したいパスを指定して,そのパスのみを解析する。パス経路が指定されているので,前述のような悲観的な解析をすることがない。グラフ・ベース解析でタイミング・エラーと判定されたパスに対して,個別にパス・ベース解析を行い,真の判断を行うことが多い。