Electronic – Maximum Clock Frequency

clock-speeddelaylatency

As an assignment for the HDL course I'm taking, I've to design an FIR Filter. The module consists of two a small combinational circuit which can be used to reset the module, another combinational part which handles the convolutional multiplication and therefore, is considerably bigger and finally a bunch of registers all using the same clock pulse signal.

The odd thing is after synthesizing and implementing, the software reports that it can operate at a maximum clock rate of around 600MHz! Apparently, the latency of the combinational circuits in total is about 27 nanoseconds but the minimum clock period is 1.5 nanoseconds.

So to generalize the question, consider the following module:

enter image description here

If S is considerably larger than T should the minimum clock period be as large as S or does it depend on T? Or should it be larger than S+T?

Best Answer

Since you have synchronous registers between the combinatorial blocks, the minimum time is the larger of the minimum time for each block.

The S block will process the data generated by the T block during the last clock period, while the S block processes the next data items.

So you can increase \$f_{max}\$ by shrinking your combinatorial blocks and putting registers in between, but the results will arrive on a later clock cycle then.

It is quite possible that the synthesis identified the multipliers in your design and mapped them to dedicated multiplier blocks, reducing the settling time for S significantly.

It is also possible that you have an error in your design that allows the compiler to optimize out functionality, e.g. by not routing output signals to pins you are allowing the compiler to remove the entire design as it has no externally visible effects.