インテル® Stratix® 10 デバイスがコンフィグレーションを完了してユーザーモードに入った後、アプリケーションを実行する前にリセットシーケンスを実装する必要があります。コンフィグレーション・ステージが完了すると、インテル Stratix 10 デバイスの機能が同時にユーザーモードに入るとは限りません。デバイスがユーザーモードに入ると、フリー・ランニング・クロックがユーザーロジック間でクロック競合状態を引き起こし、デバイスの初期条件を破壊する可能性があります。
このイベントを防ぐために、ユーザー・リセットおよびクロック・ゲート・インテル Stratix 10 FPGA IP を使用して独自のユーザーロジックを使用してデザインを構築し、ユーザークロックのゲートを解除し、図 1 に示されているようにグローバル・リセット信号のデアサートを行うことを推奨します。ユーザー・リセットおよびクロック・ゲート・インテル Stratix 10 FPGA IP コアを使用して、user_resetポートからの信号をデアサートして、ユーザークロックのゲートを解除します。次に、ユーザークロックのゲートを解除した後、グローバルリセット信号をデアサートする独自のロジックを構築します。
フリー・ランニング・クロックは外部ソースクロック、ユーザークロックはFPGAのユーザーロジックをクロックするクロックであることに注意してください。ユーザークロックは、フリー・ランニング・クロックやフェーズロック・ループ (PLL) で生成されるクロックでも可能です。
すべてのユーザークロックをアンゲートするには単一の IP インスタンスのみが必要であり、グローバル・リセット信号を使用して複数のドメインのリセットをリリース / デアサートすることが求められます。デザインに複数のリセットドメインがある場合、デアサートする前に、グローバル・リセット信号がすべてのドメインに伝搬するのに十分な長さがあることを確認します。
図 1。ユーザーリセットとクロックゲートのブロック図

注: ユーザーリセットおよびクロック・ゲート ・インテル Stratix 10 FPGA IP のuser_clkgateポートは使用しないでください。
インテル Stratix 10 FPGA ユーザーリセットおよびクロックゲート IP およびグローバル・リセット信号のデアサーション遅延を使用して、user_reset信号のディアサート遅延を推奨します。
user_reset信号のデアサーション遅延は、複数のユーザークロックサイクルである必要があります。ユーザーリセットおよびクロックゲートインテル Stratix 10 FPGA IP にデアサーション遅延値を入力することで、目的の遅延を取得できます。ユーザーリセットおよびクロックゲートインテル Stratix 10 FPGA IP のデアサーション遅延パラメーターの値は、0ns から 65,535ns の範囲です。以下の中で、標準的な準安定防止テクニックを使用してシンクロナイザーを構築する必要があります。
- フリー・ランニング・クロックを基準にして、user_reset信号を同期させるユーザークロックを アンゲートするユーザーロジック。
- グローバルリセットをデアサートするユーザーロジックにより、user_reset信号をユーザークロックに対して同期できます。
User Clock の実行後にグローバルリセット信号がシステムのグローバルリセットロジックに伝達するには、グローバルリセット信号のデアサーション遅延が十分な長さである必要があります。user_resetがデアサートされ、User Clock が実行された後にグローバル リセット 信号をデアサートする独自のユーザーロジックを構築します。また、標準の準安定防止テクニックを使用して、ユーザークロックに関してグローバルリセット信号を同期する必要があります。
図 2。ユーザーリセットとクロックゲートのタイミング図

この情報は、インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション v19.1 向けの最新インテル Stratix 10 コンフィグレーション・ユーザー・ガイド に記載されています。