インテルのみ表示可能 — GUID: mwh1409959566267
Ixiasoft
インテルのみ表示可能 — GUID: mwh1409959566267
Ixiasoft
2.4.1.3. 同期非同期リセットを使用する
これらのリセットは非同期にアサートされ、同期的にディアサートされます。これはほぼ瞬時にイネーブルなり、速度のデータパスが含まれないようにします。また、回路はタイミング解析のために同期しており、ノイズに耐性があります。
次の例は、同期非同期リセットを実装する方法を示しています。同期リセットと同様の方法でシンクロナイザー・レジスターを使用する必要があります。ただし、非同期リセット入力はシンクロナイザー・レジスターのCLRNピンに直接ゲートされ、結果のリセットを直ちにアサートします。リセットがデアサートされると、論理「1」がシンクロナイザーを介してクロックされ、結果のリセットが同期的にデアサートされます。
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ピンに接続して、同期非同期リセットの非同期アサーションを維持する必要があります。