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

Fatal Error: Segment Violation at (nil)

JobvW
Beginner
2,268 Views

Hello, I am trying to synthesize my vhdl code, but when I run synthesize in Quartus prime I get this error. The only thing I can find is that there is a patch for Quartus prime pro, but I am using Quartus prime lite.

In my vhdl code I am trying to write a vga controller.

I am using a MAX10 10M50DAF484C7G fpga.

If anybody can point me in the right direction I would be grateful, thanks in advance.

Problem Details
Error:

*** Fatal Error: Segment Violation at (nil)
Module: quartus_map
Stack Trace:
   0x1a228a: Netlist::ProcessGlobals() + 0x3f6 (synth_vrfx)
   0x1a6282: Netlist::Polish() + 0xa0 (synth_vrfx)
   0x2bcd5c: VhdlEntityDecl::CoreElaborate(VhdlSecondaryUnit*, char const*, VhdlBlockConfiguration*) + 0x518 (synth_vrfx)
   0x2c2409: VhdlEntityDecl::Elaborate(char const*, Array*, Map*, VhdlBlockConfiguration*) + 0x403 (synth_vrfx)
   0x146283: VRFX_VERIFIC_VHDL_ELABORATOR::elaborate(BASEX_ELABORATE_INFO*) + 0x1df (synth_vrfx)
   0x13b4e9: VRFX_ELABORATOR::elaborate(BASEX_ELABORATE_INFO*) + 0xb9 (synth_vrfx)
   0x1795ce: SGN_FN_LIB::elaborate(BASEX_ELAB_INFO_CORE*) const + 0x18e (synth_sgn)
   0x181a8e: SGN_FN_LIB::start_vrf_flow() const + 0xe (synth_sgn)
   0x1826bd: SGN_FN_LIB::start(SGN_WRAPPER_INFO*) + 0xb6d (synth_sgn)
   0x1870e9: SGN_EXTRACTOR::single_module_extraction(HDB_INSTANCE_NAME*, HDB_ENTITY*, SGN_WRAPPER_INFO*) const + 0x119 (synth_sgn)
   0x18fa61: SGN_EXTRACTOR::recursive_extraction(HDB_INSTANCE_NAME*, SGN_WRAPPER_INFO*, char const*) + 0xf1 (synth_sgn)
   0x190c7e: SGN_EXTRACTOR::recurse_into_newly_extracted_netlist(HDB_ENTITY*, HDB_INSTANCE_NAME*, unsigned long, SGN_WRAPPER_INFO*) + 0x65e (synth_sgn)
   0x18fc8c: SGN_EXTRACTOR::recursive_extraction(HDB_INSTANCE_NAME*, SGN_WRAPPER_INFO*, char const*) + 0x31c (synth_sgn)
   0x19bd60: SGN_EXTRACTOR::extract() + 0x2b0 (synth_sgn)
   0x1a65d0: sgn_qic_full(CMP_FACADE*, std::vector<std::string, std::allocator<std::string> >&, std::vector<double, std::allocator<double> >&) + 0x250 (synth_sgn)
    0x19433: qsyn_execute_sgn(CMP_FACADE*, std::vector<std::string, std::allocator<std::string> >&, std::string const&, THR_NAMED_PIPE*, THR_NAMED_PIPE*) + 0x173 (quartus_map)
    0x34649: QSYN_FRAMEWORK::execute_core(THR_NAMED_PIPE*, THR_NAMED_PIPE*) + 0x219 (quartus_map)
    0x3734a: QSYN_FRAMEWORK::execute() + 0x89a (quartus_map)
    0x1ae88: qexe_standard_main(QEXE_FRAMEWORK*, QEXE_OPTION_DEFINITION const**, int, char const**) + 0x639 (comp_qexe)
    0x2b4a1: qsyn_main(int, char const**) + 0x151 (quartus_map)
    0x3ee30: msg_main_thread(void*) + 0x10 (ccl_msg)
     0x5acc: thr_final_wrapper + 0xc (ccl_thr)
    0x3eeef: msg_thread_wrapper(void* (*)(void*), void*) + 0x62 (ccl_msg)
     0x9f9c: mem_thread_wrapper(void* (*)(void*), void*) + 0x5c (ccl_mem)
     0x91d9: err_thread_wrapper(void* (*)(void*), void*) + 0x27 (ccl_err)
     0x5b0f: thr_thread_wrapper + 0x15 (ccl_thr)
    0x40ea1: msg_exe_main(int, char const**, int (*)(int, char const**)) + 0xb2 (ccl_msg)

    0x2338a: __libc_start_main + 0x8a (c.so.6)


End-trace


Executable: quartus
Comment:
None

System Information
Platform: linux64
OS name: Arch Linux
OS version: 

Quartus Prime Information
Address bits: 64
Version: 21.1.1
Build: 850
Edition: Lite Edition

 

0 Kudos
1 Solution
ventt
Employee
2,046 Views

Hi,


From the latest update from the engineering team:


They found the line that's causing the issue:

In vhdl/common_pkg.vhd, the definition of function c_t_char_array_init, if "x(32-1 DOWNTO 0) := STD_LOGIC_VECTOR(TO_UNSIGNED(I, 32));" is commented out, the program will be able to compile successfully.

They were able to resolve the IE with RTL changes and provide the workaround. The two files modified are total.vhd and common_pkg.vhd. Essentially they moved the function declaration from the package to the file where the function is used, which fixed the problem.


Kindly check your email for the workaround. Thanks.


Best Regards,

Ven Ting


p/s: If any answer from the community or Intel Support are helpful, please feel free to give best answer or rate 9/10 survey


View solution in original post

0 Kudos
10 Replies
ventt
Employee
2,233 Views

Hi,


Thanks for attaching the files. However, can you archive your project, so that I can restore the complete project and ensure that no files are missing?

In Quartus, Open the project > Project > Archive Project.


Afterwards, you may upload the compressed .qar file. Thanks.


You may check out the link on archiving projects:

https://www.intel.com/content/www/us/en/docs/programmable/683475/19-4/archiving-projects.html 


Best Regards,

Ven Ting


0 Kudos
JobvW
Beginner
2,215 Views

Thanks for your reply, I created the archive altho as expected I got the same error message, so not all files are included in the archive.

 

This was the error message after the archiving:

Project archive created; however, Analysis and Elaboration (or Analysis and Synthesis for export database) was not successful. As a result, some files could not be archived.

 

Greetings,

Job van Wee

0 Kudos
ventt
Employee
2,204 Views

Hi,


Thanks for attaching the file.

Can you send the patch that you found for Quartus Prime Pro, so that I can investigate more on this error?


Thanks.


Best Regards.

Ven Ting


0 Kudos
JobvW
Beginner
2,197 Views
0 Kudos
ventt
Employee
2,176 Views

Thanks for attaching the link.

I will check this with the Engineering Team.


Thanks.

Best Regards,

Ven Ting


0 Kudos
ventt
Employee
2,116 Views

FYI, Engineering Team requires some time to investigate further to the Fatal Error. Kindly stay tuned with us.


Thanks.

Best Regards,

Ven Ting


0 Kudos
ventt
Employee
2,047 Views

Hi,


From the latest update from the engineering team:


They found the line that's causing the issue:

In vhdl/common_pkg.vhd, the definition of function c_t_char_array_init, if "x(32-1 DOWNTO 0) := STD_LOGIC_VECTOR(TO_UNSIGNED(I, 32));" is commented out, the program will be able to compile successfully.

They were able to resolve the IE with RTL changes and provide the workaround. The two files modified are total.vhd and common_pkg.vhd. Essentially they moved the function declaration from the package to the file where the function is used, which fixed the problem.


Kindly check your email for the workaround. Thanks.


Best Regards,

Ven Ting


p/s: If any answer from the community or Intel Support are helpful, please feel free to give best answer or rate 9/10 survey


0 Kudos
SyafieqS
Employee
2,044 Views

Hi Job,


May I know if the workaround is satisfiable?

Let me know if there is any update or other concern on this


0 Kudos
JobvW
Beginner
1,915 Views

Yes, Thanks!!

So in the problem was that i tried to use a function in a package that gets declared in the same package.

Thank you very much!!

0 Kudos
SyafieqS
Employee
1,987 Views

I’m glad that your question has been addressed, I now transition this thread to community support. If you have a new question, Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.

p/s: If any answer from community or Intel support are helpful, please feel free to mark as solution, give Kudos and rate 10/10 survey


0 Kudos
Reply