インテル quartus prime プロ・エディショ ンユーザーガイド …...reg1 reg2...

106
インテル ® Quartus ® Prime プロ・エディショ ンユーザーガイド タイミング解析 インテル ® Quartus ® Prime 開発デザインスイートの更新情報: 18.1 更新情報 フィードバック UG-20140 | 2018.09.24 最新版をウェブからダウンロード: PDF | HTML

Upload: others

Post on 20-Jan-2021

25 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

インテル® Quartus® Prime プロ・エディションユーザーガイドタイミング解析

インテル® Quartus® Prime 開発デザインスイートの更新情報: 18.1

更新情報フィードバック

UG-20140 | 2018.09.24

新版をウェブからダウンロード: PDF | HTML

Page 2: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

目次

1. タイミング解析の概要............................................................................................................ 31.1. タイミング解析の基本的な概念......................................................................................3

1.1.1. タイミングパスとクロック解析........................................................................... 41.1.2. クロック・セットアップ解析............................................................................... 71.1.3. クロックホールド解析.....................................................................................81.1.4. リカバリー解析およびリムーバル解析.................................................................. 91.1.5. マルチサイクル・パス解析............................................................................... 101.1.6. メタスタビリティー解析................................................................................. 141.1.7. タイミングペシミズム................................................................................... 151.1.8. Clock-As-Data 解析................................................................................... 161.1.9. マルチコーナー解析..................................................................................... 17

1.2. 改訂履歴..............................................................................................................19

2. インテル Quartus Prime Timing Analyzer の使用方法..........................................................202.1. タイミング解析の基本的なフロー................................................................................. 21

2.1.1. 手順 1: プロジェクトを開いて Fitter を実行する....................................................212.1.2. 手順 2: タイミング制約を指定する....................................................................212.1.3. 手順 3: 一般的な Timing Analyzer の設定を指定する........................................... 222.1.4. 手順 4: タイミング解析を実行する....................................................................242.1.5. 手順 5: タイミング解析結果を分析する..............................................................25

2.2. タイミング制約の使用...............................................................................................412.2.1. 推奨される 初の SDC 制約...........................................................................412.2.2. SDC ファイルの優先順位...............................................................................442.2.3. 制約を繰り返し修正する................................................................................ 452.2.4. エンティティーにバインドされた SDC ファイルの使用.............................................. 462.2.5. クロック制約の作成..................................................................................... 492.2.6. I/O 制約の作成.......................................................................................... 622.2.7. 遅延制約およびスキュー制約の作成.................................................................. 642.2.8. タイミング例外の作成...................................................................................682.2.9. Fitter による過剰制約の使用.......................................................................... 932.2.10. 回路と SDC ファイルの例.............................................................................94

2.3. Timing Analyzer の Tcl コマンド................................................................................ 962.3.1. quartus_sta 実行ファイル............................................................................ 962.3.2. 収集コマンド............................................................................................. 98

2.4. インポートされたコンパイル結果のタイミング解析............................................................1012.5. インテル Quartus Prime Timing Analyzer ユーザーガイド 改訂履歴................................. 101

A. インテル Quartus Prime プロ・エディション ユーザーガイド.......................................................104

目次

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

2

Page 3: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

1. タイミング解析の概要

デザインの包括的なタイミング解析を実行することで、回路のパフォーマンスの検証、タイミング違反の特定、タイミング目標を満たすための Fitter によるロジックの配置が可能となります。 インテル®

Quartus® Prime タイミング・アナライザーは、業界標準の制約および解析方法を使用して、デザイン内のすべてのレジスター間、I/O および非同期リセットパスのすべてのデータが必要とする時間、データ到達時間、クロック到達時間をレポートします。

タイミング・アナライザーは、デザインが正しく機能するために必要なタイミング関係を満たしていることを検証し、指定した制約に対する実際の信号到着時間を確認します。本ユーザーガイドでは、タイミング解析の基本的な概念および インテル Quartus Prime タイミング・アナライザーの使用手順を紹介します。

1.1. タイミング解析の基本的な概念

本ユーザーガイドでは、タイミング解析の次の概念について説明します。

表 1. Timing Analyzer に関する用語

用語 定義

到達時間 タイミング・アナライザーは、レジスターピンでの必要な時間と対比してデータおよびクロックの到達時間を算出します。

セル ルックアップ・テーブル(LUT)、レジスター、デジタル信号処理(DSP)ブロック、メモリーブロック、入力/出力エレメントを含むデバイスリソースです。Intel Stratix® シリーズのデバイスでは、LUT とレジスターはセルとしてモデル化されたロジックエレメント(LE)に含まれています。

クロック デザイン内部および外部のクロックドメインを表現する信号の名称です。

Clock-As-Data 解析 クロックパスの PLL に関連する位相シフトを含む複雑なパスに向けたより正確なタイミング解析です。データパスに関連する位相シフトを考慮します。

クロック・ホールド・タイム クロック入力でアクティブに遷移した後、データ入力またはクロックイネーブルを供給する入力ピンで信号が安定していなければならない 小時間間隔です。

クロックのローンチエッジおよびラッチエッジ

ローンチエッジは、レジスターまたは他のシーケンシャル・エレメントからデータを送信し、データ転送のソースとして動作するクロックエッジです。ラッチエッジは、レジスターまたは他のシーケンシャル・エレメントのデータポートでデータをキャプチャーし、データ転送のデスティネーションとして動作するクロックエッジです。

クロックペシミズム クロックペシミズムとは、静的タイミング解析中に共通クロックパスに関連する( 小ではなく) 大遅延のばらつきを使用することを意味します。

クロック・セットアップ データ入力での信号のアサートと、クロック入力での Low から High への遷移のアサート間における小時間間隔です。

ネット 2 つ以上の相互接続されたコンポーネントのコレクションです。

ノード デザイン内の異なる論理コンポーネント間を移動する信号を運ぶワイヤーを表します。 も基本的なタイミング・ネットリスト・ユニットです。ポート、ピン、およびレジスターを表すために使用されます。

ピン セルの入力および出力です。

ポート デバイスピンのようなトップレベルのモジュールの入力または出力を表します。continued...

UG-20140 | 2018.09.24

フィードバック

Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を 新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ISO9001:2015登録済

Page 4: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

用語 定義

メタスタビリティー 関係のないクロックドメインあるいは非同期クロックドメイン内にある回路の間で信号が転送されると、メタスタビリティー問題が発生することがあります。タイミング・アナライザーは、デザインでメタスタビリティーが発生する可能性を解析し、同期レジスターチェーンの MTBF を算出することができます。

マルチコーナー解析 さまざまな電圧、プロセス、および温度条件でデザインを検証するための、低速および高速タイミングコーナーのタイミング解析です。

マルチサイクル・パス 正しい解析に向けて、デフォルト以外のセットアップあるいはホールド関係を必要とするデータパスです。

リカバリー時間とリムーバル時間 リカバリー時間とは、次のクロックエッジに対して非同期制御信号のディアサートに要する 小時間のことです。リムーバル時間とは、アクティブ・クロック・エッジの後で非同期制御信号のディアサーションが安定していなければならない時間の長さの 小値のことです。

タイミング・ネットリスト コンパイラーが生成する、デザインの合成されたノードと接続のリストです。タイミング・アナライザーは、タイミング解析の実行にこのリストを必要とします。

タイミング・パス レジスターの出力から他のレジスターの入力といった任意の 2 つのデザインノード間のワイヤー接続(ネット)です。

1.1.1. タイミングパスとクロック解析

タイミング・アナライザーは、デザイン内で特定されたすべてのタイミング・パスのタイミング・パフォーマンスを測定します。 タイミング・アナライザーは解析に向けて、デザインのノードと接続を記述するタイミング・ネットリストを必要とします。タイミング・アナライザーはまた、クロックのローンチエッジとラッチエッジ間のクロック・セットアップとホールド関係を解析することで、デザイン内のレジスター間転送のクロック関係を決定します。

1.1.1.1. タイミング・ネットリスト

タイミング・アナライザーはタイミング・ネットリストを使用して、デザイン内のすべてのタイミングパスに必要となる時間と対比してデータおよびクロック到達時間を決定します。Fitter あるいはフルコンパイル実行後であればいつでも、タイミング・アナライザーでネットリストを生成することができます。

次の図は、タイミング・ネットリストがデザインエレメントをセル、ピン、ネット、および遅延測定用ポートに分割する方法を示しています。

図 -1: シンプルなデザインの回路図

data1

data2

clk

reg1

reg2

and_inst

reg3

1. タイミング解析の概要UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

4

Page 5: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -2: タイミング・ネットリストによるシンプルなデザインの回路図エレメントの分割

reg2

data1

data2

clk clk~clkctrl

reg1

and_instreg3 data_out

combout

inclk0

datain

clk regout

regout

datac

datad

comboutdatain

CellsCell

Cell

Pin

Pin

outclk

Port

Port

Net Net

Net

1.1.1.2. タイミングパス

タイミングパスは、レジスターの出力から別のレジスターの入力といった 2 つのデザインノードを接続します。

タイミングクロージャーおよび 適化には、タイミングパスのタイプを理解することが重要です。タイミング・アナライザーは、次のタイミングパスを認識し、解析します。

• エッジパス—ポートからピン、ピンからピン、ピンからポートへの接続です。

• クロックパス—デバイスポートあるいは内部で生成されたクロックピンからレジスターのクロック・ピンへの接続です。

• データパス—ポートあるいはシーケンシャル・エレメントのデータ出力ピンからポートあるいはシーケンシャル・エレメントのデータ入力ピンへの接続です。

• 非同期パス—非同期リセットや非同期クリアーといった別のシーケンシャル・エレメントのポートあるいは非同期ピンからの接続です。

図 -3: Timing Analyzer が解析する一般的なパスの種類

CLRN

D Q

CLRN

D Q

clk

rst

Clock Path Data Path

Asynchronous Clear Path

data

Timing Analyzer は、デザイン内のさまざまなパスを特定する以外にも、クロック特性を解析し、単一のレジスター間パスで 2 つの任意のレジスター間におけるワーストケース値を算出します。クロック特性を解析する前に、デザインのすべてのクロックを制約する必要があります。

1. タイミング解析の概要UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

5

Page 6: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

1.1.1.3. データ到着時間とクロック到着時間

タイミング・アナライザーはパスの種類を識別した後、Timing Analyzer はレジスターピンでのデータ到着時間とクロック到着時間をレポートすることができます。

タイミング・アナライザーは、クロックソースからソースレジスターのクロックピンへの遅延、ソースレジスターのマイクロ Clock-to-Output 遅延(µtCO)、ソースレジスターのデータ出力(Q)からデスティネーション・レジスターのデータ入力(D)までの遅延にローンチエッジ時間を加算することでデータ到着時間を算出します。

タイミング・アナライザーは、クロック・ポート・バッファー遅延を含むクロックポートとデスティネーション・レジスターのクロックピン間の全ての遅延の合計にラッチエッジ時間を加算することでデータ所要時間を算出し、デスティネーション・レジスターのマイクロ・セットアップ・タイム(µtSU)を減算します。このµtSU は FPGA 内にある内部レジスターの固有のセットアップ・タイムです。

図 -4: データ到着時間とデータ所要時間

D Q D Q

Data Arrival Time

Data Required Time

以下は、ローンチエッジとラッチエッジを含むデータ到着時間とデータ所要時間の基本的な計算式です。

図 -5: データ到着時間およびデータ所要時間の計算式

Data Arrival Time = Launch Edge + Source Clock Delay + µtCO + Register-to-Register Delay Data Required Time = Latch Edge + Destination Clock Delay – µtSU

1.1.1.4. ローンチエッジとラッチエッジ

すべてのタイミング解析には、1 つあるいは複数のクロック信号を必要とします。タイミング・アナライザーは、クロックのローンチエッジとラッチエッジ間のクロック・セットアップとホールド関係を解析することで、デザイン内のレジスター間転送のクロック関係を決定します。

クロック信号のローンチエッジは、レジスターまたは他のシーケンシャル・エレメントからデータを送信し、データ転送のソースとして動作するクロックエッジです。ラッチエッジは、レジスターまたは他のシーケンシャル・エレメントのデータポートでデータをキャプチャーし、データ転送のデスティネーションとして動作するアクティブ・クロックエッジです。

1. タイミング解析の概要UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

6

Page 7: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -6: ローンチエッジとラッチエッジのセットアップとホールドの関係が 10ns 間隔である例この例では、ローンチエッジがレジスター reg1からのデータを 0ns で送信し、レジスター reg2はラッチエッジによってトリガーされる際にデータを 10ns でキャプチャーします。データは次のラッチエッジの前にデスティネーション・レジスターに到着します。

Launch Clock

Latch Clock

0ns 10ns 20ns

Setup relationshipHold relationship

すべてのクロックの制約を作成および定義し、デザイン内のノードにこれらの制約を割り当てます。このようなクロックの制約は、繰り返し使用が可能なデータ関係に必要となる構造を提供します。デザイン内のクロックを制約しない場合、 インテル Quartus Prime 開発ソフトウェアはタイミングベースのFitter エフォートを 大限にするために、1GHz のクロックで解析を実行します。現実的なスラック値を確実なものとするには、デザイン内のすべてのクロックを現実的な値で制約する必要があります。

1.1.2. クロック・セットアップ解析

クロック・セットアップ・チェックを実行するために、Timing Analyzer は、それぞれのレジスター間パスの各ローンチエッジとラッチエッジを解析することで、セットアップ関係を特定します。

Timing Analyzer は、デスティネーション・レジスターの各ラッチエッジに対し、ローンチエッジとしてソースレジスターで も近い前のクロックエッジを使用します。次の図は、セットアップ A およびセットアップ B の 2 つのセットアップ関係を示しています。10 ns のラッチエッジには、ローンチエッジとして動作する も近いクロックは 3 ns で、セットアップ A で表されています。20 ns のラッチエッジには、ローンチエッジとして動作する も近いクロックは 19 ns で、セットアップ B で表されています。TimingAnalyzer は も制限的なセットアップ関係を解析します。この場合はセットアップ B がそれに該当します。セットアップ B の関係がデザイン要件を満たす場合、セットアップ A もデフォルトで要件を満たしています。

図 -7: セットアップ・チェック

Setup A Setup B

0 ns 8 ns 16 ns 24 ns 32 ns

Source Clock

Destination Clock

Timing Analyzer は、クロック・セットアップ・チェックの結果をスラック値としてレポートします。スラックとは、タイミング要件を満たすかどうかを決定するマージンのことを指します。スラックが正であれば要件が満たされているマージンを示し、負であれば要件が満たされていないマージンを示しています。

1. タイミング解析の概要UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

7

Page 8: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -8: 内部レジスター間パスのクロック・セットアップ・スラック

Clock Setup Slack = Data Required Time – Data Arrival TimeData Arrival Time = Launch Edge + Clock Network Delay to Source Register + µtCO + Register-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register – µtSU – Setup Uncertainty

Timing Analyzer は、データ到着時間を算出する際に 大遅延を使用しセットアップ・チェックを実行し、データ所要時間を算出する際は 小遅延を使用してセットアップ・チェックを実行します。

図 -9: 入力ポートから内部レジスターへのクロック・セットアップ・スラック

Clock Setup Slack = Data Required Time – Data Arrival Time Data Arrival Time = Launch Edge + Clock Network Delay + Input Maximum Delay + Port-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register – µtSU – Setup Uncertainty

図 -10: 内部レジスターから出力ポートへのクロック・セットアップ・スラック

Clock Setup Slack = Data Required Time – Data Arrival TimeData Required Time = Latch Edge + Clock Network Delay to Output Port – Output Maximum DelayData Arrival Time = Launch Edge + Clock Network Delay to Source Register +µtCO + Register-to-Port Delay

1.1.3. クロックホールド解析

クロック・ホールド・チェックを実行するには、Timing Analyzer はすべてのソースとデスティネーション・レジスター・ペアに対して存在する可能性のある各セットアップ関係のホールド関係を決定します。Timing Analyzer は、すべてのセットアップ関係から隣接する全クロックをチェックし、ホールド関係を決定します。

Timing Analyzer は、各セットアップの関係に対して 2 つのホールドチェックを実行します。まず 初のホールドチェックで、現在のローンチエッジからローンチされるデータが前のラッチエッジによってキャプチャーされていないことを確認します。2 番目のホールドチェックで、次のローンチエッジからローンチされたデータが現在のラッチエッジでキャプチャーされていないことを確認します。起こりうるすべてのホールド関係の中から、Timing Analyzer は も制限のあるホールド関係を選択します。 も制限のあるホールド関係とは、ラッチエッジとローンチエッジ間の差が 小であるホールド関係のことを指し、も制限のあるホールド関係によりレジスター間のパスの 小許容遅延が決定します。次の例では、

Timing Analyzer は、2 つのセットアップ関係であるセットアップ A とセットアップ B、およびそれぞれのホールドチェックにおける も制限のあるホールド関係としてホールドチェック A2 を選択しています。

図 -11: セットアップとホールドチェックの関係

Setup A Setup B

0 ns 8 ns 16 ns 24 ns 32 ns

Source Clock

Destination Clock

HoldCheck A1

HoldCheck B2

HoldCheck A2

HoldCheck B1

1. タイミング解析の概要UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

8

Page 9: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -12: 内部レジスター間パスへのクロック・ホールド・スラック

Clock Hold Slack = Data Arrival Time – Data Required TimeData Arrival Time = Launch Edge + Clock Network Delay to Source Register + µtCO + Register-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register + µtH + Hold Uncertainty

Timing Analyzer は、データ到着時間の算出に 小遅延を使用してホールドチェックを実行し、データ所要時間を算出には 大遅延を使用してホールドチェックを実行します。

図 -13: 入力ポートから内部レジスターへのクロック・ホールド・スラックの算出方法

Clock Hold Slack = Data Arrival Time – Data Required Time Data Arrival Time = Launch Edge + Clock Network Delay + Input Minimum Delay + Pin-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register + µtH

図 -14: 内部レジスターから出力ポートへのクロック・ホールド・スラックの算出方法

Clock Hold Slack = Data Arrival Time – Data Required TimeData Arrival Time = Launch Edge + Clock Network Delay to Source Register + µtCO + Register-to-Pin DelayData Required Time = Latch Edge + Clock Network Delay – Output Minimum Delay

1.1.4. リカバリー解析およびリムーバル解析

リカバリー時間とは、次のクロックエッジに対して非同期制御信号のディアサートに要する 小時間のことです。

具体的には、clear信号や preset信号は次のアクティブ・クロック・エッジの前に安定していなければいけません。リカバリースラックの算出は、クロック・セットアップ・スラックの算出と似ていますが、非同期制御信号に適用される点が異なります。

図 -15: 非同期制御信号がレジスター化されている場合のリカバリースラックの算出方法

Recovery Slack Time = Data Required Time – Data Arrival TimeData Required Time = Latch Edge + Clock Network Delay to Destination Register – µtSU

Data Arrival Time = Launch Edge + Clock Network Delay to Source Register + µtCO + Register-to-Register Delay

図 -16: 非同期制御信号がレジスター化されていない場合のリカバリースラックの算出方法

Recovery Slack Time = Data Required Time – Data Arrival TimeData Required Time = Latch Edge + Clock Network Delay to Destination Register – µtSU

Data Arrival Time = Launch Edge + Clock Network Delay + Input Maximum Delay + Port-to-Register Delay

注意: 非同期リセット信号がデバイスの I/O ポートからのものであれば、Timing Analyzer がパスでリカバリー解析を実行できるように非同期リセットポートに入力遅延制約を作成する必要があります。

リムーバル時間とは、アクティブ・クロック・エッジの後で非同期制御信号のディアサーションが安定していなければならない時間の長さの 小値のことです。Timing Analyzer のリムーバルスラックの計算はクロック・ホールド・スラックの計算と似ていますが、計算に非同期制御信号が適用される点が異なります。

1. タイミング解析の概要UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

9

Page 10: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -17: 非同期制御信号がレジスター化されている場合のリカバリースラックの算出方法Removal Slack Time = Data Arrival Time – Data Required TimeData Arrival Time = Launch Edge + Clock Network Delay to Source Register + µtCO of Source Register + Register-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register + µtH

図 -18: 非同期制御信号がレジスター化されていない場合のリムーバルスラックの算出方法Removal Slack Time = Data Arrival Time – Data Required TimeData Arrival Time = Launch Edge + Clock Network Delay + Input Minimum Delay of Pin + Minimum Pin-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register + µtH

非同期リセット信号がデバイスピンからのものであれば、Timing Analyzer がパスでリムーバル解析を実行できるように非同期リセットピンに Input Minimum Delay タイミング割り当てを割り当てる必要があります。

1.1.5. マルチサイクル・パス解析

マルチサイクル・パスとは、正しい解析に向けて、デフォルト以外のセットアップまたはホールド関係のいずれかを必要とするデータパスです。

例えば、1 個のレジスターで、2 番目または 3 番目の立ち上がりエッジごとにデータをキャプチャーすることが必要な場合があります。次の例は、マルチプライヤーの入力レジスターとデスティネーションが 1つおきのクロックエッジでデータをラッチする出力レジスターの間にあるマルチサイクル・パスを示しています。

図 -19: マルチサイクル・パス

2 Cycles

ENA

D Q

ENA

D Q

D Q

ENA

デフォルトのセットアップとホールド関係、ソースクロックとデスティネーション・クロックそれぞれのタイミング図に使用されるレジスター間のパスは、ソースクロックが src_clkの場合、10 ns 周期となり、デスティネーション・クロックの dst_clkは 5 ns 周期となります。デフォルトのセットアップ関係は 5 ns で、デフォルトのホールド関係は 0 ns です。

1. タイミング解析の概要UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

10

Page 11: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -20: レジスター間パスおよびデフォルトのセットアップとホールドのタイミング図

reg reg

data_outdata_in

src_clk

dst_clk

D Q D Q

0 10 20 30

setuphold

システム要件に対応するために、レジスター間パスにマルチサイクル・タイミング制約を指定することで、デフォルトのセットアップとホールド関係を変更することが可能です。

図 -21: レジスター間パス

REG1 REG2Combinational

LogicSET SET

D Q D Q

CLR CLR

CLK

Tclk1

TCO TSU / TH

Tdata

Tclk2

この例外は、2 番目に発生するラッチエッジを使用する 2 つのマルチサイクル・セットアップ割り当てを有しています。この図では、デフォルト値 5 ns から 10 ns がこれに該当します。

図 -22: 変更後のセットアップ図

new setupdefault setup

0 10 20 30

1.1.5.1. マルチサイクル・クロック・ホールド

クロック・ローンチ・エッジとラッチエッジの間のクロック周期の数は、セットアップ関係を定義します。

1. タイミング解析の概要UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

11

Page 12: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

デフォルトでは、Timing Analyzer はホールド関係が 1 クロック周期(ローンチエッジ – ラッチエッジ)と等しくなるシングル・サイクル・パス解析を実行します。パスを解析する際、Timing Analyzer は 2つのホールドチェックを実行します。 初のホールドチェックで、現在のローンチエッジからローンチされるデータが前のラッチエッジによってキャプチャーされていないことを確認します。2 番目のホールドチェックで、次のローンチエッジからローンチされたデータが現在のラッチエッジでキャプチャーされていないことを確認します。 Timing Analyzer は、 も制限のあるホールドチェックのみをレポートします。Timing Analyzer は、ローンチエッジとラッチエッジを比較することでホールドチェックを計算します。

以下は、ホールドチェックを決定するために Timing Analyzer が実行する計算です。

図 -23: ホールドチェック

hold check 1 = current launch edge – previous latch edgehold check 2 = next launch edge – current latch edge

ヒント: ホールドチェックがセットアップ・チェックとオーバーラップする場合、ホールドチェックは無視されます。

スタート・マルチサイクル・ホールド割り当ては、指定したクロック周期の数だけデフォルトのローンチエッジの右側にラッチエッジを移動することで、デスティネーション・クロックのローンチエッジを変更します。次の図は、スタート・マルチサイクル・ホールド(SMH)アサインメントのさまざまな値とその結果として生じるローンチエッジを表しています。

図 -24: スタート・マルチサイクル・ホールドの値-10 0 10 20

Source Clock

Destination Clock

SMH = 1SMH = 0(default) SMH = 2

エンド・マルチサイクル・ホールド割り当ては、指定したクロック周期の数だけデフォルトのラッチエッジの左側にラッチエッジを移動することで、デスティネーション・クロックのラッチエッジを変更します。次の図は、エンド・マルチサイクル・ホールド(EMH)割り当てのさまざまな値とその結果として生じるラッチエッジを表しています。

図 -25: エンド・マルチサイクル・ホールドの値

Source Clock

Destination Clock

EMH = 0(Default)

EMH = 2

EMH = 1

-20 -10 0 10 20

1. タイミング解析の概要UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

12

Page 13: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

次の図は、負のホールド関係に対して Timing Analyzer がレポートするホールド関係を示しています。

図 -26: Timing Analyzer がレポートするエンド・マルチサイクル・ホールドの値

Source Clock

Destination Clock

EMH = 0(Default)

EMH = 2

EMH = 1

-10 0 10 20

1.1.5.2. マルチサイクル・クロック・セットアップ

セットアップ関係は、ラッチエッジとローンチエッジ間のクロック周期の数として定義されます。デフォルトでは、Timing Analyzer はセットアップ関係が 1 クロック周期(ラッチエッジ – ローンチエッジ)と等しくなるシングル・サイクル・パス解析を実行します。マルチサイクル・セットアップ割り当てを適用することで、マルチサイクル・セットアップ値によってセットアップ関係が調整されます。この調整値は負となる場合があります。

エンド・マルチサイクル・セットアップ割り当ては、指定した数のクロック周期だけラッチエッジを決定済みのデフォルト・ラッチ・エッジの右側へ移動させることで、デスティネーション・クロックのラッチ・エッジを変更します。次の図は、エンド・マルチサイクル・セットアップ(EMS)割り当てのさまざまな値とその結果として生じるラッチエッジを表しています。

図 -27: エンド・マルチサイクル・セットアップの値-10 0 10 20

REG1.CLK

REG2.CLK

EMS = 2

EMS = 1(default)

EMS = 3

スタート・マルチサイクル・セットアップ割り当ては、指定した数のクロック周期だけローンチエッジを決定済みのデフォルト・ローンチ・エッジの左側へ移動させることで、ソースクロックのローンチエッジを変更します。さまざまな値を持つスタート・マルチサイクル・セットアップ(SMS)割り当ては、特定のローンチエッジとなる場合があります。

1. タイミング解析の概要UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

13

Page 14: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -28: スタート・マルチサイクル・セットアップの値

Source Clock

Destination Clock

SMS = 1(Default)

SMS = 2

SMS = 3

0 10 20 30 40

次の図は、負のセットアップ関係に対して Timing Analyzer によってレポートされるセットアップ関係です。

図 -29: Timing Analyzer によってレポートされるスタート・マルチサイクル・セットアップ値-10 0 10 20

Source Clock

Destination Clock

SMS = 2

SMS = 1(default) SMS = 3

1.1.6. メタスタビリティー解析

関連のないクロックドメインまたは非同期クロックドメイン内の回路で信号が転送される場合、信号はセットアップ要件とホールド時間要件を満たしていないため、メタスタビリティー問題が発生することがあります。

メタスタビリティーに起因する障害を 低限に抑えるには、回路設計者は通常、シンクロナイザー・レジスター・チェーン、またはシンクロナイザーと呼ばれるレジスターのシーケンスをデスティネーション・クロック・ドメインで使用し、新しいクロック・ドメインにデータ信号を再同期させます。

平均故障間隔(MTBF)は、メタスタビリティーが原因で発生する障害のインスタンス間の推定平均時間です。

Timing Analyzer は、デザインでメタスタビリティーが発生する可能性を解析し、同期レジスターチェーンに向けた MTBF を算出することができます。Timing Analyzer は次に、デザインに含まれる同期チェーンからデザイン全体の MTBF を推測します。

デザインに含まれる同期レジスターチェーンをレポートする以外にも、 インテル Quartus Prime 開発ソフトウェアは MTBF に好ましくない影響を与える可能性があるレジスターの複製やロジックのリタイミングといった 適化から、このようなレジスターを保護します。また、 インテル Quartus Prime 開発ソフトウェアはデザインの MTBF が低すぎる場合は、MTBF を 適化することも可能です。

1. タイミング解析の概要UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

14

Page 15: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

関連情報Understanding Metastability in FPGAs

1.1.7. タイミングペシミズム

共通クロック・パス・ペシミズム・リムーバルは、 大遅延と 小遅延間の差を適切なスラック計算式に加算することで、スタティック・タイミング解析中の共通クロックパスに関係する 小および 大遅延のバリエーションを考慮します。

2 つの異なる遅延値が同一のクロックパスに使用されると、 小および 大遅延にばらつきが発生する可能性があります。たとえば、単純なセットアップ解析では、ソースレジスターへの 大クロックパス遅延はデータ到着時間の決定に使用され、デスティネーション・レジスターへの 小クロックパス遅延はデータ所要時間の決定に使用されます。しかし、ソースレジスターへのクロックパスとデスティネーション・レジスターへのクロックパスが同じ共通クロックパスを使用する場合、タイミング解析中に共通クロックパスをモデル化するために 大遅延と 小遅延の両方が使用されてしまいます。 大遅延と 小遅延の両方を使用すると、2 つの異なる遅延値となり、 大遅延と 小遅延は同じクロックパスのモデル化には使用できないため、過度に悲観的な解析結果となります。

図 -30: 一般的なレジスター間のパス

D Q

D Qclk

A

B

C

reg1

reg2

5.5 ns5.0 ns

2.2 ns2.0 ns

2.2 ns2.0 ns

3.2 ns3.0 ns

セグメント A は reg1と reg2間の共通クロックパスで、 小遅延は 5.0 ns、 大遅延は 5.5 ns です。 大遅延値と 小遅延値の差は共通クロックパス・ペシミズム・リムーバル値と等しくなります。この場合、共通クロックパス・ペシミズムは 0.5 ns です。Timing Analyzer は、適切なスラック計算式に共通クロックパス・ペシミズム・リムーバル値を加算し、全体的なスラックを決定します。よって、この例では共通クロックパス・ペシミズム・リムーバルを持たないレジスター間のセットアップ・スラックが 0.7 nsであれば、共通クロックパス・ペシミズム・リムーバルを持つスラックは 1.2 ns となります。

また、共通クロック・パス・ペシミズム・リムーバルを使用すれば、レジスターの 小パルス幅を決定することも可能です。レジスターによって認識されるには、クロック信号はレジスターの 小パルス幅の要件を満たしている必要があります。 小 High タイムはポジティブエッジがトリガーするレジスターの 小パルス幅を定義し、 小 Low タイムはネガティブエッジがトリガーするレジスターの 小パルス幅を定義します。

レジスターの 小パルス幅に違反するクロック・パルスは、データがレジスターのデータピンでラッチされる妨げとなります。 小パルス幅のスラックを算出するには、Timing Analyzer は実際の 小パルス幅の時間から要求される 小パルス幅を減算します。Timing Analyzer は、レジスターのクロックポートを供給するクロックへ指定したクロック要件から、実際の 小パルス幅の時間を決定します。TimingAnalyzer は、 大立ち上がり時間、 小立ち上がり時間、 大立ち下がり時間、 小立ち下がり時間から、要求される 小パルス幅の時間を決定します。

1. タイミング解析の概要UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

15

Page 16: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -31: High パルスと Low パルスに要求される最小パルス幅の時間

High PulseWidth

Low PulseWidth

Minimum and MaximumFall Arrival Times

Minimum andMaximum Rise

Rise Arrival Times

0.80.5

0.50.8

0.90.7

共通クロック・パス・ペシミズムを使用すれば、 大立ち上がり時間から 小立ち上がり時間を引いた値、もしくは 大立ち下がり時間から 小立ち下がり時間を引いた値から、どちらか小さい方の値の分だけ小パルス幅のスラックを増加させることができます。この例では、スラック値は 0.3 ns(0.8 ns – 0.5

ns)と 0.2 ns(0.9 ns – 0.7 ns)の小さい方の値である 0.2 ns だけ増加させることが可能です。

1.1.8. Clock-As-Data 解析

ほとんどの FPGA デザインには、データパスあるいはクロックパスと呼ばれる任意の 2 つのノード間にシンプルな接続が含まれます。

データパスとは、同期エレメントの出力と別の同期エレメントの入力間の接続です。

クロックは同期エレメントのクロックピンへの接続ですが、ソース・シンクロナス・インターフェイスを使用するようなさらに複雑な FPGA デザインには、このシンプルな方法では不十分です。Clock-As-Data解析は、クロック・ディバイダーや DDR ソース・シンクロナス出力などのエレメントを持つ回路で実行されます。

入力クロックポートと出力クロックポートの間にある接続は、クロックパスもしくはデータパスのどちらとしてでも使用可能です。ポート clk_inからポート clk_outへのパスが両方ともクロックパスおよびデータパスであるデザインでは、クロックパスはポート clk_inからレジスター reg_dataクロックピンまでです。データパスはポート clk_inからポート clk_outまでです。

図 -32: 簡略化されたソース・シンクロナス出力

D Q

clk_in clk_out

reg_data

Clock-As-Data 解析を使用すれば、Timing Analyzer はユーザーによる制約に基づいたパスに、より正確な解析を提供することができます。クロックパス解析の場合、フェーズ・ロック・ループ(PLL)に関連するすべての位相シフトが考慮されます。データパス解析の場合、PLL に関連する位相シフトは無視されることはなく考慮に入れられます。

1. タイミング解析の概要UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

16

Page 17: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

また、Clock-As-Data 解析は内部で生成されたクロック・ディバイダーにも適用されます。以下の図はインバーター・フィードバック・パスの波形図ですが、タイミング解析中に解析されます。ディバイダー・レジスターの出力はローンチタイムを決定する際に使用され、またレジスターのクロックポートはラッチタイムを決定する際に使用されます。

図 -33: クロック・ディバイダー

D Q

D Q

Launch Clock (2 T)

Data Arrival Time

Latch Clock (T)

1.1.9. マルチコーナー解析

Timing Analyzer は、スタティック・タイミング解析と同時進行で、電圧、プロセス、および温度といったさまざまな動作条件下でデザインを検証するマルチコーナー・タイミング解析を実行します。

タイミング解析に使用する動作条件や現行デバイスのスピードグレードを変更するには、set_operating_conditionsコマンドを使用します。

Tcl オブジェクトの動作条件を指定する場合、-model、-speed、-temperature、および-voltageオプションが選択可能です。Tcl オブジェクトの動作条件を指定しない場合、Tcl には-modelオプションが必要となります。-speed、-temperature、および-voltageはオプションで選択できます。

1. タイミング解析の概要UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

17

Page 18: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

ヒント: ターゲットデバイス別に利用可能な動作条件のリストを取得するには、get_available_operating_conditions-allコマンドを使用します。

異なる条件下においてもデバイスの動作中に不具合が発生しないことを確認するには、使用可能なすべての動作条件でスタティック・タイミング解析を実行してください。

表 2. Slow モデルおよび Fast モデルの動作条件

モデル スピードグレード 電圧 温度

Slow デバイスの集積度で も遅いスピードグレード

Vcc 小電圧 (1) 高 TJ (1)

Fast デバイスの集積度で も速いスピードグレード

Vcc 大電圧 (1) 低 TJ (1)

注:1. Vcc および TJ の値につ

いての詳細は、そのデバイス・ハンドブックの DC& SwitchingCharacteristics の章を参照して下さい。

デザイン内で次のコードを使用すれば、低速タイミングモデルに対し電圧 1100 mV、温度 85° C の動作条件を設定することができます。

set_operating_conditions -model slow -temperature 85 -voltage 1100

次のように、同じ動作条件を Tcl オブジェクトで設定することも可能です。

set_operating_conditions 3_slow_1100mv_85c

次のコードのブロックはさまざまな動作条件に対して、異なるレポートを生成するための、set_operating_conditionsコマンドの使用方法を示しています。

例-1: さまざまな動作条件での解析に向けたスクリプト

#Specify initial operating conditionsset_operating_conditions -model slow -speed 3 -grade c -temperature 85 -voltage 1100#Update the timing netlist with the initial conditionsupdate_timing_netlist#Perform reporting#Change initial operating conditions. Use a temperature of 0Cset_operating_conditions -model slow -speed 3 -grade c -temperature 0 -voltage 1100#Update the timing netlist with the new operating conditionupdate_timing_netlist#Perform reporting#Change initial operating conditions. Use a temperature of 0C and a model of fastset_operating_conditions -model fast -speed 3 -grade c -temperature 0 -voltage 1100#Update the timing netlist with the new operating conditionupdate_timing_netlist#Perform reporting

1. タイミング解析の概要UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

18

Page 19: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

1.2. 改訂履歴

表 3. 改訂履歴

日付 バージョン 変更内容

2018 年 9 月 24 日 18.1.0 • 明瞭さと形式の改善に向けてテキストに軽微な変更を加えました。

2016 年 10 月 31 日 16.1.0 • インテルにブランド名を変更しました。

2016 年 5 月 2 日 16.0.0 図 6-14「内部レジスターから出力ポートへのクロック・ホールド・スラックの算出方法」の誤植を修正しました。

2015 年 11 月 2 日 15.1.0 表記を Quartus II から インテル Quartus Prime へ変更しました。

2014 年 12 月 15 日 14.1.0 Timing Analyzer の章からマルチサイクル・クロック・セットアップ・チェックとホールドチェック解析を移動しました。

2014 年 6 月 14.0.0 形式を更新しました。

2012 年 6 月 12.0.0 ソーシャル・ネットワーキングのアイコンを追加し、軽微なテキスト更新を行いました。

2011 年 11 月 11.1.0 初版

関連情報Documentation Archive

以前のバージョンの インテル Quartus Prime ハンドブックを確認するには、ドキュメンテーションのアーカイブを検索してください。

1. タイミング解析の概要UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

19

Page 20: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

2. インテル Quartus Prime Timing Analyzer の使用方法

インテル Quartus Prime Timing Analyzer は、ASIC スタイルの強力なタイミング解析ツールで、業界標準の制約、解析、およびレポート手法により、デザイン内のすべてのロジックのタイミング・パフォーマンスを検証します。Timing Analyzer の GUI またはコマンドライン・インターフェイスを使用して、デザインにおけるすべてのタイミング・パスを制約、解析、および結果をレポートすることができます。

図 -34: インテル Quartus Prime Timing Analyzer

Start Timing Analyzer Processes

Specify Constraints View Reports

Set Operating Conditions

関連情報• Timing Analyzer Quick-Start Tutorial: Intel Quartus Prime Pro Edition

• Timing Analyzer Resource Center

• Intel FPGA Technical Training

UG-20140 | 2018.09.24

フィードバック

Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を 新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ISO9001:2015登録済

Page 21: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

2.1. タイミング解析の基本的なフロー

インテル Quartus Prime Timing Analyzer は制約の検証を実行し、フルコンパイル・フローの一部としてタイミング・パフォーマンスをレポートします。デザインを作成し、プロジェクトをセットアップした後、デザインに必要なタイミング・パラメーター(つまり制約)を Synopsys* Design Constraints(.sdc)ファイルで定義します。Fitter は、ユーザーが指定する制約を満たすようなロジックの配置を試みます。Timing Analyzer は制約を満たさない条件をレポートするため、ユーザーは重大なタイミング問題を特定および修正することが可能です。次の手順は、 インテル Quartus Prime 開発ソフトウェアにおける基本的なタイミング解析のフローを表しています。

2.1.1. 手順 1: プロジェクトを開いて Fitter を実行する

タイミング解析を実行する前に、 インテル Quartus Prime プロジェクトを開き、デザイン階層のエラボレーション、ロジックの合成、配置配線の実行に向けて Fitter を実行する必要があります。

1. File > New Project Wizard をクリックして新規のプロジェクトを作成するか、File >Open Project をクリックして既存のプロジェクトを開きます。

2. Fitter(および必要なコンパイラー・モジュール)を実行するには、Processing > Start >Start Fitter の順でクリックします。また、Compilation Dashboard で任意の Fitter ステージを実行することも可能です。

図 -35: Compilation Dashboard での Fitter の実行

2.1.2. 手順 2: タイミング制約を指定する

デザインのクロック周波数要件、タイミング例外、および I/O タイミング要件を記述するタイミング制約をタイミング解析中の実際の条件と照らし合わせて、指定する必要があります。プロジェクトに追加する1 つあるいは複数の Synopsys Design Constraints (.sdc)ファイルでタイミング制約を定義します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

21

Page 22: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

.sdcファイルに慣れていない場合は、Timing Analyzer GUI で.sdcの初期ファイルを作成するか提供されている.sdcファイル・テンプレートを使用します。タイミング解析を理解しているユーザーであれば、任意のテキストエディターで.sdcファイルを作成し、そのファイルをプロジェクトに追加してください。

1. デザインにタイミング制約を入力するには、.sdcファイルで次の組み合わせを使用してください。

• Timing Analyzer GUI で制約を入力する — Tools > Timing Analyzer と進み、Update Timing Netlist をクリックし、Constraints メニューから制約を入力します。GUIには、該当する SDC コマンドが表示されます。

• 独自の.sdcファイルを作成します。 初に推奨される 初の SDC 制約 (41 ページ)を追加した後、.sdc 制約を繰り返し修正し、タイミング結果を再度解析しまし。クロックに依存する制約を入力する前に、クロック制約を 初に作成する必要があります。

図 -36: Create Clock Dialog はクロック制約を定義します

2. .sdcファイルを保存します。Timing Analyzer GUI で制約を入力する際、Constraints >Write SDC File をクリックして、GUI に入力した制約を.sdcファイルに保存します。

3. 手順 3: 一般的な Timing Analyzer の設定を指定する (22 ページ)のように.sdcファイルをプロジェクトに追加します。

関連情報エンティティーにバインドされた SDC ファイルの使用 (46 ページ)

2.1.3. 手順 3: 一般的な Timing Analyzer の設定を指定する

タイミング解析を実行する前に、解析結果に影響を与える Timing Analyzer とコンパイラーの次の設定を検討し、オプションで指定します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

22

Page 23: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

表 4. Timing Analyzer およびコンパイラーの設定

設定 説明 位置

SDC files to include in theproject

プロジェクト内の Synopsis Design Constraint (.sdc)ファイルの名前と順序を指定します。

Assignments > Settings >Timing Analyzer

Report worst-case pathsduring compilation

デザイン内のワーストケースのタイミングパスの概要を表示します。 Assignments > Settings >Timing Analyzer

Tcl Script File name カスタム解析スクリプトのファイル名を指定します。カスタムのスクリプトを実行する前にデフォルトのタイミング解析を実行するかどうかを指定することができます。

Assignments > Settings >Timing Analyzer

Metastability analysis Timing Analyzer がメタスタビリティー解析に向けてレジスターを同期レジスターチェーンの一部として認識する方法を指定します。

Assignments > Settings >Timing Analyzer

Enable multicornersupport for TimingAnalyzer and EDA NetlistWriter

マルチコーナー・タイミング解析をデフォルトで実行するようTiming Analyzer に指示します。このタイミング解析は、ベストケースとワーストケースの動作条件でデザインを解析します。

Assignments > Settings >Compilation ProcessSettings

Optimization Mode 合成およびフィッティング中におけるコンパイラーの 適化エフォートの焦点を指定します。Balanced ストラテジーを指定するか、Performance、Area、Power、Routability、またはCompile Time に向けて 適化します。

Assignments > Settings >Compiler Settings

SDC Constraint Protection レジスターマージングでの.sdc制約を検証します。このオプションは、コンパイルを介して.sdc制約の有効性を維持する場合に役立ちます。

Assignments > Settings >Compiler Settings >Advanced Settings(Synthesis)

Synchronization RegisterChain Length

コンパイラーが同期チェーンとして認識する行の 大レジスター数を指定します。同期チェーンとは、第 1 のレジスターがピン、または別のクロックドメインのロジックによって供給されるように、同じクロックを持ち、間にファンアウトがないレジスターのシーケンスです。コンパイラーは、これらのレジスターをメタスタビリティー解析に向けて使用します。 コンパイラーは、リタイミングなどの 適化からこれらのレジスターを防ぎます。ゲートレベルのリタイミングが有効な場合、コンパイラーはこれらのレジスターは削除しません。デフォルトの長さは 2 に設定されています。

Assignments > Settings >Compiler Settings >Advanced Settings(Synthesis)

Optimize Design forMetastability

この設定は、平均故障間隔(MTBF)を増加させることでデザインの信頼性を向上させます。この設定を有効にすると、Fitter はデザイン内のシンクロナイザー・レジスターの出力セットアップ・スラックを増加させます。このスラックは、デザインの MTBF を指数関数的に増加させる可能性があります。このオプションは、Timing Analyzer をタイミング・ドリブン・コンパイルに使用する場合にのみ適用されます。デザインで検出されたシンクロナイザーを確認し、MTBF 推定値を生成するには、Timing Analyzer の report_metastabilityコマンドを使用します。

Assignments > Settings >Compiler Settings >Advanced Settings (Fitter)

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

23

Page 24: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -37: Timing Analyzer の設定

2.1.4. 手順 4: タイミング解析を実行する

初のタイミング制約を指定した後、Fitter またはフルコンパイルを実行してタイミング・ネットリストを生成し、Timing Analyzer を実行することができます。コンパイル中、Fitter は指定したタイミング制約に従ってデザインのロジックの配置を試みます。Timing Analyzer は、デザインが各制約を満たしているかどうかを示すマージン(スラック)をレポートします。

1. タイミング・ネットリストを生成するには、次のいずれかを実行します。

• タイミング解析を含むフルコンパイルを実行するには、 Processing > StartCompilation をクリックします。Timing Analyzer は、Fitter が完了した後マルチコーナー・サインオフ・タイミング解析を自動で実行します。

または

• Fitter を実行するには、Processing > Start > Start Fitter の順でクリックします。

2. Timing Analyzer を起動するには、Tools > Timing Analyzer をクリックします。

3. Tasks 画面で Update Timing Netlist をダブルクリックします。Timing Analyzer はタイミング・ネットリストをロードし、プロジェクトのすべての.sdcファイルを読み出し、TimingAnalyzer Summary と Advanced I/O Timing レポートを含むデフォルトのタイミングレポートを生成します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

24

Page 25: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -38: Timing Analyzer のタスク

4. Tasks 画面の Reports で任意の個別のタスクをクリックし、手順 5: タイミング解析結果を分析する (25 ページ)で記載されているようにレポートを生成し、結果を解析します。

図 -39: Timing Analyzer Summary

関連情報• インポートされたコンパイル結果のタイミング解析 (101 ページ)

• Timing Analyzer の Tcl コマンド (96 ページ)

• タイミング解析の基本的なフロー (21 ページ)

• quartus_sta 実行ファイル (96 ページ)

2.1.5. 手順 5: タイミング解析結果を分析する

解析実行中、Timing Analyzer はデザインのタイミングパスの検査、各パスでの伝播遅延の算出、タイミング制約違反のチェックを実行し、ポジティブスラックまたはネガティブラックとしてタイミング結果をレポートします。ネガティブスラックは、タイミング違反が存在することを意味します。ポジティブスラックは、デザインが制約を満たしていることを意味します。

Timing Analyzer は、タイミングパス上の違反の特定および修正に向けて、非常にきめの細かいレポートおよび解析能力を提供します。タイミングレポートを生成して、デザインのクリティカル・パスを 適化する 良の方法を表示します。制約を変更、削除、追加した場合、タイミング解析を再度実行します。この反復プロセスは、設計におけるタイミング違反の解決に役立ちます。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

25

Page 26: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -40: Timing Analyzer はタイミング違反のあるパスを赤色で表示します

成功しなかったタイミング・パフォーマンスは赤字で表示され、成功したタイミング・パフォーマンスは黒字で表示されます。金色のクエスチョンマークは、生成後に SDC が変更されたために古くなってしまったレポートを表します。 新データを表示するには、これらのレポートを再度生成してください。

以下のセクションでは、解析に向けてさまざまなタイミングレポートを生成する方法について説明します。

2.1.5.1. タイミングレポートのコマンド

Timing Analyzer は、Timing Analyzer Summary レポートを含む、使用可能なすべてのレポートのサブセットのみをデフォルトで生成します。ただし、Timing Analyzer の GUI やコマンドライン・コマンドを使用して、その他の詳細なレポートを生成することも可能です。レポートの情報の表示方法はカスタマイズすることができます。

表 5. Timing Analyzer レポート生成コマンド

Timing Analyzer Tasks Pane GUI コマンドライン 生成されるレポート

Custom Reports > Report Timing report_timing タイミングレポート

Custom Reports > Report Exceptions report_exceptions 例外レポート

Diagnostic > Report Clock Transfers report_clock_transfers クロック転送レポート

Slack > Report Minimum Pulse Width Summary report_min_pulse_width 小パルス幅サマリーレポート

Diagnostic > Report Unconstrained Paths report_ucp 制約されていないパスのレポート

関連情報• ::quartus::sta, インテル Quartus Prime Help

• Timing Analyzer Page, インテル Quartus Prime Help

• Intel Quartus Prime Pro Edition User Guide: Design Optimization

2.1.5.2. 動作条件の設定

さまざまな動作条件を指定して、異なる電力および温度範囲でタイミングを解析することができます。マルチコーナー・タイミング解析では、4 つの「タイミングコーナー」を表す 4 つの動作条件が選択可能です。Timing Analyzer は、動作条件の各セットごとに個別のレポートを生成します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

26

Page 27: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

• Slow 900mV 100C Model—タイミング解析に向けて低電圧、高温の動作条件を指定します。

• Slow 900mV 0C Model—タイミング解析に向けて低電圧、低温の動作条件を指定します。

• Fast 900mV 100C Model—タイミング解析に向けて高電圧、高温の動作条件を指定します。

• Fast 900mV 0C Model—タイミング解析に向けて高電圧、低温の動作条件を指定します。

図 -41: Operating Conditions Panel の設定

電圧/温度の組み合わせを選択し、Tasks 画面の Custom Reports から Report Timing をクリックして、そのモデルのタイミング解析レポートを生成します。そのモデルのレポート生成後、他のモデルのリストをダブルクリックして、タイミング・ネットリストを再生成することなく、そのレポートに向けて解析を生成することが可能です。

次のコンテキスト・メニュー・オプションを使用すれば、Report 画面でレポートを生成または再生成することができます。

• Regenerate—選択するレポートを再生成します。

• Generate in All Corners—4 つのコーナーすべてを使用してタイミングレポートを生成します。

• Regenerate All Out of Date—すべてのレポートを再生成します。

• Delete All Out of Date—以前のレポートデータをすべて削除します。

2.1.5.3. Fmax Summary レポート

Fmax Summary レポート画面には、デザイン内の各クロックの 大周波数が表示されます。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

27

Page 28: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -42: Fmax Summary レポート

場合によっては、Fmax Summary に「Limit due to hold check(ホールドチェックによる制限)」が表示される場合があります。 通常、ホールドチェックは同じエッジ関係を持つことからクロック周波数に依存しないため、 大周波数(fMAX)は制限しません。たとえば、ローンチが 0 の場合、ラッチも 0 となります。

ただし、反転クロック転送またはマルチサイクル転送(setup = 2、hold = 0 など)の場合、ホールド関係は同じエッジ転送でなくなり、クロック周波数の上下に伴い変化します。

Restricted Fmax 列の値には、ホールドタイム・チェック、 小周期およびパルス幅チェックによる制限が組み込まれています。ホールドチェックがセットアップ・チェックよりも fMAX を制限する場合、Note列に「Limit due to hold check(ホールドチェックによる制限」として表示されます。

2.1.5.4. Report Timing コマンド

Report Timing コマンドを使用すると、デザイン内の任意のパスまたはクロックドメインのタイミングをレポートするオプションが指定できます。

Timing Analyzer の Report Timing を開くには、次のいずれかを実行します。

• Tasks 画面で Reports > Custom Reports > Report Timing の順でクリックします。

• ノードまたはアサインメントを右クリックし、Report Timing をクリックします。

レポートに含める Clocks、Targets、Analysis Type、および Output オプションを指定することができます。例えば、レポートするパスの数の増加、Target フィルターの追加、From Clock の追加、またはテキストファイルへのレポートの書き込みが実行可能です。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

28

Page 29: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -43: Report Timing ダイアログボックス

表 6. Report Timing のオプション

オプション 説明

Clocks レポート内の From Clock および To Clock フィルターパスは、指定したクロックのローンチとラッチのみを表示します。

Targets From Clock と To Clock のターゲットノードを指定して、このエンドポイントのみを持つパスをレポートします。このオプションに対して、I/O またはレジスター名、あるいは I/O ポートを指定します。このフィールドはワイルドカード文字もサポートしています。例えば、特定の階層内のパスのみをレポートするには、次のコマンドを使用します。

report_timing -from *|egress:egress_inst|* \ -to *|egress:egress_inst|* -(other options)

From、To、または Through ボックスが空白の場合、Timing Analyzer はデバイス内のすべてのターゲットを仮定します。Through オプションは、組み合わせロジック、またはセルの特定のピンを通過するパスのレポートを制限します。

Analysis type Analysis type オプションには、Setup、Hold、Recovery、および Removal があります。

Output Detail level では、解析の出力に含めるパスの種類を指定することができます。Summary level には、基本的なサマリーレポートが含まれます。Data Path タブがクロックツリーを 1 つのラインアイテムとして表示する以外は、Path only はすべての詳細情報を表示します。 Summary レポートの Clock Skew 列を確認します。スキューが +/-150ps より小さい場合、クロックツリーのソースとデスティネーション間のバランスが取れています。

continued...

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

29

Page 30: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

オプション 説明

クロックスキューがこれより大きい場合は、Full path オプションをイネーブルします。このオプションはクロックツリーをより詳細に分割し、入力バッファー、PLL、グローバルバッファー(CLKCTRL_)、および任意のロジックを含むすべてのセルを表示します。デザイン内のクロックスキューの原因を判断するには、このデータを確認します。ソースクロックまたはデスティネーション・クロックのみが FPGA 内部に存在することで、遅延はタイミングを満たすための重要な要素となるため、I/O 解析には Full path オプションを使用します。

Enable multi cornerreports

マルチコーナー・タイミング解析をイネーブルまたはディスエーブルにします。このオプションは、デフォルトでオンになっています。

Report panel name レポート画面の名前を表示します。File name をイネーブルして、情報をファイルに書き込むことが可能です。接尾辞として.htmを追加すると、Timing Analyzer はレポートを HTML として生成します。

Paths エンドポイントとスラックレベルで表示するパスの数を指定します。 Report number of paths のデフォルト値は 10 です。これ以外の場合、レポートは非常に長大となることがあります。ソースとデスティネーションの各ペアに 1 つのパスだけをリストするには、Pairs only をイネーブルします。さらに制限するには、Maximumnumber of paths per endpoints を使用してください。Maximum slack limit フィールドに値を入力して、パスをフィルタリングすることも可能です。

Tcl command 選択した GUI オプションに対応する Tcl 構文を表示します。 Console から Tcl ファイルにコマンドをコピーすることができます。

2.1.5.5. Report CDC Viewer のコマンド

クロック・ドメイン・クロッシング(CDC)ビューアーは、デザイン内のすべてのクロック転送のセットアップ、ホールド、リカバリー、リムーバル解析をグラフィカルに表示します。各解析タイプに向けてこれらのレポートを生成するには、Reports > Diagnostic > Report CDC Viewer の順でクリックします。

図 -44: Setup Transfers レポート

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

30

Page 31: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

表 7. Setup Transfers レポートのコントロール

コントロール 説明

From Clock:および To Clock: 指定したクロックの名称に従って表示内容をフィルタリングします。特定のクロック名を検索するには、From Clock:または To Clock:をクリックします。

Legend ステータスの配色を定義します。色分けされたグリッドは、クロック転送ステータスを表示します。クロックヘッダーには、デザイン内の転送を持つ各クロックをリスト表示します。GUI では長いクロック名は切り詰められますが、ツールティップでフルネームを表示したり、クロック・ヘッダー・セルのサイズを変更したりすることができます。 GUI は、生成されたクロックを親クロックの子として表します。クロック名の横にある「+」アイコンは、生成されたクロックが存在することを示します。クロックヘッダーをクリックすると、そのクロックに関連して生成されたクロックが表示されます。

Toggle Data 各転送セルのテキストには、転送ごとに固有のデータが含まれています。次のタイプのデータの表示をオンまたはオフにします。• クロック間の Number of timed endpoints—転送中のタイムされたエンドポイントに固有のパ

スの数です。「タイムされた」パスとは、そのパスで解析が発生することを意味します。固有のエンドポイントを持つパスのみがこの合計にカウントされます。

• クロック間の Number of cut endpoints—タイムされたパスではなく、切断エンドポイント固有のパスの数です。このようなパスは、フォルスパスまたはクロックグループ割り当てにより切断されます。タイミング解析は、このようなパスはスキップします。

• クロック間の Worst-case slack—転送中のすべてのエンドポイント固有のパスにおけるワーストケースのスラックです。

• クロック間の Total negative slack—転送中のすべてのエンドポイント固有のパスにおけるすべての負のスラックの合計です。

• クロック間の Tightest relationship—この転送で 2 つのクロック間における 低値のセットアップ、ホールド、リカバリー、リムーバル関係です。

Show Filters と Show Legend フィルターと Legend をオン/オフします。

グリッド内の各ブロックは転送セルです。各転送セルは、色とテキストを使用して、転送のパスの重要な詳細を表示します。色分けは、次の状態を表します。

表 8. 転送セルの内容

セルの色 色の意味

黒 転送がないことを示します。このセルのソースクロックとデスティネーション・クロックとの間に交差するパスはありません。

緑 受け渡しのタイミングを示します。この転送では、切断されていないすべてのタイミングパスがタイミング要件を満たしています。

赤 タイミングが成功していないことを示します。転送中の 1 つまたは複数のタイミングパスがタイミング要件を満たしていません。この転送が無関係のクロック間である場合、パスにはシンクロナイザー・チェーンが必要となる可能性があります。

青 クロックグループを示します。これらの転送のソースクロックとデスティネーション・クロックは、非同期クロックグループによって切断されます。

グレー 切断転送を示します。この転送のすべてのパスは、フォルスパスによって切断されます。したがって、タイミング解析ではこれらのパスは考慮されません。

オレンジ アクティブでないクロックを示します。転送中のクロックの 1 つがアクティブでないクロックです(set_active_clocksコマンドを使用)。Timing Analyzer はこのような転送を無視します。

右クリックメニューで、転送セルとクロックヘッダーの操作が実行可能です。操作が Timing Analyzerレポートまたは SDC コマンドの場合、転送セルの内容を含むダイアログボックスが開きます。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

31

Page 32: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

表 9. 転送せるとクロックヘッダーの右クリックメニュー

コマンド 説明

Copy 転送セルまたはクロックヘッダーの内容をクリップボードにコピーします。

Copy (include children) クロックヘッダーの名前とその派生クロックの名前をコピーします。このオプションは、生成されたクロックを持つクロックヘッダーにのみ表示されます。

Report Timing タイミングを報告します。有効なパスを持たない転送セル(グレーまたは黒色のセル)では使用できません。

Report Endpoints エンドポイントを報告します。切断パスを持たない転送セル(グレーまたは黒色のセル)では使用できません。

Report False Path フォルスパスを報告します。有効なパスを持たない転送セル(黒色のセル)では使用できません。

Report Exceptions 例外を報告します。クロックグループ転送(青色のセル)でのみ使用できます。

Report Exceptions(with clock groups)

クロックグループを持つ例外を報告します。クロックグループ転送(青色のセル)でのみ使用できます。

Set False Path false パスの制約を設定します。

Set Multicycle Path マルチサイクル・パスの例外を設定します。

Set Min Delay 小遅延の制約を設定します。

Set Max Delay 大遅延の制約を設定します。

Set Clock Uncertainty クロック不確実性の制約を設定します。

Expand/Collapse AllRows/Columns

グリッド内のすべての派生クロックを表示または非表示にします。

Create Slack Histogram 選択したクロックに対してスラック・ヒストグラム・レポートを生成します。

Report Timing From/ToClock

選択したクロックのタイミングレポートを生成します。派生クロックを表示するためにクロックを展開しない場合、タイミングレポートにはクロックから派生したすべてのクロックが含まれます。これを防ぐには、クロックを右クリックする前に展開してください。

Remove Clock(s) デザインから選択したクロックを削除します。クロックを拡張しない場合、タイミング解析はクロックから派生したすべてのクロックを削除します。

CDC Viewer の出力は、次のいずれかの形式で表示できます。

• Timing Analyzer の Report 画面

• Timing Analyzer Tcl コンソールの出力

• プレーン・テキスト・ファイル

• Web ブラウザーで表示可能な HTML ファイル

2.1.5.6. Report Custom CDC Viewer コマンド

このコマンドを使用すると、カスタム・クロック・ドメイン・クロッシング・レポートのコンフィグレーションおよび表示が可能です。このレポートには、クロック・ドメイン・クロッシング転送のセットアップ、ホールド、リカバリー、およびリムーバル・チェックの結果が表示されます。Timing Analyzer でこのレポートを開くには、Reports > Custom Reports > Report Custom CDC Viewer の順でクリックします。

注意: レポート生成後、Report False Path、Report Timing、および Report Endpoints ダイアログ

ボックスを継続して表示するには、Pushpin ボタン をクリックします。この機能は、レポートの設定を微調整したり、追加のレポートを素早く作成したりする場合に使用します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

32

Page 33: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -45: Report Clock Domain Crossing Viewer ダイアログボックス

解析の種類

CDC Viewer は、Setup、Hold、Recovery、または Removal から任意の組み合わせを解析することが可能です。

Scripting Information

Keyword: report_cdc_viewerSettings: -setup|-hold|-recovery|-removal

Transfer のフィルタリング

デフォルトでは、CDC Viewer レポートにはすべての転送タイプが含まれます。

• Timed transfers—成功または失敗

• Fully cut transfers—すべてのパスがフォルスパスである転送

• Clock groups

• Inactive clocks

これらのオプションを使用すれば、–timed、–fully_cut、–clock_groups、–inactiveのように表示する転送のタイプの指定、およびオプションとしての転送タイプの追加を実行することができます。これらを指定しない場合、すべての転送タイプが表示されます。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

33

Page 34: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

Scripting Information

Keyword: report_cdc_viewerSettings: -timed|-fully_cut|-clock_groups|-inactive

デフォルトでは、他のクロックがローンチまたはラッチするパスをローンチまたはラッチするクロックだけが表示されます。Non-crossing transfers は、そのクロック自体に転送またはそのクロック自体から転送するクロックを表示します。

Scripting Information

Keyword: report_cdc_viewerSettings: -show_non_crossing

注意: グリッド形式のレポートでは、クロッシングしない転送を持つクロックは、これらのクロックが他のクロック間を転送する場合、常に表示されます。

Maximum slack limit ボックスで値を指定すると、その値より小さいスラックを持つパスのみが表示されます。このオプションを指定しない場合、レポートには任意のスラック値のパスが含まれます。

Scripting Information

Keyword: report_cdc_viewerSettings: -less_than_slack

グリッドオプション

グリッド形式のレポートでは、フラットリストまたは生成されたクロックが派生するクロックの子として表示される階層でクロックを表示するようにグリッドを設定できます。このネスト化された表示方法をイネーブルするには、Fold clocks on hierarchy をオンにします。

Scripting Information

Keyword: report_cdc_viewerSettings: -hierarchy

デフォルトでは、どのパスもローンチまたはラッチしないクロックは、グリッド形式のレポートには表示されません。このようなクロックは、Show empty transfers オプションをオンにすることで表示することができます。

Scripting Information

Keyword: report_cdc_viewerSettings: -show_empty

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

34

Page 35: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

出力

レポートを保存する場所とレポートの詳細を指定できます。次のセッティングから 1 つまたは複数選択することができます。

• Report panel name—指定した名前のレポートパネルを生成するように Timing Analyzerに指示します。デフォルトのレポート名は Report Timing です。

Scripting Information

Keyword: report_cdc_viewerSettings: -panel_name<reportname>

• Enable multi corner reports—マルチコーナー・タイミング解析をイネーブルまたはディセーブルします。このオプションは、デフォルトでオンになっています。

Scripting Information

Keyword: report_cdc_viewerSettings: -multi_corner

• File name—指定したファイル名でテキストファイルとしてローカルディスクにレポートを保存します。レポートを HTML 形式で保存するには、ファイル名を「.html」で終了します。

Scripting Information

Keyword: report_cdc_viewerSettings: -file<filename>

• Format—デフォルトのグリッドパネルではなく、クロック転送のリストとして生成するリストを形式化します。

Scripting Information

Keyword: report_cdc_viewerSettings: -list

• File options—Timing Analyzer が既存のファイルを上書き(デフォルト設定)するか、既存のファイルにコンテンツを追加するのかを指定します。

Scripting Information

Keyword: report_cdc_viewerSettings: -append|-overwrite

• Console—Console で情報メッセージとしてレポートを表示するかどうかを指定します。

Scripting Information

Keyword: report_cdc_viewerSettings: -stdout

2.1.5.7. Timing Report に制約を関連付ける

タイミング解析レポートにタイミング制約と違反がどのように報告されるのかを理解することは、結果を理解する上で非常に重要です。次の例は、特定の制約がタイミング解析レポートにどのように影響するかを示しています。 ほとんどのタイミング制約は、クロックのローンチエッジとラッチエッジにのみ影響します。特に、create_clockと create_generated_clockは、デフォルトの関係を持つクロックを作成します。ただし、set_multicycle_path例外は、デフォルトのセットアップとホールドの関係を変更します。 set_max_delayおよび set_min_delay制約は、ローンチエッジとラッチエッジの 大および 小遅延を明示的に示す低レベルのオーバーライドです。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

35

Page 36: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

次の図は、特定のパスで Report Timing を実行した結果を示しています。

次の例では、ソースおよびデスティネーション・レジスターを 10 ns 周期で駆動するクロックがデザインに含まれています。これはコマンドから、10 ns(ローンチエッジ = 0 ns、ラッチエッジ = 10 ns)のセットアップ関係と 0 ns(ローンチエッジ = 0 ns、ラッチエッジ = 0 ns)のホールド関係となります。

create_clock -name clocktwo -period 10.000 [get_ports {clk2}]

図 -46: 10 ns のセットアップ関係と 0 ns のホールド関係

Set_multicycle_path制約は、セットアップ関係を緩和あるはウィンドウを開くためにマルチサイクルを追加し、ホールド関係を 0 ns に保持した状態でセットアップ関係を 20 ns にします。

set_multicycle_path -from clocktwo -to clocktwo -setup -end 2set_multicycle_path -from clocktwo -to clocktwo -hold -end 1

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

36

Page 37: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -47: 20 ns のセットアップ関係

set_max_delayおよび set_min_delay制約は、セットアップ関係を明示的にオーバーライドします。これらの異なる制約で変化する唯一のものは、セットアップおよびホールド解析のローンチエッジ・タイムとラッチエッジ・タイムだけであることに注意してください。他のすべてのラインアイテムは、FPGA 内部の遅延から発生しており、所定の適合のために静的です。これらのレポートを確認して、適用した制約がタイミングレポートにどのように影響するかを分析します。

図 -48: set_max_delay の使用

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

37

Page 38: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -49: set_min_delay の使用

I/O の場合は、-maxおよび-min値を追加する必要があります。この値は、Type 列で iExt またはoExt として表示されます。set_output_delay -max 1.0と set_output_delay -min-0.5を持つ出力ポートなどは、その一例です。

クロック関係は、ローンチエッジ・タイムおよびラッチエッジ・タイム、マルチサイクル、場合によってはset_max_delay制約または set_min_delay制約をも決定します。Timing Analyzer はまた、oExt 値として set_output_delayの値も追加します。出力に対しては、これは解析の外部であるため、この値は Data Required Path の一部となります。左側のセットアップ・レポートが-max値を減算し、Data Arrival Path が Data Required Path よりも短くなければならないため、セットアップ関係を満たすことが困難となります。Timing Analyzer はまた、-min値も減算します。この減算が、負の数がより厳密なホールドタイミングを引き起こす理由です。Data Arrival Path は、DataRequired Path よりも長くする必要があります。

関連情報マルチサイクルを使用したセットアップの緩和(set_multicyle_path) (71 ページ)

2.1.5.8. Design Assistant の推奨事項の表示

Design Assistant を使用して、Hyper-Retimer およびタイミング・クロージャーの準備に向けて所定のデザインルールに照合して インテル Stratix 10 デザインを検証することができます。これらのデザインのルール違反を確認し、違反を修正するためにデザインファイルにクロスプローブすることができます。デザインに適用するルールを選択し、デザインにとって重要でないルールを無効にすることが可能です。Design Assistant 実行前に、Fitter の Plan ステージを実行する必要があります。

注意: Design Assistant はベータ版であり、現行バージョンの インテル Quartus Prime プロ・エディションの インテル Stratix 10 デバイスのみをサポートしています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

38

Page 39: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

Design Assistant の推奨事項を表示および実行するには、次の手順を実行します。

1. Fitter の Plan ステージを実行するには、Processing > Start > Start Fitter (Plan)をクリックするか、または Compilation Dashboard の Plan ステージをクリックします。

2. Timing Analyzer を起動するには、Tools > Timing Analyzer をクリックするか、またはCompilation Dashboard の Plan stage の隣にある Timing Analyzer のアイコンをクリックします。

3. Timing Analyzer の Tasks 画面で、このタスクが完了していないことを示す緑のチェックマークが表示されていない場合、Create Timing Netlist をクリックします。プロンプトが表示されるので、Create Timing Netlist ダイアログボックスで解析に向けて planned スナップショットを選択します。

4. ネットリストがロードされたら、Tasks 画面の Design Assistant フォルダーに位置するReport DRC をダブルクリックします。Report DRC ダイアログボックスが表示されます。DRCは、デザイン・ルール・チェックの略です。

図 -50: Design Assistant Report DRC (Design Rule Check)ダイアログボックス

Disabled rule

Design Rules

Enabled rule

5. Rules では、チェックマークを外して解析に重要ではないルールをディセーブルします。All はすべてのルールをイネーブル、None はすべてのルールをディスエーブルします。

6. Output で Report panel name を確認し、オプションで出力の File name を指定します。

7. Run をクリックします。Summary レポートと(違反が存在する場合)Violations レポートが生成され、Report 画面に表示されます。

8. Summary レポートをクリックすると、デザイン・ルール・チェックに照らし合わせた結果の要約が表示されます。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

39

Page 40: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -51: Design Assistant Summary レポート

Disabled Rule

Failed Rule

9. Violations レポートをクリックすると、すべての違反とソースファイルへのクロスプローブが表示されます。

図 -52: Design Assistant Violations レポート

Tool Tips Show Detailsof Recommendation

10. ソースファイルにクロスプローブするには、青色で示された違反を右クリックし、Locate Node をクリックし、任意のクロスプローブ・オプションを選択クします。例えば、Locate Node >Locate in Design File の順でクリックします。青色のテキストは、RTL にクロスプローブが可能なノードを示しています。

2.1.5.9. 他のツールでのタイミングパスの特定

Timing Analyzer のパスとエレメントは、 インテル Quartus Prime 開発ソフトウェアの他のツールで特定することができます。

Timing Analyzer GUI のほとんどのパス名またはノード名は、右クリックして Locate またはLocate Path コマンドを使用することができます。Timing Analyzer GUI のこのようなコマンドまたは Tcl コンソールの locateコマンドを使用して、他の インテル Quartus Prime ツールでそのノードを特定します。

次の例は、Timing Analyzer から Technology Map Viewer までのワーストケースのタイミングスラックを持つ 10 個のパスを特定し、Chip Planner でデータ*に一致するすべてのポートを特定する方法を示しています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

40

Page 41: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

例-2: Timing Analyzer からの特定

# Locate in the Technology Map Viewer the ten paths with the worst slacklocate [get_timing_paths -npaths 10] -tmv# locate all ports that begin with data in the Chip Plannerlocate [get_ports data*] -chip

関連情報locate Command, インテル Quartus Prime Help

2.2. タイミング制約の使用

次のセクションでは、Fitter の配置をガイドし、正確なタイミング解析を可能にする SDC タイミング制約の正しい適用方法について説明します。.sdcファイルは、 初に推奨される制約を使用して作成し、設計の進行に合わせてこれらの制約を繰り返し変更することが可能です。

2.2.1. 推奨される最初の SDC 制約

初の.sdcファイルには、次の基本的な SDC 制約を含めます。 次の例は、単純なデュアルクロック・デザインに推奨される初期 SDC 制約の適用を示しています。(1)

create_clock -period 20.00 -name adc_clk [get_ports adc_clk]create_clock -period 8.00 -name sys_clk [get_ports sys_clk]

derive_pll_clocks

derive_clock_uncertainty

Create Clock (create_clock) (41 ページ)

Derive PLL Clocks (derive_pll_clocks) (42 ページ)

Derive Clock Uncertainty (derive_clock_uncertainty) (43 ページ)

Set Clock Groups (set_clock_groups) (43 ページ)

2.2.1.1. Create Clock (create_clock)

Create Clock (create_clock)制約を使用すると、デザイン内のクロックのプロパティーと要件を定義することができます。デザインのパフォーマンスを決定するにはクロック制約を定義し、FPGA からの外部クロックを含める必要があります。制約は、Timing Analyzer GUI または直接 .sdcファイルに入力が可能です。

Clock name (-name)、 Clock Period (-period)、立ち上がりおよび立下りの Waveformedge 値(-waveform)、および制約を適用するターゲット信号を指定します。

次のコマンドは、8 ns 周期の sys_clkクロックを作成し、そのクロックを fpga_clkポートに適用しています。

create_clock -name sys_clk -period 8.0 \ [get_ports fpga_clk]

(1) インテル Arria® 10 および インテル Cyclone® 10 GX デバイスのみが Derive PLL Clocks(derive_pll_clocks)制約をサポートしています。サポートされている他のすべてのデバイスでは、TimingAnalyzer が関連する IP に結びつけられた制約から PLL クロックを自動で生成します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

41

Page 42: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

注意: Tcl および.sdcファイルでは、大文字と小文字が区別されます。ピン、ポート、またはノードの参照先が、デザイン内の名前の大文字と小文字に一致していることを確認してください。

デフォルトのクロックは、立ち上がりエッジが 0 ns、デューティー・サイクルが 50%、立下りエッジが 4ns です。これとは別のデューティー・サイクルが必要な場合、またはオフセットを表現する必要がある場合は、-waveformオプションを指定します。

通常は、クロック名には指定したポートと同じ名称を使用します。上記の例の場合、次の制約で実行しています。

create_clock -name fpga_clk -period 8.0 [get_ports fpga_clk]

この例では、デザイン内のポートおよびそのポートに適用されたクロックの fpga_clkと呼ばれる 2つの固有のオブジェクトが含まれています。

注意: Tcl 構文では、角括弧はその中のコマンドを実行します。[get_ports fpga_clk]は、fpga_clkに一致するデザイン内のすべてのポートのコレクションを検索して返すコマンドを実行します。次の例のように、get_ports collection コマンドを使用せずともコマンドを入力することが可能です。

create_clock -name sys_clk -period 8.0 fpga_clk

警告: Timing Analyzer で定義する制約は、タイミングデータベースに直接適用されますが、 .sdcファイルに自動的には転送されません。GUI からの制約の変更内容を.sdcファイルに保存するには、TimingAnalyzer の Tasks 画面の Write SDC File をクリックします。

関連情報ベースクロックの作成 (49 ページ)

2.2.1.2. Derive PLL Clocks (derive_pll_clocks)

Derive PLL Clocks (derive_pll_clocks)制約は、デザイン内の PLL の各出力のクロックを自動的に作成します。

注意: インテル Arria 10 デバイスと インテル Cyclone 10 GX デバイスだけが Derive PLL Clocks(derive_pll_clocks)制約をサポートしています。サポートされている他のすべてのデバイスでは、Timing Analyzer が関連する IP に結びつけられた制約から PLL クロックを自動で生成します。

PLL がクロック・スイッチオーバー(inclk[0]入力クロックピンに対して 1 つのクロック、inclk[1]入力クロックピンに対して 1 つのクロック)を使用している場合、制約は各出力クロックピンに複数のクロックを生成できます。PLL の入力でベースクロックをデフォルトで作成するには、Create baseclocks (-create_base_clocks)オプションを指定します。デフォルトでは、クロック名は出力クロックピン名と同じです。つまり、そのネット名を使用するには、Use net name as clock name (-use_net_name)オプションで指定する必要があります。

create_clock -period 10.0 -name fpga_sys_clk [get_ports fpga_sys_clk] \ derive_pll_clocks

PLL を作成する際、各 PLL 出力のコンフィグレーションを定義する必要があります。この定義により、Timing Analyzer は derive_pll_clocksコマンドを使用して PLL を自動的に制約します。また、このコマンドはトランシーバー・クロックを制約し、LVDS SERDES とユーザーロジックとの間にマルチサイクルを追加します。

derive_pll_clocksコマンドは、Info メッセージを出力し、コマンドが生成した各生成クロックを表示します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

42

Page 43: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

derive_pll_clocksを使用する代わりに、各 create_generated_clock割り当てを.sdcファイルにコピー&ペーストすることができます。ただし、後で PLL 設定を変更する場合は、生成されたクロック制約も.sdcファイルで変更する必要があります。この種の変更の例には、既存の出力クロックの変更、新しい PLL 出力の追加、または PLL の階層への変更が含まれます。derive_pll_clocksを使用することで、この要件が除外されます。

関連情報• ベースクロックの作成 (49 ページ)

• PLL クロックの駆動 (55 ページ)

2.2.1.3. Derive Clock Uncertainty (derive_clock_uncertainty)

Derive Clock Uncertainty (derive_clock_uncertainty制約は、デザインにおけるクロック間転送のセットアップおよびホールドクロック不確実性を適用します。この不確実性は、PLL ジッターやクロックツリー・ジッターをはじめとする不確実性要因などを表します。

Add clock uncertainty assignment (-add)制約をイネーブルすれば、任意の Set ClockUncertainty (set_clock_uncertainty)制約からクロック不確実性値を追加することができます。Overwrite existing clock uncertainty assignments (-overwrite)は、任意のset_clock_uncertainty制約を上書きすることができます。

create_clock -period 10.0 -name fpga_sys_clk [get_ports fpga_sys_clk] \ derive_clock_uncertainty -add - overwrite

Timing Analyzer は、.sdcファイルから derive_clock_uncertaintyが省略されていることを警告するメッセージを生成します。

関連情報クロック作用の特性を考慮に入れる (60 ページ)

2.2.1.4. Set Clock Groups (set_clock_groups)

Set Clock Groups (set_clock_groups)制約を使用すると、デザイン内で無関係となるクロックを指定できます。デフォルトでは、Timing Analyzer は、共通のベースまたは親クロックを持つクロックはすべて関連付けられており、これらのクロックドメイン間のすべての転送はタイミング解析に向けて有効であると仮定します。クロックグループを切断することによって、特定のクロックドメイン間の転送をタイミング解析から除外できます。

逆に、共通のベースまたは親クロックを持たないクロックは常に無関係であると仮定されますが、これらクロックが異なるクロックグループでない限り(あるいはこれらすべてのパスがフォルスパス制約で切断されている場合)、このようなクロック間の転送はタイミング解析に含まれます。

クロック信号のグループを定義した後で、各グループ間の関係を定義します。各グループ(-group)に含めるクロック信号を定義し、これらのグループがそれぞれ Logically exclusive (-logically_exclusive)、Physically exclusive (-physically_exclusive、あるいは Asynchronous ( -asynchronous)であるかどうかを指定します。

set_clock_groups -asynchronous -group {<clock1>...<clockn>} ... \ -group {<clocka>...<clockn>}

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

43

Page 44: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

• -logically_exclusive—多重化クロックなどの論理的に排他的で、同時にアクティブではないクロックを定義します。

• -physically_exclusive—物理的に排他的で、同時にアクティブではないクロックを定義します。

• -asynchronous—それぞれに異なる理想的なクロックソースを持つ完全に無関係のクロックを定義します。フラグは、クロックが両方ともスイッチングしているが、同期的にテータを渡すことはないことを意味します。

たとえば、8 ns クロックと 10 ns クロックとの間にパスが存在する場合、クロックが完全に非同期であっても、ユーザーがこの 2 つのクロックが関連していないことを指定しない限り、Timing Analyzer はこれらのクロック間の 2 ns のセットアップ関係を満たそうとします。

Set Clock Groups ダイアログボックスでは 2 つのクロックグループのみが許可されますが、.sdcファイル内には無制限の-group {<group of clocks>}オプションを指定することが可能です。割り当てから無関係なクロックを省略する場合、Timing Analyzer は保守的に動作し、クロックが接続されている他のすべてのドメインとのコンテキストでそのクロックを解析します。

Timing Analyzer は現行では、クロストークは明示的に解析しません。代わりに、タイミングモデルはクロストークに起因する潜在的な遅延を考慮に入れて、余分のガードバンドを使用します。TimingAnalyzer は、-asynchronousオプションと-exclusiveオプションを同様に処理します。

1 つのクロックを単一の割り当てで複数のグループ内(-group)に指定することは不可能です。ただし、複数の set_clock_groups割り当てを指定することは可能です。

クロック間のタイミングを切断する別の方法は、set_false_pathを使用することです。sys_clkと dsp_clkとの間のタイミングを切断するには、次を使用することができます。

set_false_path -from [get_clocks sys_clk] -to [get_clocks dsp_clk]

set_false_path -from [get_clocks dsp_clk] -to [sys_clk]

この技法は、少数のクロックしか存在しない場合には有効ですが、多数の制約がある場合は管理が困難となります。複数の出力を持つ 3 つの PLL を有するシンプルなデザインでは、set_clock_groupsコマンドは関連するクロックを 10 行未満で表示することができます。set_false_pathコマンドは、50 行以上を使用する場合があります。

関連情報• 生成クロックの作成(create_generated_clock) (53 ページ)

• マルチサイクルを使用したセットアップの緩和(set_multicyle_path) (71 ページ)

• 位相シフトの考慮(-phase) (72 ページ)

2.2.2. SDC ファイルの優先順位

フィッティングとタイミング解析中に読み込まれるように、作成した.sdcファイルをプロジェクトに追加する必要があります。Fitter と Timing Analyzer は、.qsfに表示される順序で.sdcファイルを処理します。.qsf内に.sdcが表示されない場合、 インテル Quartus Prime 開発ソフトウェアはプロジェクト・ディレクトリー内の<current revision>.sdcという名称で.sdcを検索します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

44

Page 45: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -53: .sdc ファイルの優先順位

Is one or more .sdc file specified in the .qsf?

No

Yes

Does an .sdc named<current revision>.sdc

exist in the projectdirectory?

No

Yes

Analyze the design

Settings > Timing Analyzer をクリックして、手順 3: 一般的な Timing Analyzer の設定を指定する (22 ページ)で説明されているように、プロジェクト内の.sdcファイルの処理順序を変更します。

.sdcファイルの作成に インテル Quartus Prime Text Editor を使用する場合、オプションの Addfile to the project はファイルを保存する際、デフォルトでイネーブルされます。.sdcファイルの作成にそれ以外のエディターを使用する場合、プロジェクトにファイルを追加する必要があります。

.sdcファイルには、タイミング制約コマンドのみを含める必要があります。タイミング・ネットリストを操作する Tcl コマンドあるいはコンパイルを制御する Tcl コマンドは、別の Tcl スクリプトに分ける必要があります。

注意: read_sdcコマンドを引数なしてコマンドラインで入力すると、Timing Analyzer は HDL ファイルに埋め込まれている制約を読み取り、.sdcファイルの優先順位に従って実行します。

2.2.3. 制約を繰り返し修正する

デザインに対して 適な制約が適用されるように、.sdc制約を繰り返し修正し、タイミング結果を再度解析することができます。

制約を繰り返し修正するには、次の手順を実行します。

1. Tools > Timing Analyzer をクリックします。

2. 解析するレポートを生成します。Macros の Report All Summaries をダブルクリックして、セットアップ、ホールド、リカバリー、およびリムーバブルのサマリー、 小パルス幅チェック、定義したすべてのクロックのリストを生成します。これらのサマリーには、デザイン内で制約するすべてのパスが含まれます。制約を変更または修正を実行するたびに、デザイン内で制約されていない箇所や無視されている制約を特定するために、Diagnostic レポートを生成してください。

3. レポートの結果を分析します。制約を変更するときは、予期せぬ結果を特定するためにレポートを再実行してください。たとえば、クロス・ドメイン・パスは、クロックグループにクロックを含めたために、転送を切断し忘れたことを示すことがあります。

4. .sdcファイル内に適切な制約を作成または編集し、そのファイルを保存します。

5. Tasks 画面で Reset Design をダブルクリックします。これにより、すべての制約がデザインから削除されます。デザインからすべての制約を削除すると、ユーザーによる変更を含む、.sdcファイルを再度読み取ることが可能となります。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

45

Page 46: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

6. 解析するレポートを再生成します。

7. 結果を再解析します。

8. 必要に応じて手順 4-7 を繰り返します。

この方法は、論理配置を変更することなく、新しい制約を使用してタイミング解析を実行します。 Fitterは配置配線に元の制約を使用しますが、Timing Analyzer は新しい制約を適用します。新しい制約に対して成功しないタイミングがある場合は、配置配線を再度実行する必要があることを意味します。

関連情報マルチサイクルを使用したセットアップの緩和(set_multicyle_path) (71 ページ)

2.2.4. エンティティーにバインドされた SDC ファイルの使用

インテル Quartus Prime プロ・エディション タイミング・アナライザーは、プロジェクト内の特定のデザイン・エンティティー(モジュール)への Synopsys Design Constraints (.sdc)ファイルの割り当てをサポートしています。従来、.sdcファイルで指定するタイミング制約は、プロジェクトでグローバルに適用されます。ただし、.qsfで SDC_ENTITY_FILE割り当てを指定して、デザイン・エンティティーに.sdcファイルをバインドすることができます。さらに、すべての インテル Stratix 10 FPGA IP コアは、エンティティーにバインドされた.sdc制約を自動的に使用します。エンティティーにバインドされた制約を使用することで、タイミング制約を指定する際の精度ならびにデザインブロックまたは IP を有するタイミング制約の移植性が向上します。

• タイミング制約の移植性—割り当てられたエンティティーを含むすべてのデザイン・パーティションには、エンティティーにバインドされた.sdc制約が自動で含まれス。Include entity-boundSDC files (--include_sdc_entity_in_partition)オプションを使用してエスポートするパーティションで、これらの制約のエクスポートをオプションで指定することも可能です。これにより、合成されたデザインブロックあるいは 終的なデザインブロック、またはタイミング制約を持つ IP パッケージをハンドオフできます。

• タイミング制約の精度—タイミング制約をグローバルではなく特定のエンティティーだけに適用することで、制約の入力を簡素化します。この手法を使用することで、特にワイルドカード(*)タイミング制約を使用する際に、適用するグローバル制約の想定を超える予期せぬ副作用を回避します。デフォルトでは、エンティティーにバインドされた.sdc制約は、プロジェクト内の割り当てられたエンティティーのすべてのインスタンスに自動的に適用されます。または、デフォルトですべての制約をグローバルに適用し、エンティティーにバインドされた制約のスコープ (47 ページ)で説明されているように get_current_instanceコマンドを使用して、現在のエンティティーのみをターゲットとするよう制約を選択することが可能です。

指定した.sdcファイルに指定したエンティティーをバインドするには、.qsfに次の割り当てを追加します。

QSF 割り当て構文

set_instance_assignment -entity <entity_name> -name \ SDC_ENTITY_FILE <sdc_file_name> -no_sdc_promotion –no_auto_inst_discovery

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

46

Page 47: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

次のオプションは、SDC_ENTITY_FILEコマンドに適用されます。

• -no_sdc_promotion –no_auto_inst_discovery—制約のスコーピングをオフにします。Timing Analyzer は、各エンティティー.sdcファイルを一度読み込み、コレクション・フィルターは変更しません。get_current_instanceは、空の文字列を返します。

• -no_sdc_promotion—マニュアル・プロモーションをオンにします。Timing Analyzer は、各バウンド・インスタンスでエンティティー.sdcファイルを一度読み込み、get_current_instanceは値を返します。Timing Analyzer は、コレクション・フィルターは修正しません。

• No options—制約の自動スコーピングをイネーブルします。Timing Analyzer は各バウンド・インスタンスでエンティティー.sdcファイルを一度読み込み、get_current_instanceは値を返します。クロックおよびトップレベル・ポート・フィルターを除くコレクション・フィルターに、現在のインスタンスの階層パス(すなわち、get_current_instanceの戻り値)が先頭に追加されます。

2.2.4.1. エンティティーにバインドされた制約のスコープ

エンティティーにバインドされた.sdcファイルには、プロジェクト内で自動スコープまたは手動スコープを設定することが可能です。このスコープは、適用される制約の範囲を決定します。自動スコープは、デフォルトで適用されます。

表 10. エンティティーにバインドされた制約のスコープ

制約のスコープの種類 適用される制約 インスタンスにバインドされたスコーピングの実行方法

自動 トップレベル・ポート(get_ports)およびクロック名(get_clocks)を除き、プロジェクト全体に割り当てられたエンティティーの全インスタンス。

SDC_ENTITY_FILEのデフォルトモードです。追加の設定手順はありません。

手動 グローバルスコープを持つトップレベル・ポートおよびクロック名を除く、割り当てられたエンティティーの現在のインスタンス。収集フィルターにインスタンス・スコープを設定するget_current_instanceをプリペンドしない限り、コレクション・フィルターもグローバルフィルターを持ちます。

コレクション・フィルターをget_current_instance.でプリペンドします。

次の制約の例は、手動による制約のスコーピングに対して、get_current_instanceを使用して現在のエンティティーに階層パスを戻す方法を示しています。

set_false_path –from [get_registers "reg_a"] –to \ [get_pins “[get_current_instance]|*reset”]

注意: get_コマンド(get_keepersなど)のいずれかを使用せずに-from *または-to *オプションを使用する場合、このようなフィルターには制約のスコープは発生しません(つまり、スコーピングは *の収集フィルターでは実行されないにもかかわらず、同じ SDC コマンドの他の収集フィルターでスコーピングが発生する可能性があります)。

2.2.4.2. エンティティーにバインドされた制約の例

次の例は、エンティティーにバインドされた制約の自動スコープおよび手動スコープを表しています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

47

Page 48: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -54: 自動スコープの例

A

1

0

1

0 C

B

“|”X S T

inY

次の表は、ページ 48 に適用されている制約の自動スコープを表しています。

表 11. 制約の自動スコープの例

制約の例 インスタンス X|Y に対する自動スコープ制約の解釈

set_false_path -from [get_keepers a] set_false_path -from [get_keepers X|Y|a]

set_false_path -from [get_registers a] -to“*”

set_false_path -from [get_registers X|Y|a]

set_false_path –from [get_clocks clk_1] –to [get_clocks clk_2]

set_false_path –from [get_clocks clk_1] –to[get_clocks clk_2]

set_max_delay –from [get_ports in] -to[get_registers A] 2.0

set_max_delay –from [get_ports in] -to[get_registers X|Y|A] 2.0

get_ports * get_ports *

get_clocks * get_clocks *

get_ports a get_ports a

get_clocks a get_clocks a

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

48

Page 49: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -55: 手動スコープの例

inner

div

a b

div

c

d

1

0 e

a b

1

0

c

d

1

0 e

1

0

c

d

1

0 e

1

0

inner

i3

i1

i2inclk

“|”

次の表は、ページ 49 に適用されている制約の手動スコープを表しています。

表 12. 制約の手動スコープの例

制約の例 手動スコープ制約の解釈

set_false_path –from [get_current_instance]\ |d –to [get_current_instance]|e

set_false_path –from i1|inner|d –to i1|inner|eset_false_path –from i2|inner|d –to i2|inner|e \set_false_path –from i3|d –to i3|e

create_generated_clock –divide_by 2 –source \ [get_ports inclk] –name \ [get_current_instance]_divclk \ [get_current_instance]|div set_multicycle_path –from [get_current_instance]\ |a –to [get_current_instance]|b 2

create_generated_clock –divide_by 2 –source \ [get_ports inclk] –name “i1_divclk” i1|divset_multicycle_path –from i1|a –to i1|b 2 \create_generated_clock –divide_by 2 –source \ [get_ports inclk] –name “i2_divclk” i2|divset_multicycle_path –from i2|a –to i2|b 2

2.2.5. クロック制約の作成

すべてのクロック、および関連するクロックの特性(不確実性、レイテンシー、スキューなど)を定義する必要があります。Timing Analyzer は、次のようなさまざまなクロッキング・スキームに適応する.sdcコマンドがサポート可能です。

• ベースクロック

• 仮想クロック

• マルチ周波数クロック

• 生成クロック

2.2.5.1. ベースクロックの作成

ベースクロックは、デバイスの主要な入力クロックです。Create Clock (create_clock)制約を使用すると、デザイン内のクロックのプロパティーと要件を定義できます。デバイス(オンチップ PLL など)内で生成されるクロックとは異なり、ベースクロックはオフチップ・オシレーターによって生成されるか、

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

49

Page 50: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

外部デバイスから転送されます。生成されるクロックやその他の制約は、しばしばベースクロックとして参照されるため、ベースクロックは.sdcファイルの 上部で定義してください。Timing Analyzer は、未定義のクロックを参照する制約はすべて無視します。

次の例は、 create_clock制約の一般的な使用方法を示しています。

create_clock コマンド

次のコマンドは、clk_sys入力クロックポートに 100 MHz の要件を指定しています。

create_clock -period 10 -name clk_sys [get_ports clk_sys]

90 度シフトされた 100 MHz のクロックの作成

次のコマンドは、50%のデューティーサイクルを持ち、90 度位相シフトされ、ポート clk_sysに適用される 10 ns のクロックを作成します。このタイプのクロック定義は一般に、ソース同期で、クロックに関して中央に揃えられているダブルレートのデータを意味します。

create_clock -period 10 -waveform { 2.5 7.5 } [get_ports clk_sys]

同一のクロックポートを駆動する 2 つのオシレーター

-addオプションを使用すれば、同一のターゲットに複数のクロックを適用することが可能です。たとえば、2 つの異なる周波数で同じクロック入力を駆動するように指定するには、.sdcファイルに次のコマンドを入力します。

create_clock -period 10 -name clk_100 [get_ports clk_sys]create_clock -period 5 -name clk_200 [get_ports clk_sys] -add

1 つのポートに 2 つ以上のベースクロックを定義することは一般的ではありませんが、デザインに適切であれば、必要なだけベースクロックを定義することが可能です。 初のクロックの後、すべてのクロックに-addを指定してください。

マルチ周波数クロックの作成

デザインに単一のクロックノードを供給するクロックソースが複数存在する場合は、マルチ周波数クロックを作成する必要があります。追加のクロックは、プライマリー・クロックよりも低い周波数を持つ低電力クロックとして動作します。デザインに複数のマルチ周波数クロックを使用する場合、排他的クロックを定義するには、set_clock_groupsコマンドを使用してください。

1 つのクロックノードに複数のクロックを作成するには、-addオプションを持つ create_clockコマンドを使用してください。クロックポート clkに適用される 10 ns のクロックを作成し、その同じクロックポートに別に 15 ns のクロックを追加することができます。Timing Analyzer は両方のクロックを解析します。

create_clock –period 10 –name clock_primary –waveform { 0 5 } \ [get_ports clk]create_clock –period 15 –name clock_secondary –waveform { 0 7.5 } \ [get_ports clk] -add

関連情報クロック作用の特性を考慮に入れる (60 ページ)

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

50

Page 51: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

2.2.5.1.1. 自動クロック検出および制約の作成

デザインでベースクロックを自動で作成するには、derive_clocksコマンドを使用します。このderive_clocksコマンドは、レジスターのクロックピンを供給する各レジスターまたはポートに対して create_clockコマンドを使用することに相当します。derive_clocksコマンドは、デザイン内のすべてのレジスターにクロック制約があることを保証するために、ポートまたはレジスターにクロック制約を作成し、デザイン内のすべてのベースクロックに 1 つの周期を適用します。

次のコマンドは、制約されていないベース・クロック・ノードに向けて、100 MHz の要件を持つベースクロックを指定します。

derive_clocks -period 10

警告: 後のタイミングサインオフには derive_clocksコマンドは使用しないでください。代わりに、create_clockコマンドと create_generated_clockコマンドを使用してすべてのクロックソースにクロックを作成します。デザインに 1 つ以上の単一クロックが存在する場合、derive_clocksコマンドはすべてのクロックを指定された同じ周波数に制約します。デザインのタイミング要件を徹底的かつ現実的に解析するには、デザイン内のすべてのクロックに個別のクロック制約を設定します。

ベースクロックを自動で作成する場合は、-create_base_clocksオプションをderive_pll_clocksに使用します。このオプションを使用すると、derive_pll_clocksコマンドは、PLL 生成時に指定した入力周波数の情報に基づいて、各 PLL にベースクロックを自動的に作成します。この機能は、単純なポート―PLL 間の接続に有効です。カスケード化された PLL などの複雑なPLL 接続では、ベースクロックは自動では生成されません。すべての PLL 入力に向けて入力クロックを自動的に作成するには、derive_pll_clocks -create_base_clocksコマンドも使用可能です。

2.2.5.2. 仮想クロックの作成

仮想クロックとは、デザインに実際のソースが存在しないクロック、またはデザインと直接相互作用しないクロックのことです。 I/O 制約で仮想クロックを使用することで、FPGA に接続された外部デバイスのクロックを表すことができます。

仮想クロックを作成するには、<targets>オプションに対して値を持たない create_clock制約を使用します。

次の例は、コマンドに<targets>が含まれていないため、100 Mhz の仮想クロックを定義しています。

create_clock -period 10 -name my_virt_clk

仮想クロックを使用した I/O 制約

次の図で示される出力回路の場合、FPGA 内の回路を制約するにはベースクロックを使用し、外部デバイスを駆動するクロックを表現するには仮想クロックを使用することができます。次の図は、下記の仮想クロック制約の例に向けたベースクロック(system_clk)、仮想クロック(virt_clk)、出力遅延を表しています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

51

Page 52: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -56: 仮想クロックのボードトポロジー

FPGA External Device

system_clk virt_clk

reg_a reg_bdataout

datain

次のコマンドは、デューティーサイクルが 50%で、 初の立ち上がりエッジが 0 ns で発生する 10 nsvirt_clkの仮想クロックを作成します。この仮想クロックは、出力遅延制約のクロックソースとなります。

例-3: 仮想クロックの制約

#create base clock for the designcreate_clock -period 5 [get_ports system_clk]#create the virtual clock for the external registercreate_clock -period 10 -name virt_clk#set the output delay referencing the virtual clockset_output_delay -clock virt_clk -max 1.5 [get_ports dataout]set_output_delay -clock virt_clk -min 0.0 [get_ports dataout]

関連情報• set_input_delay Command, インテル Quartus Prime Help

• set_output_delay Command, インテル Quartus Prime Help

2.2.5.2.1. I/O インターフェイスの不確実性の指定

仮想クロックはデザインのクロッキング・トポロジーを も正確に表現するため、I/O 制約に向けての使用が推奨されます。もう 1 つの利点は、外部 I/O ポートと相互作用するクロックおよび FPGA 内でレジスター間パスを供給するクロックで、異なる不確実性値が指定できることです。

2.2.5.2.2. I/O インターフェイスのクロック不確実性の例

I/O インターフェイスの不確実性を指定するには、仮想クロックを作成し、その仮想クロックを参照する入力ポートと出力ポートを set_input_delayコマンドと set_output_delayコマンドを使用して制約する必要があります。

set_input_delayコマンドあるいは set_output_delayコマンドがクロックポートまたはPLL 出力を参照している場合、仮想クロックは derive_clock_uncertaintyコマンドが内部クロック転送と I/O インターフェイス・クロック転送に別々のクロック不確実性を適用することを可能とします。

次の例に示すように、I/O ポートを駆動しているオリジナルのクロックと同じプロパティーで仮想クロックを作成します。

例-4: I/O インターフェイスを制約する SDC コマンド

# Create the base clock for the clock portcreate_clock -period 10 -name clk_in [get_ports clk_in]# Create a virtual clock with the same properties of the base clock# driving the source register

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

52

Page 53: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

create_clock -period 10 -name virt_clk_in# Create the input delay referencing the virtual clock and not the base# clock# DO NOT use set_input_delay -clock clk_in <delay value># [get_ports data_in]set_input_delay -clock virt_clk_in <delay value> [get_ports data_in]

2.2.5.3. 生成クロックの作成(create_generated_clock)

Create Generate Clock (create_generated_clock)制約を使用すると、デザイン内の内部生成クロックのプロパティーと制約が定義できます。Clock name (-name)、クロックが生成される Source ノード(-source)、および Relationship to the source プロパティーを指定します。位相、周波数、オフセット、デューティーサイクルを含むクロック信号のプロパティーを変更するノードに向けて生成クロックを定義します。

生成クロックは、PLL の出力、レジスター・クロック・ディバイダー、クロック mux、ソース・シンクロナスおよびメモリー・インターフェイスなどの FPGA 出力ポートから他のデバイスに転送されるクロックに適用されることが も一般的です。.sdcファイルで、ベースクロックの定義の後に生成クロックを入力します。生成クロックは、生成クロックのターゲットに対するすべてのクロック遅延およびクロック・レイテンシーを自動的に考慮します。

-sourceオプションは、生成クロックのリファレンスとして使用するクロックパス内のノードの名前を指定します。生成クロックのソースは、以前に定義したクロックの名前ではなく、デザイン・ネットリスト内のノードでなければいけません。生成クロックのターゲットの入力クロックピンとリファレンス・クロックのターゲットノードの間のクロックパス上の任意のノード名を、ソースノードとして使用できます。

ターゲットノードの入力クロックピンを新しく生成されたクロックのソースとして指定します。生成クロックのソースは、クロックソースの名前と階層から切り離されます。クロックソースを変更する場合、生成クロックの制約を編集する必要はありません。

生成クロックのソースである、ノードを供給するベースクロックが複数存在する場合、複数の生成クロックを定義する必要があります。それぞれの生成クロック宣言で-master_clockオプションを使用して、それぞれの生成クロックを 1 つのベースクロックと関連付けます。場合によっては、生成クロックは組み合わせロジックを生成します。

クロック変更ロジックの合成方法によって、信号名はあるコンパイルから次のコンパイルで変更することがあります。生成クロックの制約を書き込んだ後に名前が変更された場合、そのターゲット名はデザイン内に存在しないため、コンパイラーはその生成クロックを無視します。この問題を回避するには、合成属性または合成割り当てを使用して、クロック変更ロジックの 終的な組み合わせノード名を保持します。次に、その保持された名前を生成クロックの制約に使用します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

53

Page 54: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -57: Clock-As-Data の例

終的にレジスターの入力データを供給するノードで生成クロックを作成すると、「Clock-As-Data」と呼ばれる特別なケースが発生します。Timing Analyzer は、Clock-As-Data を別の方法で処理します。たとえば、DDR と Clock-As-Data を使用する場合、クロックの立ち上がりと立下りの両方を考慮する必要があります。Timing Analyzer は立下りと立下りの両方をレポートします。Clock-As-Data では、コンパイラーは From Node を生成クロックのターゲットとして処理し、Launch Clock を生成クロックとして処理します。

ページ 54 では、toggle_clk (INVERTED)から clkまでが 初のパスで、toggle_clkからclkまでが 2 番目のパスです。両方のケースでスラックは、パスに沿う立ち上がり時間と立ち下がり時間の差によりわずかに異なります。Data Delay カラムは、~5 ps の差をレポートしています。スラック値が も低いパスのみ考慮する必要があります。Timing Analyzer は、立ち上がりと立ち下がり間のワーストケースのパスのみをレポートします。この例では、レジスター出力の生成クロックを定義しなければ、タイミング解析は も低いスラック値を持つ 1 つのパスしかレポートしません。

derive_pll_clocksコマンドを使用すれば、すべての PLL クロック出力に向けて自動でクロックが生成可能です。PLL 出力の生成クロックのプロパティーは、PLL に向けて定義するプロパティーと一致します。

関連情報• PLL クロックの駆動 (55 ページ)

• create_generated_clock

• derive_pll_clocks

2.2.5.3.1. クロック・ディバイダーの例(-divide_by)

生成クロックの一般的な形式は、2 分周レジスター・クロック・ディバイダーです。次の制約の例は、2 分周レジスターにハーフ・レート・クロックを生成します。

create_clock -period 10 -name clk_sys [get_ports clk_sys]create_generated_clock -name clk_div_2 -divide_by 2 -source \ [get_ports clk_sys] [get_pins reg|q]

クロックソースとしてレジスターのクロックピンを指定するには、次を実行します。

create_clock -period 10 -name clk_sys [get_ports clk_sys]create_generated_clock -name clk_div_2 -divide_by 2 -source \ [get_pins reg|clk] [get_pins reg|q]

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

54

Page 55: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -58: クロック・ディバイダー

reg

clk_sys

図 -59: クロック・ディバイダーの波形

1 2 3 4 5 6 7 8Edges

clk_sys

clk_div_2

0 10 20 30Time

2.2.5.3.2. クロック・マルチプレクサの例

クロック・マルチプレクサ(mux)の出力は、生成クロックの 1 つの形式です。各入力クロックは、出力で1 つの生成クロックを必要とします。次の.sdcの例には、デザイン内ではこの 2 つの生成クロックは同時にはアクティブとはなり得ないことを示す set_clock_groupsも含まれています。したがって、Timing Analyzer は、クロック mux の出力における生成クロック間のクロス・ドメイン・パスを解析しません。

図 -60: クロック mux

clk_b

clk_a mux_out

create_clock -name clock_a -period 10 [get_ports clk_a]create_clock -name clock_b -period 10 [get_ports clk_b]create_generated_clock -name clock_a_mux -source [get_ports clk_a] \ [get_pins clk_mux|mux_out]create_generated_clock -name clock_b_mux -source [get_ports clk_b] \ [get_pins clk_mux|mux_out] -addset_clock_groups -exclusive -group clock_a_mux -group clock_b_mux

2.2.5.4. PLL クロックの駆動

Derive PLL Clocks (derive_pll_clocks)制約は、デザイン内の PLL の各出力に向けてクロックを自動で作成します。derive_pll_clocksは現在の PLL 設定を検出し、create_generated_clockコマンドを呼び出すことで各 PLL の出力に生成クロックを自動で作成します。

注意: インテル Arria 10 および インテル Cyclone 10 GX デバイスだけが Derive PLL Clocks(derive_pll_clocks)制約をサポートしています。サポートされている他のすべてのデバイスでは、Timing Analyzer が関連する IP に結びつけられた制約から PLL クロックを自動で生成します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

55

Page 56: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

PLL 入力クロックポートに向けたベースクロックの作成

デザインにトランシーバー、LVDS トランスミッター、LVDS レシーバーが含まれている場合は、derive_pll_clocksを使用してデザイン内のこのロジックを制約し、これらのブロックに向けてタイミング例外を作成します。

create_clock -period 10.0 -name fpga_sys_clk [get_ports fpga_sys_clk] \ derive_pll_clocks

任意の create_clockコマンドの後で、.sdcファイルに derive_pll_clocksコマンドを含めます。Timing Analyzer が.sdcファイルを読み込むたびに、各 PLL の出力クロックピンに対して適切な生成クロックが作成されます。derive_pll_clocks実行前に PLL 出力にクロックが存在する場合、既存のクロックが優先され、その PLL 出力に対して自動生成クロックは作成されません。

次の図は、レジスター間パスを持つ単純な PLL デザインを表しています。

図 -61: 単純な PLL デザイン

reg_1 reg_2

pll_inclk pll_inst

dataout

Timing Analyzer は、PLL の制約に derive_pll_clocksコマンドを使用すると、次の例のようなメッセージを生成します。

例-5: derive_pll_clocks コマンドのメッセージ

Info:Info: Deriving PLL Clocks:Info: create_generated_clock -source pll_inst|altpll_component|pll|inclk[0] -divide_by 2 -namepll_inst|altpll_component|pll|clk[0] pll_inst|altpll_component|pll|clk[0]Info:

PLL の入力クロックピンはノード pll_inst|altpll_component|pll|inclk[0]で、これは-sourceオプションです。PLL の出力クロックの名前は、PLL 出力クロックのノードであるpll_inst|altpll_component|pll|clk[0]です。

PLL がクロック切り替えモードの場合、1 つはプライマリー入力クロック用(inclk[0]など)、もう 1つはセカンダリー入力クロック用(inclk[1]など)というように、PLL の出力クロックに複数のクロックが生成されます。プライマリーおよびセカンダリー出力クロックは同時にはアクティブとはならないので、それぞれに対して排他的クロックグループを作成します。

関連情報クロックグループの作成(set_clock_groups) (56 ページ)

2.2.5.5. クロックグループの作成(set_clock_groups)

Set Clock Groups (set_clock_groups)制約を使用すると、デザイン内で無関係となるクロックを指定できます。デフォルトでは、Timing Analyzer は、共通のベースまたは親クロックを持つクロックはすべて関連付けられてしており、これらのクロックドメイン間のすべての転送はタイミング解析に向けて有効であると仮定します。クロックグループを切断することによって、特定のクロックドメイン間の転送をタイミング解析から除外できます。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

56

Page 57: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

set_clock_groupsコマンドを使用すると、異なるグループ内の関連性のないクロック間のタイミングを切断することができます。Timing Analyzer は、-exclusiveまたは-asynchronousグループを指定しているかどうかに関わらず同じ解析を実行します。グループは、-groupオプションを使用して定義します。Timing Analyzer は、別々にグループ化されたクロック間のタイミングパスは除外します。

次の表は、set_clock_groupsの影響を示しています。

表 13. set_clock_groups -group A

デスティネーション/ソース A B C D

A 解析 切断 切断 切断

B 切断 解析 解析 解析

C 切断 解析 解析 解析

D 切断 解析 解析 解析

表 14. set_clock_groups -group {A B}

デスティネーション/ソース A B C D

A 解析 解析 切断 切断

B 解析 解析 切断 切断

C 切断 切断 解析 解析

D 切断 切断 解析 解析

表 15. set_clock_groups -group A -group B

デスティネーション/ソース A B C D

A 解析 切断 切断 切断

B 切断 解析 切断 切断

C 切断 切断 解析 解析

D 切断 切断 解析 解析

表 16. set_clock_groups -group {A C} -group {B D}

デスティネーション/ソース A B C D

A 解析 切断 解析 切断

B 切断 解析 切断 解析

C 解析 切断 解析 切断

D 切断 解析 切断 解析

表 17. set_clock_groups -group {A C D}

デスティネーション/ソース A B C D

A 解析 切断 解析 解析continued...

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

57

Page 58: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

B 切断 解析 切断 切断

C 解析 切断 解析 解析

D 解析 切断 解析 解析

関連情報set_clock_groups Command, インテル Quartus Prime Help

2.2.5.5.1. 排他的クロックグループ(-exclusive)

2 つのクロックが互いに排他的であることを宣言するには、-exclusiveオプションを使用します。同じノードに対して複数のノードを定義する場合、相互に排他的としてクロックを宣言することができます。このケースは、多重化クロックで発生します。

例えば、入力ポートは 25-MHz または 50-MHz のクロックでクロッキングが可能です。このポートを制約するには、そのポートで 2 つのクロックを作成した後、デザイン内でそのクロックが共存しないことを宣言するクロックグループを作成します。クロックを相互に排他的であると宣言することで、25-MHz クロックと 50-MHz クロック間で生成されるクロック転送が除外されます。

図 -62: mux 間で同期パスを持つクロック mux

clk_bclk_a mux_out

create_clock -period 40 -name clk_a [get_ports {port_a}]create_clock -add -period 20 -name clk_b [get_ports {clk_a}]set_clock_groups -exclusive -group {clk_a} -group {clk_b}

2.2.5.5.2. 非同期クロックグループ(-asynchronous)

非同期クロックグループを作成するには、-asynchronousオプションを使用します。異なるレートで動作するクロック間で FIFO を介してデータが転送される場合、非同期クロックグループを使用するとタイミング関係を切断することができます。

2.2.5.5.3. set_clock_groups 制約のヒント

クロックの作成に derive_pll_clocksを使用する場合、set_clock_groups制約に含めるすべてのクロック名を決定するには、時間がかかることがあります。ただし、すべてのクロック名を把握していない場合でも、次の方法を使用することで、クロック制約の作成を多少自動化することができます。

1. 推奨される 初の SDC 制約 (41 ページ)を含むベーシックな.sdcファイルを作成します。この段階では、set_clock_groups制約は省略します。

2. プロジェクトに.sdcを追加するには、Assignments > Settings > Timing Analyzer の順でクリックします。SDC files to include in the project の.sdcファイルを指定します。

3. Timing Analyzer を起動するには、Tools > Timing Analyzer をクリックします。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

58

Page 59: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

4. Task 画面で Report Clocks をダブルクリックします。 Timing Analyzer は.sdcを読み込み、(derive_pll_clocksを含む)制約を適用し、すべてのクロックをレポートします。

5. Clocks Summary レポートから、 初の列に表示されるすべてのクロック名をコピーします。レポートには、Timing Analyzer で認識できるように正しい形式のクロック名が一覧表示されます。

6. .sdc ファイルを開き、そのファイルに 1 行につき 1 つのクロック名をペーストします。

7. 適切なグループにクロック名をカット・アンド・ペーストして、クロック名のリストをset_clock_groupsコマンドの形式に合わせます。次に以下のテンプレートを.sdcファイルにペーストします。

set_clock_groups -asynchronous -group { \ } \ -group { \ } \ -group { \} \ -group { \}

8. クロックの関係を定義するために、クロック名をグループにカット・アンド・ペーストします。必要に応じて、グループを追加あるいは削除します。コードを読みやすくするためにグループの書式を整えます。

注意:

このコマンドは、1 行では読みづらい場合があります。Tcl の行を継続する文字である「\」を使用すると、より読みやすくすることができます。 後の文字の後にスペースを入力、行の 後に「\」文字を入力します。この文字はエスケープするので、エスケープ文字の後にはスペースを入力しないように注意してください。そうしないと、スペースは行末文字ではなくエスケープ文字になります。

set_clock_groups -asynchronous \ -group {adc_clk \ the_adc_pll|altpll_component_autogenerated|pll|clk[0] \ the_adc_pll|altpll_component_autogenerated|pll|clk[1] \ the_adc_pll|altpll_component_autogenerated|pll|clk[2] \ } \ -group {sys_clk \ the_system_pll|altpll_component_autogenerated|pll|clk[0] \ the_system_pll|altpll_component_autogenerated|pll|clk[1] \ } \ -group {the_system_pll|altpll_component_autogenerated|pll|clk[2] \ }

注意: 後のグループには PLL 出力 system_pll|..|clk[2]が存在し、入力クロックと他の PLL 出力は異なるグループに存在します。PLL を使用し、かつ入力クロック周波数が PLL の出力周波数に関係しない場合は、PLL を非同期として処理する必要があります。通常、PLL のほとんどの出力は、同じグループに関連していますが、これは必須条件ではありません。

複雑なクロッキングを持つデザインでは、クロックグループの作成は反復的な作業となることがあります。たとえば、2 つの DDR3 コアと高速トランシーバーを備えたデザインでは、クロックの数は 30 個以上となることがあります。そのような場合は、手動で作成したクロックを追加することから始めます。Timing Analyzer は、コマンドに現れないクロックはすべてのクロックに関連すると仮定するため、既知のクロックは保守的にグループ化されることになります。デザイン内の関連しないクロックドメイン間で障害のあるパスが依然存在する場合は、必要に応じて新しいクロックドメインの追加を開始します。この場合、クロックの多くは(DDR3 コアが生成する.sdcファイルなどの)IP コアに向けた.sdcファイル内で切断されるか、関連するクロックドメインのみに接続するため、set_clock_groupsコマンドには含まれません。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

59

Page 60: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

多くのデザインにおいて、コアの制約に必要な処理は以上となります。本セクションでは詳しく触れませんが、一般的なコアの制約の処理方法を以下に記します。

• デフォルトの解析よりも低速での解析に向けてレジスター間にマルチサイクルを追加することで、データが読み込まれる時間が長くなります。たとえば、10 ns のクロック周期であれば、10 ns のセットアップ関係があります。データがより低速となる場合、あるいはクロックイネーブルによりレジスターがより低速で切り替わる場合、セットアップ関係を緩和するマルチサイクルを適用することができます(有効なデータが通過できるようにウィンドウを開きます)。これはクロック周期の倍数であり、ホールド関係は 0 ns で保持されたままの状態で、セットアップ関係は 20 ns、40 ns などとなります。パスには通常、このような種類のマルチサイクルを適用します。

• データが読み込まれるサイクルを進め、タイミングウィンドウをシフトさせたい場合にも、マルチサイクルを使用することができます。これは一般的に、デザインがクロックで小さな位相シフトを実行する際に発生します。たとえば、デザインに PLL から抜ける 10 ns のクロックが 2 個あり、その 2個目のクロックの位相シフトが 0.5 ns である場合、メインクロックから位相シフトクロックのデフォルトのセットアップ関係は 0.5 ns となり、ホールド関係は-9.5 ns となります。0.5 ns のセットアップ関係を満たすことはほぼ不可能であり、ほとんどの場合データを次のウィンドウに転送することになります。メインクロックから位相シフトクロックにマルチサイクルを追加することで、セットアップ関係は 10.5 ns、そしてホールド関係は 0.5 となります。一般的には、クロック間にマルチサイクルを適用します。

• リップルクロックに create_generated_clockを追加します。レジスターの出力が別のレジスターの clkポートを駆動する場合、これはリップルクロックと呼ばれます。クロックはレジスターを介しては伝播しないため、正確な解析のためには create_generated_clock制約をすべてのリップルクロックに適用する必要する必要があります。制約されていないリップルクロックはReport Unconstrained Paths レポートに表示されるため、簡単に認識することができます。一般的には、リップルクロックの使用は避け、代わりにクロックイネーブルを使用します。

• クロック mux 出力に create_generated_clockを追加します。このクロックがない場合、すべてのクロックは mux を介して伝播され、関連します。Timing Analyzer は、あるクロック入力がソースレジスターを供給し、別のクロック入力がデスティネーションを供給する(またはその逆方向に供給する)mux からダウンストリームされるパスを解析します。この動作は有効ではありますが、一般的には好ましい動作ではありません。create_generated_clock制約を mux 出力に適用することで、mux に入るクロックに制約が関連付けられ、これらのクロックを他のクロックと正しくクループ化することができます。

2.2.5.6. クロック作用の特性を考慮に入れる

Timing Analyzer が作成するクロックは、ボードの影響を考慮に入れない理想的なクロックです。クロック・レイテンシーおよびクロック不確実性の制約を使用することで、クロック作用特性を考慮に入れることができます。

2.2.5.6.1. Set Clock Latency (set_clock_latency)

Set Clock Latency (set_clock_latency)制約を使用すると、クロック・ネットワーク内の追加の遅延(レイテンシー)を指定することができます。この遅延値は、クロック遷移の Rise (-rise)または Fall (-fall)を基準として、 長 Late (-late)パスまたは 短 Early (-early)パスを介した仮想(または理想的な)クロックからの外部遅延を表わしています。

Timing Analyzer は、セットアップ解析を計算する際、データ到着パスには Late クロック・レイテンシーを使用し、クロック到着パスには Early クロック・レイテンシーを使用します。Timing Analyzer はホールド解析に対しては、データ到着時間には Early クロック・レイテンシーを使用し、クロック到着時間には Late クロック・レイテンシーを使用します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

60

Page 61: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

クロック・レイテンシーには、クロック・ソース・レイテンシーとクロック・ネットワーク・レイテンシーの 2種類があります。ソース・レイテンシーとは、クロックの起点から(クロックポートなどの)クロックの定義位置までの伝播遅延です。ネットワーク・レイテンシーとは、クロックの定義位置からレジスターのクロックピンまでの伝播遅延です。レジスターのクロックピンでの合計遅延は、クロックパス内のソース・レイテンシーとネットワーク・レイテンシーの合計です。

デザインにおける任意のクロックポートのソース・レイテンシーを指定するには、set_clock_latencyコマンドを使用します。

注意: Timing Analyzer はネットワークレイテンシを自動的に計算します。したがって、set_clock_latencyコマンドではソース・レイテンシーのみを特徴づけることが可能です。-sourceオプションを使用する必要があります。

関連情報set_clock_latency Command, インテル Quartus Prime Help

2.2.5.6.2. クロック不確実性

Timing Analyzer は、理想的で完全なエッジを持つクロックをデフォルトで作成します。ジッターのようなクロックレベルの効果を模倣するには、このクロックエッジに不確実性を追加することができます。Timing Analyzer は、適切なセットアップおよびホールド不確実性を自動的に計算し、.sdcファイルに derive_clock_uncertaintyコマンドを含めていない場合でも、この不確実性をデザイン内のすべてのクロック転送に適用します。セットアップおよびホールド不確実性は、デザインを正しく制約するにあたって重要な要素となります。

Timing Analyzer は、適用可能なそれぞれのパスに対しデータ所要時間からセットアップ不確実性を差し引き、適用可能なそれぞれのパスのデータ所要時間にホールド不確実性を追加します。これは、各パスでのセットアップ・スラックとホールドスラックをわずかに減少させます。

Timing Analyzer は、イントラクロック、インタークロック、および I/O インターフェイス・クロック転送の 3 種類のクロック間転送のおけるクロック作用の不確実性を考慮します。

• イントラクロック転送は、レジスター間転送がデバイスで実行され、ソースおよびデスティネーション・クロックが同じ PLL 出力ピンまたはクロックポートから来ている場合に発生します。

• インタークロック転送は、レジスター間転送がデバイスのコアで実行され、ソースおよびデスティネーション・クロックが異なる PLL 出力ピンまたはクロックポートから来ている場合に発生します。

• I/O インターフェイス・クロック転送は、I/O ポートからデバイスのコアまたはデバイスのコアからI/O ポートへデータが転送する際に発生します。

クロック不確実性を手動で指定するには、set_clock_uncertaintyコマンドを使用します。セットアップとホールドに対しては不確実性を個別に指定可能です。また、立ち上がりと立ち下がりクロック転送に対しても個別の値を指定することが可能です。derive_clock_uncertaintyコマンドが自動的に適用される値を上書きすることが可能です。

derive_clock_uncertaintyコマンドは、PLL への入力のクロックジッターが、ターゲットデバイスの PLL の入力ジッターの仕様内であれば、PLL クロックジッターを考慮します。PLL への入力クロックジッターが仕様内でない場合、余分なジッターを考慮するために set_clock_uncertainty -addコマンドを使用して、PLL 出力クロックに余分の不確実性を追加します。お使いのデバイスでのジッター仕様については、デバイスハンドブックを参照してください。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

61

Page 62: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

使用するデバイスに対してジッターがその仕様を超える場合、ボードからのピークツーピーク・ジッターを考慮に入れる目的で、set_clock_uncertainty -addを使用することも可能です。この場合、セットアップとホールドの両方にジッター値の 1/2 に相当する不確実性を追加することができます。

set_clock_uncertainty –setup –to <clock name> \ -setup –add <p2p jitter/2>

set_clock_uncertainty –hold –enable_same_physical_edge –to <clock name> \ –add <p2p jitter/2>

Timing Analyzer が derive_clock_uncertaintyと set_clock_uncertaintyからの値を適用する方法については、複雑な優先順位が存在します。この順位は、.sdcファイル内のコマンドとオプションの順位によって決定されます。以下の Help トピックには、これらの規則についての説明が記載されています。次の推奨事項に従うことで、これらの優先規則はより容易に実装が可能となります。

• 任意のクロック転送に独自のクロック不確実性の値を割り当てるには、.sdcファイルのderive_clock_uncertaintyコマンドの後に set_clock_uncertainty例外を配置します。

• set_clock_uncertaintyに-addオプションを使用する場合、指定した値がderive_clock_uncertainty値に加えられます。-addを指定しない場合、指定した値でderive_clock_uncertaintyの値が置き換えられます。

関連情報• set_clock_uncertainty, インテル Quartus Prime Help

• derive_clock_uncertainty, インテル Quartus Prime Help

• remove_clock_uncertainty, インテル Quartus Prime Help

2.2.6. I/O 制約の作成

Timing Analyzer は、外部ソースがデザイン内部のレジスターと相互作用するデザインでのセットアップおよびホールド関係を確認します。Timing Analyzer は、set_input_delayおよびset_output_delayコマンドを使用して入力および出力外部遅延モデルをサポートします。クロックおよびクロックに関連した 大および 小到着時間を指定することが可能です。

デザインを完全に解析する前に、内部および外部のタイミング要件を指定します。外部のタイミング要件が指定されている場合、Timing Analyzer は、I/O インターフェイスまたはデバイス・ペリフェラルをシステム仕様と照合して検証します。

2.2.6.1. 入力制約(set_input_delay)

入力制約を使用すれば、デバイスを供給するすべての外部遅延を指定することができます。デザイン内のすべての入力ポートに対して、入力要件を指定します。

set_input_delay -clock { clock } -clock_fall -fall -max 20 foo

外部入力遅延要件を指定するには、Set Input Delay (set_input_delay)制約を使用します。Clock name (-clock)を指定して、仮想クロックまたは実際のクロックをリファレンスします。Timing Analyzer がインタークロックおよびイントラクロック転送のクロック不確実性を正確に生成するようクロックを指定することが可能です。クロックは、入力ポートの起動クロックを定義します。Timing Analyzer は、デバイス内のすべてのクロックが定義されているため、入力データをキャプチャーするデバイス内部のラッチクロックを自動的に決定します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

62

Page 63: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -63: 入力遅延の回路図

External Device FPGA

Oscillator

dd

cd_altrcd_ext

tco_ext

図 -64: 入力遅延の計算式

input delayMAX = (cd_extMAX – cd_altrMIN ) + tco_extMAX + ddMAX

input delayMIN = (cd_extMIN – cd_altrMAX ) + tco_extMIN + ddMIN

デザインにパーティション境界ポートが含まれる場合、set_input_delayと-blackboxオプションを使用して入力遅延を割り当てることができます。-blackboxオプションは、境界ポートと同じ名称で新しい keeper timing ノードを作成します。この新しいノードは、オリジナルの境界ポートを介してタイミングパスの伝播を可能にし、set_input_delay制約として動作します。この新しい keepertiming ノードは、get_keepersコマンドを使用する際に表示されます。これらのブラックボックス制約は、remove_input_constraint -blackboxで削除することができます。

2.2.6.2. 出力制約(set_output_delay)

出力制約は、デザイン内のすべての出力ポートに対して、デバイスからのすべての外部遅延を指定します。

set_output_delay -clock { clock } -clock_fall -rise -max 2 foo

外部出力遅延の要件を指定するには、Set Output Delay (set_output_delay)制約を使用します。Clock name (-clock)を指定して、仮想クロックまたは実際のクロックをリファレンスします。クロックを指定すると、クロックは出力ポートへの起動クロックを定義します。Timing Analyzer は、デバイス内のすべてのクロックが定義されているため、出力データをローンチするデバイス内部の起動クロックを自動的に決定します。

図 -65: 出力遅延の回路図

External DeviceFPGA

Oscillator

dd

cd_altr

cd_ext

tsu_ext/th_ext

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

63

Page 64: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -66: 出力遅延の計算式

output delayMAX = ddMAX + tsu_ext + (cd_altrMAX – cd_extMIN )output delayMIN = (ddMIN – th_ext +(cd_altrMIN – cd_extMAX ))

デザインにパーティション境界ポートが含まれる場合、-blackboxオプションのset_ouput_delayを使用すれば出力遅延を割り当てることができます。-blackboxオプションは、境界ポートと同じ名称で新しい keeper timing ノードを作成します。この新しいノードは、オリジナルの境界ポートを介してタイミングパスの伝播を可能にし、set_output_delay制約として動作します。この新しい keeper timing ノードは、get_keepersコマンドを使用する際に表示されます。

このブラックボックス制約は、remove_output_constraint -blackboxで削除することができます。

関連情報• set_intput_delay Command, インテル Quartus Prime Help

• set_output_delay Command, インテル Quartus Prime Help

2.2.7. 遅延制約およびスキュー制約の作成

スキューと遅延を指定することで、外部デバイスのタイミングおよびボードのタイミング・パラメーターをモデル化できます。

2.2.7.1. 高度な I/O タイミングおよびボードトレース・モデル遅延

Timing Analyzer は、高度な I/O タイミングおよびボードトレース・モデルの制約を使用して、デザイン内の I/O バッファー遅延をモデル化できます。

高度な I/O タイミング・セッティングまたはボードトレース・モデルの割り当てを変更する場合、タイミング解析の前にデザインを再コンパイルするか、あるいはタイミング・ネットリストを作成する際に-force_datオプションを使用して遅延アノテーションを強制します。

例-6: 遅延アノテーションの強制

create_timing_netlist -force_dat

2.2.7.2. 最大スキュー(set_max_skew)

Set Max Skew (set_max_skew)制約は、レジスターまたはポートのセット、あるいは指定したポート間の 大許容スキューを指定します。複数のパスにわたってスキューを制約するには、単一のset_max_skew制約を使用してすべてのパスを制約する必要があります。

set_max_skew -from_clock { clock } -to_clock { * } -from foo -to blat 2

set_max_delay、set_min_delay、および set_multicycle_pathは、set_max_skewタイミング制約には影響しません。ただし、set_false_pathと set_clock_groupsは、set_max_skewに影響します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

64

Page 65: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

表 18. set_max_skew オプション

引数 説明

-h | -help ショートヘルプ

-long_help 使用例と可能な戻り値を提供するロングヘルプ

-exclude <Tcl list> スキュー解析中に除外するパラメーターの Tcl リストです。このリストには、utsu、uth、utco、from_clock、to_clock、clock_uncertainty、ccpp、input_delay、output_delay、odvの 1 つあるいは複数が含まれます。注意: インテル Arria 10 デバイスはこの引数をサポートしません。

-fall_from_clock <names> 有効なソースクロック(Tcl は文字列パターンと一致します)

names> 有効なデスティネーション・クロック(Tcl は文字列パターンと一致します)

-from <-fall_to_clock <names> (2) 有効なソース(Tcl は文字列パターンと一致します)

-fall_to_clock -from_clock <names> 有効なソースクロック(Tcl は文字列パターンと一致します)

-get_skew_value_from_clock_period<src_clock_period|dst_clock_period|min_clock_period>

スキュー制約をクロック周期の倍数として解釈するオプション

-include <Tcl list> スキュー解析中に含めるパラメーターの Tcl リストです。このリストには、utsu、uth、utco、from_clock、to_clock、clock_uncertainty、ccpp、input_delay、output_delay、odvの 1 つあるいは複数が含まれます。注意: インテル Arria 10 デバイスはこの引数をサポートしません。

-rise_from_clock <names> 有効なソースクロック(Tcl は文字列パターンと一致します)

-rise_to_clock <names> 有効なデスティネーション・クロック(Tcl は文字列パターンと一致します)

-skew_value_multiplier <multiplier> スキュー要件を算出するためにクロック周期が乗算する値

-to <names> (2) 有効なデスティネーション(Tcl は文字列パターンと一致します)

-to_clock <names> 有効なデスティネーション・クロック(Tcl は文字列パターンと一致します)

<skew> 必要とするスキュー

クロック間に 大スキュー制約を適用すると、(-fromオプションで)指定したクロックによって駆動されるすべてのレジスターまたはポートから、(-toオプションで)指定したクロックによって駆動されるすべてのレジスターまたはポートに制約が適用されます。

レジスター・マイクロ・パラメーター(utsu、uth、utco)、クロック到着時間(from_clock、to_clock)、クロック不確実性(clock_uncertainty)、共通クロック・パス・ペシミズム・リムーバル(ccpp)、入力および出力遅延(input_delay、output_delay)、オン・ダイ・バリエーション(odv)を含めるには-includeオプション、除外するには-excludeオプションを使用します。

大スキュー解析には、データ到着時間、クロック到着時間、レジスター・マイクロ・パラメーター、クロック不確定性、オンダイ・バリエーション、および ccpp リムーバルを含めることができます。これらのうち、ccpp リムーバルだけが Fitter 実行中にデフォルトでディスエーブルされます。-includeを使用すると、デフォルトの解析でこれらは Inclusion リストに含められます。同様に、-excludeを使用すると、デフォルトの解析でこれらは Exclusion リストに含められます。-includeオプションと-excludeオプションの両方が同じパラメーターを指定すると、そのパラメーターは除外されます。

(2) -from オプションと -to オプションの正当な値は、デザイン内のクロック、レジスター、ポート、ピン、セルまたはパーティションのコレクションです。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

65

Page 66: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

注意: デザインが インテル Arria 10 デバイスをターゲットする場合、-excludeと-includeはサポートされません。

スキューをローンチあるいはラッチクロック周期の倍数、またはいずれか小さい周期を持つ方に設定するには、-get_skew_value_from_clock_periodを使用します。このオプションを使用する場合は、-skew_value_multiplierを設定し、positional skew オプションは設定しないでください。スキューのパスに複数のクロックが設定されている場合、Timing Analyzer は も小さい周期を持つクロックを使用して、スキュー制約を計算します。

Report Max Skew (report_max_skew)をクリックすると、 大スキューの解析が表示されます。スキューは 2 つ以上のパスで発生するため、-from/-from_clockおよび-to/-to_clockフィルターが 2 つ未満のパスを満たす場合は、結果は表示されません。

関連情報report_max_skew Command, インテル Quartus Prime Help

2.2.7.3. ネット遅延(set_net_delay)

ネット遅延の設定、およびネット全体で 小/ 大タイミング解析を実行するには、set_net_delayコマンドを使用します。

-fromおよび-toオプションは、文字列パターン、ピン、ポート、レジスター、あるいはネット・コレクションとすることができます。ピンまたはネット・コレクションを使用する場合、そのコレクションに出力ピンあるいはネットを含めます。

set_net_delay -from reg_a -to reg_c -max 20

表 19. set_net_delay オプション

引数 説明

-h | -help ショートヘルプ

-long_help 使用例と可能な戻り値を提供するロングヘルプ

-from <names> 有効なソースピン、ポート、レジスターまたはネット(Tcl は文字列パターンと一致します)

-get_value_from_clock_period<src_clock_period|dst_clock_period|min_clock_period|max_clock_period>

ネット遅延をクロック周期の倍数として解釈するオプション

-max 大遅延の指定

-min 小遅延の指定

-to <names> (3) 有効なデスティネーション・ピン、ポート、レジスターまたはネット(Tcl は文字列パターンと一致します)

-value_multiplier <multiplier> ネット遅延を算出するためにクロック周期が乗算する値

<delay> 遅延値

(3) -to オプションを設定しない場合、あるいは-toがワイルドカード( * )文字である場合、タイミング・ネットリストのすべての出力ピンとレジスターは有効なデスティネーション・ポイントとなります。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

66

Page 67: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

-minオプションを使用する場合、Timing Analyzer はエッジでの 小遅延を決定してスラックを計算します。-maxオプションを使用する場合、Timing Analyzer はエッジでの 大遅延を決定してスラックを計算します。

ネット遅延要件として、ローンチあるいはラッチクロック周期の倍数、またはいずれか小さい/大きい周期を持つ方に設定するには、-get_skew_value_from_clock_periodを使用します。このオプションを使用する場合、-value_multiplierも設定する必要があります。また、positionaldelay オプションは設定しないでください。複数のクロックがネットのセットをクロッキングしている場合、Timing Analyzer は-max制約に向けた制約の計算に 小の周期を使用し、-min制約に向けた制約の計算に 大の周期を使用します。ネットのエンドポイントのクロッキングにクロックが使用されていない場合( つまり、ネットのエンドポイントがレジスターあるいは制約ポートではない場合)、TimingAnalyzer はネット遅延制約を無視します。

関連情報report_net_delay Command, インテル Quartus Prime Help

2.2.7.4. タイミング・ネットリストの作成

Timing Analyzer がパス遅延データの計算に使用するタイミング・ネットリストは、コンフィグレーションおよびロードすることができます。

タイミング解析を実行する前にタイミングネットリストを生成する必要があります。生成には、CreateTiming Netlist ダイアログボックスまたは Tasks 画面の Create Timing Netlist コマンドを使用します。Create Timing Netlist は、Settings ダイアログボックスの Timing Analyzer ページで Enable Advanced I/O Timing をオンにすると、高度な I/O タイミングレポートも生成します。

注意: コンパイラーは、コンパイル時にタイミング・ネットリストを作成します。ダイナミック・トランシーバーのリコンフィグレーションなど、デバイスがユーザモードに入った後に発生するコンフィグレーションの変更は、タイミング・ネットリストには反映されません。このことは、Multiple Reconfiguration Profiles機能を持つ インテル Arria 10 デバイスを除くすべてのデバイスファミリーに適用されます。

次の図は、Timing Analyzer がサンプルデザインのタイミング・ネットリスト・データをどのように解釈し、分類するのかを示しています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

67

Page 68: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -67: Timing Analyzer によるタイミング・ネットリストの解釈

2.2.8. タイミング例外の作成

タイミング例外は、特定の設計条件を考慮するために、デフォルトのタイミング解析動作を変更(または例外を提供)します。タイミング例外はデフォルト解析を変更するため、クロックと入出力遅延制約を指定した後でタイミング例外を指定します。

2.2.8.1. タイミング制約の優先順位

複数のタイミング例外に同じ名称のクロックあるいはノードが存在する場合、Timing Analyzer は次の順序でタイミング制約の優先順位を観察します。

1. 初のプロパティーは、Set False Path (set_false_path)です。

2. 2 番目のプロパティーは、Set Minimum Delay (set_min_delay)と Set MaximumDelay (set_max_delay)です。

3. 3 つ目のプロパティーは、Set Multicycle Path (set_multicycle_path)です。

も高い優先順位はフォルスパスのタイミング例外です。各カテゴリー内では、個々のノードへの割り当てがクロックへの割り当てよりも優先されます。同じタイプの例外は次の通りです。

1. 初のプロパティーは、-from <node>です。

2. 2 番目のプロパティーは、-to <node>です。

3. 3 番目のプロパティーは、-thru <node>です。

4. 4 番目のプロパティーは、-from <clock>です。

5. 5 番目のプロパティーは、-to <clock>です。

これらのオプションに向けたアスタリスク・ワイルドカード(*)オプションは、オプションを全く指定しない場合と同じ順序と同様に適用されます。たとえば、-from a -to *は優先順位に関して-fromaと同様に処理されます。

優先順位の例

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

68

Page 69: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

1. set_max_delay 1 -from x -to y

2. set_max_delay 2 -from x

3. set_max_delay 3 -to y

初の例外は(#3 では指定していない)-fromを指定し、また(#2 では指定していない)-toを指定しているため、例外 2 と 3 よりも高い優先順位を持ちます。例外 1 が存在しない場合、例外 2 は例外 3では指定していない-fromを指定しているため、例外 3 よりも高い優先順位を持ちます。 後に、追加の例外に対する優先順位の残りの順序は、順序依存であり、 も 近に作成された割り当ては、以前の割り当てを上書きするか、または部分的に上書きします。

set_net_delayまたは set_max_skew例外は、 小/ 大遅延、またはマルチサイクルパス制約を独立して解析します。

• set_net_delay例外は、同じノード上で set_false_path例外またはset_clock_group例外の存在に関係なく適用されます。

• set_max_skew例外は同じノード上で set_clock_group例外の存在に関係なく適用されますが、set_false_path例外は set_max_skew例外をオーバーライドします。

2.2.8.2. フォルスパス(set_false_path)

Set False Path (set_false_path)制約は、回路の動作に関係しないテストロジックやその他のパスなどをタイミング解析から除外することを可能とします。そのパスのソース(-from)、共通スルーエレメント(- thru)、およびデスティネーション(-to)エレメントを指定することができます。

次の SDC コマンドは、A で始まるすべてのレジスターから B で始まるすべてのレジスターへのフォルスパス例外を作成します。

set_false_path -from [get_pins A*] -to [get_pins B*]

ポイント-ポイント間パスまたはクロック-クロック間パスのいずれかをフォルスパスとして指定できます。たとえば、電源投入時の初期化中に一度だけ書き込まれる静的コンフィグレーション・レジスターにフォルスパスを指定できますが、状態は再び変更されません。

静的コンフィグレーション・レジスターからの信号はクロックドメインを横切ることがよくありますが、一部のデータがクロックドメイン間で転送される可能性があるため、クロック-クロック間パスにフォルスパス例外を作成することは望ましくありません。ただし、静的コンフィグレーション・レジスターからすべてのエンドポイントにフォルスパス例外を選択的に作成することは可能です。

Timing Analyze は、特に指定しない限り、すべてのクロックが関連していると仮定します。削除したい各クロック転送間に複数の set_false_path例外を記述するのではなく、クロックグループを使用してより効率的にクロック間にフォルスパス例外を作成してください。

関連情報• クロックグループの作成(set_clock_groups) (56 ページ)

• set_false_path Command, インテル Quartus Prime Help

2.2.8.3. 最小および最大遅延

パスに絶対 小遅延または絶対 大遅延を指定するには、Set Minimum Delay(set_min_delay)または Set Maximum Delay (set_max_delay)制約を使用します。小/ 大遅延を直接指定することで、その 小/ 大値で既存のセットアップとホールド関係が上書きされます。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

69

Page 70: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

デザイン内で特別なクロック関係を持たないが、 小/ 大パス遅延を必要とする非同期信号には、set_max_delayまたは set_min_delay制約を使用します。パスにレジスターステージを使用することなくデバイスを介してポート-ポート間パスに 小/ 大遅延例外が作成可能です。 小/ 大遅延例外を使用してパス遅延を制約する場合は、パスの 小遅延と 大遅延の両方を指定します。 小値または 大値だけの制約はしないでください。

ソースノードまたはデスティネーション・ノードがクロッキングされている場合、Timing Analyzer はクロックパスを考慮に入れ、データパスにいくらかの遅延を加えます。ソースノードまたはデスティネーション・ノードに入力または出力遅延がある場合、 小または 大遅延チェックにはその遅延も含まれます。

タイミングノード間に 小遅延または 大遅延を指定すると、遅延はその 2 つのノード間のパスにのみ適用されます。クロックに対して 小遅延または 大遅延を指定すると、クロックがソースノードまたはデスティネーション・ノードをクロッキングしているすべてのパスに遅延が適用されます。

出力遅延制約を持たない出力ポートに対して、 小/ 大遅延例外が作成可能です。出力ポートに関連するパスのタイミングはレポートすることはできませんが、Timing Analyzer は、セットアップ・サマリーおよびホールド・サマリー・レポートでそのパスのスラックをレポートします。出力ポートに関連するクロックが存在しないため、Timing Analyzer は出力ポートのタイミングパスに向けてクロックはレポートしません。

注意: 小遅延制約と 大遅延制約を持つ出力パスのクロックフィルターを使用してタイミングをレポートするには、出力ポートの出力遅延を 0 に設定します。デザインからの既存のクロック、または仮想クロックをクロックのリファレンスとして使用可能です。

関連情報• set_max_delay Command, インテル Quartus Prime Help

• set_min_delay Command, インテル Quartus Prime Help

2.2.8.4. マルチサイクル・パス

デフォルトでは、Timing Analyzer は も制限的なタイプの解析であるシングルサイクル解析を実行します。マルチサイクリング制約を持たないパスを解析する場合、Timing Analyzer は、それぞれの波形の中で も近い 2 つのアクティブエッジを特定することで、セットアップのローンチエッジとラッチエッジのタイムを決定します。

図 -68: デフォルトのセットアップとホールド関係(マルチサイクルなし)

0 ns 10 ns 20 ns 30 ns No Multicycles(Default Relationship)

Setup = 10 nsHold = 0 ns

ホールドタイム解析の場合、Timing Analyzer は、ワーストケースのセットアップ関係だけでなく、可能な限りのあらゆるセットアップ関係について 2 つのタイミング条件のパスを解析します。したがって、ホールドのローンチタイムとラッチタイムは、セットアップのローンチエッジとラッチエッジとは無関係となる場合があります。Timing Analyzer は、負のセットアップまたはホールド関係はレポートしません。Timing Analyzer は負のセットアップまたは負のホールド関係を検出すると、セットアップとホールドの関係が正になるまで、ローンチエッジとラッチエッジの両方を移動します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

70

Page 71: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

マルチサイクル制約は、ソース(-start)またはデスティネーション(-end)クロックに基に、指定したクロックサイクルの数だけデフォルトのセットアップまたはホールド関係を調整します。セットアップ・マルチサイクル制約が 2 であれば、ワーストケース・セットアップ・ラッチエッジを 1 デスティネーション・クロック周期だけ延長します。-startと-endの値を指定しない場合、デフォルトの制約は-endとなります。

図 -69: マルチサイクルが 2 であるセットアップとホールド関係

0 ns 10 ns 20 ns 30 ns Setup = 2Hold = 1

Setup = 20 nsHold = 0 ns

ホールド・マルチサイクル制約は、デフォルトのホールド位置(デフォルト値は 0)から派生します。 エンド・ホールド・マルチサイクル制約が 1 であれば、デフォルトのホールド・ラッチ・エッジから 1 デスティネーション・クロック周期を効果的に減算します。

オブジェクトがタイミングノードである場合、マルチサイクル制約は 2 つのノード間のパスにのみ適用されます。オブジェクトがクロックである場合、マルチサイクル制約は、ソースノード(-from)またはデスティネーション・ノード(-to)がそのクロックでクロッキングされているすべてのパスに適用されます。ルチサイクル制約を使用してセットアップ関係を調整すると、ホールド関係は自動的に調整されます。

タイミング制約を使用すれば、セットアップ関係またはホールド関係の決定に Timing Analyzer が使用するローンチエッジまたはラッチエッジのタイムを変更することができます。

表 20. マルチサイクル制約

コマンド 変更箇所

set_multicycle_path -setup -end <value> セットアップ関係のラッチエッジ・タイム

set_multicycle_path -setup -start<value> セットアップ関係のローンチエッジ・タイム

set_multicycle_path -hold -end <value> ホールド関係のラッチエッジ・タイム

set_multicycle_path -hold -start <value> ホールド関係のローンチエッジ・タイム

2.2.8.4.1. マルチサイクルの一般的な適用例

マルチサイクル例外は、レジスター - レジスター間パスのタイミング要件を調整するため、Fitter がデザインを 適に配置配線できるようになります。 2 つの一般的なマルチサイクルの適用例は、より低速のデータ転送速度を可能にするためのセットアップの緩和と、位相シフトを考慮するためのセットアップの変更となります。

2.2.8.4.2. マルチサイクルを使用したセットアップの緩和(set_multicyle_path)

データ転送速度がクロックサイクルより遅い場合は、マルチサイクル例外を使用できます。セットアップ関係を緩和することで、タイミング解析がデータを有効として受け入れる際のウィンドウが増加します。

次の例では、ソースクロックの周期は 10ns ですが、クロックはレジスターのグループをイネーブルにするため、レジスターは 1 サイクルごとにのみイネーブルします。レジスターには 10 ns のクロックによって供給されるため、Timing Analyzer は 10 ns のセットアップと 0 ns のホールドをレポートします。ただし、データは 1 サイクルおきに転送されるため、Timing Analyzer はクロックが 20 ns で動作しているかのように関係を解析してしまいます。その結果、ホールドは依然として 0 ns のままで、20 ns のセットアップとなるため、データ認識に向けてウィンドウが拡張されます。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

71

Page 72: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

次のマルチサイクル制約のペアは、N の-setup値および-hold値を N-1 として指定することで、セットアップ関係を緩和します。正のホールド要件を防止するには、-hold割り当てでホールド関係を指定する必要があります。

セットアップを緩和しホールドを維持する制約

set_multicycle_path -setup -from src_reg* -to dst_reg* 2set_multicycle_path -hold -from src_reg* -to dst_reg* 1

図 -70: マルチサイクル・セットアップの関係

0 ns 10 ns 20 ns 30 ns

0 ns 10 ns 20 ns 30 ns

0 ns 10 ns 20 ns 30 ns

No Multicycles(Default Relationship)

Setup = 10 nsHold = 0 ns

Setup = 2Hold = 1

Setup = 20 nsHold = 0 ns

Setup = 3Hold = 2

Setup = 30 nsHold = 0 ns

このパターンを拡張してより大きなセットアップ関係を作成し、タイミング・クロージャーの要件を緩和することができます。この例外の一般的な用途は、I/O インターフェイス全体に非同期 RAM に書き込む場合です。アドレス、データ、および書き込みイネーブル間の遅延は数サイクルとなることがあります。 I/Oポートに対するマルチサイクル例外は、イネーブルが発生する前にアドレスとデータが解決するために追加のタイムを提供します。

次の制約は、セットアップを 3 サイクル緩和します。

3 サイクル I/O インターフェイス制約

set_multicycle_path -setup -to [get_ports {SRAM_ADD[*] SRAM_DATA[*]} 3set_multicycle_path -hold -to [get_ports {SRAM_ADD[*] SRAM_DATA[*]} 2

2.2.8.4.3. 位相シフトの考慮(-phase)

次の例では、位相シフトされないドメインとデータを交換するドメインのクロックで位相シフトを実行する PLL がデザインに含まれています。これは、デスティネーション・クロックが前方に位相シフトしてソースクロックがシフトしない場合に発生します。デフォルトのセットアップ関係がその位相シフトとなるため、データが有効である場合にウィンドウをシフトします。

たとえば、次のコードは、PLL の 1 つの出力をわずかに(この場合は 0.2 ns)位相シフトします。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

72

Page 73: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

クロスドメイン位相シフト

create_generated_clock -source pll|inclk[0] -name pll|clk[0] pll|clk[0]create_generated_clock -source pll|inclk[0] -name pll|clk[1] -phase 30 pll|clk[1]

この位相シフトのデフォルトのセットアップ関係は、図 A に示すように 0.2 ns であるため、ホールド関係が負のシナリオが作成され、タイミング・クロージャーの達成をほぼ不可能にしています。

図 -71: 位相シフトされたセットアップとホールド

-10 ns 0 ns 10 ns 20 ns

-10 ns 0 ns 10 ns 20 ns

No Multicycles(Default Relationship)

Setup = 0.2 nsHold = -9.8 ns

Setup = 2

Setup = 10.2 nsHold = 0.2 ns

次の制約は、次のエッジへのデータ転送を可能とします。

set_multicycle_path -setup -from [get_clocks clk_a] -to [get_clocks clk_b] 2

ホールド関係はセットアップ関係から派生し、マルチサイクルのホールド制約を不要にします。

関連情報• デスティネーション・クロック・オフセットと同じ周波数を持つクロック (81 ページ)

• set_multicycle_path Command, インテル Quartus Prime Help

2.2.8.5. マルチサイクル例外の例

このセクションの例では、マルチサイクル例外が Timing Analyzer のデフォルトのセットアップとホールド解析にどのように影響するかを示しています。マルチサイクル例外は、単純なレジスター間回路に適用されます。ソースクロックとデスティネーション・クロックの両方が 10 ns に設定されています。

2.2.8.5.1. デフォルトのマルチサイクル解析

デフォルトでは、Timing Analyzer はシングルサイクル解析を実行して、セットアップ・チェックとホールドチェックを決定します。また、デフォルトでは、Timing Analyzer は、エンド・マルチサイクル・セットアップの割り当て値を 1 に設定し、エンド・マルチサイクル・ホールドの値をゼロに設定します。

ソースレジスターとデスティネーション・レジスターのソースおよびデスティネーションのタイミング波形で、それぞれ HC1 と HC2 がホールドチェック 1 と 2 であり、SC はセットアップ・チェックです。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

73

Page 74: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -72: デフォルトのタイミング図-10 0 10 20

Current Launch

Current Latch

0 1 2

HC1 HC2SC

REG1.CLK

REG2.CLK

図 -73: セットアップ・チェックの計算式

setup check = current latch edge – closest previous launch edge = 10 ns – 0 ns = 10 ns

デフォルトのシングルサイクル解析を持つ も制限的なセットアップ関係、つまり、エンド・マルチサイクル・セットアップ割り当てが 1 のセットアップ関係は 10 ns です。

次の図は、Timing Analyzer でのデフォルトのセットアップに向けたセットアップ・レポートです。ローンチエッジとラッチエッジが強調表示されています。

図 -74: セットアップ・レポート

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

74

Page 75: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -75: ホールドチェックの計算式

hold check 1 = current launch edge – previous latch edge = 0 ns – 0 ns = 0 ns hold check 2 = next launch edge – current latch edge = 10 ns – 10 ns = 0 ns

デフォルトのシングルサイクル解析を持つ も制限的なセットアップ関係、つまり、エンド・マルチサイクル・セットアップ割り当てが 0 のホールド関係は 0 ns です。

Timing Analyzer でのデフォルトのセットアップに向けたホールドレポートでは、ローンチエッジとラッチエッジが強調表示されています。

図 -76: ホールドレポート

2.2.8.5.2. エンド・マルチサイクル・セットアップが 2、エンド・マルチサイクル・ホールドが 0 の場合

この例では、エンド・マルチサイクル・セットアップ割り当ての値は 2 で、エンド・マルチサイクル・ホールド割り当ての値は 0 です。

マルチサイクル制約

set_multicycle_path -from [get_clocks clk_src] -to [get_clocks clk_dst] \ -setup -end 2

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

75

Page 76: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

注意: Timing Analyzer は、デフォルトのエンド・マルチサイクル・ホールド値が 0 であるため、エンド・マルチサイクル・ホールド値を必要としません。

この例では、ラッチエッジを次のラッチエッジに移動することにより、セットアップ関係がフルクロック周期緩和されます。ホールド解析はデフォルト設定から変更されません。

次の図は、Timing Analyzer が実行する解析のセットアップ・タイミング図を表しています。ラッチエッジは、デフォルトのシングルサイクル解析よりも 1 クロックサイクル遅くなります。

図 -77: セットアップ・タイミング図-10 0

0 1 2

10 20

SC

REG1.CLK

REG2.CLK

CurrentLaunch

CurrentLatch

図 -78: セットアップ・チェックの計算式

setup check = current latch edge – closest previous launch edge = 20 ns – 0 ns = 20 ns

エンド・マルチサイクル・セットアップ割り当てが 2 の も制限的なセットアップ関係は、20 ns です。

次の画面は、Timing Analyzer のセットアップ・レポートです。ローンチエッジとラッチエッジが強調表示されています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

76

Page 77: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -79: セットアップ・レポート

マルチサイクル・ホールドのラッチエッジとローンチエッジは、デフォルト設定でのホールド解析の結果と同じであるため、この例のマルチサイクル・ホールド解析はシングル・サイクル・ホールド解析に相当します。このホールドチェックは、セットアップ・チェックに相対しています。通常、Timing Analyzer はも制限的なセットアップ・チェック・エッジだけではなく、可能な限りのあらゆるセットアップ・チェックでホールドチェックを実行します。

図 -80: ホールドタイミング図-10 0 10 20

Current Launch

Current Latch

REG1.CLK

REG2.CLK

SCHC1Data HC2

図 -81: ホールドチェックの計算式

hold check 1 = current launch edge – previous latch edge = 0 ns – 10 ns = –10 ns

hold check 2 = next launch edge – current latch edge = 10 ns – 20 ns = –10 ns

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

77

Page 78: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

エンド・マルチサイクル・セットアップ割り当て値が 2 でエンド・マルチサイクル・ホールド割り当て値が 0の も制限的なホールド関係は、10 ns です。

図 -82: ホールドレポート

2.2.8.5.3. エンド・マルチサイクル・セットアップが 2、エンド・マルチサイクル・ホールドが 1 の場合

この例では、エンド・マルチサイクル・セットアップ割り当ての値は 2 で、エンド・マルチサイクル・ホールド割り当ての値は 1 です。

マルチサイクル制約

set_multicycle_path -from [get_clocks clk_src] -to [get_clocks clk_dst] \ -setup -end 2set_multicycle_path -from [get_clocks clk_src] -to [get_clocks clk_dst] -hold -end 1

この例では、ラッチエッジを左に 2 クロック周期移動することにより、セットアップ関係が 2 クロック周期緩和されます。ホールド関係は、ラッチエッジを前のラッチエッジに移動することにより、フル周期緩和されます。

次は、Timing Analyzer が実行する解析のセットアップ・タイミング図を表しています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

78

Page 79: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -83: セットアップ・タイミング図-10 0

0 1 2

10 20

SC

SRC.CLK

DST.CLK

CurrentLaunch

CurrentLatch

図 -84: セットアップ・チェックの計算式

setup check = current latch edge – closest previous launch edge = 20 ns – 0 ns = 20 ns

エンド・マルチサイクル・セットアップ割り当てが 2 の も制限的なホールド関係は、20 です。

次の画面は、Timing Analyzer のセットアップ・レポートです。ローンチエッジとラッチエッジが強調表示されています。

図 -85: セットアップ・レポート

次の画面は、この例のホールドチェックのタイミング図を示しています。ホールドチェックは、セットアップ・チェックと相対しています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

79

Page 80: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -86: ホールドタイミング図-10 0 10 20

SRC.CLK

DST.CLK

CurrentLaunch

CurrentLatch

SCHC1

HC2

図 -87: ホールドチェックの計算式

hold check 1 = current launch edge – previous latch edge = 0 ns – 0 ns = 0 ns

hold check 2 = next launch edge – current latch edge = 10 ns – 10 ns = 0 ns

エンド・マルチサイクル・セットアップ割り当てが 2 でエンド・マルチサイクル・ホールド割り当てが 1 のも制限的なホールド関係は、0 ns です。

次の画面は、Timing Analyzer のホールドレポートです。ローンチエッジとラッチエッジが強調表示されています。

図 -88: ホールドレポート

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

80

Page 81: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

2.2.8.5.4. デスティネーション・クロック・オフセットと同じ周波数を持つクロック

この例では、ソースクロックとデスティネーション・クロックは同じ周波数を持ちますが、デスティネーションク・ロックは正の位相シフトでオフセットされています。ソースクロックとデスティネーション・クロックの周期は、両方とも 10 ns です。デスティネーション・クロックは、ソースクロックに対して 2 ns 正に位相シフトしています。

次の例は、クロックとデスティネーション・クロック・オフセットが同じ周波数を持つデザインを示しています。

図 -89: デスティネーション・クロック・オフセットと同じ周波数を持つクロックの図

REG1 REG2Combinational

LogicSET SET

D Q D Q

CLR CLR

clk1

In

clk0

Out

次の図は、Timing Analyzer が実行するデフォルトの解析のセットアップ・タイミング図を表しています。

図 -90: セットアップ・タイミング図-10 0

1 2

10 20

REG1.CLK

REG2.CLK

Launch

Latch

SC

図 -91: セットアップ・チェックの計算式

setup check = current latch edge – closest previous launch edge = 2 ns – 0 ns = 2 ns

このセットアップ関係は過度に悲観的であり、一般的なデザインに必要なセットアップ関係ではありません。デフォルトの解析を修正するには、2 のエンド・マルチサイクル・セットアップ例外を割り当てます。次の制約は、デフォルトの解析を調整するマルチサイクル例外を表しています。

マルチサイクル制約

set_multicycle_path -from [get_clocks clk_src] -to [get_clocks clk_dst] \ -setup -end 2

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

81

Page 82: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

次のタイミング図は、この例に推奨されるセットアップ関係を示しています。

図 -92: 推奨されるセットアップ関係-10 0

1 2

10 20

REG1.CLK

REG2.CLK

Launch

Latch

SC

次の図は、Timing Analyzer が実行するエンド・マルチサイクル・セットアップ値が 2 のデフォルトの解析のセットアップ・タイミング図を表しています。

図 -93: デフォルトのホールドチェック-10 0 10 20

REG1.CLK

REG2.CLK

CurrentLaunch

CurrentLatch

SCHC1 HC2

図 -94: ホールドチェックの計算式

hold check 1 = current launch edge – previous latch edge = 0 ns – 2 ns = –2 ns

hold check 2 = next launch edge – current latch edge = 10 ns – 12 ns = –2 ns

この例では、デフォルトのホールド解析は推奨されるホールドを返すため、マルチサイクル・ホールド例外は不要です。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

82

Page 83: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

次の図は、位相シフトが–2 の場合の関連するセットアップおよびホールド解析です。この例では、デフォルトのホールド解析は、2 ns の負の位相シフトに対して適正であり、マルチサイクル例外は不要です。

図 -95: 負の位相シフト-10 0 10 20

REG1.CLK

REG2.CLK

CurrentLaunch

CurrentLatch

SCHC1 HC2

2.2.8.5.5. デスティネーション・クロックの周波数がソースクロック周波数の倍数である場合

この例では、デスティネーション・クロックの周波数の値である 5 ns は、ソースクロック周波数である 10ns の整数倍です。デスティネーション・クロックの周波数は、PLL がデスティネーション・クロックで位相シフトを使用して両方のクロックを生成する場合、ソースクロックの周波数の整数倍とすることが可能です。

次の例は、デスティネーション・クロックの周波数がソースクロックの周波数の倍数であるデザインを示しています。

図 -96: デスティネーション・クロックがソースクロックの倍数である回路図

REG1 REG2Combinational

LogicSET SET

D Q D Q

CLR CLRclk

In

clk0

clk1

Out

次の図は、Timing Analyzer が実行するデフォルトの解析のセットアップ・タイミング図を表しています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

83

Page 84: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -97: セットアップ・タイミング図-10 0

1 2

10 20

REG1.CLK

REG2.CLK

Launch

Latch

SC

図 -98: セットアップ・チェックの計算式

setup check = current latch edge – closest previous launch edge = 5 ns – 0 ns = 5 ns

このセットアップ関係は、データがエッジ 2 でキャプチャーする必要があることを示しています。したがって、この場合はセットアップ要件を緩和します。デフォルトの解析を修正するには、エンド・マルチサイクル・セットアップ例外の 2 を使用してラッチエッジを 1 クロック周期シフトします。次のマルチサイクル例外の割り当ては、この例のデフォルトの解析を調整します。

マルチサイクル制約

set_multicycle_path -from [get_clocks clk_src] -to [get_clocks clk_dst] \ -setup -end 2

次のタイミング図は、この例に推奨されるセットアップ関係を示しています。

図 -99: 推奨されるセットアップ解析-10 0

1 2

10 20

REG1.CLK

REG2.CLK

Launch

Latch

SC

次の図は、Timing Analyzer が実行するマルチサイクル・セットアップ値が 2 のデフォルトの解析のセットアップ・タイミング図を表しています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

84

Page 85: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -100: デフォルトのホールドチェック-10 0 10 20

REG1.CLK

REG2.CLK

CurrentLaunch

CurrentLatch

SCHC1

HC2

図 -101: ホールドチェックの計算式

hold check 1 = current launch edge – previous latch edge = 0 ns – 5 ns = –5 ns

hold check 2 = next launch edge – current latch edge = 10 ns – 10 ns = 0 ns

この例では、ホールドチェック 1 は過度に制限的です。データは 0 ns でエッジによってローンチされ、0ns で前のラッチエッジによってキャプチャーされたデータと照合する必要がありますが、このイベントはホールドチェック 1 では発生しません。デフォルトの解析を修正するには、エンド・マルチサイクル・ホールド例外の 1 を使用する必要があります。

2.2.8.5.6. デスティネーション・クロックの周波数がオフセットを持つソースクロック周波数の倍数である場合

この例は、前の 2 つの例を組み合わせたものです。デスティネーション・クロックの周波数はソースクロックの周波数の整数倍であり、デスティネーション・クロックは正の位相シフトを有しています。デスティネーション・クロックの周波数は 5 ns であり、ソースクロックの周波数は 10 ns です。デスティネーション・クロックは、ソースクロックに関連する正のオフセットの 2 も有しています。デスティネーション・クロックの周波数は、ソースクロックの周波数の整数倍となることが可能です。デスティネーション・クロックの周波数は、PLL がデスティネーション・クロック上で位相シフトを使用して両方のクロックを生成する場合、オフセット付きとすることが可能です。

次の例は、デスティネーション・クロックの周波数がオフセットを持つソースクロックの周波数の倍数であるデザインを示しています。

図 -102: デスティネーション・クロックがオフセット付きソースクロックの倍数である回路図REG1 REG2

CombinationalLogic

SET SETD Q D Q

CLR CLRclk

In

clk0

clk1

Out

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

85

Page 86: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

次の図は、Timing Analyzer が実行するデフォルトの解析のセットアップ・タイミング図を表しています。

図 -103: セットアップ・タイミング図-10 0

1 2 3

10 20

REG1.CLK

REG2.CLK

Launch

Latch

SC

図 -104: ホールドチェックの計算式

setup check = current latch edge – closest previous launch edge = 2 ns – 0 ns = 2 ns

この例のセットアップ関係は、データがエッジ 1 でキャプチャーする必要がない代わりに、エッジ 2 でキャプチャーする必要があることを示しています。したがって、この場合はセットアップ要件を緩和します。デフォルトの解析を修正するには、エンド・マルチサイクル・セットアップ例外の 3 を指定して、ラッチエッジを 1 クロック周期シフトします。

次に示すマルチサイクル例外は、この例のデフォルト解析を調整します。

マルチサイクル制約

set_multicycle_path -from [get_clocks clk_src] -to [get_clocks clk_dst] \ -setup -end 3

次のタイミング図は、この例に推奨されるセットアップ関係を示しています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

86

Page 87: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -105: 推奨されるセットアップ解析

SC

-10 0

1 2 3

10 20

REG1.CLK

REG2.CLK

Launch

Latch

次の図は、Timing Analyzer が実行するマルチサイクル・セットアップ値が 3 のデフォルトの解析のセットアップ・タイミング図を表しています。

図 -106: デフォルトのホールドチェック

SC

-10 0 10 20

REG1.CLK

REG2.CLK

CurrentLaunch

CurrentLatch

HC1HC2

図 -107: ホールドチェックの計算式

hold check 1 = current launch edge – previous latch edge = 0 ns – 5 ns = –5 ns

hold check 2 = next launch edge – current latch edge = 10 ns – 10 ns = 0 ns

この例では、ホールドチェック 1 は過度に制限的です。データは 0 ns でエッジによってローンチされ、2ns で前のラッチエッジによってキャプチャーされたデータと照合する必要がありますが、このイベントはホールドチェック 1 では発生しません。デフォルトの解析を修正するには、エンド・マルチサイクル・ホールド例外の 1 を割り当てます。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

87

Page 88: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

2.2.8.5.7. ソースクロックの周波数がデスティネーション・クロックの周波数の倍数である場合

この例では、ソースクロックの周波数の値である 5 ns は、デスティネーション・クロック周波数である 10ns の整数倍です。ソースクロックの周波数は、PLL が両方のクロックを生成し、異なる逓倍係数と分周係数を使用する場合、デスティネーション・クロックの周波数の整数倍とすることが可能です。

次の例は、ソースクロックの周波数がデスティネーション・クロックの周波数の倍数である回路図を表しています。

図 -108: ソースクロックの周波数がデスティネーション・クロックの周波数の倍数である場合REG1 REG2

CombinationalLogic

SET SETD Q D Q

CLR CLRclk

In

clk0

clk1

Out

次の図は、Timing Analyzer が実行するデフォルトの解析のセットアップ・タイミング図を表しています。

図 -109: デフォルトのセットアップ・チェック解析

SC

-10 0

2 1

10 20

REG1.CLK

REG2.CLK

Launch

Latch

図 -110: セットアップ・チェックの計算式

setup check = current latch edge – closest previous launch edge = 10 ns – 5 ns = 5 ns

この例のセットアップ関係は、エッジ 1 でローンチされたデータはキャプチャーする必要がなく、エッジ2 でローンチされたデータはキャプチャーする必要があることを示しています。したがって、この場合はセットアップ要件を緩和します。デフォルトの解析を修正するには、スタート・マルチサイクル・セットアップ例外の 2 を使用して、ローンチエッジを 1 クロック周期シフトします。

次に示すマルチサイクル例外は、この例のデフォルト解析を調整します。

マルチサイクル制約

set_multicycle_path -from [get_clocks clk_src] -to [get_clocks clk_dst] \ -setup -start 2

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

88

Page 89: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

次のタイミング図は、この例に推奨されるセットアップ関係を示しています。

図 -111: 推奨されるセットアップ・チェック解析

SC

-10 0

2 1

10 20

REG1.CLK

REG2.CLK

Launch

Latch

次の図は、Timing Analyzer が実行するスタート・マルチサイクル・セットアップ値が 2 のデフォルトの解析のセットアップ・タイミング図を表しています。

図 -112: デフォルトのホールドチェック

SC

-10 0 10 20

REG1.CLK

REG2.CLK

CurrentLaunch

CurrentLatch

HC1 HC2

図 -113: ホールドチェックの計算式

hold check 1 = current launch edge – previous latch edge = 0 ns – 0 ns = 0 ns

hold check 2 = next launch edge – current latch edge = 5 ns – 10 ns = –5 ns

この例では、ホールドチェック 2 は過度に制限的です。データは 10 ns でエッジによって次にローンチされ、10 ns で現在のラッチエッジによってキャプチャーされたデータと照合する必要がありますが、このイベントはホールドチェック 2 では発生しません。デフォルトの解析を修正するには、スタート・マルチサイクル・ホールド例外の 1 を使用します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

89

Page 90: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

2.2.8.5.8. ソースクロックの周波数がオフセットを持つデスティネーション・クロックの周波数の倍数である場合

この例では、ソースクロックの周波数はデスティネーション・クロックの周波数の整数倍であり、デスティネーション・クロックは正の位相オフセットを有しています。ソースクロックの周波数は 5 ns であり、デスティネーション・クロックの周波数は 10 ns です。デスティネーション・クロックは、ソースクロックに関連する正のオフセットの 2 も有しています。ソースクロックの周波数は、PLL が異なる逓倍係数を持つ両方のクロックを生成する際、オフセットを持つデスティネーション・クロック周波数の整数倍とすることが可能です。

図 -114: ソースクロックの周波数がオフセットを持つデスティネーション・クロックの周波数の倍数である場合

REG1 REG2Combinational

LogicSET SET

D Q D Q

CLR CLRclk

In

clk0

clk1

Out

次の図は、Timing Analyzer が実行するデフォルトの解析のセットアップ・タイミング図を表しています。

図 -115: セットアップ・タイミング図

SC

-10 0

3 2 1

10 20

REG1.CLK

REG2.CLK

Launch

Latch

図 -116: セットアップ・チェックの計算式

setup check = current latch edge – closest previous launch edge = 12 ns – 10 ns = 2 ns

この例のセットアップ関係は、データがエッジ 1 でローンチされず、エッジ 3 でローンチされるデータをキャプチャーする必要があることを示しています。したがって、この場合はセットアップ要件を緩和します。デフォルトの解析を調整するには、スタート・マルチサイクル・セットアップ例外の 3 を使用して、ローンチエッジを 2 クロック周期シフトします。

次に示すマルチサイクル例外は、この例のデフォルト解析を調整します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

90

Page 91: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

マルチサイクル制約

set_multicycle_path -from [get_clocks clk_src] -to [get_clocks clk_dst] \ -setup -start 3

次のタイミング図は、この例に推奨されるセットアップ関係を示しています。

図 -117: 推奨されるセットアップ・チェック解析-10 0

3 2 1

10 20

REG1.CLK

REG2.CLK

Launch

Latch

SC

次の図は、Timing Analyzer が実行するスタート・マルチサイクル・セットアップ値が 3 のデフォルトの解析のセットアップ・タイミング図を表しています。

図 -118: デフォルトのホールドチェック解析-10 0 10 20

REG1.CLK

REG2.CLK

CurrentLaunch

CurrentLatch

HC1

HC2

SC

タイミングアナライザは、次の計算を実行してホールドチェックを決定します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

91

Page 92: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -119: ホールドチェックの計算式

hold check 1 = current launch edge – previous latch edge = 0 ns – 2 ns = –2 ns

hold check 2 = next launch edge – current latch edge = 5 ns – 12 ns = –7 ns

この例では、ホールドチェック 2 は過度に制限的です。データは 10 ns でエッジによって次にローンチされ、12 ns で現在のラッチエッジによってキャプチャーされたデータと照合する必要がありますが、このイベントはホールドチェック 2 では発生しません。デフォルトの解析を修正するには、マルチサイクル・ホールド例外の 1 を指定する必要があります。

2.2.8.6. 遅延アノテーション

タイミング解析中に使用されるデフォルトの遅延値を修正するには、set_annotated_delayコマンドと set_timing_derateコマンドを使用します。これらのコマンドを適用するには、タイミング・ネットリストを更新する必要があります。

単一の.sdcファイル内で異なる動作条件を指定するには、異なる動作条件を指定する複数の.sdcファイルを作成する代わりに、set_annotated_delay -operating_conditionsコマンドを使用してください。

関連情報• set_timing_derate Command, インテル Quartus Prime Help

• set_annotated_delay Command, インテル Quartus Prime Help

2.2.8.7. デザイン・パーティション・ポートの制約

クロック定義と SDC 例外をデザイン・パーティション・ポートに割り当てることができます。ブロックベースのデザインフローとパーシャル・リコンフィグレーション・フローでは、デザイン・パーティションを使用する必要があります。

コンパイラーは、タイミング・ネットリスト内のデザイン・パーティション・ポートを、コンパイラーでは 適化できない持続的な名前を持つ組み合わせノードとして表します。このようなポートは、SDC 制約でクロックソースまたは-throughポイントとして問題なく参照することが可能です。デザイン・パーティション・ポートの名前は、report_pathコマンドで-toポイントおよび-fromポイントとして使用することも可能です。

partition_aのポート名が clk_divideである場合、SDC 制約は次のようになります。

create_generated_clock –source clock -divide_by 2 \ top|partition_a|clk_divide

partition_bのポートのセット名が data_input[0..7]である場合、SDC 制約は次のようになります。

set_multicycle_path –from top|partition_a|data_reg* \ -through top|partition_b|data_input* 2

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

92

Page 93: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

複数の-through句が使用可能です。これにより、1 つのデザイン・パーティションの出力ポートと別のダウンストリーム・デザイン・パーティションの入力ポートを経由するパスが指定できます。

パーティション・ポートに制約を追加するには、次を実行します。

1. Analysis & Synthesis を実行するか、デザイン・パーティションを含むデザインでフルコンパイルを実行します。

2. 目的のパーティション・ポートを特定し展開するには、Tools > Netlist Viewers > RTLViewer の順でクリックします。

3. RTL Viewer と同じ名前を使用して、プロジェクトの.sdcファイルにクロックおよび SDC 制約を追加します。ワイルドカードを使用すれば、複数のポートを参照することができます。

4. デザインを再コンパイルして、新しい定義と制約を適用します。

ブロックベースのフローや PR フローを除き、この手法は FPGA を使用している ASIC のエミュレーションにも役立ちます。このタイプのデザインでは多くの場合、クロック・ネットワークがパーティションの複数の階層におよぶことがあります。通常、設計者は Intel FPGA 上でクロック分周回路を容易にエミュレートすることはできないので、このような回路はネットリストから削除します。そのようなクロック・ネットワークにこの手法を使用すると、回路が削除された個所に異なるバージョンのクロック信号を定義することが可能となります。

パーティションの設計および配置を十分に検討してから、これらのパーティションに適切なポートを定義する必要があります。ポートとパーティションが、特殊回路を含むクロック・ネットワークの部分と一致することを確認します。適切なクロック定義とクロック関係をアノテートする目的で、エミュレートされた ASIC ネットリストを手動で編集することができます。この手法は、パス上の任意の箇所で制約のあるタイミングや定義済みのクロックソースが必要となるプロジェクトに対して使用可能です。

関連情報• 出力制約(set_output_delay) (63 ページ)

• Intel Quartus Prime Pro Edition User Guide: Partial Reconfiguration

• 入力制約(set_input_delay) (62 ページ)

• Intel Quartus Prime Pro Edition User Guide: Block-Based Design

2.2.9. Fitter による過剰制約の使用

Fitter の過剰制約とは、モデル化の不正確さ、誤った相関などのロジック 適化における不備を克服する目的で、ユーザーが調整するタイミング制約のことです。特定のパスに対してより積極的なタイミングの 適化を強制するように、Fitter でセットアップおよびホールドパスを過剰に制約することができます。

インテル Stratix 10 デザインに向けた過剰制約

インテル Stratix 10 デバイスに向けて設計をする際、コンパイラーによるパスのリタイムと 適化を防止する目的で、Fitter の過剰制約を使用して特定のノードをターゲットすることが可能です(ノードに複数のタイミング制約があり、コンパイラーはそれらを「don’t touch」として処理する場合があります)。制

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

93

Page 94: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

約が特定のノードをターゲットとしている場合は、is_post_route Tcl 関数を使用してください。この関数は、サインオフタイミング解析に影響を与えることなく、配線後のリタイミングを可能にする一方で、過剰制約の適用および Fitter(計画、配置、配線)のモジュールへのスラックの調整が可能です。

# Example Fitter overconstraint targeting specific nodes (allows for post-route retiming)if { ! [is_post_route]} { set_max_delay -from ${my_src_regs} -to ${my_dst_regs} 1ns}

注意: is_post_route関数はインクルーシブです。この関数を除外するには、否定構文(!)を使用してください。

その他のデバイスファミリーをターゲットとするデザインに向けた過剰制約

現在の実行可能ファイル(quartus_fitまたは quartus_sta)の名前をチェックする Fitter の過剰制約を割り当て、Fitter による 適化およびサインオフタイミング解析に対して異なる制約を適用することができます。

set fit_flow 0if { $::TimeQuestInfo(nameofexecutable) == "quartus_fit" } { set fit_flow 1}if {$fit_flow} { # Example Fitter overconstraint targeting specific nodes (restricts retiming) set_max_delay -from ${my_src_regs} -to ${my_dst_regs} 1ns}

2.2.10. 回路と SDC ファイルの例

次の回路と対応する.sdcファイルは、2 つのクロック、PLL(フェーズ・ロック・ループ)、およびその他の一般的な同期デザインエレメントを含むデザインの制約を表しています。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

94

Page 95: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

図 -120: デュアルクロックを持つデザインの制約例

data1

data2

clk1

clk2

inst

inst1

inst2lpm_add_sub0 myfifo

altpll0

dataout

.sdcファイルには、この回路に向けた基本的な制約が含まれています。

例-7: 基本的な .sdc 制約の例

# Create clock constraintscreate_clock -name clockone -period 10.000 [get_ports {clk1}]create_clock -name clocktwo -period 10.000 [get_ports {clk2}]# Create virtual clocks for input and output delay constraintscreate clock -name clockone_ext -period 10.000create clock -name clocktwo_ext -period 10.000derive_pll_clocks# derive clock uncertaintyderive_clock_uncertainty# Specify that clockone and clocktwo are unrelated by assigning# them to separate asynchronous groupsset_clock_groups \ -asynchronous \ -group {clockone} \ -group {clocktwo altpll0|altpll_component|auto_generated|pll1|clk[0]} # set input and output delaysset_input_delay -clock { clockone_ext } -max 4 [get_ports {data1}]\ set_input_delay -clock { clockone_ext } -min -1 [get_ports {data1}]set_input_delay -clock { clockone_ext } -max 4 [get_ports {data2}]\ set_input_delay -clock { clockone_ext } -min -1 [get_ports {data2}]set_output_delay -clock { clocktwo_ext } -max 6 [get_ports {dataout}]set_output_delay -clock { clocktwo_ext } -min -3 [get_ports {dataout}]

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

95

Page 96: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

.sdcファイルには、通常はユーザーがほとんどのデザインに含める、次の基本的な制約が含まれています。

• ベースクロックとしての clockoneと clocktwoの定義およびデザイン内のノードに向けたそれらの制約の割り当て

• FPGA とインターフェイスする外部デバイスを駆動するクロックを表現する、仮想クロックとしてのclockone_extと clocktwo_extの定義

• PLL 出力での生成クロックの自動導出

• クロック不確実性の導出

• 2 つのクロックグループの仕様です。 初のグループには clockoneとそれに関連するクロックが含まれます。2 つ目のグループには clocktwoとそれに関連するクロックが含まれます。3 つ目のグループには PLL の出力が含まれます。この仕様は、デザイン内のすべてのクロックのデフォルト解析を互いに関連するものとしてオーバーライドします。

• デザインの入力遅延と出力遅延の仕様

関連情報非同期クロックグループ(-asynchronous) (58 ページ)

2.3. Timing Analyzer の Tcl コマンド

インテル Quartus Prime 開発ソフトウェアの Tcl アプリケーション・プログラム・インターフェイス(API)から Tcl コマンドをオプションで使用して、デザインのタイミング情報を制約、解析、収集することが可能です。本セクションでは、Timing Analyzer の実行と Tcl コマンドを使用したセッティングの制約について説明します。また、Timing Analyzer の GUI でこれらの同じ機能を実行することも可能です。Tcl .sdc拡張子は、タイミング解析とレポートに向けて追加の制御方法を提供します。次の Tcl パッケージは、この章で説明する Tcl タイミング解析コマンドをサポートしています。

• ::quartus::sta

• ::quartus::sdc

• ::quartus::sdc_ext

関連情報• ::quartus::sta

Timing Analyzer の Tcl コマンドおよびコマンドの完全なリストについての詳細は、 インテルQuartus Prime Help を参照してください。

• ::quartus::sdc標準的な SDC コマンドおよびコマンドの完全なリストについての詳細は、 インテル QuartusPrime Help を参照してください。

• ::quartus::sdc_extSDC コマンドの Intel FPGA 拡張およびコマンドの完全なリストについての詳細は、 インテルQuartus Prime Help を参照してください。

2.3.1. quartus_sta 実行ファイル

quartus_sta実行ファイルを使用すれば、完全な インテル Quartus Prime 開発ソフトウェアのGUI を実行しなくてもタイミング解析が実行できます。次の方法が利用可能です。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

96

Page 97: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

• Timing Analyzer スタンドアロンの GUI アプリケーションとして実行するには、コマンドプロンプトで次を入力します。

quartus_staw

• Timing Analyzer をインタラクティブ・コマンドシェル・モードで実行するには、コマンドプロンプトで次を入力します。

quartus_sta -s <options><project_name>

• システム・コマンドプロンプトからマルチコーナー・タイミング解析を実行するには、次のコマンドを入力します。

quartus_sta <options><project_name>

必要に応じて、コマンドライン・オプションを使用して、大規模なデザインでタイミング解析を反復的に実行することも可能です。quartus_sta --mode=implementを使用すれば、それほど集約的ではない解析を実行することも可能です。このモードでは、 インテル Quartus Prime 開発ソフトウェアは低減されたコーナー解析を実行します。目的の結果が得られたら、quartus_sta --mode=finalizeを使用して、 終的な Fitter による 適化と完全な 4 コーナー解析を実行することができます。

表 21. quartus_sta コマンドライン・オプション

コマンドライン・オプション 説明

-h | --help quartus_staのヘルプ情報を提供します。

-t <script file> | --script=<script file>

<script file>をソースします。

-s | --shell シェルモードに入ります。

--tcl_eval <tcl command> Tcl コマンド<tcl command>を評価します。

--do_report_timing デザイン内のすべてのクロックに対して、次のコマンドを実行します。

report_timing -npaths 1 -to_clock $clockreport_timing -setup -npaths 1 -to_clock $clock report_timing -hold -npaths 1 -to_clock $clock report_timing -recovery -npaths 1 -to_clock $clock report_timing -removal -npaths 1 -to_clock $clock

--force_dat 新しい遅延情報でプロジェクト・データベースの更新を強制します。

--lower_priority quartus_staプロセスの計算優先度を下げます。

--post_map マッピング後のデータベース結果を使用します。

--sdc=<SDC file> 使用する.sdcファイルを指定します。

--report_script=<custom script> 呼び出すカスタム・レポート・スクリプトを指定します。

--speed=<value> タイミング解析に使用するデバイスのスピードグレードを指定します。

--tq2pt Generates temporary files to convert the Timing Analyzer.sdcファイルをPrimeTime .sdcファイルに変換するための一時ファイルを生成します。

-f <argument file> 追加のコマンドライン引数を含んでいるファイルを指定します。

-c <revision name> | --rev=<revision_name>

使用するリビジョンとそれに関連する インテル Quartus Prime Settings File (.qsf)を指定します。

--multicorner Timing Analyzer が低速と高速の両方のコーナーに対してすべてのスラック・サマリー・レポートを生成するよう指定します。

continued...

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

97

Page 98: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

コマンドライン・オプション 説明

--multicorner[=on|off] マルチコーナー・タイミング解析をオフにします。

--voltage=<value_in_mV> タイミング解析に使用するデバイスの電圧を mV で指定します。

--temperature=<value_in_C> タイミング解析に使用するデバイスの温度を摂氏で指定します。

--parallel [=<num_processors>] マルチプロセッサー・システムで使用するコンピューター・プロセッサーの数を指定します。

--64bit 64 ビットバージョンの実行ファイルをイネーブルします。

--mode=implement|finalize Timing Analyzer が中間的な動作(implement)に向けて低減された解析を使用するのか、または 終的な Fitter の 適化と配置(finalize)に向けて 4 コーナー解析を実行するのかを制御します。

2.3.2. 収集コマンド

Timing Analyzer は、デザイン内のピン、セル、ノードへの簡単なアクセスを提供する収集コマンドをサポートしています。 任意の制約を持つ収集コマンドまたは Timing Analyzer で指定した Tcl コマンドを使用します。

表 22. 収集コマンド

コマンド 返されるコマンド

all_clocks デザイン内のすべてのクロック

all_inputs デザイン内のすべての入力ポート

all_outputs デザイン内のすべての出力ポート

all_registers デザイン内のすべてのレジスター

get_cells デザイン内のセル。コレクション内のすべてのセルの名前は、指定したパターンと一致します。ワイルドカードを使用すれば、同時に複数のセルが選択可能です。

get_clocks デザイン内のクロックをリスト表示します。set_multicycle_pathの-fromまたは-toのように他のコマンドへの引数として使用される場合、クロック内の各ノードはコレクション内のクロックによってクロッキングされるすべてのノードを表します。デフォルトでは、コマンドのターゲットとして(ノードがクロックの場合でも)特定のノードが使用されます。

get_nets デザイン内のネット。コレクション内のすべてのネットの名前は、指定したパターンと一致します。ワイルドカードを使用すれば、同時に複数のネットが選択可能です。

get_pins デザイン内のピン。コレクション内のすべてのピンの名前は、指定したパターンと一致します。ワイルドカードを使用すれば、同時に複数のピンが選択可能です。

get_ports デザイン内のすべてのポート(デザイン入力および出力)

View メニューの Name Finder をクリックして、コレクションを詳しく調べたり、Timing Analyzerでワイルドカードを使用してコレクションを試したりすることも可能です。

2.3.2.1. ワイルドカード文字

デザイン内の多くのノードに制約を適用するには、「*」と「?」のワイルドカード文字を使用します。ワイルドカード文字の「*」は任意の文字列にマッチします。ワイルドカード文字の「?」は任意の 1 文字にマッチします。

ノード reg*に制約を適用する場合、Timing Analyzer は reg、reg1、reg[2]、regbank、reg12bankといったプリフィックス regに続く数字または文字に一致するすべてのデザインノードに制約を検索して適用します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

98

Page 99: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

reg?で指定されたノードに制約を適用する場合、Timing Analyzer は reg1、rega、reg4といったプリフィックス regとそれに続く 1 文字に一致するすべてのデザインノードに制約を検索して適用します。

2.3.2.2. コレクション・アイテムの追加と削除

収集コマンドと使用するワイルドカードは、コマンドが識別するコレクション・アイテムを定義します。たとえば、src0、src1、src2、dst0という名前のレジスターがデザインに含まれている場合、コレクション・コマンドの[get_registers src*]はレジスター src0、src1、および src2を識別しますが、レジスター dst0は識別しません。レジスター dst0を識別させるには、追加のコマンドである[get_registers dst*]を使用する必要があります。dst0を含めるには、コレクション・コマンドの[get_registers {src* dst*}]を指定することも可能です。

コレクションを変更するには、add_to_collectionおよび remove_from_collectionコマンドを使用します。add_to_collectionコマンドを使用すると、既存のコレクションにアイテムを追加できます。

add_to_collection コマンド

add_to_collection < first collection > < second collection >

注意: add_to_collectionコマンドは、指定した 2 つのコレクションが結合された新しいコレクションを作成します。

remove_from_collectionコマンドを使用すると、既存のコレクションからアイテムを削除できます。

remove_from_collection コマンド

remove_from_collection < first collection > < second collection >

次の例は、add_to_collectionを使用してアイテムをコレクションに追加する方法を示しています。

コレクションへのアイテムの追加

#Setting up initial collection of registersset regs1 [get_registers a*]#Setting up initial collection of keepersset kprs1 [get_keepers b*]#Creating a new set of registers of $regs1 and $kprs1set regs_union [add_to_collection $kprs1 $regs1]#OR#Creating a new set of registers of $regs1 and b* #Note that the new collection appends only registers with name b*# not all keepersset regs_union [add_to_collection $regs1 b*]

インテル Quartus Prime 開発ソフトウェアでは、キーパーは I/O ポートまたはレジスターです。get_keepersが含まれる.sdcファイルは、サードパーティーのタイミング解析フローと互換性がありません。

関連情報• add_to_collection Command, インテル Quartus Prime Help

• remove_from_collection Command, インテル Quartus Prime Help

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

99

Page 100: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

2.3.2.3. コレクションのクエリー

コレクションの内容は、query_collectionコマンドで表示することができます。行ごとに 1 つのエレメントという形式で内容を返すには、-report_formatオプションを使用します。-list_formatオプションは、内容を Tcl リストで返します。

query_collection -report_format -all $regs_union

コレクションに含まれるアイテムの数を返すには、get_collection_sizeコマンドを使用します。コレクションが colという名前の変数であれば、set num_items [llength[query_collection -list_format $col]]よりも set num_items[get_collection_size $col]を使用する方がより効率的です。

2.3.2.4. get_pins コマンドの使用

get_pinsコマンドは、ワイルドカード文字(*)の一致動作を制御するオプションをサポートしています。使用するオプションの組み合わせによっては、ワイルドカード文字(*)が個々の階層レベルを尊重したり、無視したりするよう設定可能です。パイプ文字(|)は階層のレベルを示します。デフォルトでは、ワイルドカード文字(*)は単一レベルの階層にのみ一致します。

次の例は、機能を示すために次のノードとピン名をフィルターします。

• lvl (lvlという名前を持つ階層レベル)

• lvl|dataa (インスタンス lvl内の入力ピン)

• lvl|datab (インスタンス lvl内の入力ピン)

• lvl|cnod (lvlインスタンス内の cnodという名前を持つ組み合わせノード)

• lvl|cnod|datac (cnodをいう名前を持つ組み合わせノードへの入力ピン)

• lvl|cnod|datad (cnodをいう名前を持つ組み合わせノードへの入力ピン)

表 23. 検索文字列と検索結果の例

検索文字列 検索結果

get_pins *|dataa lvl|dataa

get_pins *|datac <empty> (4)

get_pins *|*|datac lvl|cnod|datac

get_pins lvl*|* lvl|dataa、lvl|datab

get_pins -hierarchical *|*|datac <empty>(4)

get_pins -hierarchical lvl|* lvl|dataa、lvl|datab

get_pins -hierarchical *|datac lvl|cnod|datac

get_pins -hierarchical lvl|*|datac <empty>(4)

get_pins -compatibility_mode *|datac lvl|cnod|datac (5)

get_pins -compatibility_mode *|*|datac lvl|cnod|datac

(4) ワイルドカード文字(*)は 2 つ以上の階層レベルと一致しないため、検索結果は<empty>となります。これはパイプ文字(|)がデフォルトで示すものです。このコマンドは、デザインのトップレベルのインスタンスで datacという名前を持つすべてのピンと一致します。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

100

Page 101: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

デフォルトの方法では、インスタンスの階層レベルをノードとピンからパイプ文字(|)で区切ります。階層のレベルが一致し、ワイルドカードを含む文字列値がインスタンス名またはピン名と一致すると、マッチングが発生します。たとえば、コマンド get_pins <instance_name>|*|datacは、特定のインスタンス内のレジスターに対してすべての datacピンを返します。ただし、コマンド get_pins*|datacは、階層のレベルが一致しないため、コレクションを返します。

デザインのすべての階層内のセルまたはピンのコレクションを返すには、-hierarchicalマッチング・スキームを使用します。

たとえば、コマンド get_pins -hierarchical *|datacはデザイン内のすべてのレジスターに対してすべての datacピンを返します。 ただし、コマンド get_pins -hierarchical *|*|datacは、複数のパイプ文字(|)がサポートされていないため、空のコレクションを返します。

-compatibility_modeオプションは、ワイルドカード文字列に一致するコレクションを任意の数の階層レベルで返します。たとえば、-compatibility_modeを使用している場合、アスタリスクはパイプ文字と一致することがあります。

2.4. インポートされたコンパイル結果のタイミング解析

デザインのコンパイル結果は、バージョン互換の Quartus データベース・ファイル(.qdb)として保存することができます。このファイルには互換性があるため、 インテル Quartus Prime 開発ソフトウェアの後のバージョンで問題なく開くことができます。

ソフトウェアの後のバージョンで.qdbをインポートおよび展開する際、コンパイラーを再実行することなくインポートされたコンパイル結果のタイミング解析が実行できます。

関連情報Exporting a Version-Compatible Compilation Database

2.5. インテル Quartus Prime Timing Analyzer ユーザーガイド 改訂履歴

ドキュメント・バージョン インテル QuartusPrime のバージョン

変更内容

2018 年 9 月 24 日 18.1.0 • トピック「エンティティーにバインドされた SDC ファイルの使用」を追加しました。• トピック「エンティティーにバインドされた制約のスコープ」を追加しました。• トピック「エンティティーにバインドされた制約の例」を追加しました。• シーケンスの手順の追加、手順の更新、スクリーンショットの追記を行い、項「タイミン

グ解析の基本的なフロー」を訂正しました。• トピック「Timing Analyzer の使用」に Timing Analyzer のスクリーンショットを追

加しました。• このバージョンのソフトウェアでは、この機能に制限があるため、トピック「テキストエ

ディターを使用したテンプレートからの制約ファイルの作成」を削除しました。• 「SDC 制約生成の要約」から「デュアルクロック SDC の例」に見出しを変更しました。

continued...

(5) -compatibility_modeを使用する際、ワイルドカードを持つ文字を使用すると、Timing Analyzer はパイプ文字(|)を特殊文字としては処理しません。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

101

Page 102: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

ドキュメント・バージョン インテル QuartusPrime のバージョン

変更内容

• 「デフォルト設定」から「デフォルトのマルチサイクル解析」に見出しを変更しました。• 「ブラックボックス・ポートでの SDC(クロックおよび例外)割り当て」から「デザイン・パ

ーティション・ポートの制約」に見出しを変更しました。• トピック「Design Assistant の推奨事項の表示」を追加しました。

2018 年 5 月 7 日 18.0.0 • スタンドアロン Timing Analyzer ユーザーガイドの一部として初期リリースしました。

2017 年 11 月 27 日 17.1.0 • 古くなった図「Timing Analyzer を使用したデザインフロー」を削除しました。• トピック「初期解析と合成の実行」に インテル Quartus Prime プロ・エディションコ

マンドを追記し更新しました。

2017 年 11 月 6 日 17.1.0 • トピック「Fitter による過剰制約の使用」を インテル Stratix 10 サポートに向けて更新しました。

2017 年 5 月 8 日 17.0.0 • トピック「Fitter による過剰制約の使用」を追加しました。• トピック「クロック・ドメイン・クロッシング・レポート」を追加しました。

2016 年 10 月 31 日 16.1.0 • インテルにブランド名を変更しました。• set_input_delay、set_output_delay、remove_input_delay、

remove_output_delayを持つ-blackboxオプションへのサポートを追加しました。

2016 年 5 月 3 日 16.0.0 新しいトピック「ブラックボックス・ポートでの SDC(クロックおよび例外)割り当て」を追加しました。

2015 年 11 月 2 日 15.1.0 • 表記を Quartus II から Quartus Prime へ変更しました。• --mode=implement|finalizeを使用した 3 コーナーおよび 4 コーナー解析

の記述を追加しました。• 新しい set_operating_conditions UI の記述を追加しました。

2015 年 5 月 4 日 15.0.0 Arria 10 に向けた新しいタイミング・アルゴリズムをサポートする目的で内容を追加および更新しました。:• Arria 10 デバイスに向けて強化されたタイミング解析• 大スキュー(set_max_skewコマンド)• ネット遅延(set_net_delayコマンド)• 生成クロックの作成(clock-as-data の例)

2014 年 12 月 15 日 14.1.0 大幅な改編を行い、次のトピックを訂正し内容を追加しました。• タイミング制約• クロックおよびクロック制約の作成• 生成クロックの作成• クロックグループの作成• クロック不確実性• Timing Analyzer の実行• タイミングレポートの生成• 結果の解釈• Tcl コマンドを使用した制約と解析

2014 年 8 月 14.0a10.0 Arria 10 デバイスに向けたコマンドライン・コンパイル要件を追加しました。

2014 年 6 月 14.0.0 • 軽微な更新を行いました。• 形式を更新しました。

2013 年 11 月 13.1.0 • HardCopy デバイス情報を削除しました。

continued...

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

102

Page 103: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

ドキュメント・バージョン インテル QuartusPrime のバージョン

変更内容

2012 年 6 月 12.0.0 • 章を再編しました。• Insert Template ダイアログボックスを使用した SDC 制約ファイルの作成にセク

ション「 インテル Quartus Prime テキストエディターを使用した インテルQuartus Prime テンプレートからの制約ファイルの作成」を追加しました。

• セクション「SDC ファイルからの インテル Quartus Prime 開発ソフトウェア実行ファイルの特定」を追加しました。

• マルチサイクル例外のセクションを訂正しました。

2011 年 11 月 11.1.0 • インテル Quartus PrimeTiming Analyzer のベストプラクティスからの内容を統合しました。

• ドキュメントのテンプレートを更新しました。

2011 年 5 月 11.0.0 • フローを改善するために更新しました。編集上の軽微な修正を行いました。

2010 年 12 月 10.1.0 • ドキュメントのテンプレートを更新しました。• 章全体を改定し、再編成しました。• インテル Quartus Prime Help へのリンクを追加しました。

2010 年 7 月 10.0.0 インテル Quartus Prime Help に SDC コマンドと Timing Analyzer GUI の内容へのリンクを更新しました。

2009 年 11 月 9.1.0 インテル Quartus Prime 開発ソフトウェア・バージョン 9.1 に向けて次の内容を更新しました。• コレクションへのアイテムの追加およびコレクションからのアイテムの削除に関する

情報を追加しました。• set_timing_derate コマンドと report_skew コマンドに関する情報を追加しまし

た。• ワーストケース・タイミング・レポートに関する情報を追加しました。• 編集上の軽微な修正を行いました。

2008 年 11 月 8.1.0 インテル Quartus Prime 開発ソフトウェア・バージョン 9.1 に向けて次の内容を更新しました。• 次の項を追加しました。

“set_net_delay”(ページ 7–42)“Annotated Delay” (ページ 7–49)“report_net_delay”(ページ 7–66)

• 章全体を通して表内の-appendおよび-file < name >オプションの記述を更新しました

• 章全体を 8½” × 11”の文字サイズで更新しました。• 編集上の軽微な修正を行いました。

関連情報Documentation Archive

以前のバージョンの インテル Quartus Prime Handbook を確認するには、ドキュメンテーションのアーカイブを検索してください。

2. インテル Quartus Prime Timing Analyzer の使用方法UG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

103

Page 104: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

A. インテル Quartus Prime プロ・エディション ユーザーガイド

インテル Quartus Prime プロ・エディション FPGA デザインフローのすべての段階の包括的情報については次のユーザーガイドを参照してください。

関連情報• インテル Quartus Prime プロ・エディション スタート・ユーザーガイド

インテル Quartus Prime プロ・エディション プロジェクトおよび IP の管理、初期デザイン時の考慮事項、旧ソフトウェア・バージョンからのプロジェクト・マイグレーションを含む インテルQuartus Prime プロ・エディション開発ソフトウェアの基本的な機能、ファイル、およデザインフローについて説明します。

• インテル Quartus Prime プロ・エディション Platform Designer ユーザーガイドカスタマイズされた IP のプロジェクトへの統合を簡略化するシステム統合ツールであるPlatform Designer を使用したシステムの作成および 適化について説明します。PlatformDesigner は知的財産(IP)機能とサブシステムを接続する相互接続ロジックを自動で生成します。

• インテル Quartus Prime プロ・エディション デザイン推奨事項ユーザーガイドインテル Quartus Prime プロ・エディション開発ソフトウェアを使用して FPGA をデザインするための 良のデザイン方法について説明します。HDL コーディング・スタイルと同期デザインの実行方法は、デザイン性能に大きく影響します。推奨される HDL コーディング・スタイルに従うことで、 インテル Quartus Prime プロ・エディション合成は、デザインをハードウェアに適な形で実装します。

• インテル Quartus Prime プロ・エディション デザイン・コンパイル・ユーザーガイドインテル Quartus Prime プロ・エディション コンパイラーのすべての段階での設定、実行方法、および 適化について説明します。コンパイラーは、デバイス・プログラミング・ファイルの生成前に、デザインを合成および配置配線します。

• インテル Quartus Prime プロ・エディション デザイン 適化ユーザーガイドIntel® FPGA で 良のデザイン性能を実現するために使用可能な インテル Quartus Primeプロ・エディションの設定、ツール、および手法について説明します。この手法には、デザ イン・ネットリストの 適化、リタイミングとタイミング・クロージャーを制限するクリティカル・チェーンのへ対応、およびデバイスリソース使用量の 適化が含まれます。

• インテル Quartus Prime プロ・エディション Programmer ユーザーガイドIntel® FPGA ダウンロード・ケーブルとの接続を介した Intel® FPGA デバイスのコンフィグレーションおよび CPLD とコンフィグレーション・デバイスのプログラミングを可能にする インテル Quartus Prime プロ・エディション Programmer の操作方法について説明します。

• インテル Quartus Prime プロ・エディション ブロックベースのデザイン・ユーザーガイドモジュラーまたは階層デザインフローとも呼ばれる、ブロックベースのデザインフローについて説明します。この高度なフローにより、プロジェクト内でのデザインブロック(または階層デザイン・インスタンスを構成するロジック)の保持と他のプロジェクトでのデザインブロックの再利用が可能になります。

UG-20140 | 2018.09.24

フィードバック

Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を 新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ISO9001:2015登録済

Page 105: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

• インテル Quartus Prime プロ・エディション パーシャル・リコンフィグレーション・ユーザーガイドFPGA の一部分の動的なリコンフィグレーションを、FPGA デザインの他の部分は動作を継続したまま可能にする高度なデザインフローであるパーシャル・リコンフィグレーションについて説明します。他のエリアの動作に影響を与えることなく、特定のデザインの領域に対して複数のペルソナを定義します。

• インテル Quartus Prime プロ・エディション サードパーティー・シミュレーション・ユーザーガイドデバイス・プログラミングの前にデザインの挙動を検証することが可能な、Aldec*、Cadence*、 Mentor Graphics* 、および Synopsys が提供するサードパーティー・シミュレーション・ツールへの RTL およびゲートレベルのデザイン・シミュレーションについて説明します。これには、シミュレーター・サポート、シミュレーション・フロー、および インテル FPGA IPのシミュレーションが含まれます。

• インテル Quartus Prime プロ・エディション サードパーティー合成ユーザーガイドMentor Graphics* および Synopsys が提供するサードパーティー合成ツールにおけるデザインのオプション合成サポートについて説明します。これには、デザインフローのステップ、生成されたファイルの説明、および合成ガイドラインが含まれます。

• インテル Quartus Prime プロ・エディション サードパーティーのロジック等価性検証ツール・ユーザーガイド

デザインを OneSpin*によるサードパーティーのロジック同値チェック(LEC)ツールで検証する場合のサポートについて説明します。コンパイル・ネットリスト間のロジック等価性を検証する方法について説明します。

• インテル Quartus Prime プロ・エディション デバッグ・ツール・ユーザーガイドデザインのリアルタイム検証に使用する、 インテル Quartus Prime プロ・エディション インシステム・デザイン・デバッグ・ツールのポートフォリオについて説明します。このツールは、デザイン内の信号をデバッグロジックにルーティング(または「タッピング」)することで可視性を提供します。このツールには、システムコンソール、Signal Tap ロジック・アナライザー、トランシーバー・ツールキット、In-System Memory Content Editor、および In-System Sourcesand Probes Editor が含まれます。

• インテル Quartus Prime プロ・エディション タイミング・アナライザー・ユーザーガイド静的タイミング分析についての基本的な考え方と業界標準の制約、分析、レポート手法を使用してデザイン内のすべてのロジックのタイミング性能を検証する強力な ASIC 形式のタイミング分析ツールである インテル Quartus Prime プロ・エディション タイミング・アナライザーの使用方法について説明します。

• インテル Quartus Prime プロ・エディション 電力解析および 適化ユーザーガイドデバイスの消費電力を高精度で見積もる、 インテル Quartus Prime プロ・エディション 消費電力解析ツールについて説明します。このツールは、電力バジェットとデバイス電源、電圧レギュレーター、ヒートシンク、および冷却システムを開発するためのデバイスの消費電力を見積もります。

• インテル Quartus Prime プロ・エディション デザイン制約ユーザーガイドピン・アサインメント、デバイスオプション、ロジックオプション、およびタイミング制約といったコンパイラーによるデザインの実装方法に影響するタイミングおよびロジック制約について説明します。Interface Planner を使用して、インターフェイス実装のプロトタイプの作成、クロックのプランニング、および正当なデバイス・フロアプランを迅速に定義します。ターゲットデバイスをグラフィカルに表現して、すべての I/O アサインメントを可視化、編集、検証するには、PinPlanner を使用します。

• インテル Quartus Prime プロ・エディション PCB デザイン・ツール・ユーザーガイドMentor Graphics* および Cadence*によって提供されるオプションのサードパーティーPCB デザインツールのサポートについて説明します。HSPICE モデルと IBIS モデルによるシグナル・インテグリティー解析およびシミュレーションに関する情報も含まれています。

A. インテル Quartus Prime プロ・エディション ユーザーガイドUG-20140 | 2018.09.24

フィードバック インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析

105

Page 106: インテル Quartus Prime プロ・エディショ ンユーザーガイド …...reg1 reg2 and_inst reg3 1. タイミング解析の概要 UG-20140 | 2018.09.24 インテル Quartus

• インテル Quartus Prime プロ・エディション スクリプティング・ユーザーガイドインテル Quartus Prime プロ・エディション 開発ソフトウェアの制御、およびプロジェクトの管理、制約の指定、コンパイルあるいはタイミング分析の実行、レポートの生成などの広範囲におよぶ機能を実行するための Tcl およびコマンドライン・スクリプトの用について説明します。

A. インテル Quartus Prime プロ・エディション ユーザーガイドUG-20140 | 2018.09.24

インテル Quartus Prime プロ・エディションユーザーガイド: タイミング解析 フィードバック

106