Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
16 years ago

a critical warning about Classic Timing Analysis

When performing the Classic Timing Analysis in quartus I got a critical Warning: Can't achieve timing requirement Clock Setup: 'PLL1:PLL1_inst|altpll:altpll_component|_clk0' along 186 path(s). See Report window for details.

The red line in Report Window is :

type :Clock Setup: 'PLL1:PLL1_inst|altpll:altpll_component|_clk0'

slack : -230.103 ns

required time : 15.36 MHz ( period = 65.104 ns )

actual time : 3.39 MHz ( period = 295.207ns )

from : SLOT_SYNC:slot_sync|acc:acc_inst|altaccumulate:altaccumulate_component|accum_gff:accum_cell|acc_ffa[57]

to : SLOT_SYNC:slot_sync|slot_sync_fail

from : PLL1:PLL1_inst|altpll:altpll_component|_clk0

to : PLL1:PLL1_inst|altpll:altpll_component|_clk0

failed path : 186

I have no idea to deal with this warning , can anyone give me any suggestions?

Thanks!

4 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Have you got any big lumps of combinatorial logic in your design? It might be that these are slowing down the logic too much.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    In the general case, you have to redesign the path designated by from: to:. A possible means is inserting pipeline registers. Of course the delay of x clock cycles has to be considered. In special cases, the data transfer along the path has actually a margin of multiple clock cycles, but Quartus can't recognize it. Then you can specify the path as multi-cycle.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Right-click on the row and do a List Path. Then below in the messages you'll see a new line for that path which you can expand and contract, so you can get a detailed view of how many levels of logic this path is, what the clock skew is, etc. For the record, it's really difficult to have a path that is 295ns long. So either you have a ton of logic, or perhaps something else is going on. If it's really that much logic, you're going to have to add pipeline stages. (The case I've seen where you can get this much logic is when users write out lots of math calculations as a single line without pipelining. One of the main things FPGAs get their performance from is the ability to pipeline and run each section at the same time(assuming no feedback).

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Based on your suggestions, I have solved this problem.

    Thank you very much!