( ESNUG 409 Item 8 ) -------------------------------------------- [03/25/03]
From: Simon Matthews <the_many=paxonet taut alm the_one=simon>
Subject: Am I One Of The Many Using "Useful" Clock Skew To Close Timing?
Hi, John,
I keep seeing studies in ESNUG which tout the small clock skew achieved on
designs. Yet some tools (including Magma) can introduce clock skew in order
to meet timing in localized paths.
Imagine you have a very simple case of 3 FFs, all clocked by the same clock.
Let's call the FFs A, B and C. There is a combinational path from A to B
that has a large delay. There is a combinational path between B and C that
has a small delay. Now, further imagine that the A -> B path delay is too
large to meet timing and cannot be optimized further. Intractable problem?
A B C
------- ------- -------
---|D Q|-- slow logic --|D Q|-- fast logic --|D Q|---
| | | | | |
| | | | | |
clock ----|> | --|>o-|>o----|> | ----|> |
| ------- | ------- | -------
| | |
--------------------------------------------
Solution: delay the clock input to B. In this case more time is allowed for
the A -> B path by stealing from the B -> C path. Now we have a situation
where skew is deliberately introduced in the clock and it helped us meet
timing. The example I gave is of course trivial, real examples will be much
more complex, but I am sure you will get the idea.
In my opinion, useful skew is the way to go! My question is how many people
are there today using useful skew in their design flow today? Am I one of
few using useful skew or one of the many?
- Simon Matthews
Paxonet Fremont, CA
|
|