Unable to constrain HPS peripheral pins on intel agilex fpga dev kit
Hi,
I've already posted this question on stack exchange (https://electronics.stackexchange.com/questions/568284/unable-to-constrain-hps-peripheral-pins-on-intel-agilex-fpga-dev-kit) but haven't received any answers yet. Hence I'm trying my luck over here.
I've been trying to utilize the periphery of the HPS on our Intel Agilex F-Series FPGA Development Kit and we're having trouble getting Quartus accepting the pin constrains for the HPS periphery.
I designed the constrains by consulting the schematics of the board and later checked that they're actually identical to the constrains within the golden_top example. Yet I'm getting error messages of the following type:
Error(14566): The Fitter cannot place 1 periphery component(s) due to conflicts with existing constraints (1 pin(s)). Fix the errors described in the submessages, and then rerun the Fitter. The Intel FPGA Knowledge Database may also contain articles with information on how to resolve this periphery placement failure. Review the errors and then visit the Knowledge Database at https://www.altera.com/support/support-resources/knowledge-base/search.html and search for this specific error message number. Error(175020): The Fitter cannot place logic pin in region (280, 209) to (280, 209), to which it is constrained, because there are no valid locations in the region for logic of this type. Info(14596): Information about the failing component(s): Info(175028): The pin name(s): enet_mdio Error(16234): No legal location could be found out of 1 considered location(s). Reasons why each location could not be used are summarized below: Info(175015): The I/O pad enet_mdio is constrained to the location PIN_AD13 due to: User Location Constraints (PIN_AD13) Info(14709): The constrained I/O pad is contained within this pin Error(175006): There is no routing connectivity between the pin and destination HPS_HPS Info(175027): Destination: HPS_HPS hps|hps|intel_agilex_hps_0|fpga_interfaces|hps_inst|s2f_module Error(175022): The pin could not be placed in any location to satisfy its connectivity requirements Info(175021): The HPS_HPS was placed in location HPSHPS_X280_Y211_N1 Info(175029): 1 location affected Info(175029): AD13
It seams to be a bit random which exact pin causes the constrains issue yet they all have in common that they're HPS peripheral pins. When I comment out the offending constrains, Quartus chooses it's own pins at random. Sometimes Quartus even chooses the pins I'd like to choose by setting the constrains but it's unpractical to let the fitting run a lot of times until the right combination of pins is chosen.
This behavior is observable at least on Quartus 20.4 and 21.1.
I'm hoping someone can give me a hint on what I'm doing wrong here.