Closed smunaut closed 4 years ago
Mmm, apparently it's because I have in the .pcf and the .v the companion pad is 'present' (even though not connected to anything). I had done this for clarity to but I guess it triggers a bug because a SB_IO is auto added at some point and it's not valid.
@smunaut I am having the same exact problem, but I don't quite understand your fix.
I want a differential input, not DDR.
module top (
input CLK, // 16MHz clock
input PIN_7, // DAT_IN_P (IOL_10A)
// input PIN_9, // DAT_IN_N (IOL_10B)
output PIN_15,
);
wire DAT_IN;
SB_IO #(.PIN_TYPE( 6'b000001 ), .IO_STANDARD( "SB_LVDS_INPUT") ) dat_in (
.PACKAGE_PIN(PIN_7),
.D_IN_0 (DAT_IN)
);
assign PIN_15 = DAT_IN;
endmodule
With .pcf
set_io --warn-no-port PIN_7 D1
# set_io --warn-no-port PIN_9 E1
set_io --warn-no-port PIN_15 D9
# 16MHz clock
set_io --warn-no-port CLK B2 # input
For this I get:
fatal error: pcf error: LVDS port `PIN_7' not a DPxxB input
When I reverse things completely (commenting out the PIN_7, reinstating PIN_9, etc.) it does seem work.
Does this just mean that we need to specify the B side of the pair? So simple?
Yeah you need to use the B side. Which is the "positive" side or the LVDS.
Thanks for the confirmation.
Attached test case :
bug.tar.gz
If I try to instanciate a LVDS input and connect the package pin to the 'A' side like this :
Then I get this error :
And if I try to conect it to the 'B' side like the error says it should be done :
Then I get this error :