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

ID 683082
日付 4/13/2020
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

2.4.1.3. 同期非同期リセットを使用する

純粋な同期リセットおよび純粋な非同期リセットに関連する潜在的な問題を回避するために、同期非同期リセットを使用できます。同期非同期リセットは、同期リセットと非同期リセットの利点を組み合わせたものです。

これらのリセットは非同期にアサートされ、同期的にディアサートされます。これはほぼ瞬時にイネーブルなり、速度のデータパスが含まれないようにします。また、回路はタイミング解析のために同期しており、ノイズに耐性があります。

次の例は、同期非同期リセットを実装する方法を示しています。同期リセットと同様の方法でシンクロナイザー・レジスターを使用する必要があります。ただし、非同期リセット入力はシンクロナイザー・レジスターのCLRNピンに直接ゲートされ、結果のリセットを直ちにアサートします。リセットがデアサートされると、論理「1」がシンクロナイザーを介してクロックされ、結果のリセットが同期的にデアサートされます。

図 84. 同期非同期リセットの回路図

次の例は、同等のVerilog HDLコードを示しています。ブロックの感度リストでリセットのアクティブエッジを使用します。

Verilog HDL Code for Synchronized Asynchronous Reset

module sync_async_reset (
        input    clock,
        input    reset_n,
        input    data_a,
        input    data_b,
        output   out_a,
        output   out_b
        );
reg     reg1, reg2;
reg     reg3, reg4;
assign  out_a    = reg1;
assign  out_b    = reg2;
assign  rst_n    = reg4;
always @ (posedge clock, negedge reset_n)
begin
    if (!reset_n)
    begin
       reg3     <= 1’b0;
       reg4     <= 1’b0;
    end
    else
    begin
       reg3     <= 1’b1;
       reg4     <= reg3;
    end
end
always @ (posedge clock, negedge rst_n)
begin
    if (!rst_n)
    begin
       reg1     <= 1’b0;
       reg2     <= 1;b0;
    end
    else
    begin
       reg1     <= data_a;
       reg2     <= data_b;
    end
end
endmodule  // sync_async_reset

2つの同期レジスター間の準安定性の影響を最小限に抑え、MTBFを増やすには、レジスターをデバイスのできるだけ近くに配置して、ルーティング遅延を最小限に抑える必要があります。可能であれば、同じロジックアレイブロック(LAB)にレジスターを配置します。入力リセット信号( reset_n )は、 set_false_pathコマンドで除外する必要があります。

set_false_path -from [get_ports {reset_n}] -to [all_registers]

指定された制約で使用されるset_false_pathコマンドは、そうでなければリセットピンで入力遅延を指定することに起因する不必要な入力タイミングレポートを除外します。

同期された非同期リセットの瞬間的なアサートは、ノイズとラントパルスの影響を受けやすくなります。可能であれば、非同期リセットをデバウンスし、リセットがデバイスに入る前にフィルタリングする必要があります。この回路は、同期非同期リセットの長さが少なくとも1つの完全なクロック周期であることを保証します。この時間をnクロック周期に延長するには、シンクロナイザー・レジスターの数をn + 1に増やす必要があります。非同期入力リセット(reset_n)をすべてのシンクロナイザー・レジスターのCLRNピンに接続して、同期非同期リセットの非同期アサーションを維持する必要があります。