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

“タイミング解析シリーズ” の第4回です。

新人研修で最も難しかったのが、タイミング解析の講義でした。本コラムでは、タイミング解析の講義資料やノートをまとめ、つまずいた点をご紹介したいと思います。
TimeQuest Timing Analyzer の解析結果は“スラック値”で表現されます。この意味についてご紹介いたします!

スラック値がマイナスだとタイミング・エラー

図1は、タイミング解析の結果です。TimeQuest Timing Analyzer では、スラック値の正負によって、タイミング制約を満たすかどうかを判断します。

図1.タイミング解析レポートの一部

 

マス男の頭の中は、 “スラック値?がマイナスのときタイミング・エラー????” でした。スラック値を理解することがとても難しかったです。下記4つのパラメータを理解することで、スラック値を理解できました。

 

・データ到着時間 ( Data Arrival )

・クロック到着時間 ( Clock Arrival )

・セットアップのデータ要求時間 ( Setup Data Required )

・ホールドのデータ要求時間 ( Hold Data Required )

スラック値に関する4つのパラメータについて

スラック値を理解する為に、4つのパラメータをおさえました。

データ到着時間( Data Arrival )

受信レジスタの D 入力にデータが到達するまでの時間。

 

図2より、(式1)を導くことができます。

図2.データ到着時間の概略図

クロック到着時間 ( Clock Arrival )

受信側レジスタのクロック入力にクロックが到着する時間。

 

図3より、(式2)を導くことができます。

図3.クロック到着時間の概略図

セットアップのデータ要求時間 ( Setup Data Required )

受信側レジスタが正しくデータを受け取るためには、この時間内に信号が到着する必要があります。

 

図4より、(式3)を導くことができます。

図4.セットアップデータ要求時間の概略図

ホールドのデータ要求時間 ( Hold Data Required )

受信側レジスタが正しくデータを受け取るためには、この時間以降に信号が到着する必要があります。これより早いと、前サイクルのデータに干渉します。

 

図5より、(式4)を導くことができます。

図5.セットアップデータ要求時間の概略図

スラック値の定義式

動作周波数( Fmax )の定義式と上記4つのパラメータからスラック値を理解することができました。動作周波数( Fmax )の定義式については 『タイミング解析シリーズ1 タイミング解析の概念』 を参照下さい。

◆セットアップ・スラック

セットアップ・スラックとはセットアップのデータ要求時間が満たされるタイミング・マージン。ラッチを満たすためにデータがその時間内に到着することを保証します。

 

セットアップ・スラック = セットアップのデータ要求時間 - データ到着時間

ここで、(式1)(式4)を代入

= (クロック到着時間 - Tsu )-( 送信エッジ + TCLK1 + μTco + TdataDelay )

ここで、(式2)を代入

=(受信エッジ + TCLK2 - Tsu )-( 送信エッジ + TCLK1 + μTco + TdataDelay )

= (受信エッジ - 送信エッジ) + TdataDelay +(TCLK2-TCLK1)- Tsu - μTco

ここで、(式5)を代入

= 1クロック・サイクル - 1/Fmax 

※1クロック・サイクルは希望の動作周波数。1/Fmax は動作周波数の計算結果。



◆ホールド・スラック

ホールド・スラックとはホールドのデータ要求時間が満たされるタイミング・マージン。ラッチデータが別の立ち上がりエッジからのデータによって干渉されないことを保証します。また、データの突き抜けを防ぐことにもなります。

 

ホールド・スラック = データ到着時間 - ホールドのデータ要求時間

= 1クロック・サイクル - 1/Fmax

※1クロック・サイクルは希望の動作周波数。1/Fmax は動作周波数の計算結果。

 

したがって、

(式6)より、スラック値とは“実現したい動作周波数”と“実際のユーザー・デザインでの実現性を計算した動作周波数”の差分となっていました。

つまり、スラック値とは“理想”と“現実”の動作周波数のギャップなんですね~。

 

マス男も日々、理想と現実のギャップに直面し、奮闘しております。理想に一歩でも近づけるよう、日々精進しております!!

 

 

まとめ

  • スラック値 > 0 のとき タイミングを満たす

  • スラック値 < 0 のとき タイミング・エラー