Forum Discussion
Agilex™ 5 EMIF IP for Hard Processor Subsystem (HPS) in Quartus 24.3.1
Good day,
I had a working EMIF IP set up and connected to the HPS in Quartus 24.2. I then upgraded to Quartus 24.3.1 and now can no longer get the EMIF IP to compile without errors. I replaced the old EMIF IP with the HPS EMIF IP (emif_io96b_hps).
I can generate the HDL from Platform Designer without any errors. I get the following error when compiling:
Error(17821): Netlist error at hps_system_emif_io96b_emif_io96b_hps_200_7xwqmpy_emif_0_lpddr4.vhd(275): port 's1_axi4_wuser' of width 64 cannot connect to actual of width 32
Details:
- Quartus 24.3.1 is used with all IP upgraded.
- I connect the io96b0_to_hps conduits of the HPS and HPS EMIF together.
- The channel 1 axi4 wuser is 32 bits wide for both the HPS and EMIF:
- I am using LPDDR4 with configuration of 2x16 (8Gbit).
- In hps_system_emif_io96b_emif_io96b_hps_200_7xwqmpy_emif_0_lpddr4.vhd the wuser signals are all of width 32.
I am unable to see where the 64-bit wide signal is and how to fix it.
C:/Firmware/CheetahTacticalRouter/tactical-router-fw/tactical_router_fpga/quartus/ip/hps_system/hps_system_emif_io96b/hps_system_emif_io96b_emif_io96b_hps_200_7xwqmpy/synth/ip/hps_system_emif_io96b_emif_io96b_hps_200_7xwqmpy/hps_system_emif_io96b_emif_io96b_hps_200_7xwqmpy_emif_0_lpddr4/synth/hps_system_emif_io96b_emif_io96b_hps_200_7xwqmpy_emif_0_lpddr4.vhd
26 Replies
- AdzimZM_Altera
Regular Contributor
Hi Nicole,
I'm glad that your issue has been resolved.
We will try to improve the IP file name to avoid this issue in future.
Currently we cannot set the IP file name shorter automatically.
Manually edit the IP file name is possible.
Regards,
Adzim
- Nicole04
Occasional Contributor
Hi Adzim,
The width error seems to be fixed in the Quartus 25.1 version.
I do however still get the inclusion error. I have tried regenerating the IP, cleaning the project and regenerating again, but the error persists. The included file does exist.
Error(16827): Verilog HDL error at emif_io96b_hps_0_emif_io96b_hps_300_4hwut5y_emif_0_lpddr4_emif_io96b_lpddr4_300_ljjag6i.sv(17): cannot open include file emif_io96b_interface.svhKind regards,
Nicole
- Nicole04
Occasional Contributor
I was able to get a temporary work around, but hopefully this can be fixed in the future.
I was able to compile the design when the path is made shorter. I had to place my quartus folder directly on the C drive of my PC, because the path for the LPDDR4 EMIF IP is very long.
Is there a way to shorten the names used in the IP folders?
- AdzimZM_Altera
Regular Contributor
Hi Nicole,
I don't think you need to change in all files.
Make the change in the top IP file should be okay.
Try to regenerate the IP file again and make the change in the path that I have provided.
Regards,
Adzim
- AdzimZM_Altera
Regular Contributor
Hi,
The issue can be replicated if the EMIF IP is used VHDL code.
There is a parameter where the axi4_wuser width is determined.
If it does not use the NoC, the width is set to 64 for axi4_wuser.
The parameter can be found in the EMIF IP file path *_emif_io96b_lpddr4_0\emif_io96b_lpddr4_200\synth\*_emif_io96b_lpddr4_0_emif_io96b_lpddr4_200_*.sv.
localparam PORT_AXI_USER_WIDTH = 64,
localparam PORT_AXI_NOC_USER_WIDTH = 32,
localparam PORT_AXI_S0_USER_WIDTH = PHY_USE_NOC_INTF ? PORT_AXI_NOC_USER_WIDTH : PORT_AXI_USER_WIDTH,
Change the PORT_AXI_USER_WIDTH = 64 to 32 can resolve this error message.
Can you try to change the port width to 32 and check the compilation again?
Regards,
Adzim
- Nicole04
Occasional Contributor
Hi Adzim,
Thank you for the update. Will an IP core update be made?
My one design works, but another gives a file inclusion error:
Error(16827): Verilog HDL error at emif_io96b_hps_0_emif_io96b_hps_200_7xwqmpy_emif_0_lpddr4_emif_io96b_cal_200_hpbproa.sv(17): cannot open include file cal_io96b_interface.svhKind regards,
Nicole
- Nicole04
Occasional Contributor
Hi Adzim,
Thank you for looking into this problem. I see multiple files containing this portion. Should it be changed at all cases?
I changed it at all places and then received the following error:
Error(13224): Verilog HDL or VHDL error at io0_emif_bank2a_fpga_emif_io96b_lpddr4_200_tq2i7vi_atom_inst_hmc_wide.sv(1041): index 32 is out of range [31:0] for 'ruser'Kind regards,
Nicole
- MM-ATH
Occasional Contributor
Thanks Adzim,
Yes, this change leads to good compilation on our testing design.
- MM-ATH
Occasional Contributor
We had similar problems - if we have checked Compile to VHDL (in Platform Designer/generate HDL). if ve have checked Compile to Verilog, problem gone away.
- mfiorenza
New Contributor
I have attached my project below for reference if it will help. My project only has the Agilex5 HPS IP, HPS EMIF IP, and FPGA EMIF IP. Both LPDDR4s are the same. HPS EMIF IP compiles successfully but the FPGA EMIF IP leaves me with the error (s0_axi4_wuser) shown above.
- AdzimZM_Altera
Regular Contributor
Hi Nicole,
Thank you for your feedback.
I will try to replicate the issue again with the file that you have shared.
Regards,
Adzim
- AdzimZM_Altera
Regular Contributor
Hi Nicole,
I cannot replicate the issue at my end. Can you share a small design that replicate this issue?
I can see a warning message that may sound related, but no error messages reported.
Warning(24541): Verilog HDL warning at as_emif_io96b_hps_0_emif_io96b_hps_200_e2lhgoi_emif_0_lpddr4.v(230): actual bit length 32 differs from formal bit length 64 for port "s1_axi4_ruser"
Regards,
Adzim
- Nicole04
Occasional Contributor
Hi Adzim,
Due to confidentiality, I can unfortunately not share my current design, but I had a similar issue (with 1x32) with a development kit. Here are those files. The full project is too large to share (let me know if I can email it). I have attached the top level and hps .qsys files.
We make use of VHDL. The warning you get is definitely related to the error that I get.
Kind regards,
Nicole
- mfiorenza
New Contributor
Any resolution to this issue? I am also running into this issue on 24.3.1. However, for me it is with the EMIF IP (Not for HPS) variant. The EMIF for HPS worked fine for me, however, I am using it as 1x32. The EMIF IP for FPGA DDR is also configured the same 1x32 but I am running into the issue above.
Both DDR (HPS and FPGA) are identical. Both configured as 1x32 for LPDDR4. HPS EMIF IP compiles fine, EMIF IP for FPGA DDR fails to compile with the same error mentioned above. I try to inspect the source where the error is originating however it appears to be two 32-bit wide ports connecting so I'm not sure where the 64-bit is coming from.
I also never had any issues with prior versions of Quartus. Please advise.
- Nicole04
Occasional Contributor
Unfortunately, I have not received any feedback from Intel regarding this issue.
If I find a work-around I will be sure to let you know.
- Nicole04
Occasional Contributor
Hi Tiwari,
The issue has not been resolved. I need to use the 2x16 architecture.
The 1x32 also stopped working after regenerating the HDL. I get the following error for it too:
Error(17821): Netlist error at emif_bank2a_fpga.vhd(175): port 's0_axi4_wuser' of width 64 cannot connect to actual of width 32
The s0_axi4_wuser port is of width 32 in the mentioned .vhd file.Please assist with this issue.
Kind regards,
Nicole