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
