errors · bitdewfpga bit, the XDC check before place and route
blink.xdc:42: ERROR [port-without-pin]: led[15] has no pin in the XDC: the line that names it starts with # (commented out), so it does not count. Fix: remove the # at the start of that line (the same name, the index the design uses: led[15]).
One line per port, the first twelve; the file:line is the commented-out XDC line, or the port's declaration when no XDC line names it. Examples:
blink.xdc:42: ERROR [port-without-pin]: led[15] has no pin in the XDC: the line that names it starts with # (commented out), so it does not count. Fix: remove the # at the start of that line (the same name, the index the design uses: led[15]). https://nosey-dewdrop.github.io/dewfpga/errors/port-without-pin/
blink.sv:10: ERROR [port-without-pin]: led[15] has no pin in the XDC: no line names it (the XDC has lines for led with other indices, none for led[15]). Fix: add a line for led[15] to the XDC (copy a led line, change the index and the pin), or make the port narrower. https://nosey-dewdrop.github.io/dewfpga/errors/port-without-pin/
Why does it happen?
The course's Basys3_Master.xdc ships with every pin commented out; each port of the design needs its line uncommented, with the same name and index. A port named otherwise (LED, leds) matches nothing. Single-bit vectors and nonzero-based ranges retain their declared indices: [0:0] uses led[0], and [4:1] uses led[1] through led[4].
What is the fix?
Uncomment the line, with the name and index the design uses:
set_property -dict { PACKAGE_PIN L1 IOSTANDARD LVCMOS33 } [get_ports {led[15]}]
Keep the declared port range and use its exact indices in the XDC; no scalar conversion or renumbering is needed.