生成bit流的时候总是出现以下错误。
ERROR:Place:864 - Incompatible IOB's are locked to the same bank 2
Conflicting IO Standards are:
IO Standard 1: Name = LVCMOS33, VREF = NR, VCCO = 3.30, TERM = NONE, DIR =
OUTPUT, DRIVE_STR = 12
List of locked IOB's:
RS232_Uart_1_sout
axi_can_0_CAN_PHY_TX
axi_can_1_CAN_PHY_TX
IO Standard 2: Name = LVCMOS25, VREF = NR, VCCO = 2.50, TERM = NONE, DIR =
BIDIR, DRIVE_STR = 12
List of locked IOB's:
axi_gpio_0_GPIO_IO_pin<0>
axi_gpio_0_GPIO_IO_pin<1>
axi_gpio_0_GPIO_IO_pin<2>
axi_gpio_0_GPIO_IO_pin<3>
axi_gpio_0_GPIO_IO_pin<4>
axi_gpio_0_GPIO_IO_pin<5>
These IO Standards are incompatible due to VCCO mismatch.
Baidu了一下,有个哥们说:原来是程序的源语中定义了差分电压为2.5V,而约束文件又在同一个BANK定义了3.3V,才会产生冲突。并且把程序的源语贴了出来。
genvar i,j ;
generate
for (i = 0 ; i <= 3 ; i = i + 1)
begin : loop0
OBUFDS #(.IOSTANDARD("LVDS_25"))
obuf_d (.I(tx_output_reg[i]), .O(dataouta_p[i]), .OB(dataouta_n[i]));
ODDR2 #(.DDR_ALIGNMENT("NONE")) fd_ioc (.C0(clkx3p5), .C1(clkx3p5not), .D0(tx_output_fix[i+4]), .D1(tx_output_fix[i]), .CE(1'b1), .R(1'b0), .S(1'b0), .Q(tx_output_reg[i])) ;
assign tx_output_fix[i] = outdata[i] ^ TX_SWAP_MASK[i] ;
assign tx_output_fix[i+4] = outdata[i+4] ^ TX_SWAP_MASK[i] ;
end
endgenerate
说把IOSTANDARD("LVDS_25")改成IOSTANDARD("LVDS_33")就ok了,我怎么没找到这个所谓的程序的源语。*.mhs文件,*.mss文件中没有,*.ucf文件中没有。这个所谓的程序的源语到底在哪里,莫非像房姐一样凭空消失了?大家遇到这个error都是怎么解决的,谢谢。
|