Generally speaking, it is not good, if a module's combinatoral logical delay plus the routing delay exceed the clock period.
A certain module calculates a 100-bit accumulation in approxinately 5ns (in a Virtex 5LXT-1). However, the design clock period is 4ns.
I could break the sum logic into two pieces, register the high-50-bits, adding the low-50-bits into a register, adding the registered high-50-bits with carry from the low-50-bits, and finally concatenate the high-50-bit sum with the registered low-50-bit registered sum. That would satifiy timing requirements. Howerver, the extra 100-bits of register resources does not seem offer a benefit and likely increases the likelyhood that a larger device will be required. There could be hundreds of these 100-bit adders in the design.
So, the module calculates the 100-bit accumulation in one go, taking 5ns and
100 less registers than the preceeding example. Obviously, the input terms must remain stable for two clock periods for the sum to be valid and this is accounted for in the upper logic layers.My issue is how to tell the ISE tool-chain that the 5ns total delay is acceptable in these modules. The Constraints Guide may cover this issue, but I do not see it. Can someone give me an example of the appropriate constraint usage?
Thanks in advance.
- Sam