インテルのみ表示可能 — GUID: mwh1409960071855
Ixiasoft
1.1. Precision RTL Synthesisのサポートについて
1.2. デザインフロー
1.3. インテル デバイスファミリーのサポート
1.4. Precision Synthesis生成ファイル
1.5. Precision Synthesisソフトウェアでのプロジェクトの作成およびコンパイル
1.6. Precision Synthesisデザインのマッピング
1.7. デザイン合成と結果の評価
1.8. インテルFPGA IPコアおよびアーキテクチャーに特有の機能のガイドライン
1.9. Mentor GraphicsPrecision*Synthesisサポート改訂履歴
1.8.1. IP Catalogによって生成されたVerilog HDLファイルを使用したIPコアのインスタンス化
1.8.2. IP Catalogによって生成されたVHDLファイルを使用したIPコアのインスタンス化
1.8.3. IP Catalogとパラメーター・エディターを使用した知的財産のインスタンス化
1.8.4. 生成されたVerilog HDLファイルを使用したブラックボックスIPファンクションのインスタンス化
1.8.5. 生成されたVHDLファイルを使用したブラックボックスIPファンクションのインスタンス化
1.8.6. HDLコードからのインテルFPGA IPコアの推測
2.10.1.1. IP Catalogによって生成されたVerilog HDLファイルを使用したインテル FPGA IPコアのインスタンス化
2.10.1.2. IP Catalogによって生成されたVHDLファイルを使用したインテル FPGA IPコアのインスタンス化
2.10.1.3. インスタンス化されたインテル FPGA IPコアに対するSynplifyのデフォルト動作の変更
2.10.1.4. IP Catalogとパラメーター・エディターを使用した知的財産のインスタンス化
2.10.1.5. 生成されたVerilog HDLファイルを使用したブラックボックス・コアのインスタンス化
2.10.1.6. 生成されたVerilogファイルを使用したブラックボックスIPコアのインスタンス化
2.10.1.7. ブラックボックスを作成するためのその他のSynplifyソフトウェアの属性
インテルのみ表示可能 — GUID: mwh1409960071855
Ixiasoft
1.8.6.3. dedicated_mult属性の設定
HDLコードで乗算器の実装を制御するには、次の例に示すように、適切な値を持つdedicated_mult属性を使用します。
Verilog HDLでのdedicated_mult属性の設定
//synthesis attribute <signal name> dedicated_mult <value>
HDLでのdedicated_mult属性の設定
ATTRIBUTE dedicated_mult: STRING;
ATTRIBUTE dedicated_mult OF <signal name>: SIGNAL IS <value>;
dedicated_mult属性は、信号とワイヤーに適用できますが、レジスターに適用すると機能しません。この属性は、a = b * cなどの単純な乗数コードにのみ適用できます。
dedicated_mult属性が設定されている信号は、デザイン最適化のためにPrecision Synthesisソフトウェアによる合成時に削除される場合があります。そのような場合に実装を強制したいときは、preserve_signal属性をTRUEに設定して信号を保持する必要があります。
Verilog HDLでのpreserve_signal属性の設定
//synthesis attribute <signal name> preserve_signal TRUE
VHDLでのpreserve_signal 属性の設定
ATTRIBUTE preserve_signal: BOOLEAN;
ATTRIBUTE preserve_signal OF <signal name>: SIGNAL IS TRUE;
ロジックに実装されたVerilog HDL乗算器
module unsigned_mult (result, a, b);
output [15:0] result;
input [7:0] a;
input [7:0} b;
assign result = a * b;
//synthesis attribute result dedicated_mult OFF
endmodule
ロジックに実装されたVHDL乗算器
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
USE ieee.std_logic_unsigned.ALL;
ENTITY unsigned_mult IS
PORT(
a: IN std_logic_vector (7 DOWNTO 0);
b: IN std_logic_vector (7 DOWNTO 0);
result: OUT std_logic_vector (15 DOWNTO 0));
ATTRIBUTE dedicated_mult: STRING;
END unsigned_mult;
ARCHITECTURE rtl OF unsigned_mult IS
SIGNAL a_int, b_int: UNSIGNED (7 downto 0);
SIGNAL pdt_int: UNSIGNED (15 downto 0);
ATTRIBUTE dedicated_mult OF pdt_int: SIGNAL IS "OFF;
BEGIN
a_int <= UNSIGNED (a);
b_int <= UNSIGNED (b);
pdt_int <= a_int * b_int;
result <= std_logic_vector(pdt_int);
END rtl;