I have a design which looks like this:
-controller
--Module1
---SubModule1.1
---SubModule1.2
----SubModule1.2.1
--Module2
---SubModule2.1
---SubModule2.2
---SubModule2.3
---SubModule2.4
--Module3
---SubModule3.1
---SubModule3.2
---SubModule3.3
So I got a top-level module called controller which inherits 3 Modules. Each Module is connected to a FIFO as a Buffer. So the output of Module1 is connected to the Input of FIFO1 and the output of FIFO1 is connected to the input of Module2 and so on.
Now here's my problem. If I run Place & Route with Xilinx ISE it gives me
----------------------------------------------------------------------------------------------------------
Constraint | Check | Worst Case | Best Case | Timing | Timing
| | Slack | Achievable | Errors | Score
----------------------------------------------------------------------------------------------------------
Autotimespec constraint for clock net clk | SETUP | N/A| 9.055ns| N/A| 0
_IBUF_BUFG | HOLD | 0.411ns| | 0| 0
----------------------------------------------------------------------------------------------------------
Autotimespec constraint for clock net clk | SETUP | N/A| 18.826ns| N/A| 5804
_IBUF | HOLD | 0.131ns| | 0| 0
----------------------------------------------------------------------------------------------------------
Autotimespec constraint for clock net Ins | SETUP | N/A| 8.537ns| N/A| 0
t_part1/Inst_A2Precalc/state[2]_GND_274_o | HOLD | 1.534ns| | 0| 0
_Mux_639_o | | | | |
----------------------------------------------------------------------------------------------------------
Autotimespec constraint for clock net Ins | SETUP | N/A| 7.946ns| N/A| 0
t_part1/Inst_A2Precalc/state[2]_GND_306_o | HOLD | 1.890ns| | 0| 0
_Mux_703_o | | | | |
----------------------------------------------------------------------------------------------------------
Autotimespec constraint for clock net Ins | SETUP | N/A| 7.966ns| N/A| 0
t_part1/Inst_A2Precalc/state[2]_GND_338_o | HOLD | 2.224ns| | 0| 0
_Mux_767_o | | | | |
----------------------------------------------------------------------------------------------------------
Autotimespec constraint for clock net Ins | SETUP | N/A| 8.252ns| N/A| 0
t_part1/Inst_A2Precalc/state[2]_GND_370_o | HOLD | 1.950ns| | 0| 0
_Mux_831_o | | | | |
----------------------------------------------------------------------------------------------------------
So clk_IBUF has a Best Case Achievable of 18.826ns which is too slow for my case. Does this mean that the clk needs 18.826 to reach all clocked parts? And how could I possible improve this? And can I somehow look up what exactly causes this?