Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Clock Uncertainty/Skew

Status
Not open for further replies.

arjun1110

Advanced Member level 4
Full Member level 1
Joined
Jul 3, 2008
Messages
101
Helped
27
Reputation
54
Reaction score
16
Trophy points
1,298
Location
Bangalore,India
Activity points
1,865
clock uncertainty skew

Hi,

Can I use below commands to apply skew in the post layout STA? will STA honour these values? because in post layout STA clock will be propagated (skew will computed depending upon the parasitics).

set_clock_uncertainty -setup 100 -clock [get_ports CLKA]
set_clock_uncertainty -hold 50 -clcok [get_ports CLKA]

Regards.
 

dcreddy1980

Full Member level 5
Full Member level 5
Joined
Dec 3, 2004
Messages
241
Helped
46
Reputation
92
Reaction score
21
Trophy points
1,298
Location
Munich, Germany
Activity points
1,532
clock uncertainty

yes, you can add these constraints in post layout STA. Only clock skew will be computed by the propagated clock and for clock jitter, we can add a small delay on the uncertainity to match the real clock which will be generated from clock generation circuitry.
 
  • Like
Reactions: ivlsi

    ivlsi

    Points: 2
    Helpful Answer Positive Rating

arjun1110

Advanced Member level 4
Full Member level 1
Joined
Jul 3, 2008
Messages
101
Helped
27
Reputation
54
Reaction score
16
Trophy points
1,298
Location
Bangalore,India
Activity points
1,865
uncertainty propagated clock

Hi dcreddy,

Thanks for your quick reply.

Then these numbers will be taken as a jitter? If yes, then what is purpose of these below commands.

set_clock_latency -source 100 -late [get_clocks CLKA]
set_clock_latency -source 50 -early [get_clocks CLKA]

I think the above commands are used apply jitter in clock source. Correct me If I am wrong.

Regards
 

roli

Full Member level 5
Full Member level 5
Joined
Apr 29, 2001
Messages
246
Helped
9
Reputation
20
Reaction score
9
Trophy points
1,298
Location
'SiliconWafer' Island
Activity points
1,809
No, the above commands ('set_clock_latecy') emulate the clock tree NET delays (Min./Max.), and NOT jitter.
 

arjun1110

Advanced Member level 4
Full Member level 1
Joined
Jul 3, 2008
Messages
101
Helped
27
Reputation
54
Reaction score
16
Trophy points
1,298
Location
Bangalore,India
Activity points
1,865
Hi Roli,

I was going through the one of the synopsys presentation on STA which I have attached.

Please will clarify me on specifying jitter is correct with set_clock_uncertainty or with set_clock_latency <jitter value> -source -late/early

Regards,
 

shelby

Full Member level 2
Full Member level 2
Joined
Jan 4, 2007
Messages
124
Helped
38
Reputation
74
Reaction score
18
Trophy points
1,298
Activity points
2,045
Hi arjun,

The set_clock_latency with early/late can be used for jitter margining (as shown in the doc you attached) , but I would keep this command for clock tree variations only as roli mentioned. The reason is that when you move from ideal to propagated clocks, this command goes away and you will need to account for jitter some other way. It's best to keep it consistant both pre and post CTS.

The set_clock_uncertainty will be applied the same both pre and post CTS. One issue with using this to apply jitter is that multi-cycle paths will not be accounted for properly. Say your frequency jitter can speed up your clock by 100ps, and you are timing a multi-cycle path of 4, set_clock_uncertainty will only give you 100ps of margin when you really need 400ps.

Another way to account for frequency jitter is increase your clock frequency. This fixes the multi-cycle path problem as the margin added would then the correct 400ps.

The increase frequency method works for frequency jitter but does not account for 1/2 cycle jitter. If your design has a lot of 1/2 cycle paths you can also use set_clock_uncertainty with rise/fall options to account for 1/2 cycle jitter.
 

arjun1110

Advanced Member level 4
Full Member level 1
Joined
Jul 3, 2008
Messages
101
Helped
27
Reputation
54
Reaction score
16
Trophy points
1,298
Location
Bangalore,India
Activity points
1,865
Hi Shelby,

In the same doc it is mentioned that set_clock_uncertainty is used to apply skew. So I thought that when we move from Idel to propagated clocks, this command goes away and set_clock_latency can be used to account for jitter But now I understood with your explanation.

Thanks a lot to all who contributed to this discussion.


Regards,
 

arjun1110

Advanced Member level 4
Full Member level 1
Joined
Jul 3, 2008
Messages
101
Helped
27
Reputation
54
Reaction score
16
Trophy points
1,298
Location
Bangalore,India
Activity points
1,865
Hi Shelby,

I got one more question on this.

As you said in your previous reply, when we move from ideal to computed (or clock propagated) set_clock_latency command goes away but I am specifying jitter with switch -source (jitter in the source clock itself) and from my understanding jitter will still be present even after clcok is propagated. please correct me if I am wrong.

Regards,
 

ivlsi

Advanced Member level 3
Advanced Member level 3
Joined
Feb 17, 2012
Messages
883
Helped
17
Reputation
32
Reaction score
16
Trophy points
1,298
Activity points
6,868
Is it possible to define "early" and "late" for he clock uncertainty?

In terms of synthesis tools, what does it mean "uncertainty 5nSec"? How is it applied on the clock? Does it mean "5ns around the clock edge"?

As for the -setup uncertainty, does it mean "clock uncertainty before the clock edge"?
As for the -hold uncertainty, does it mean "clock uncertainty before the clock edge"?

How should the negative uncertainty be defined?

Thank you!
 

sam536

Full Member level 5
Full Member level 5
Joined
Jul 4, 2007
Messages
245
Helped
50
Reputation
102
Reaction score
36
Trophy points
1,308
Location
Tokyo
Activity points
3,028
set_clock_latency is used for clock insertion delay for network latencies , whereas set_clock_uncertainity is used for accounting the clock jitter, skew and design margin ie.. Characterization margins.

Effect of Latency and Uncertinity in Setup/hold calculations .
➢ Setup check = (Clock_edge + edge_delay - setup_uncertainty -library_setup)
➢ Hold check = (Clock_edge + edge_Delay + hold_uncertainity +library_hold )

Latency values will be taken as edge delays.

Regards, Sam
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top