I need to check real values on equality.
I use case-equality (“===”) since I have to check for 'X and 'Z values.
I observed that divided real values can be checed for equality, but multiplied values cannot.
Here some examples:
real myval;
logic mytest;
initial begin
//simple euality check - multiplied
myval = 5.0*1.0e-6;
mytest = (myval == 5.0e-6);
if(mytest) $display("is case-equal");
else $display("is not case-equal");
//case equality check - multiplied
myval = 5.0*1.0e-6;
mytest = (myval === 5.0e-6);
if(mytest) $display("is case-equal");
else $display("is not case-equal");
//case equality check - divided
myval = 20e-6/4.0;
mytest = (myval === 5.0e-6);
if(mytest) $display("is case-equal");
else $display("is not case-equal");
end
The result is:
is not case-equal
is not case-equal
is case-equal
- Why do the multiplied values not result in logic “1” when checked for equality, but the divided value does ?
- How can I check the multiplied real values for equality with a real number ?