リセットのコード例: 同期リセットおよび非同期リセットを持つ乗算器パイプライン レジスタ - 2023.2 日本語

Versal アダプティブ SoC ハードウェア、IP、およびプラットフォーム開発設計手法ガイド (UG1387)

Document ID
UG1387
Release Date
2023-11-15
Version
2023.2 日本語

この例のパイプライン レジスタでは、専用 DSP リソースをターゲットとするロジック内に同期リセットと非同期リセットがあるので、積和演算の DSP プリミティブへのマップが最適なものになりません。次の図に、非同期リセットを持つ入力パイプライン レジスタと同期リセットを持つ乗算器出力レジスタを使用する 16x16 ビット DSP58 ベース乗算器を示します。合成では、入力段に通常のファブリック レジスタを使用する必要があります。同期リセットを持つ乗算器レジスタは、DSP 出力 (DSP58 M および P レジスタ) にパックされます。これにより 32 個のファブリック レジスタが余分に使用され、DSP58 の設定は AREG/BREG=0、MREG=1、PREG=1 になります。

図 1. パイプライン レジスタを含む乗算器 (同期リセットおよび非同期リセット)

既存の DSP プリミティブの機能を活用するため、上記の例でパイプライン レジスタが非同期リセットと同期リセットを使用しているのを、すべてのパイプライン レジスタで 1 つのタイプのリセットが使用されるように変更します。次の図に、乗算器ロジック周囲のすべてのパイプライン レジスタで 1 つのタイプのリセット (同期リセットまたは非同期リセット) が使用されるように、RTL のリセット定義を変更する方法を示します。このように変更すると、合成で DSP58 の内部レジスタが使用されます (AREG/BREG=1、MREG=1、PREG=1)。

図 2. 乗算器ロジック周囲のパイプラインで、同期リセットと非同期リセットを 1 つのタイプに変更