Stratix 10 HPS DDR4 EMIF placement error
Hello,
I'm trying to compile a design for the Terasic S10 SOM (https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=248&No=1229&PartNo=1#contents).
They provide a GHRD which I am able to compile on Quartus 19.1. I am now trying to compile it on Quartus 24.1 and get the following error:
Error (14566): The Fitter cannot place 1 periphery component(s) due to conflicts with existing constraints (1 IO_LANE(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.intel.com/content/www/us/en/support/programmable/kdb-filter.html and search for this specific error message number.Error (175020): The Fitter cannot place logic IO_LANE that is part of External Memory Interfaces for HPS Intel Stratix 10 FPGA IP emif_hps_altera_emif_s10_hps_1928_3oj4n7y in region (61, 1) to (61, 400), 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 IO_LANE name(s): soc_inst|emif_hps|altera_emif_s10_hps_inst|arch|arch_inst|io_tiles_wrap_inst|io_tiles_inst|tile_gen[2].lane_gen[1].lane_inst|lane_instError (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 (175013): The IO_LANE is constrained to the region (61, 1) to (61, 400) due to related logicInfo (175015): The I/O pad DDR4A_BG[1] is constrained to the location PIN_D40 due to: User Location Constraints (PIN_D40)Info (14709): The constrained I/O pad drives a TILE_CTRL, which drives this IO_LANEError (175005): Could not find a location with: HPS_DATA_LANE_RESERVATION_ID of HPS_LANE (1 location affected)Info (175029): IO12LANE_X61_Y327_N2
When upgrading to 24.1 it forces an IP upgrade on the HPS EMIF IP, so could be related to that. I looked through the parameters and everything seems to match the original values after the upgrade.
I am hoping to get 24.1 working, as I have multiple IP files that are shared with other projects that won't work on 19.1.
I've attached an archive of the project I was able to compile in 19.1.
Thanks for any help you can provide.
Hi ,
Sorry for the delay in getting back, was scrutinizing the pins with the team and doing testing on the Quartus fitter
To resolve the fitter error on the IO lane and tile, you will need to remove the pin assignment CLK_50_B2L in pin planner and let the fitter reassign it automatically (alternatively edit the qsf file, and remove the constraint "set_location_assignment PIN_BA27 -to CLK_50_B2F"
This is some others restrictions that was put in place in the requirements on banks 2M, 2L, 2N (other than the ones mentioned in the KDB )
On quartus 19.4 , probably I will check it later , as the KDB mention 19.1 and below, but i suspect additional requirements been put in place as well.
Thanks
Regards
Kian