jpt13653903
New Contributor
2 years agoVHDL Parser Access Violation on 64-bit decimal literals
I have a VHDL-2008 file with the following line:
constant TxFreqHz : std_logic_vector(63 downto 0) := 64d"3200000000"; -- 3.2 GHz
This results in the following crash:
Problem Details Error: *** Fatal Error: Access Violation at 00007FFF1A603E14 Module: quartus_map.exe Stack Trace: 0x1a3e13: vhdllex + 0x2413 (synth_vrfx) 0x1c2e9c: vhdlparse + 0x20c (synth_vrfx) 0x19b530: vhdl_file::Analyze + 0xd0 (synth_vrfx) 0x63efd: VRFX_ANALYZER_IMPL::verific_vhdl_analyzer + 0x3d (synth_vrfx) 0x5f430: VRFX_ANALYZER_IMPL::vhdl_analyzer + 0x350 (synth_vrfx) 0x5dc62: VRFX_ANALYZER_IMPL::analyze + 0xf2 (synth_vrfx) 0x72a54: SGN_ANALYZER::analyze + 0x1c4 (synth_sgn) 0x7cf7a: SGN_ANALYZER::start + 0x71a (synth_sgn) 0x12375: sgn_qic_full + 0x165 (synth_sgn) 0x42e0: qsyn_execute_sgn + 0x140 (quartus_map) 0x133e6: QSYN_FRAMEWORK::execute_core + 0x136 (quartus_map) 0x12cc6: QSYN_FRAMEWORK::execute + 0x476 (quartus_map) 0x11524: qexe_do_normal + 0x1d4 (comp_qexe) 0x16630: qexe_run + 0x3a0 (comp_qexe) 0x17641: qexe_standard_main + 0xc1 (comp_qexe) 0x1b208: qsyn_main + 0x558 (quartus_map) 0x13538: msg_main_thread + 0x18 (CCL_MSG) 0x1484e: msg_thread_wrapper + 0x6e (CCL_MSG) 0x18210: mem_thread_wrapper + 0x70 (ccl_mem) 0x12cf1: msg_exe_main + 0xa1 (CCL_MSG) 0x2a408: __scrt_common_main_seh + 0x11c (quartus_map) 0x126ac: BaseThreadInitThunk + 0x1c (KERNEL32) 0x5aa67: RtlUserThreadStart + 0x27 (ntdll) End-trace Executable: quartus Comment: None System Information Platform: windows64 OS name: Windows 10 OS version: 10.0 Quartus Prime Information Address bits: 64 Version: 22.1std.0 Build: 915 Edition: Standard Edition
By changing the base to hexadecimal, everything is happy again:
constant TxFreqHz : std_logic_vector(63 downto 0) := 64x"BEBC2000"; -- 3.2 GHz
Please could you fix the bug in your compiler?
Thanks,
Regards,
John-Philip