The LRM writes:
real $itor ( int_val )
$itor converts integer values to real values (for example, 123 becomes 123.0).
What is meant with ‘integer values’ here? Does it refer to the ‘integer’ datatype (32 bits) or more general any integral type?
The following trial with 50 bits suggests that $itor is not limited to 32 bits integers.
real r;
bit [50-1:0] b50;
b50=(1<<49)+1;
$display("%d (%b)",b50,b50);
r=$itor(b50);
$display("%f",r);
gives
562949953421313 (10000000000000000000000000000000000000000000000001)
562949953421313.000000
A more general question is what is the purpose of $itor? How does it differ from just assigning or static casting an integral to a real?