errors · 5dewfpga bit, the XDC check before place and route (nextpnr alone prints the raw form below)

blink.xdc:42: ERROR [no-iostandard-property]: led[15] has a PACKAGE_PIN but no IOSTANDARD in the XDC: every pin needs both, and nextpnr stops without one. Fix: add the line set_property IOSTANDARD LVCMOS33 [get_ports {led[15]}]

With the CLI the XDC check names the line before nextpnr runs:

blink.xdc:42: ERROR [no-iostandard-property]: led[15] has a PACKAGE_PIN but no IOSTANDARD in the XDC: every pin needs both, and nextpnr stops without one. Fix: add the line  set_property IOSTANDARD LVCMOS33 [get_ports {led[15]}] https://nosey-dewdrop.github.io/dewfpga/errors/no-iostandard-property/

nextpnr alone, without the check, prints the lines below.

make bit got past synthesis and nextpnr stopped with this line. The port it names looks fine in your pin file.

Why does it happen?

Some port of your top module has no line in the .xdc, either because the line is still commented out with # or because of a typo in the name. nextpnr notices, but the port it reports is not the broken one. In the guide's test, misspelling led as ledd in the pin file produced exactly the message above, which points at a port that was correct.

What is the fix?

Run the pin check before nextpnr. check_xdc.py compares the ports of your synthesized design with the .xdc and names the real mistake.

ERROR: these ports have NO pin in the XDC (blink):
   - led[15]
   -> the port names in the module must match the names in the XDC (the course file uses
      clk, sw, led, btnC btnU btnL btnR btnD, seg, dp, an). Rename the port in the module,
      or change the name inside [get_ports ...] on that line of the XDC.
      A line that still starts with # is commented out and does not count.

Then open the .xdc and remove the # from every line your design uses, or fix the name inside [get_ports ...]. For the blink example that is the two clk lines, sixteen sw lines and sixteen led lines: 33 pin lines plus the create_clock line. Digilent's pin file calls the ports clk, sw[0], led[0], seg[0], an[0], btnC and so on; your module has to use the same names.

The checker is one of the five project files and the guide's Makefile runs it automatically: check_xdc.py, section 4.

Which command prints it?