IMPORTANT NOTICE: Please be advised that the Verification Academy Forums will be offline for scheduled maintenance on Sunday, March 23rd at 4:00 US/Pacific.
Please review chapter 11 of the SystemVerilog LRM.
Per the LRM, if all of the operands are integral, then the result is integral. Even though ci_n is declared as real, all of the operands in the statement (rand_data_xi, xi_prev and fact_log_2) are integrals, resulting in the (correct) integral result of -1 instead of the real result -1.125.