インテル® Quartus® Prime プロ・エディションのユーザーガイド: デザインの推奨事項

ID 683082
日付 8/03/2023
Public
ドキュメント目次

2.2.2.2. 意図しないラッチ推論の回避

ラッチの使用を避け、デザインのタイミング・パフォーマンスと信頼性を完全に解析できるようにします。 ラッチは組み合わせフィードバックを備える小さな回路で、値は新しい値が割り当てられるまで保持されます。ラッチは、 インテル® Quartus® PrimeのText EditorまたはBlock Editorで実装することができます。

HDLコードでよくある間違いは、意図しないラッチの推論です。これが発生すると、 インテル® Quartus® Primeの合成では警告メッセージが発行されます。他のテクノロジーとは異なり、FPGAアーキテクチャーのラッチはレジスターよりもかなり小さいわけではありません。ただし、アーキテクチャーはラッチの実装に最適化されておらず、ラッチは通常、同等のレジスターを使用する回路に比べてタイミング・パフォーマンスが低下します。

ラッチには、トランスペアレント・モードがあります。このモードでは、データは入力から出力へ連続的に流れます。イネーブル信号がHighの際に、ポジティブラッチはトランスペアレント・モードになります (ネガティブラッチの場合はLow)。トランスペアレント・モードでは直接パスが作成されるため、入力のグリッチが出力にパススルーする可能性があります。そのため、タイミング解析が非常に複雑になります。一般的なラッチ方式では、複数のイネーブルフェーズを使用して長いトランスペアレント・パスの発生を防ぎます。ただし、タイミング解析ではこのような安全なアプリケーションを特定することができません。

タイミング・アナライザーはデフォルトで、ポジティブラッチ信号の立ち下がりエッジで供給される同期エレメントとしてラッチを解析します。それにより、ラッチをトランスペアレントではない開始点と終了点として扱うことができます。トランスペアレント・モードへの瞬時の遷移でも、グリッチの伝播が発生する可能性があることに注意してください。タイミング・アナライザーでは、サイクル借用解析を実行することができません。

タイミングのさまざまな複雑さにより、フォーマル検証ツールでのラッチのサポートには制限があります。したがって、ラッチを含むデザインでは、フォーマル検証に依存しないようにします。