08.01.2013 Views

Report Template

Report Template

Report Template

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

Lattice Diamond<br />

タイミング制約および検証の<br />

注意事項<br />

1<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

目次<br />

1 このドキュメントの概要 ······························ 3<br />

2 クロックのタイミング制約と解析 ·················· 4<br />

2.1 クロック構成とツールの振る舞い ........................................ 4<br />

2.1.1 制約を設定したクロックドメインでの解析内容............................ 4<br />

2.1.2 クロックドメインをまたぐパスの解析について............................ 4<br />

2.1.3 派生クロックへのタイミング制約の伝播 ...................................... 6<br />

2.2 クロックのタイミング解析における注意事項 ...................... 7<br />

2.2.1 反転クロックを使用した場合の注意事項 ...................................... 7<br />

2.2.2 PLL の位相シフト出力を使用した場合.......................................... 8<br />

2.2.3 非同期リセットの解析 ................................................................ 10<br />

2.2.4 BLOCK INTERCLOCKDOMAIN PATHS 制約の振る舞い ............ 10<br />

2.3 各クロックに対する制約設定の確認 .................................. 10<br />

3 入力/出力信号のタイミング制約と解析 ······· 12<br />

3.1 出力負荷設定 ..................................................................... 12<br />

4 Lattice Diamond のアップデートに伴う主な変更点<br />

13<br />

5 改訂履歴 ················································· 14<br />

2<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

1 このドキュメントの概要<br />

このドキュメントでは、Lattice Diamond でタイミング制約の設定および検証を行う際に、注意する<br />

点やよく質問される内容について説明します。<br />

3<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

2 クロックのタイミング制約と解析<br />

2.1 クロック構成とツールの振る舞い<br />

この項では、制約設定前に知っておくべきツールの振る舞いについて説明します。<br />

2.1.1 制約を設定したクロックドメインでの解析内容<br />

クロックにタイミング制約を与えた場合、該当するクロックドメインでは以下の内容を満たすように<br />

配置配線が行われます。また、タイミング解析でも同様に解析が可能になります。<br />

・最大動作速度(周波数または周期)<br />

・レジスタ間の hold-time<br />

・Set/Reset の recovery-time ※<br />

※ : オプション設定による解析範囲が変わります。詳細は 2.2.3 項参照。<br />

レジスタ間で使用しているクロックエッジが異なるパスでは、基本的にはクロック周期の 1/2 が制約<br />

として適用されます。ただし、[PERIOD]制約で Duty 比を設定していればその値が適用されます。<br />

2.1.2 クロックドメインをまたぐパスの解析について<br />

始点/終点レジスタのクロック信号名が異なるパスのタイミング解析では、クロック構成により解析<br />

可否が異なります。<br />

a) パスの始点/終点のクロックソースが異なる場合<br />

それぞれのクロックソース(元のクロック入力ピン)が異なる場合は、デフォルトでは解析が行われ<br />

ません。<br />

--------------------------------------------------------------------------------------------------------------------------------<br />

・このようなパスに関しては入力ポートでのスキューを定義することで解析させることも可能で<br />

すが、そのような解析が必要となる設計は推奨しません。<br />

--------------------------------------------------------------------------------------------------------------------------------<br />

図 2-1 クロックソースが異なるクロックドメイン間パス<br />

図 2-1 を例にとると、[CLK0]および[CLK1]に Frequency または Period 制約が設定されていても、<br />

更には MULTICYCLE 制約や MAXDELAY 制約を設定してもパス②と④は解析されません。<br />

4<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

b) パスの始点/終点のクロックソースが同じ場合<br />

クロックドメインをまたぐレジスタ間で始点と終点のクロックの信号名が異なる場合でも、それぞ<br />

れの元のクロック入力ピンが同じであれば以下の解析が可能です。(例 : 同一 PLL の出力間、分周<br />

クロックや Gated クロックとオリジナルのクロック間等)。<br />

・最大動作速度(周波数または周期) ※1<br />

・レジスタ間の hold-time ※1<br />

・Set/Reset の recovery-time ※1 ※2<br />

※1 : 適切な解析を行うためには周波数/周期制約だけでなく、MULTICYCLE 制約等が必要に<br />

なる場合もあります。詳細は 2.2 項を参照。<br />

※2 : オプション設定による解析範囲が変わります。詳細は 2.2.3 項参照。<br />

クロックドメインをまたぐパスのタイミング解析には、表 2-1 のルールに従った制約が適用されま<br />

す。分周クロックや Gated クロック、PLL をカスケード接続した場合等で、クロックツリーを辿っ<br />

て共通のクロックソースにたどり着くクロック間であれば解析対象となります。<br />

パス<br />

(図 2-2)<br />

図 2-2 異なるクロックドメイン間のパス<br />

表 2-1 異なるクロックドメイン間パスに適用される制約<br />

適用される制約<br />

パス① CLK0 周期<br />

CLK0 周期 > CLK1 周期 CLK0 周期 = CLK1 周期 CLK0 周期 < CLK1 周期<br />

パス② CLK1 周期 CLK1 周期 CLK1 周期 % CLK0 周期<br />

パス③ CLK1 周期<br />

パス④ CLK0 周期 % CLK1 周期 CLK0 周期 CLK0 周期<br />

※ ここでは、%は商が整数の場合の剰余(小数も可)を求める演算子とします。<br />

パスの終点/始点レジスタのクロックが異なり、終点のレジスタのクロック周期の方が小さい場合<br />

は、その周期が制約として適用されます。終点のレジスタのクロック周期の方が大きい場合は、図<br />

2-3 の様に始点/終点の近いクロックエッジ間の時間を計算し、それを制約として適用します。<br />

5<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

図 2-3 クロックドメインをまたぐパスの制約適用例(CLK0 周期 < CLK1 周期)<br />

解析の際には両クロックのスキュー(PLL の位相シフトも含む)も計算され、それを考慮した解析が<br />

行われます。また、始点/終点レジスタで使用しているクロックエッジが異なる場合は、エッジお<br />

よび Duty 比を考慮した解析が行われます(図 2-4)。<br />

図 2-4 クロックドメインをまたぐパスの制約適用例(CLK1 のみ立ち下りエッジ)<br />

なお、各パスの解析結果は、終点側クロックの解析レポートに出力されます。<br />

2.1.3 派生クロックへのタイミング制約の伝播<br />

クロックのタイミング制約は、制約を設定されたクロックから生成された分周クロックや Gated ク<br />

ロックに伝播します。<br />

例えば、図 2-5 の様に外部からの入力クロックを分周したり Gating したりしている場合、入力ポー<br />

ト[CLK]に制約を設定すれば、そこから生成される分周クロック[div_clk]およびその Gated クロック<br />

[gate_clk]にも制約が伝播し、[CLK]と同じ制約が適用されます。<br />

図 2-5 制約が伝播するクロックツリーの例<br />

6<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

ただし、各クロックに個別に制約が設定されている場合は、伝播した制約よりも明示的な個別の制約<br />

が優先されます。図 2-5 を例に挙げると、[CLK]と[div_clk]に制約が設定されている場合、[CLK]の<br />

制約は[div_clk]以降には伝播せず、[gate_clk]には[div_clk]の制約が伝播し同じ制約が適用されます。<br />

2.2 クロックのタイミング解析における注意事項<br />

2.1.2 項の説明の通り、各クロックに周期または周波数制約を設定すれば、可能な限りクロックドメ<br />

インをまたぐパスでも自動的に適当な制約が設定されます。<br />

しかし、以下のようなクロックの構成の場合は、周期/周波数制約だけでは期待通りの制約が適用さ<br />

れないこともあるので注意してください。<br />

2.2.1 反転クロックを使用した場合の注意事項<br />

Lattice Diamond のタイミング解析では、各 SLICE 内で選択されているクロックの極性設定をみて<br />

適用される制約を計算します。<br />

HDL ソースに反転クロックを記述した場合、ほとんどの場合においてエッジの反転はインプリした<br />

際にロジック SLICE 内の反転機能で実現されます。このため反転/非反転クロックエッジの混在し<br />

ているパスでも正しくタイミング解析が行われます。<br />

-----------------------------------------------------------------------------------------------------------------------------------<br />

・このようなインプリが行われた場合、エッジを問わずクロックネット名が共通になります(立下り<br />

エッジ用のクロックネットが生成されない)。<br />

-----------------------------------------------------------------------------------------------------------------------------------<br />

図 2-6 エッジの異なるクロック間のパス(SLICE の反転機能を使用)<br />

図 2-6 を例にとると、RegC および RegD のクロック反転は SLICE 内のクロック反転機能を使用し<br />

て実現されるため、使用しているエッジが異なるパス(②④)では両エッジ間のタイミングが計算され<br />

制約として適用されます。<br />

しかし、Gated クロックで反転論理を実現した場合や、回路図入力でインバータを使用してクロック<br />

の反転論理を実現した場合は、インプリの際に SLICE 内のロジック反転機能が使用されず図 2-7 の<br />

ように LUT を使用してクロックの反転が実現されます。<br />

7<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

図 2-7 エッジの異なるレジスタ間のパス(LUT で反転)<br />

このような場合、Lattice Diamond のタイミング解析では Gating の内容(LUT 内の論理)を考慮せず<br />

に解析を行うので、期待通りの Duty 比とクロックエッジでの解析が行われません。<br />

また、反転クロックで分周クロックを生成した場合(図 2-8)においても、分周回路でのエッジを考慮<br />

しないタイミング解析が行われるため、期待している制約が適用されません。<br />

図 2-8 反転クロックで分周クロックを生成した場合<br />

これらのパスの様に、クロック反転論理の実現がパスの始点・終点レジスタ(SLICE)内で行われない<br />

場合は、別途[MULTICYCLE]制約等で適当な制約を設定する必要があります。<br />

2.2.2 PLL の位相シフト出力を使用した場合<br />

PLL を使用した場合、PLL の各出力には自動的にモジュール生成時に指定した周波数制約が設定さ<br />

れます。<br />

ユーザは他のクロックと同様の方法で、各 PLL 出力に対して生成時の設定とは違う制約を設定する<br />

ことが出来ますが、その場合には配置配線およびタイミング解析実行時に以下のようなメッセージが<br />

出力されます。<br />

-----------------------------------------------------------------------------------------------------------------------------------<br />

WARNING - par: PLL: 「PLL インスタンス名」 [出力ポート] frequency [指定し直した制約]<br />

doesn't match divider settings<br />

-----------------------------------------------------------------------------------------------------------------------------------<br />

このメッセージが出力されても、処理や解析は新たに設定した制約が有効になります。<br />

8<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

タイミング解析では、PLL の各出力クロック間には表 2-1 のルールに従って制約が適用され、位相<br />

シフトクロックを使用している場合の位相シフト分はスキューとして処理されます。この際、位相シ<br />

フトしているクロックと位相シフトしていないクロック間のパスの解析内容が、ユーザの意図してい<br />

ないものになることがあります。<br />

図 2-9 PLL の各出力間のパス<br />

図 2-9 のような構成の回路で CLKOS を 90°シフト(遅延)させて使用した場合、デフォルト設定で<br />

はパス②に許容される遅延が図 2-10Ⓐのように [クロック 1cycle + 位相シフト分] となってしま<br />

います。<br />

Ⓑ<br />

Ⓐ<br />

図 2-10 PLL の出力間パスの適用される制約(1)<br />

このようにパスの始点のクロックが[CLKOP]、終点のクロックが[CLKOS]となるパスでは、位相<br />

シフト量にかかわらず必ずこのルールが適用されます。このクロック間の制約を図 2-10Ⓑのよう<br />

に位相シフト分だけにしたい場合は、以下の様に[MULTICYCLE]制約を設定してください。<br />

MULTICYCLE FROM CLKNET "CLKOP 出力名" TO CLKNET "CLKOS 出力名" 0 X ;<br />

なお、図 2-9④のパスのように始点のクロックが[CLKOS]、終点のクロックが[CLKOP]となるパ<br />

スでは、図 2-11 のように [クロック 1cycle - 位相シフト分] が制約として設定されます。<br />

図 2-11 PLL の出力間パスの適用される制約(2)<br />

9<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

2.2.3 非同期リセットの解析<br />

クロックのタイミング制約が設定されたパスでは、非同期リセット(およびセット)のパスも解析され<br />

ます。解析対象となるのは、FPGA 内部のレジスタで生成された非同期リセットです。<br />

図 2-12 リセット解析パス<br />

ツールのデフォルト設定では、図 2-12(a)のようにリセットを生成したレジスタ reg0 から、reg1 の<br />

レジスタのリセット入力までが解析の対象となります。更に reg0 出力から reg1 の Q 出力を介して<br />

reg2 の D 入力までのパスを解析する必要がある場合は、制約ファイル内の[BLOCK RESETPATHS]<br />

制約記述を削除してください。<br />

2.2.4 BLOCK INTERCLOCKDOMAIN PATHS 制約の振る舞い<br />

Lattice Diamond には、[BLOCK INTERCLOCKDOMAIN PATHS]という、異なるクロックドメイ<br />

ン間のタイミング制約/解析を無効(フォルスパス)にしてしまうオプションがあります。このオプ<br />

ションを使用すると、2.1.2 項で解析が可能としているパスでもフォルスパスに設定されます。<br />

この制約は、最優先される制約の1つです。これが記述されていると、個別にクロック間に設定<br />

MULTICYCLE 制約等を設定していても全てフォルスパスになります。<br />

期 待 し な い ク ロ ッ ク ド メ イ ン 間 の 制 約 / 解 析 の 無 効 化 を 防 ぐ た め 、 [BLOCK<br />

INTERCLOCKDOMAIN PATHS]制約の使用は推奨しません。クロックドメイン間のパスをフォル<br />

スパスに設定する場合は、個別に BLOCK 制約を設定することを推奨します。<br />

なお、この制約はクロックドメイン内のパスの解析には影響を与えません。<br />

2.3 各クロックに対する制約設定の確認<br />

各クロックでどの様な制約が適用されているかは、タイミング解析レポートで確認することが出来ま<br />

す。<br />

タイミング解析レポートの最後には、クロックごとにそのクロックドメイン内で適用された制約(リス<br />

ト 2-1①)、クロックドメインをまたぐパスがある場合は対象となるクロックとそのドメイン間パスで<br />

適用された制約(リスト 2-1②)についてレポートされます。<br />

10<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

リスト 2-1 クロックドメイン解析レポート<br />

この解析レポートを見て、必要な制約が設定されていること、不要な制約が削除されていることを確<br />

認してください。<br />

11<br />

①<br />

②<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

3 入力/出力信号のタイミング制約と解析<br />

3.1 出力負荷設定<br />

Lattice Diamond で、適当な出力信号の遅延を見積もるためには、出力ピンごとの出力負荷を設定す<br />

る必要があります。<br />

出力負荷は SSO 解析でも必須ですので、必ず適当な値を設定してください。<br />

12<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

4 Lattice Diamond のアップデートに伴う主な変更点<br />

Lattice Diamond のバージョンアップに伴い、タイミング制約および検証のルールについては以下の<br />

点が変更されています。<br />

Lattice Diamond 1.1(October. 2011)<br />

・特になし<br />

Lattice Diamond 1.0(June. 2010)<br />

・新規リリース<br />

13<br />

ドキュメント番号 JTM08_010


Lattice Diamond<br />

タイミング制約および検証の注意事項<br />

Jan.2011 Ver1.1<br />

5 改訂履歴<br />

バージョン リリース 改訂内容<br />

Ver1.0 November. 2010 ・初版リリース<br />

Ver1.1 January. 2011 ・5 章に Lattice Diamond1.1 のアップデート内容を追加<br />

14<br />

ドキュメント番号 JTM08_010

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!