Remix.run Logo
kens 11 hours ago

Author here if anyone has questions...

hnthrowaway0315 7 hours ago | parent | next [-]

Hi kens, thanks for the knowledge sharing all these years. Can you please confirm this one? From Wikipedia, it says that 8087 uses CORDIC algorithm. Does that mean that it's the same (but different speed) as what I'd implement the functions in software, except in microcode (which has more granularity than usual assembly code)?

I found it a bit surprising that as a 45-year old chip, there is no public information of its microcode. I guess hardware is indeed much more secret than software.

kens 7 hours ago | parent [-]

Yes, the 8087 uses CORDIC. I extracted the constants from the 8087's internal constant ROM and they are arctangent and log values for the CORDIC algorithm. You can implement the same functions in software, which is what floating-point emulation libraries did back then.

There's almost no public information on the 8087 microcode, but I'm working on that :-)

hnthrowaway0315 7 hours ago | parent [-]

Thanks Ken, appreciate the work!

farseer 11 hours ago | parent | prev | next [-]

Is there 8087 IP available in verilog etc?

kens 10 hours ago | parent [-]

As far as I know, you can't get the 8087 itself as an IP block. You can get generic IEEE-754 floating-point as an IP block, e.g. from AMD: https://www.amd.com/en/products/adaptive-socs-and-fpgas/inte...

pwdisswordfishy 10 hours ago | parent [-]

IPv6 has seriously gone too far.

mschaef 3 hours ago | parent | prev | next [-]

Thank you. As always.

dapperdrake 6 hours ago | parent | prev [-]

Thank you for the deep dive.