Vivado の包括的なスキルを活用すれば、この HDL XDC プロパティ設定のリストを使用すると、半分の労力で 2 倍の結果が得られます。(三つ)

Vivado 合成ツールは、RTL ファイルまたは XDC ファイルで設定できる複数のプロパティ設定をサポートしています。これらの属性設定は、合成ツールの動作をガイドし、対応する論理回路を生成し、指定されたリソース消費のためにそれを使用するのに役立ちます。これは非常に優れた方法です。

この記事では、Vivado 合成ツールでサポートされる共通のプロパティ設定を紹介し、参考として Verilog の例を示します。

1、RAM_DECOMP

RAM_DECOMP 属性は、ブロック RAM を使用して大容量 RAM を実装する方法を合成ツールに指示します。この属性には、電力消費を削減できる構成可能な値が 1 つだけありますが、アドレスのデコード時間が増加します。

(* ram_decomp = “power” *) reg [size-1:0] ram [1024-1:0];
set_property ram_decomp power [get_cells ram] 

2、ROM_STYLE

ROM_STYLE 属性は、合成ツールに ROM メモリの実装方法を指示します。ブロック (BRAM、つまりブロック RAM を使用して実装) または分散 (LUT を使用して分散 ROM を構築) に設定できます。デフォルトでは、ツールは実装方法を自動的に選択します。

(* rom_style = “distributed” *) reg [size-1:0] rom [1024-1:0];

3、SHREG_EXTRACT

SHREG_EXTRACT 属性は、合成ツールが SRL 構造 (シフト レジスタの実装構造) を推論するかどうかを示します。NO に設定すると、SRL は推論されず、デザイン内のシフト レジスタはレジスタ バンクとして実装されます。RTL または XDC で設定できます。例:

(* SHREG_EXTRACT = “no” *) reg [15:0] srl_r;

4、SRL_スタイル

SRL_STYLE 属性は、デザイン内の SRL を推論する方法を合成ツールに指示するために使用されます (スタティック シフト レジスタのみがサポートされます)。設定できる値は、 register (レジスタリソースのみを使用してシフトレジスタを実現)、srl (SRL 構造体を使用してシフトレジスタを実現)、srl_reg (SRL の最後にレジスタを予約)、reg_srl (レジスタを予約) です。 SRL の先頭)、reg_srl_reg (レジスタは SRL の先頭と末尾で予約されます)、およびブロック (ブロック RAM を使用してシフト レジスタを実装します)。

SRL_STYLE 属性と SHREG_EXTRACT 属性の両方を使用する場合は、後者の方が優先されることに注意してください。このプロパティは、RTL 設定でのみ使用できます。

(* SRL_STYLE = “register” *) reg [15:0] srl;

5、TRANSLATE_ON/OFF

TRANSLATE_ON/OFF 属性は、コードの一部を無視するように合成ツールに指示するために使用されます。属性はコメント行に配置する必要があり、コメントは合成、シノプシス、またはプラグマのキーワードで始まる必要があります。無視する必要があるコード ブロックがデザインの機能に影響を与える場合でも、エミュレータはこのコードを実行しようとするため、「不一致」エラーが発生する可能性があることに注意してください。このプロパティは、次のような RTL 設定でのみ使用できます。

// synthesis translate_off

// synthesis translate on

6、USE_DSP

USE_DSP 属性は、合成ツールに算術構造の処理方法を指示するように設計されており、デフォルトでは、乗算、積和、積減、積和タイプの構造が DSP ユニットで実装されます。デフォルトでは、加算器、減算器、およびアキュムレータはロジック セルを使用して実装されますが、DSP セルを使用して実装することもできます。これらの算術構造は、USE_DSP 属性を使用して DSP ユニットに実装されるように設定できます。

この属性は当初 USE_DSP48 と呼ばれていましたが、FPGA に新しい DSP ブロックが導入されたため、属性名は USE_DSP に変更されました。USE_DSP48 はまだ有効ですが、合成ツールに DSP ユニットを使用するように指示するには、USE_DSP コマンドを使用することをお勧めします。

使用可能なパラメータ値は、logic、yes、または no です。ロジックは、XOR 構造が DSP ユニットを使用して実装されることを示し、yes または no は、ロジックが DSP ユニットを使用して実装されるかどうかを示します。この属性は、モジュール、アーキテクチャ、シグナル、コンポーネント、エンティティなどで宣言できます。例えば:

(* use_dsp = “yes” *) module test(clk. in, out);

この記事は今後も定期的に更新されます。⭐️いいねをクリックして、⭐️を承認して非表示にしてください。迷わないようにしてください。

この記事はFPGAの入門から独創性の習得までを目的としていますが、ご質問がございましたら、コメント欄にてお問い合わせください。

公式アカウントは「FPGA 習熟への入門」、無料学習教材をダウンロードしまくる、github オープンソース コード:「FPGA ナレッジ ベース

皆様のご支援が創作活動を続ける最大の原動力です!この記事が役に立った場合は、励ましをお願いします。

Guess you like

Origin blog.csdn.net/mengzaishenqiu/article/details/130308742