( ESNUG 256 Item 3 ) -------------------------------------------- [11/22/96]

Subject: ( ESNUG 255 #6 ) Can't Constrain "Ideal" PLL Generated Clocks

> I'm trying to create a clock that comes from an internal clock driver.
> I've got no clock tree, just a global clock net, so Synopsys sees
> 10,000 loads on the clock driver.  This is a pre-layout netlist, so I
> just want to see an ideal clock.  I've tried "set_load 0 CLKNET" but
> this only gets rid of the wire capacitance, there's still 130pf of
> capacitance from clock input pins of all the flops.  I've tried:
>
>               create_clock_no_input_delay = true
>
> but this doesn't seem to do anything.   I've also looked at the
> attribute "propagated_clock", but it's not set.  (Isn't this a common
> problem with prelayout netlists that contain PLL's?)
>
> The only thing that works is temporarily disconnecting the clock 
> net from it's driver, creating a port, making the clock net to new
> port connection, and then doing a "set_drive 0 new_port".  Obviously
> this method is not preferred.  Any better ideas?


From: Oren Rubinstein <oren@waterloo.hp.com>

John,

Our standard solution is to instantiate a phony cell called "clock_tree".
You can give it a delay, which sometimes is useful in simulations, and
you can create a Synopsys model for it with a drive strength of 0.

When the chip is routed, this cell is replaced by the real clock tree.

A similar approach would be to put the drive strength of 0 directly in
the PLL model.

  - Oren Rubinstein
    Hewlett-Packard (Canada) Ltd.
    
       ----    ----    ----    ----    ----    ----    ----

From: Neil Hastie <hastie@isti.fr>

John,

We hit exactly the same problem with our last design.  The solution is
to get your friendly ASIC library supplier to produce a dummy clock
buffer model.   (Or do it yourself if you possess a Synopsys Library
Compiler.)  This clock  buffer model should have zero delay independent
of output load.  Use this model until you get a real clock tree.
Hope this helps.....

  - Neil Hastie
    International Supercomputing Technology Institute
    Mulhouse, France
    
       ----    ----    ----    ----    ----    ----    ----

From: mcur@alcatraz.rtc.sc.ti.com (Mark A. Curry)

Hi John,

What's probably happening is that Synopsys is still calculating a
delay from the wire-load resistance times the 130pf pin capacitance.

Try setting the resistance of that net to zero: 

set_resistance 0 CLKNET

  - Mark Curry           
    Texas Instruments ASIC Design Center - San Jose, CA

       ----    ----    ----    ----    ----    ----    ----

From: John_J_Lim_at_3-AP02A@CCGATE.HAC.COM (John Lim)

Hi John
     
It sounds the like the problem Paul is having is that the clock net is 
being buffered up (like crazy) when he tries to compile.  I had a 
similar case when using an internal clock driver (from a clock 
generator).  The way I handled it was to put a "set_dont_touch_network 
CLKGEN/CLK" where CLKGEN was the clock generator block name and CLK is 
the output pin from that block.  By setting a dont_touch_network, the 
tool will not consider the net for design rule constraints thus 
leaving the net unbuffered.  Hope this helps.
     
  - John Lim
    Hughes Space and Communications



 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)