Fatal Error: Segment Violation at (nil)
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
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