Precision of the scheduler clock can be defined as the smallest time-scale of the simulator that can be correctly represented. The clock variable for ns is represented by a double. As per the IEEE std for floating numbers, a double, consisting of 64 bits must allocate the following bits between its sign, exponent and mantissa fields.
sign exponent mantissa 1 bit 11 bits 52 bits
Any floating number can be represented in the form () where X is the mantissa and n is the exponent. Thus the precision of timeclock in ns can be defined as (). As simulation runs for longer times the number of remaining bits to represent the time educes thus reducing the accuracy. Given 52 bits we can safely say time upto around () can be represented with considerable accuracy. Anything greater than that might not be very accurate as you have remaining 12 bits to represent the time change. However () is a very large number and we donot anticipate any problem regarding precision of time in ns.
Tom Henderson 2011-11-05