Cadence floating point maths has severe limitations that other CAD tools
do not.
Try typing
4.1 * 100 == 410
in a Skill window.
Here is the Cadence explanation:
"The real issue is that some numbers can't be represented exactly in the
standard floating point representation. As IEEE floating point numbers
represent real numbers by what are essentially binary fractions, what
you might normally expect is not what you necessarily get. For example:
the fraction 1/3 cannot be exactly represented in base ten fractions,
but it can be in base 2. Conversely, 1/10 (0.1) cannot be exactly
represented in base 2, although it can be in base 10. And that's what's
happening here. 4.1 is not exact in IEEE floating point. It's a very
well known phenomena, usually turns up in Computer Science 101, and is
present in all computer languages. See _http://www.lahey.com/float.htm_
for a nice write up in Fortran. So what can you do? One technique feels
that works (but feels wrong) is to add a 'precision' factor to the
result of the multiplication. You do have to have a feel for what is
reasonable for your calculation though. A smarter way is to know the
strengths of the format. IEEE precision is greatest for numbers
(excluding exponent) between 0 and 1.0. In this case if you adjust
things to take account of that, you will find that fix(0.41 * 1000) is
410.0"
Cheers, Dave
Andrew Noonan (annoonan) wrote:
There are board packages that allow seamless interchange between metric and inch/mil database, on the fly and no rounding errors (PowerPCB). So, it's not impossible, just unfortunate that it works this way within Allegro (imho).
Andrew -----Original Message-----
*From: * icu-pcb-forum-bounce@xxxxxxxxxxxxx [_mailto:icu-pcb-forum-bounce@xxxxxxxxxxxxxx] * On Behalf Of* Don Folk
*Sent: * Wednesday, August 24, 2005 11:45
*To: * icu-pcb-forum@xxxxxxxxxxxxx
*Subject: * [PCB_FORUM] Metric to English - English to Metric
I have a customer that does business in Japan and the US. He would like to be able to go back and forth between English and Metric in Allegro 15.2 to supply Metric files to Japan and English files to the US. I always seem to have round off errors, which can create DRC's, disconnects and pad stack corruption. It seems like you can minimize the problems, but you can not go cleanly back and forth with out having to fix something. If you keep going back and forth between English and Metric will the board eventually be corrupt beyond repair. Is this going to be fixed in Allegro 15.5?
Thanks in advance, */[Don Folk]/* Don Folk
begin:vcard fn:Dave Elder n:Elder;Dave org:Tait Electronics adr:;;PO Box 1645;Christchurch;;;New Zealand email;internet:dave.elder@xxxxxxxxxx title:PCB Design Manager tel;work:+64 3 3580327 tel;cell:+64 21 37 37 25 url:http://www.taitworld.com version:2.1 end:vcard