Forum Discussion

Adam's avatar
Adam
Icon for New Contributor rankNew Contributor
6 days ago

Agilex 5 A5ED013B: No legal IOPLL placement with EMIF Calibration IP (Err 16234)

Device: A5ED013BB32AE4SCS

Quartus Prime Pro 25.1.1 Build 125

 

I am trying to reconfigure a standalone fabric IOPLL at runtime using the EMIF Calibration IP (emif_io96b_cal), following the HSIO reconfiguration flow described in the Clocking and PLL User Guide (813671), section 6.1/6.4, and the approach discussed in this thread:

Agilex 5 reconfigurable PLL - emif | Altera Community - 122952

 

Setup:

- ps_pll: Intel IOPLL FPGA IP, "Enable dynamic reconfiguration of PLL using Calibration IP" = true, IOPLL Type = "I/O Bank" (only selectable value in the GUI), 50 MHz reference clock.

- EMIF Calibration IP (emif_io96b_cal), INSTANCE_ID = 0, NUM_CALBUS_PLLS = 1, NUM_CALBUS_PERIPHS = 0, AXI4-Lite subordinate port in FABRIC mode.

- pll_calbus / pll_calbus_readdata wired directly between the two IPs.

 

The Fitter fails during the very first placement/plan stage with:

Error(14566): The Fitter cannot place 1 periphery component(s) due to conflicts with existing constraints (1 IOPLL(s)).

Error(175001): The Fitter cannot place 1 IOPLL, which is within IOPLL FPGA IP ps_pll_altera_iopll_2000_ihvozry.

Error(16234): No legal location could be found out of 11 considered location(s).

Error(175005): Could not find a location with: HVIO_IOPLL (6 locations affected)

Error(175008): Location was not in the legal region (5 locations affected)

 

I isolated this down to a minimal reproduction:

1) A plain, non-reconfigurable IOPLL alone: places fine.

2) The same IOPLL with calbus reconfiguration enabled, standalone (no EMIF IP at all): places fine.

3) The EMIF Calibration IP alone, calbus tied off, unconnected to any PLL: places fine.

4) The reconfigurable IOPLL and EMIF Calibration IP both present in the same design but NOT wired together (calbus tied off independently on each side): places fine.

5) The reconfigurable IOPLL wired to the EMIF Calibration IP via calbus (the actual intended configuration): fails with the error above, 100% reproducible, regardless of I/O pin location assignments (confirmed by removing every pin constraint from the design entirely - identical error, identical 6+5 location breakdown).

 

I have also tried, with no change to the error:

- Removing all pin location assignments (refclk, PLL outputs, etc.)

- Setting PLL_REFCLK_INPUT_TYPE to NOT_BALANCED on the IOPLL instance

- Quartus Interface Planner tool - "Update Plan" fails immediately with the identical underlying Fitter conflict, before it can even display a plan.

 

Can someone from Intel/Altera help me understand what is actually driving this placement conflict and how to resolve it? Happy to share the minimal reproduction project if useful.

3 Replies

  • On Agilex 5, HVIO reconfiguration is performed by directly driving the PLL’s core_avl_* interface; EMIF Calibration IP and pll_calbus are not required.  

  • Adam's avatar
    Adam
    Icon for New Contributor rankNew Contributor

    Attached: pj_test_minimal_repro.zip - the minimal project that reproduces the error.

    Extract to a short path (e.g. C:\pj_test\) to avoid Windows path-length issues with Quartus's generated files, then open test_pll.qpf and run a full compile.

     

    test_pll_top.vhd instantiates just two IPs: pll.ip (Intel IOPLL FPGA IP, dynamic reconfiguration via Calibration IP enabled) and EMIF.ip (EMIF Calibration IP, standalone-PLL mode), connected only through the pll_calbus / pll_calbus_readdata signals. No pin assignments are present - the Fitter error happens purely from that calbus connection between the two IPs.

  • Can you attach your small design which generate the fitter error ?