On 09/15/2014 02:41 AM, BAndViG wrote:
> I didn't synthesize FPU separately. I think that separate design
> digits are useful only if we are going to build a macro-cell.

They are useful to estimate the impact that design options have on
performance and resource utilisation, e.g. to choose whether to use your
FPU or software floating point. The increase in resource usage of mor1kx
after the FPU is enabled is definitely a relevant number.

> 94% are routing! But constrain (50 MHz) is satisfied, so router
> haven't to do anything more. By the way the 50 MHz wasn't set by me.
> It is default value for Atlys SoC.

Ok, that's rather slow... have you tried pushing it?

If you believe the Opencores description, you should be surprised that
the Cyclone-I, a low-end FPGA from the early 2000s, would be twice as
fast as the Spartan-6, a low-end FPGA from the late 2000s.

> About cycling. As the FPU is just VHDL->Verilog conversion of FPU100 
> (http://opencores.org/project,fpu100), the cycling is equal to
> original design: Add/Sub: 7 Mul with serial implementation: 35 (now
> implemented for OR1200 and mor1kx)

Serial multipliers often do not make sense anymore as modern FPGAs have
dedicated "DSP" blocks that can do multiplications efficiently with only
a few cycles of latency.

> Mul with 'parallel' implementation: 12 (implemented for original 
> project only) Div: 35 (serial implementation only)
> 
> By the way the original design was able to run on 100MHz in case of 
> synthesized alone for Cyclone I–EP1C6Q240C.

That's what the Opencores description says, but most of what is claimed
on Opencores is very optimistic, to say the least.

> The Altera Quartus II v.5 reported the following number of logic
> elements: Addition unit:          684 Multiplication unit: 1530 (!!!
> parallel !!! The serial one implemented for OR1K should be smaller.)

On a FPGA with hard multipliers, both should have approximately the same
size. However, the serial one will have those ludicrous 35 cycles of
delay...

> Division unit:           928 Square-root unit:     919 (not ported to
> OR1K) Top unit:                  326 _______________________________ 
> Total:                       4387

Bloated. That's more than mor1kx itself, which already isn't quite
resource-efficient. That combined with low performance is one of the
typical plagues that frustratingly makes most Opencores projects useless...

Sébastien

_______________________________________________
OpenRISC mailing list
[email protected]
http://lists.openrisc.net/listinfo/openrisc

Reply via email to