シフト レジスタおよび遅延ラインコード記述 - 2023.2 日本語

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

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

シフト レジスタには、通常次の制御信号およびデータ信号の一部またはすべてが含まれます。

  • [Clock]
  • シリアル入力
  • 非同期セット/リセット
  • 同期セット/リセット
  • 同期/非同期パラレル ロード
  • クロック イネーブル
  • シリアル/パラレル出力

AMD デバイスには専用の SRL16 および SRL32 リソース (LUT に組み込まれている) が含まれており、フリップフロップ リソースを使用せずにシフト レジスタを効率的に生成できます。ただし、これらのエレメントではレフト シフトしかサポートされておらず、使用可能な次の I/O 信号の数も制限されます。

  • [Clock]
  • クロック イネーブル
  • シリアル データ入力
  • シリアルデータ出力

SRL には、上記の信号に加え、シフト レジスタの長さを決定するアドレス入力 (SRL16 では A3、A2、A1、A0 入力) があります。シフト レジスタの長さは、固定することも変動させることもできます。可変長モードでは、新しいアドレスが 4 ビットの入力アドレス ピンに読み込まれると、LUT にアクセスする時間分遅れて、Q に新しいビット位置の値が出力されます。

SLR プリミティブでは、同期および非同期セット/リセット制御信号は使用できません。ただし、RTL コードにリセットが含まれる場合は、AMD 合成ツールで SRL の周りに追加のロジックが推論され、リセット機能が提供されます。

SRL を使用する際により高いクロック周波数を達成するため、AMD ではシフト レジスタの最後の段を専用スライス レジスタにインプリメントすることをお勧めします。スライス レジスタを使用した方が SRL よりも clock-to-out 時間が短くなり、シフト レジスタ ロジックからのパスにスラックが追加されます。このレジスタは、このリソースがインスタンシエートされているか、属性または階層境界を越える最適化の制限によりそのようなレジスタが推論されない場合を除き、合成で自動的に推論されます。追加のレジスタを推論するには、RTL でダイナミックに遅延する信号に個別にレジスタを付けます。

AMD では、Vivado Design Suite の HDL テンプレートに記述されている HDL コーディング スタイルを使用することをお勧めします。

チップの配置を柔軟にするためにレジスタを使用する場合は、次の属性を指定して SRL の推論をオフにします。

SHREG_EXTRACT = "no"

合成属性の詳細と属性を HDL コードで指定する方法は、 『Vivado Design Suite ユーザー ガイド: 合成』 (UG901) を参照してください。