问题描述
一般问题描述:
使用Synplify实例化IBUFGDS_LVPECL_25时,NGDBUILD错误:
“错误:NgdBuild:455 – 逻辑网络’ck133_n_c’有多个驱动程序。可能
导致这种情况的驱动器是块ck133_n_ibuf上的引脚O,类型为IBUF,引脚PAD
在块ck133_n_c上,类型为PAD
警告:NgdBuild:463 – 输入焊盘网’ck133_n_c’具有非法输入缓冲区
错误:NgdBuild:466 – 输入焊盘网’ck133_n_c’具有非法连接。可能
导致这种情况的引脚是块ck133_n_ibuf上的引脚O,类型为IBUF
错误:NgdBuild:455 – 逻辑网’ck133_c’有多个驱动程序。可能的
导致这种情况的驱动器是块ck133_ibuf上的引脚O,类型为IBUF,引脚PAD打开
阻止类型为PAD的ck133_c
警告:NgdBuild:463 – 输入焊盘网’ck133_c’具有非法输入缓冲区
错误:NgdBuild:466 – 输入垫网’ck133_c’有非法连接。可能
导致这种情况的引脚是块ck133_ibuf上的引脚O,类型为IBUF“
解决/修复方法
解决方法是添加额外的综合指令,告诉Synplify不要添加额外的IBUF组件:
VHDL
库IEEE;
使用IEEE.STD_LOGIC_1164.ALL;
实体顶部是
端口(c_p:在std_logic中;
c_n:在std_logic中;
d:在std_logic中;
q:out std_logic);
最后;
建筑行为顶部是
组件ibufgds_lvpecl_25
port(i,ib:in std_logic;
o:out std_logic);
最终组件;
signal clk:std_logic;
属性syn_black_box:boolean;
属性syn_black_box of ibufgds_lvpecl_25:component为true;
属性black_box_pad_pin:string;
属性black_box_pad_pin of ibufgds_lvpecl_25:component是“i,ib”;
开始
u1:ibufgds_lvpecl_25
端口映射(I => c_p,IB => c_n,O => clk);
过程(CLK)
开始
如果clk =’1’然后clk’event
q <= d;
万一;
结束过程;
结束行为;
解决方法是添加额外的综合指令,告诉Synplify不要添加额外的IBUF组件。遗憾的是,要使Verilog解决方案正常工作,您必须以独立模式运行Synplify,因为ISE会自动将所有原语添加到项目中,从而导致与空模块原语发生冲突:
的Verilog
模块顶部(c_p,c_n,d,q);
输入c_p,c_n,d;
输出q;
reg q;
电线clk;
IBUFGDS_LVPECL_25 u1
(.I(c_p),. IB(c_n),. O(clk));
总是@(posedge clk)q <= d;
endmodule
模块IBUFGDS_LVPECL_25(I,IB,O)/ *综合syn_black_box black_box_pad_pin =“I,IB”* /;
输入I,IB;
输出O;
endmodule
没有回复内容