I have designed a simple Ripple Carry Adder in ISE and, after having synthesized it for my FPGA, the report says that the "maximum combinational path delay" is about 15 ns.
Then, I designed a Robertson multiplier (a sequential circuit), which contains an instance of my RCA. The report says that the "maximum combinational path delay" is about 7.5 ns and that the maximum frequency is about 130 MHz.
My question is: are these numbers right? Does the tool make some sort of "magic" optimization in order to "speed up" the adder inside the multiplier? Or is it just a wrong estimate?
I also found out that if I select "Keep Hierarchy" to "Yes", in the Synthesis Options, the frequency in the report becomes more or less consistent with the RCA's delay.
[EDIT] I'm posting the Synthesis text report and the Implementation (after Map) text report:
- RCA Synthesis text report: http://pastebin.com/1vqjNMA8
- RCA Map text report: http://pastebin.com/B9QxTpcz
- Robertson Multiplier Synthesis text report: http://pastebin.com/pUpnXPs6
- Robertson Multiplier Map text report: http://pastebin.com/yw93AEb0