*** Fatal Error: Segment Violation: faulting address=(nil), PC=(nil) : 0: - *** Fatal Error: Segment Violation: faulting address=(nil), PC=(nil) : 0: Description Due to a problem in the Intel® Quartus® Prime Pro Edition Software version 20.4 and earlier, you might see this fatal error message in the synthesis stage when you have a VHDL recursive function calls with an intermediate values set to a constant or to the initial value of a variable declared in the function. Code Example: function function_2 ( constant RECURSION_DEPTH : natural) return natural is constant retval :natural := -- constant or initialized variable, same result function_1( RECURSION_DEPTH => RECURSION_DEPTH); begin return retval; end function_2; Resolution To work around this problem, instead of assigning the value to a constant, assign it to a variable, with the assignment done in the body of the function. Note that the assignment of the value to the variable must be done in the body of the function, it must not be done as an initial value assignment in the declarative part of the function, as the latter results in the same crash as setting a constant. Example: function function_2 ( constant RECURSION_DEPTH : natural) return natural is variable retval : natural; begin retval := function_1( RECURSION_DEPTH => RECURSION_DEPTH); return retval; end function_2; This problem is fixed starting with the Intel® Quartus® Prime Pro Edition Software version 21.3. Custom Fields values: ['novalue'] Troubleshooting 1508876938 False ['novalue'] ['FPGA Dev Tools Quartus® Prime Software Pro'] 21.3 20.4 ['Programmable Logic Devices'] ['novalue'] ['novalue'] ['novalue'] - 2022-03-11

external_document