AR# 17772

|

7.x Synplify - IBUFGDS_LVPECL_25 をインスタンシエートするときに Synplify で余分な IBUF が入力に追加される

説明

キーワード : Synplify, EDIF, differential, ibufgds, 差動

重要度 : 標準

概要 :
Synplify を使用して IBUFGDS_LVPECL_25 をインスタンシエートすると、NGDBUILD で次のようなエラー メッセージが表示されます。

ERROR:NgdBuild:455 - logical net 'ck133_n_c' has multiple drivers. The possible
drivers causing this are pin O on block ck133_n_ibuf with type IBUF, pin PAD
on block ck133_n_c with type PAD
WARNING:NgdBuild:463 - input pad net 'ck133_n_c' has an illegal input buffer
ERROR:NgdBuild:466 - input pad net 'ck133_n_c' has illegal connection. Possible
pins causing this are pin O on block ck133_n_ibuf with type IBUF
ERROR:NgdBuild:455 - logical net 'ck133_c' has multiple drivers. The possible
drivers causing this are pin O on block ck133_ibuf with type IBUF, pin PAD on
block ck133_c with type PAD
WARNING:NgdBuild:463 - input pad net 'ck133_c' has an illegal input buffer
ERROR:NgdBuild:466 - input pad net 'ck133_c' has illegal connection. Possible
pins causing this are pin O on block ck133_ibuf with type IBUF

ソリューション

1

Synplify では余分な IBUF がプリミティブに追加されてしまうため、IBUF で IBUFGDS が駆動されてしまいます。 この接続は不正です。 IO バッファの挿入をディスエーブルにし、入力バッファと出力バッファを手動でインスタンシエートすると、この問題を回避できます。

2

The work-around is to add extra synthesis directives telling Synplify not to add the extra IBUF components. Unfortunately, for the Verilog solution to work, you must run Synplify in stand-alone mode as ISE automatically adds all of the primitives to the project causing a conflict with the empty module primitive that is made:

Verilog

module top(c_p, c_n, d, q);
input c_p, c_n, d;
output q;

reg q;
wire clk;

IBUFGDS_LVPECL_25 u1
(.I(c_p), .IB(c_n), .O(clk));

always @(posedge clk) q <= d;

endmodule

module IBUFGDS_LVPECL_25 (I, IB, O) /* synthesis syn_black_box black_box_pad_pin = "I, IB" */;
input I, IB;
output O;

endmodule
AR# 17772
日付 12/15/2012
ステータス アクティブ
種類 一般
People Also Viewed