Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
17117 Discussions

java.lang.NullPointerException qsys-generate

timeportal
Novice
461 Views

I am running into issues with the attached java crash. It happens when generating the QSYS system with qsys-generate and also sometimes from inside of the Quartus compile. Somehow I have managed to get my complex qsys system into a state where this is occurring.

 

I did try doubling the JVM heap size from 32g to 64g.

 

No doubt I can fix this by laboriously eliminating parts of the system until it goes away.

 

Nevertheless I am submitting a bug report in case anyone is listening, and in advance, no, my organization doesn't allow submitting a complete copy of my design.

 

Info: Running Quartus Prime IP Generation Tool
Info: Version 22.4.0 Build 94 12/07/2022 SC Pro Edition

Info: fcm2_ioc: Done "xxxxx" with 60 modules, 74 files
Error: Error writing qip report java.lang.NullPointerException
Info: java.lang.NullPointerException
Info: at com.altera.sopc.generator.reports.DeploymentReportQip.lambda$addAXINocEntry$0(DeploymentReportQip.java:258)
Info: at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
Info: at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
Info: at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
Info: at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
Info: at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
Info: at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
Info: at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
Info: at com.altera.sopc.generator.reports.DeploymentReportQip.addAXINocEntry(DeploymentReportQip.java:260)
Info: at com.altera.sopc.generator.reports.DeploymentReportQip.getReport(DeploymentReportQip.java:143)
Info: at com.altera.sopc.generator.DeploymentReportManager.writeOneReport(DeploymentReportManager.java:319)
Info: at com.altera.sopc.generator.DeploymentReportManager.writeOneReport(DeploymentReportManager.java:291)
Info: at com.altera.sopc.generator.DeploymentReportManager.writeReports(DeploymentReportManager.java:254)
Info: at com.altera.sopc.generator.DeploymentReportManager.writePostGenerationReports(DeploymentReportManager.java:229)
Info: at com.altera.sopcmodel.sbtools.sbgenerate.GenerationSupervisor.writePostGenerationReports(GenerationSupervisor.java:820)
Info: at com.altera.sopcmodel.sbtools.sbgenerate.SbGenerate.act(SbGenerate.java:450)
Info: at com.altera.utilities.AltCmdLineToolBase.runTheTool(AltCmdLineToolBase.java:851)
Info: at com.altera.utilities.AltCmdLineToolBase.runTheTool(AltCmdLineToolBase.java:866)
Info: at com.altera.sopceditor.tools.generation.QsysGenerationTask.runSbGenerate(QsysGenerationTask.java:1319)
Info: at com.altera.sopceditor.tools.generation.QsysGenerationTask.generateSynthesis(QsysGenerationTask.java:2422)
Info: at com.altera.sopceditor.tools.generation.QsysGenerationTask.runGenerateSynthesisFlow(QsysGenerationTask.java:1795)
Info: at com.altera.sopceditor.tools.generation.QsysGenerationTask.generate(QsysGenerationTask.java:1660)
Info: at com.altera.sopceditor.tools.generation.QsysGenerationTask.runInSerialMode(QsysGenerationTask.java:1136)
Info: at com.altera.sopceditor.tools.generation.QsysGenerationTask.run(QsysGenerationTask.java:338)
Info: at com.altera.qsys.generate.QsysGenerate.createGenerationTaskOuter(QsysGenerate.java:2743)
Info: at com.altera.qsys.generate.QsysGenerate.runGenerationFlowOnce(QsysGenerate.java:2619)
Info: at com.altera.qsys.generate.QsysGenerate.runGenerationFlow(QsysGenerate.java:2341)
Info: at com.altera.qsys.generate.QsysGenerate.act(QsysGenerate.java:1871)
Info: at com.altera.utilities.AltCmdLineToolBase.runTheTool(AltCmdLineToolBase.java:851)
Info: at com.altera.qsys.generate.QsysGenerate$1.doGeneration(QsysGenerate.java:469)
Info: at com.altera.sopceditor.tools.generation.parallel.PGParallelGenUtils.runQsysGenerateInShellMode(PGParallelGenUtils.java:696)
Info: at com.altera.qsys.generate.QsysGenerate.main(QsysGenerate.java:476)
Error: Generation failed with exit code 1: 1 Error, 8 Warnings

 

0 Kudos
10 Replies
Kenny_Tan
Moderator
428 Views

May I know what OS and what Java version that you were using?


0 Kudos
Kenny_Tan
Moderator
356 Views

Is there any update on the above?


0 Kudos
timeportal
Novice
341 Views

$uname -a

Linux r650a 4.18.0-425.19.2.el8_7.x86_64 #1 SMP Tue Apr 4 22:38:11 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

 

$ cat /etc/os-release
NAME="Rocky Linux"
VERSION="8.7 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.7"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.7 (Green Obsidian)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:8:GA"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-8"
ROCKY_SUPPORT_PRODUCT_VERSION="8.7"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.7"

$ /ade/fpga/altera/pro_22.4/quartus/linux64/jre64/bin/java -version
openjdk version "1.8.0_352"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM (Temurin)(build 25.352-b08, mixed mode)

0 Kudos
Kenny_Tan
Moderator
317 Views

Unfortunately, Quartus is currently not supported on Rocky Linux. To ensure proper functionality and avoid any unexpected behavior, you will need to install Quartus on one of the officially supported operating systems listed here:

https://www.intel.com/content/www/us/en/support/programmable/support-resources/design-software/os-support.html?wapkw=QUARTUS%20OS%20SUPPORT

Please note that Altera does not perform validation on unsupported operating systems.


0 Kudos
timeportal
Novice
290 Views

That's a convenient response no doubt, but Its probable that the same problem is reproducible on Red Hat* Enterprise Linux* 8.7 as it an Rocky are close to identical.

0 Kudos
timeportal
Novice
276 Views

 

also reproducible when pressing the "Generate HDL" button within qsys-edit GUI

 

Warning: fcm2_adc_device.jesd204: jesd204.jesd204_rx_frame_error must be exported, or connected to a matching conduit as it has unconnected inputs.
Warning: fcm2_adc_device.jesd204: jesd204.jesd204_rx_dlb_data must be exported, or connected to a matching conduit as it has unconnected inputs.
Warning: fcm2_adc_device.jesd204: jesd204.jesd204_rx_dlb_data_valid must be exported, or connected to a matching conduit as it has unconnected inputs.
Warning: fcm2_adc_device.jesd204: jesd204.jesd204_rx_dlb_kchar_data must be exported, or connected to a matching conduit as it has unconnected inputs.
Warning: fcm2_adc_device.jesd204: jesd204.jesd204_rx_dlb_errdetect must be exported, or connected to a matching conduit as it has unconnected inputs.
Warning: fcm2_adc_device.jesd204: jesd204.jesd204_rx_dlb_disperr must be exported, or connected to a matching conduit as it has unconnected inputs.
Warning: fcm2_adc_device.jesd204: Interrupt sender jesd204.jesd204_rx_int is not connected to an interrupt receiver
Warning: fcm2_net_dma: msgdma_rx declares system info address_map set to on interface mm_write that does not match declared in file fcm2_net_dma_msgdma_2.ip
Warning: fcm2_net_dma: msgdma_tx declares system info address_map set to on interface mm_read that does not match declared in file fcm2_net_dma_msgdma_1.ip
Warning: fcm2_net_dma.msgdma_rx: System Information doesn't match requirements of IP. Double-click to open System Info tab.
Warning: fcm2_net_dma.msgdma_tx: System Information doesn't match requirements of IP. Double-click to open System Info tab.
Warning: fcm2_dma: daq_dma declares system info address_map set to on interface mm_write that does not match declared in file fcm2_dma_msgdma_0.ip
Warning: fcm2_net_dma: msgdma_rx declares system info address_map set to on interface mm_write that does not match declared in file fcm2_net_dma_msgdma_2.ip
Warning: fcm2_net_dma: msgdma_tx declares system info address_map set to on interface mm_read that does not match declared in file fcm2_net_dma_msgdma_1.ip
Warning: fcm2_periph_eth_tse_0.eth_tse_0: To prevent potential performance issues, please ensure the reference clock to the LVDS uses the dedicated reference clock input within the same I/O bank directly. Manual reference clock promotion is not recommended
Error: Error writing qip report java.lang.NullPointerException
Error: Generation failed with exit code 1: 1 Error, 0 Warnings

 

0 Kudos
timeportal
Novice
244 Views

Another issue I am experiencing multiple times is the menu request to save the file never completes within qsys-edit. I have to kill the process to recover. I sometimes see "preventing deadlock" messages in the past on the console, but with the specific situation this morning there are no messages out of the ordinary. I have to give up and kill the process which has been using no cpu for 15 minutes while I am waiting for the qsys file save to complete, and the GUI is completely unresponsive to mouse clicks?

 

0 Kudos
Kenny_Tan
Moderator
224 Views

In terms of ownership and governance, Red Hat Enterprise Linux (RHEL) is a commercial product developed and maintained by Red Hat Inc., a subsidiary of IBM. In contrast, Rocky Linux is a community-driven, open-source rebuild of RHEL, maintained by the Rocky Enterprise Software Foundation (RESF), which operates independently of Red Hat.


Because Rocky Linux is a third-party rebuild, there is no guarantee that its behavior—especially in complex environments like Quartus Prime—will fully align with that of officially supported RHEL distributions. As such, we strongly recommend using Quartus on a supported RHEL platform to ensure tool stability and avoid unexpected behavior or compatibility issues.


Even if individual bugs are resolved on Rocky Linux, there may be other hidden issues that could emerge over time. These issues will not be supported by Altera, as Rocky Linux is not among the officially supported platforms. For production and critical workflows, we urge customers to use Red Hat Enterprise Linux to ensure full compatibility and access to vendor support.


0 Kudos
Kenny_Tan
Moderator
118 Views

Since this operating system is not officially supported, we will transition your request to community support for further assistance.


0 Kudos
timeportal
Novice
96 Views

I was successful today isolating the problem to one of my QSYS subsystems. I next started deleting components from this subsystem until there was nothing left but a memory-mapped avalon pipeline bridge, a clock bridge, and a reset bridge but nevertheless the problem remained. Next I removed all trace of the subsystem and recreated it again and now the problem is fixed.

So apparently something became corrupt in the qsys file or in one of it multitude of subordinate ip files.

It was really not time consuming to recreate the subsystem. What was time consuming was isolating to a subsystem. I found that I had to completely remove and un-wire each subsystem in-turn from platform degenerate. It was not sufficient to just un-click the use subsystem button. Furthermore each save and regenerate cycle in qsys takes a mind-numbing amount of time to complete. It also took some time to finally conclude that there was no other solution other than to delete all traces of the subsystem and start over.

 

0 Kudos
Reply