UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

このページをブックマークに追加

AR# 54357

Vivado 合成のデザイン アシスタント - 合成 HDL 属性のサポート - parallel_case、translate_off/translate_on、use_dsp48

説明

このアンサーでは、Vivado 合成の属性である parallel_case、translate_off、translate_on、use_dsp48 を説明し、そのコード例を紹介します。 

このコード例は、このアンサーの最後にあるリンクからダウンロードできます。また、このアンサーには既知の問題、コード記述事例も含まれます。

注記 : 各コード例は Vivado プロジェクトの作成に直接使用できます。各例に含まれる合成属性は、各ソース ファイルのヘッダーを参照してください。

ソリューション

PARALLEL_CASE (Verilog のみ)

PARALLEL_CASE は Verilog デザインでのみ有効です。 この属性は、case 文をパラレル マルチプレクサとしてビルドするものです。

また、優先されている if-elsif カスケードに case 文が変換されないようにもします。

この属性は Verilog RTL を使用してのみ制御可能です。

Verilog の例

(* parallel_case *)
casex select
   4'b1xxx: res = data1;
   4'bx1xx: res = data2;
   4'bxx1x: res = data3;
   4'bxxx1: res = data4;
endcase

既知の問題 :

なし
 


TRANSLATE_OFF/TRANSLATE_ON

TRANSLATE_OFF および TRANSLATE_ON は、合成ツールにコード ブロックを無視するように指示します。 

シミュレーション コードなど合成には関係のないソース コードを無視する場合に便利な属性です。 

これらの属性は RTL コードのコメント文に記述します。コメント文は次のキーワードの 1 つから記述し始めます。

  • synthesis
  • synopsys
  • pragma

TRANSLATE_OFF は無視するコードのセクションの始まりを示し、TRANSLATE_ON はそのセクションの終わりを示します。これらの属性を入れ子にすることはできません。

translate 文の間に含まれるコードのタイプに注意してください。 

デザインの動作に影響するコードの場合は、シミュレータでそのコードが使用される可能性があり、シミュレーションの不一致が発生することがあります。

Verilog の例

// synthesis translate_off

...Code to be ignored...

// synthesis translate_on

VHDL の例

-- synthesis translate_off

...Code to be ignored...

-- synthesis translate_on

既知の問題 :

 なし


USE_DSP48

use_dsp48 属性は合成ツールでの四則演算構造の処理方法を制御するためのものです。 

デフォルトでは、mults、mult-add、mult-sub、および mult-accumulate が DSP48 ブロックに配置されます。加算器、減算器、アキュムレータも DSP48 ブロックに配置できますが、デフォルトでは DSP48 ブロックを使用せずにデバイスにインプリメントされます。 

この属性が指定されていない場合、Vivado 合成は正しいビヘイビアーをデフォルトで確認しようとします。 

この属性はデフォルトビヘイビアーを上書きし、DSP48 ブロックにこれらのストラクチャを配置します。また次のような優先順位で RTL に配置されます。

  1. 信号
  2. アーキテクチャおよびコンポーネント
  3. エンティティおよびモジュール

この属性に使用できる値は yes および no です。

Verilog の例

(* use_dsp48 = "yes" *) module test(clk, in1, in2, out1);

VHDL の例

attribute use_dsp48 : string;

attribute use_dsp48 of P_reg : signal is "no";

既知の問題 :

なし

 

表 1 : 

ファイル名 属性
parallel_case.zip PARALLEL_CASE
translate_off_on.zip Translate Off/Translate On
use_dsp48.zip USE_DSP48

添付ファイル

関連添付ファイル

タイトル サイズ ファイルタイプ
translate_off_on.zip 1 KB ZIP
use_dsp48.zip 2 KB ZIP
parallel_case.zip 447 Bytes ZIP

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
55160 Vivado 合成のデザイン アシスタント - 合成 HDL 属性のサポート N/A N/A
AR# 54357
日付 06/04/2014
ステータス アクティブ
種類 ソリューション センター
ツール
  • Vivado Design Suite