【静的タイミング解析簡潔チュートリアル(9)】マルチサイクルパス set_multicycle_path

1. 前に書く

デジタル チップ エンジニア中核となる競争力は何ですか? エンジニアによって異なる答えが得られ、ハードウェア記述言語に言及する人もいるかもしれませんし、特定のアルゴリズムやプロトコルの理解に言及する人もいますしハードウェアとソフトウェアの組み合わせに言及する人もいます。著者は、これらの記述は実際に正しいと言いたいのです。ハードウェア記述言語は、always ステートメントと assign ステートメントを何度も繰り返し使用するだけであり、いくつかの基本的なプロトコル アルゴリズムは、深く掘り下げると実際には複雑ではありませさらに、非常に重要な追加スキルが 2 つあります。その 1 つは、sdc/STA の分析能力です。その重要性は、フロントエンドとバックエンドの間の接続をブリッジとして確立することにあります。sdc はしばしば不正確です。この SDC を通じてエラーのないタイミング レポートを生成する方法はありませんが、SDC の内容は、動作レベルの記述からゲート レベルなどの実際の回路レベルまで、タイミング制約を完全かつ完全にマッピングしたものです。 . 以上。
このコラムは、1 つは学習記録用、もう 1 つはコミュニケーションと共有用として、ファンと読者に報いるために書きます。

1.1 クイック ナビゲーション リンク ·

静的タイミング解析簡潔講座 (1) はじめに
静的タイミング解析簡潔講座 (2) 基礎知識:ホールドタイムの​​確立、違反修復、タイミング解析パスの確立 静的
タイミング解析簡潔講座 (3) 秋採用に向けて、見慣れないタイミングレポートの見方
静的タイミング解析の簡潔なコース (4)
クロックに一定の制約を与える静的タイミング解析の簡潔なコース (5) 生成されたクロックに関する静的タイミング解析の簡潔なコース (
6) クロック グループおよびその他の静的タイミング解析の簡潔なコースクロック特性(7)
ポート遅延
の静的タイミング解析の簡潔なコース (8) フォールス パス
の静的タイミング解析の簡潔なチュートリアル (9) マルチサイクル パスの静的タイミング解析の簡潔なコース
(10) クロックの特性に関する簡潔なコース結合回路パスの静的タイミング解析
(11) モード解析および制約管理の静的タイミング解析に関する簡潔なコース
(12) tcl 言語に関するディスカッション

2. マルチサイクルパス

通常、次の図に示すように、このサイクルのクロック エッジで開始されたデータは次の立ち上がりクロック エッジキャプチャされます。
ここに画像の説明を挿入

ただし、数クロック サイクル後にキャプチャしたい場合もあります(たとえば、リセット信号が複数サイクルのロー レベルに対して有効であることを確認するためなど)。タイミング解析における追加のサイクル制約のスキームはマルチと呼ばれます。 -自転車道
ここに画像の説明を挿入

2.1 マルチサイクル パス用の SDC コマンド

set_multicycle_path		[-setup]
						[-hold]
						[-rise][-fall]
						[-start][-end]
						[-from from_list]
						[-to to_list]
						[-through through_list]
						[-rise_from rise_from_list]
						[-rise_to rise_to_list]
						[-rise_through rise_through_list]
						[-fall_from fall_from_list]
						[-fall_to rise_to_list]
						[-fall_through fall_through_list]
						path_multiplier
						[-comment comment_string]

2.2 パスの従来の制約

フォールス パスと同様に、次の一般的な制約もマルチサイクル パスの制約プロセスに現れます。

[-rise],[-fall],
[-from],[-to],[-through],
[-rise_from],[-rise_to],[-rise_through],
[-fall_from],[-fall_to],[-fall_through]

具体的な内容については、静的タイミング解析の簡潔なチュートリアル (8) フォルス パスの関連内容を参照してください。

2.3 仕様の確立/維持

マルチサイクル パスの制約については、[-setup] および [-hold] のオプションは理解するのがやや複雑な場合があります。
ここに画像の説明を挿入
従来のパスでは、データが A で開始される場合、データは B でキャプチャされる必要があります。言い換えると、セットアップ時間の解析は A エッジと B エッジで発生する必要がありますが、マルチサイクル パスでは
、 [-setup] オプションを使用すると、キャプチャ エッジを。ここで変更されるエッジはキャプチャ エッジの位置であることに注意してください。より多くのクロック サイクルを許可するためにキャプチャ エッジを右に移動できますが、そうする必要があります。なお、キャプチャエッジをDに移動すると、セットアップタイムチェックがDに移動するだけでなく、ホールドタイムチェックも移動します。もちろん、セットアップタイムチェックとホールドタイムチェックを同時に実行することもできます。 D では、しかしこれには問題があります。つまり、合成ツールの場合、厳格なホールド タイム チェックを満たすためにタイミング パス上にバッファのようなバッファが挿入され、面積と消費電力が増加します。

この問題を解決するには、[-hold] オプションを使用して、保持時間チェックを A または B に戻します。

たとえば、確立エッジを D エッジに 3 サイクル移動すると、ホールド解析は自動的に C に移動します。このとき、C に対応するホールド倍率は 0、B に対応するホールド倍率は 1、ホールド倍率はA に対応するのは 2 です
。[ -hold] N オプションを渡します。N は倍数を保持し、チェック エッジを左に移動できます。
[-setup] N の場合、このオプションで指定された N はセットアップを移動します。エッジから N サイクル目まで (N サイクルの差に注意して移動する必要があります) 1 サイクルの差があります。上の図を例にとると、D に対応する N は 4、つまり 3 サイクルシフトされています。

2.4 変位

2.3ではキャプチャエッジの移動について説明しましたが、エスタブリッシュメントエッジについては左右に移動させる方法はあるのでしょうか?
答えは「はい、[-start] [-end] オプションを使用して移動できます。
要約すると、
-end はキャプチャ エッジの移動を意味し、サンプリング エッジはサンプリング クロック信号のエッジとして理解できます
。 start は開始エッジを意味します。開始エッジは開始クロック信号のエッジとして理解できます。

2.5 マルチクロックサイクルの場合

マルチサイクル パスの適用について、上の図にどのような論理関係があるかを理解するためにを見てみましょう。
ここに画像の説明を挿入

Cs は F1 レジスタを駆動してデータ信号を生成すると同時に、F2 レジスタを駆動してイネーブル信号を生成し、このイネーブル信号は FSM (つまり、小さな雲のようなグラフィック) に入り、その後 F3 に入力されます。 N サイクル F3 レジスタは Cd によって駆動され、受信されます ハイにプルアップ、サンプル データ

データ信号はすぐに F3 レジスタに入る必要はなく、到着するまでに N クロック サイクルかかる可能性があるため、SDC で次のように制約できることがわかりました。

set_multicycle_path -from Cs -through F1/Q -setup N -end
set_multicycle_path -from Cs -through F1/Q -to Cd -hold N-1 -end

3. まとめ

DMUX または非同期リセットおよび同期リリースの状況では、データまたはリセット信号は 1 回のショットで次のレベルによって取得されず、数クロック サイクル後にサンプリングされる必要があるため、次の SDC コマンドを通じて制約できます。 set_multicycle_path: このコマンドは、セットアップ時間チェックまたはホールド時間チェックを制限するだけでなくキャプチャ エッジまたはサンプリング エッジも制限できます。

おすすめ

転載: blog.csdn.net/weixin_43698385/article/details/128272395