You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have made a simple blinky example for a xc7k325tffg676-1 fpga with a reset input on a pin with constraint IOSTANDARD LVCMOS18 . The reset input is located at pin AF9 . A repro can be provided upon request.
If I remove the reset pin, I can generate bitstream and program successfully fpga.
The output of nextpnr-xilinx is:
nextpnr-xilinx -r --chipdb /usr/local/share/nextpnr/xilinx-chipdb/xc7k325tffg676-1.bin --xdc data/constraints.xdc --json blinky.json --write blinky_routed.json --fasm blinky.fasm --freq 50
Info: Packing constants..
Info: Inserting IO buffers..
Info: IO port 'i_clock_50MHz' driven by IBUF '$iopadmap$Top.i_clock_50MHz'
Info: IO port 'i_reset_n' driven by IBUF '$iopadmap$Top.i_reset_n'
Info: IO port 'o_leds[0]' driven by OBUF '$iopadmap$Top.o_leds'
Info: IO port 'o_leds[1]' driven by OBUF '$iopadmap$Top.o_leds_1'
Info: IO port 'o_leds[2]' driven by OBUF '$iopadmap$Top.o_leds_2'
Info: Constraining 'i_clock_50MHz' to site 'IOB_X0Y126'
Info: Constraining 'i_reset_n' to site 'IOB_X1Y51'
Info: Constraining 'o_leds[0]' to site 'IOB_X0Y114'
Info: Constraining 'o_leds[1]' to site 'IOB_X0Y113'
Info: Constraining 'o_leds[2]' to site 'IOB_X0Y231'
Info: Generating input buffer for '$iopadmap$Top.i_clock_50MHz'
Info: Generating input buffer for '$iopadmap$Top.i_reset_n'
terminate called after throwing an instance of 'nextpnr_xilinx::assertion_failure'
what(): Assertion failure: s != -1 (/nextpnr-xilinx/xilinx/arch.h:1602)
make: *** [Makefile:21: blinky.fasm] Abandon (core dump créé)
The problem seem that nexpnr-xilinx automatically add "/IOB33/PAD" to all site and don't seem to check for io voltage.
Inside pack_io_xc7.cc XC7Packer::pack_io() function
I have added code in file pack_io_xc7.cc to print additional information to show the site and pad attribute information. here is the output for pin AF9 with 1.8V io :
pack_io_xc7.cc::pack_io LOC: AF9
Pin name: AF9
pack_io_xc7.cc::pack_io SITE: IOB_X1Y51
Info: Constraining 'i_reset_n' to site 'IOB_X1Y51'
pack_io_xc7.cc::pack_io pad->attrs[ctx->id("BEL")] : IOB_X1Y51/IOB33/PAD
I have made a simple blinky example for a xc7k325tffg676-1 fpga with a reset input on a pin with constraint IOSTANDARD LVCMOS18 . The reset input is located at pin AF9 . A repro can be provided upon request.
If I remove the reset pin, I can generate bitstream and program successfully fpga.
The output of nextpnr-xilinx is:
The problem seem that nexpnr-xilinx automatically add "/IOB33/PAD" to all site and don't seem to check for io voltage.
Inside pack_io_xc7.cc XC7Packer::pack_io() function
I think for pin AF9 or all other pin with 1.8V logic level there should be code like this :
I have added code in file pack_io_xc7.cc to print additional information to show the site and pad attribute information. here is the output for pin AF9 with 1.8V io :
Then in the file prjxray-db/kintex7/xc7k325t/tilegrid.json For pin AF9 at site IOB_X1Y51 is defined as
Here are the other 3.3V pins for comparison that nextpnr-xilinx place successfully.
Pin i_clock_50MHz at site IOB_X0Y126:
Tile grid definition:
Pin o_leds[0] at site IOB_X0Y114
Tilegrid definition:
Pin o_leds[1] at site IOB_X0Y113
Tilegrid definition:
Pin o_leds[2] at site IOB_X0Y231
Tilegrid definition
Thanks.
The text was updated successfully, but these errors were encountered: