[comp.arch] Do chip timing specs mean anything?

owen@sbcs.sunysb.edu (Owen Kaser) (08/04/90)

Do timing specs for microprocessors and their support chips bear
any relation to reality, and do industrial designers 
(need to) pay any heed to them?  Here's the background for my question:

I did a number of microprocessor-based designs during my stay
at a small company a couple of years ago.  For the first, I was told which 
major parts were to be used (uP, serial controllers, etc), and what
the desired clock speed was (it was high).  So I set to work, doing
the design the way I thought such were supposed to be done.  A couple
of weeks later I presented a preliminary design to my boss.  He glanced
at it and told me it had too many chips.  I explained that the ones to
which he was objecting were part of a wait-state generator, and that
it was required because timing analysis (from specs) showed that fast
enough peripheral chips/ memories were either not available or were too
expensive.  He chuckled at me for being naive, and told me not to worry
about meeting timing specs: such chips always ran much better than 
their worst case specs, even though our bus loads may have exceeded 
the test load.  I was quite dubious about the wisdom of this approach, 
but he was the boss...  

I made a long list of all the timing violations (under worst case conditions) 
that the specs suggested, expecting to have a lot of debugging to do
before the product was in (successful) volume production.  After the
first prototype units came in (and the other problems ironed out),
I attacked them with a 'scope, to see how bad things were.
At room temperature, timing was great, even using alternate manufacturers 
parts.  Even when heated well above our spec'd operating temp 
(and cooled too), the units continued to run.

Now the pressure seemed a little worse, since I had to release them to
manufacturing, and I did not like the risk of flakiness. Nevertheless
I did so, and despite the usual little problems (not timing related), 
several hundred were produced (until I left the company), with no evidence of
any timing problems.

(My boss had done the previous designs, which had horrendous (worst case)
timing violations.  10k's of these were produced over several years.  No
problems were observed. Due to a 3 year warranty we saw field failures,
but I don't recall any traced to timing)

What is the moral of this story?  Usually perhaps 30% better performance
than indicated was required, and the chips delivered it.  Was it because
the chips had been around long enough that the manufacturers had improved
them and not updated their data books?  Was it that the specs were good
until 70 degrees C, and we never rose above 55 degrees C?  Were we
just lucky, and will the units stop working after the chips age
(electromigration etc)?

If I reverse engineer other uP-based designs, will I see widespread 
spec violations?  If I reverse engineer a mainframe?  If I reverse engineer
*your* designs? 

Note: don't ignore power-handling specs!  My boss tried that too, 
and I saw the results in his power supplies...  
But that's not a comp.arch topic.

lewine@dg.dg.com (Don Lewine) (08/06/90)

In article <1990Aug4.152038.1132@sbcs.sunysb.edu> owen@sbcs.sunysb.edu (Owen Kaser) writes:
>Do timing specs for microprocessors and their support chips bear
>any relation to reality, and do industrial designers 
>(need to) pay any heed to them?  Here's the background for my question:
>
>I did a number of microprocessor-based designs during my stay
>at a small company a couple of years ago. 
      ^^^^^

This may be valid for a small company.  For larger companies, it is best to
negotiate a new purchase specification with the manufacturer.  If they are 
willing to certify that their parts will work 30% (or 50% or whatever) faster
than it says in the handbook then go ahead and use it.  If they are unwilling
to make such a statement, I would live with the published spec.

Because I HAVE gotten purchase specs written for improved performance and 
because I don't believe that these were sorted parts, there must be lots of
parts that run faster than the handbook spec.

The problem is which parts run faster and how much faster do they run?
If you don't know, you are either giving up performance or risking unstable
operation.  Talk to the vendor and see what he says!

By the way, if the number of chips in the design is large, worst case may be
very pessimistic.  If there are many chips in the critical paths, what are the
odds that every one is worst case slow?

I worked at one computer company where manufacturing measured the highest speed
that each computer would run.  After a year, we raised the clock rate to the
highest speed that every computer ran minus 5%.

P.S.	Having 1/2 nanosecond too little setup time can be one of the hardest
	problems that you will ever debug.

jesup@cbmvax.commodore.com (Randell Jesup) (08/07/90)

In article <1990Aug4.152038.1132@sbcs.sunysb.edu> owen@sbcs.sunysb.edu (Owen Kaser) writes:
>Do timing specs for microprocessors and their support chips bear
>any relation to reality, and do industrial designers 
>(need to) pay any heed to them?  Here's the background for my question:
....
>What is the moral of this story?  Usually perhaps 30% better performance
>than indicated was required, and the chips delivered it.  Was it because
>the chips had been around long enough that the manufacturers had improved
>them and not updated their data books?  Was it that the specs were good
>until 70 degrees C, and we never rose above 55 degrees C?  Were we
>just lucky, and will the units stop working after the chips age
>(electromigration etc)?

	Probably a combination of things.  Normally, chips are rated at
70 C, 4.5 volts instead of 5, and since you want most of the parts to pass
at that level, you add in a safety factor (which may be up to 30% or more).
Also, age of chip, lot variation, etc may affect timing.  As you said, it
may be that they migrated to a newer, faster process but didn't re-engineer
the design to figure out the new speed parameters.

	For example, the rpm-40 was speced at 40Mhz, but no one expected to
run that except in a high-speed pcb.  When first silicon came out, it
was dropped into the (careful) wire-wrap board that was expected to handle
maybe 10 or 15 Mhz.  I'm told it ran at 40Mhz in the wire-wrap (but at
nominal temp and voltage).  It had been designed with a _lot_ of leeway
everywhere.

	You're right to be leary of violating them, though.  It's the sort of
thing that will come back an bite in all sorts of flakey, annoying ways.

Disclaimer: I'm a software guy who kibitzes on hardware guys.
-- 
Randell Jesup, Keeper of AmigaDos, Commodore Engineering.
{uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com  BIX: rjesup  
Common phrase heard at Amiga Devcon '89: "It's in there!"

krl@jujeh.mlb.semi.harris.com (Ken Lyons) (08/07/90)

As an IC designer, it is interesting to see how timing specifications 
are viewed by IC users.  Maybe specs would be less mysterious if the
process by which they were determined was examined.

Specs start out as a number in a product definition that is supposedly 
based on what the market needs.  Usually at this point, this involves 
a lot of guesswork, but nontheless we forge on, and these numbers often 
include several speed grades and percentages of the product that should 
meet them.

In the next step the designer designs the part according to the definition.  
If he is lucky the definition indicates which numbers are most important
so that the designer can make the right trade-offs when he finds some of
the specs cannot be met according to the simulations.

Finally the design becomes actual silicon (well, about 50% of the time :-)
and it is characterized to see what it really does.  At this time,
manufacturing looks at the data and usually insists that some specs be
changed so that they don't have to throw out 80% of the parts they make.

By the time parts are shipped, the specs are quite different from what
they started out as, but they do indicate how good the worst part shipped
out the door will be.  The distribution looks something like this:

                              ***
                       |   ***   ***
                       |***         ***
                    ***|               ***
              Rejects  |  Good parts

The problem with using parts out of spec is that the distribution changes
over time.  Most of the time this is for the better as manufacturing
technology improves.  Sometimes, however, the manufacturing process runs
amuck and the rejects hit 90% and the good parts are very close to the
specs.  Obviously, this is very expensive for the manufacturer, but it
also produces phone calls from angry customers who have designed to some
bogus spec that they have made up.  Though it is a reality that customers
need to design beyond specs to be competitive with others doing so, they
need to be aware that there is a small but finite risk in doing so.

There is another problem with doing this, which is much more rare. 
Ocasionally, a customer will design a system that depends on a part being
arbitrarily close to the spec.  A typical example of this is output enable
times: the spec says 10ns, the parts start out typically at 30ns and the
customer designs for 20ns.  A few years into production, the parts get
faster, say 15ns, and the customer's system starts having bus contention. 
The added noise on the power bus causes intermittant failures and the
customer determines that the old parts work but the new ones don't. 
Meanwhile the customer has gotten military approval for their system and
cannot change the design without going through another long and expensive
approvel cycle.  This is something greatly to be avoided.

Just how great the risks of using parts beyond their specs is hard to say. 
It is there, however; I have worked with customers who had these problems. 
I think that if you must take these risks, be aware of them, only take
them if necessary, and, if possible, redesign the risks out as soon as
possible, before they bite you.

Ken Lyons
These are my opinions.  If my company has opinions, they don't tell me
about them.

lindsay@MATHOM.GANDALF.CS.CMU.EDU (Donald Lindsay) (08/08/90)

In article <1990Aug7.140840.14044@mlb.semi.harris.com> 
	krl@jujeh.mlb.semi.harris.com (Ken Lyons) writes:
>The problem with using parts out of spec is that the distribution changes
>over time.  Most of the time this is for the better as manufacturing
>technology improves.

I recall a customer who designed to the values he measured on
_prototype_ parts.  If memory serves, it was a European telecomm
company, buying single-chip op amps from BNR.  They ordered several
hundred thousand chips - and BNR ran them off on the main production
line, rather than on the high-profile prototype line.  Did they meet
the specs?  Yes.  Did _any_ of the customer's boards work?  No - not
until a kludge socket was designed.  

[For the uninitiated: a kludge socket is a socket-on-a-socket.  It
provides a place for a few extra components, or even for a tiny
mezzanine board.  Now, why would they do that? - 'cause they'd
already manufactured the circuit boards, that's why. Ouch.]

The dream of the "self timed" designs is that they will automatically
be immune to timing problems.  Worst-cases, heat, aging, changes by
vendors, changes of vendor - all of these are just non-problems,
except in that the overall product's speed may occasionally surprise
you.  Anyone out there working on these things, please let us know
how it's going.
-- 
Don		D.C.Lindsay

cliffc@sicilia.rice.edu (Cliff Click) (08/08/90)

In article <10141@pt.cs.cmu.edu> lindsay@MATHOM.GANDALF.CS.CMU.EDU (Donald Lindsay) writes:
>In article <1990Aug7.140840.14044@mlb.semi.harris.com> 
>The dream of the "self timed" designs is that they will automatically
>be immune to timing problems.  Worst-cases, heat, aging, changes by
>vendors, changes of vendor - all of these are just non-problems,
>except in that the overall product's speed may occasionally surprise
>you.  Anyone out there working on these things, please let us know
>how it's going.

I know of at least 1 chip with working silicon, going to full production
(10,000 to 100,000??? parts) produced later this year using self-timed
ciruitry.  It has 1Meg bit on-board, with DRAM controller & 32-bit 
"horizontally micro-coded" controller - and the maker claims 100+ Mhz.
Not bad for a 1 chip computer (I guess you need a ROM chip, which you
download to the internal RAM, so make that 2 chips).  Anyhow they claim
huge speed with cheap (old) processes via self-timed ciruitry.

Cliff Grapevine Click


-- 
Cliff Click                
cliffc@owlnet.rice.edu       

daveh@cbmvax.commodore.com (Dave Haynie) (08/08/90)

In article <1990Aug4.152038.1132@sbcs.sunysb.edu> owen@sbcs.sunysb.edu (Owen Kaser) writes:
>Do timing specs for microprocessors and their support chips bear
>any relation to reality, and do industrial designers 
>(need to) pay any heed to them?  

Absolutely.  And you should pay attention to both minimum and maximum ratings.
For example, most modern microprocessors indicate a maximum and minimum clock
rating.  Stressing it in the fast direction, you may find that various other 
timing specifications fail, the parts overheat (possibly shortening the part's
life even if it does appear to work), and eventually internal delays become 
too large for the part to function at all at an extended clock speed.  Many 
micros use dynamic latches, both for speed and circuit simplicity.  These 
latches may cease to be reliable at clock speeds below the rated value.

>[...] He chuckled at me for being naive, and told me not to worry
>about meeting timing specs: such chips always ran much better than 
>their worst case specs, even though our bus loads may have exceeded 
>the test load.  I was quite dubious about the wisdom of this approach, 
>but he was the boss...  

Well, good thing you got out of there.  Care to mention the company, I'll be
certain to stay clear of them.  The loading and timing specs on parts are
given as worst case.  There's no guarantee that any given part will ever be
that bad under any condition, or that all parts will be that bad under typical
conditions.  But you do occasionally hit worst case, and you can't always
predict just when or why.  So you design for simultaneous worst case, and 
you're safe.

The last time I dealt with trying to stretch a timing parameter was back in
the cold, dark days of 1984 on the Commodore 128 project.  We had a 7407
buffer in a rather timing-critical place, and it wasn't quite as fast as it
should have been.  "But," we thought, "no problem, they've been making these
things for years, and they're never at their worst-case speed, even in an
oven."  Only, when some prototypes were built up in Japan, they used 7407s
from the USSR which did, indeed, run around the worst-case speed.  This 
resulted in a redesign, which we fortunately had time for.  And we were lucky
enough that this failure was easily detected and non-fatal (it involved the
enabling of the character ROM, a failure was visable as sparkling characters).

>I made a long list of all the timing violations (under worst case conditions) 
>that the specs suggested, expecting to have a lot of debugging to do
>before the product was in (successful) volume production.  After the
>first prototype units came in (and the other problems ironed out),
>I attacked them with a 'scope, to see how bad things were.

Of course, you're only seeing something very typical there.  You're not looking
at operation over a range of temperatures, and you're not looking at the effect
of these timing violations over 10,000 or more production units.

And you can never tell from the rating on the part, only from the spec sheets.
The spec sheets tell you how slow a part can be, but never how fast.  Take a
100ns DRAM for example.  The spec sheet specifys TRAS at 100ns.  You may find
that, in the course of building 50 engineering samples with parts from several
different vendors, that your TRAS of 90ns works just dandy.  However, what you
may not know is that in general, slower parts tend to be the fallout from a
faster process.  The parts stamped 100ns may have failed the 80ns qualification
this month, or maybe the factory made all the 80ns parts they needed and just
tested the rest to see that they made the 100ns qualification.  Now, next 
month, the factory has crunch on 80ns parts.  One customer can't get enough
80ns parts, but tells this vendor they'll take 90ns parts, so all the parts
going out as 100ns parts are actually very close to the 100ns qualification.
Or you get a mess of older parts that weren't fallouts from a faster process.
These go into your system and all of a sudden, you're swimming in factory and
field failures.

>(My boss had done the previous designs, which had horrendous (worst case)
>timing violations.  10k's of these were produced over several years.  No
>problems were observed. Due to a 3 year warranty we saw field failures,
>but I don't recall any traced to timing)

The problem with timing failures is that they don't generally show up as
a go/no-go, unless you've actually managed to overheat a part to the point
at which it's physically damaged.  The timing problems _will_ result in 
systems that fail at random times.  Users may blame this on software or
something else, but ultimately, if your system keeps exhibiting this behavior
while your competitor's doesn't, someone's going to catch on that the hardware
is what's flakey, and your product may end up on some shit lists.

>Was it that the specs were good until 70 degrees C, and we never rose above 
>55 degrees C?  

Well, if you spec an external ambient temperature of 55 C, you may very well 
get 70 C inside your case.  If you're a PC, you may only get the higher
temperatures (and, to make matters worst, voltage variations) when the system
is stuffed full of boards.  So you may be getting some headroom from 
temperature, but not as much as you think.

>If I reverse engineer other uP-based designs, will I see widespread 
>spec violations?  

I'm sure in some places you will.  You were probably not the only company
trying to cut corners that way.  A little garage shop may be able to get
away with that for awhile.  If they get into trouble, they simply disappear
and reappear later under a different name.  It happens.  A real company
can't get away with that, and shouldn't want to.  While I hope adequate 
design isn't the sole explanation for why an IBM or Compaq PC cost more than
a Taiwan Special, it's certainly something worth considering.

>If I reverse engineer *your* designs? 

We did have one timing parameter in the C128 that was 1ns over the worst 
case specifications.  Nothing we could do about it.  Since then, no skimping
in any of my designs.

-- 
Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
      Get that coffee outta my face, put a Margarita in its place!

rpw3@rigden.wpd.sgi.com (Rob Warnock) (08/08/90)

In article <1990Aug7.140840.14044@mlb.semi.harris.com>
krl@jujeh.mlb.semi.harris.com (Ken Lyons) writes:
+---------------
| Ocasionally, a customer will design a system that depends on a part being
| arbitrarily close to the spec.  A typical example of this is output enable
| times: the spec says 10ns, the parts start out typically at 30ns and the
| customer designs for 20ns.  A few years into production, the parts get
| faster, say 15ns, and the customer's system starts having bus contention. 
+---------------

Here you seem to be talking about a customer expecting a part to stay *above*
its minimum rated delay. But many (most?) parts are not spec'd with *any*
minimum delay on output propagation (a.k.a. output hold time). Yet most of
the time the customer/designer has to make some assumptions about minimum
delay, and most of the time that's o.k.  For example, one tends to assume
without ever questioning it that the minimum clock-to-Q of a flip-flip is
greater than the input hold time of that same part number. If this *weren't*
true, you couldn't build reliable shift registers with those parts. Many
rules of thumb abound for numbers to use for min prop delay when the data
book stands mute -- "1/3 to 1/5 max prop delay" is one such. But such "rules"
can fall prey to process improvements, where the chip gets better but the data
book doesn't.

A classic example of being burned by that occurred at <deleted>, Inc., some
20 years ago. We were using Signetics "SP380" TTL NOR gates as bus receivers
for PDP-8 peripherals, because SP380's had very high input impedance, and
besides, it's what DEC recommended for interfacing to a PDP-8 in those days.
SP380's had a spec'd max prop delay of 70 ns, and in practice we saw delays
of 50-65 ns, which was not surprising to us because of the high-impedance
"upside-down" PNP inputs. As it happened, <Person X> had been occasionally
known to cut corners, and one of his designs depended on the output of a
"select" generated by an SP380 not going away for at least 8 ns. Well, even
though it came up in the design review, we all let it slide [yes, I acknowledge
some share of the blame here], 'cause the SP380's were *so* slow; the fastest
ones we'd *ever* seen were some 45 ns. That part could *never* switch in 8ns!
So we built and shipped a lot of those boards...

About a year later, Signetics came out with this really hot Schottky-based
line of interface parts, the 8Txxx series. Hot stuff! We saw 8T37 (?) gated
inverters whose prop delays we could barely measure on our old slow 'scope,
somewhere below 2 ns for a couple of the parts. Well, we promptly designed
them in wherever we needed that kind of speed. And in passing we noticed that
one of the part numbers in the new line ws the 8T380, and it had the same
high-impedance inputs as the SP380, but the fast Schottky speed of the 8Txxx
line. And we used it in a couple of new designs.

Oh, and it seems Signetics was discontinuing all of the "SPxxx" line, *except*
the SP380, and that only because DEC had written it into the interfacing manual
for both the PDP-8 and the PDP-11. But we didn't worry, no. As long as DEC kept
spec'ing the part, Sig would keep making it, so our designs were safe.

By now you should be getting that old horror-movie anticipation. Yes, systems
we were shipping with that old design started having flakey problems. After
*lots* of time/etc. spent tracking it down, we finally discovered that what
Signetics was actually shipping -- despite the "SP380" clearly stamped on the
chip -- was really 8T380's, with measured minimum prop delays of 2 to 3 ns!
Just fast enough for a 5ns glitch on the decoded "select" to cause a control
register to lose its contents at the end of a "write" operation.

Moral: When the sky turns black in the middle of the day, and the stars
get bright and stop twinkling, maybe this *isn't* Kansas anymore...  ;-}


-Rob

-----
Rob Warnock, MS-9U/510		rpw3@sgi.com		rpw3@pei.com
Silicon Graphics, Inc.		(415)335-1673		Protocol Engines, Inc.
2011 N. Shoreline Blvd.
Mountain View, CA  94039-7311
by nearly two orders of magnitude!

daveh@cbmvax.commodore.com (Dave Haynie) (08/08/90)

In article <66356@sgi.sgi.com> rpw3@sgi.com (Rob Warnock) writes:

>For example, one tends to assume without ever questioning it that the 
>minimum clock-to-Q of a flip-flip is greater than the input hold time of 
>that same part number. If this *weren't* true, you couldn't build reliable 
>shift registers with those parts. 

Actually, this came up recently in a real situation in my work.  At least in
simulations, some gate array flip-flops were asserting that they're clock to
output delay was shorter than their input hold time.  There was a bit of
debate about this situation.  I was claiming that such a device, while 
possibly useful in some situations, does not behave as a true D-type flip
flop.  At least any kind of D-type flip-flop that a system-level circuit
designer has enountered -- these chip designers with their dynamic latches 
and other weird critters may be used to stranger things that this.

>Rob Warnock, MS-9U/510		rpw3@sgi.com		rpw3@pei.com
>Silicon Graphics, Inc.		(415)335-1673		Protocol Engines, Inc.


-- 
Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
      Get that coffee outta my face, put a Margarita in its place!

mea@cbnewse.att.com (mark.e.anderson) (08/10/90)

In article  owen@sbcs.sunysb.edu (Owen Kaser) writes:
>Do timing specs for microprocessors and their support chips bear
>any relation to reality, and do industrial designers 
>(need to) pay any heed to them?  

When I was a chip designer, we used to negotiate timing parameters
with the system designers which would initially be alot of guesswork
based upon what VLSI technology we were planning to use.  The system
designers would push for reduced wait states and we would push
for more leeway in our design.  Eventually, an agreement would be
made and the specification drawn up.

After a design was made, it sometimes became apparent that we would far
exceed the max timing parameters but we wouldn't change the
spec unless  absolutely necessary.   Commercial chip specs are
probably driven more by marketiers but I can imagine that
the chip designers behind the scenes are trying to negotiate
the longest times possible.

Sometimes timing analysis can involve alot of handwaving.  Usually,
chip timing is speced upon a set output capacitance, like 50pfs.  Sometimes,
it is hard to estimate exactly what the capacitance is going
to be.   Once we had a really tight timing on some RAMs that
were hooked to our chip's bi-directional bus.  We were down to
the nano-second, worst case scenerio, and in order to get that
extra cushion, I was able to get  35pf load put into the spec
instead of 50.  The bus only went one place so it was a proper
judgement to make.

There are companies that don't seem to understand worst case timing.
One large gate array maker provided us with worst case simulations
for this one gate array we needed.  When we got the initial prototypes,
all the protoype timing matched the worst case simulations.  And this
was their nominal lot.   Fortunately, for us, we had access to a 
Takeda to run shmoos and catch this.  There are probably alot of smaller 
companies who design these things, plug them in a board not knowing 
how close they are to a worst-case design.

Anyway, ask any gray haired engineer and you probably
won't find one that would suggest violating worst case timing
parameters.


Mark
mea@ihlpl.att.com

johne@hpvcfs1.HP.COM (John Eaton) (08/16/90)

<<<<
< expensive.  He chuckled at me for being naive, and told me not to worry
< about meeting timing specs: such chips always ran much better than 
< their worst case specs, even though our bus loads may have exceeded 
< the test load.  I was quite dubious about the wisdom of this approach, 
< but he was the boss...  
----------
Simply say, "Put that in writing and SIGN it"


BTW, Does anyone worry about Best Case/Worst Case analysis? Its easy to
anaylze a circuit if you assume that everything is at worst case but that
will probably never occur. What you will see is some combination of timings
that fall between best and worst. (Best in many cases is not even speced).
How do you analyze the semi-infinite number of possible timings that a typical
circuit can experiance?


John Eaton
!hpvcfs1!johne

 

baxter@zola.ics.uci.edu (Ira Baxter) (08/16/90)

In <1080006@hpvcfs1.HP.COM> johne@hpvcfs1.HP.COM (John Eaton) writes:

>BTW, Does anyone worry about Best Case/Worst Case analysis? Its easy to
>anaylze a circuit if you assume that everything is at worst case but that
>will probably never occur. What you will see is some combination of timings
>that fall between best and worst. (Best in many cases is not even speced).

I used to see lots of designs in which delays were manufactured by chaining
a number of inverters (4 or more) from the same package in a row.
The only designer I ever talked to about this stunt mumbled something
about the law of large (4 is large?) numbers and statistics making the
delay through these circuits pretty stable.

I didn't believe him.  But I think power supplies are often designed
under the assumption of average current drain on parts, not worst case.

--
Ira Baxter

davec@neutron.amd.com (Dave Christie) (08/16/90)

In article <1080006@hpvcfs1.HP.COM> johne@hpvcfs1.HP.COM (John Eaton) writes:
>
>BTW, Does anyone worry about Best Case/Worst Case analysis? Its easy to
>anaylze a circuit if you assume that everything is at worst case but that
>will probably never occur. What you will see is some combination of timings
>that fall between best and worst. (Best in many cases is not even speced).
>How do you analyze the semi-infinite number of possible timings that a typical
>circuit can experiance?

Absolutely.  For large synchronous systems, such as mainframes, done 
with SSI/MSI (I know - prehistoric times, but this applies equally well
to gate array implementations) where one has to deal with skew in the 
clock distribution network, one has to worry about short paths as well 
as long paths (although they tend to be much less common).  In a previous
life at a mainframe company we designed taking both limits into account,
and vendors had to supply best and worst case specs.  As long as you 
use only synchronous logic (i.e. no f/fs with asynchronous set/reset)
then you don't care about in-between timings.  You just make sure that
everything at worst case meets set-up times, and best case meets hold
times (to simplify somewhat).  So you only need to analyze two cases.
(We had in-house static timing analysis software that made this relatively
easy, analyzing paths through combinatorial logic that were bounded
by edge-triggered devices.  Had to live with some artificially imposed
restrictions on our designs for the sake of the software, though.)

I have heard that IBM actually designs to statistically-derived timing
rules, a sort of likeliest-worst-case methodology as opposed to absolute
worst case - lets them push the clock a bit more.  But then, with their 
volume and prices, they can afford a less-than-100% yield...
-------------------
Dave Christie             My opinions only.

lewine@dg-rtp.dg.com (Donald Lewine) (08/16/90)

In article <1080006@hpvcfs1.HP.COM>, johne@hpvcfs1.HP.COM (John Eaton) writes:
|> How do you analyze the semi-infinite number of possible timings that
a typical
|> circuit can experiance?

This is not as hard as it sounds.  Many simulators and timing tools
do this today.  What they do is have 3 states Zero, Unknown, and One.
[[In practice, they may have many more states.  The idea is the same.]]

A gate goes from Zero->Unknown in the minimum delay and from 
Unknown->One in the maximum time.  With a little thought you can 
come up with all of the boolean rules for unknown (0 AND U = 0,
1 OR U = 1, 1 AND U = U, and so on).

If you ever try to clock a U into a flip-flop, you have a timing 
hazard.

NOTE:  This makes it important to have reasonable minimum delay
	   for devices.  Many vendors spec the min delay as zero.  That
	   is a real bitch.

--
--------------------------------------------------------------------
Donald A. Lewine				(508) 870-9008
Data General Corporation		(508) 366-0750
4400 Computer Drive. MS D112A
Westboro, MA 01580  U.S.A.

uucp: uunet!dg!lewine	Internet: lewine@cheshirecat.dg-rtp.dg.com

roy@phri.nyu.edu (Roy Smith) (08/16/90)

baxter@zola.ics.uci.edu (Ira Baxter) writes:
> delays were manufactured by chaining a number of inverters (4 or more)
> from the same package in a row.  The only designer I ever talked to about
> this stunt mumbled something about the law of large (4 is large?) numbers
> and statistics making the delay through these circuits pretty stable.

	I assume the idea here is that, while you can't count on the delay
through a single gate being constant, if you sum 4 delays, some will be
fast and some slow, so they average out.

	Eeek!  I won't argue on one side or the other of the "is 4 a large
sample" question, but to assume that 4 gates on the same chip have
statistically independant delays seems to me to be exactly the opposite of
what you should assume.  I would say that using 4 gates from the same chip
is what you should do if you want to make sure the delays match each other
as closely as possible, and track each other under varying environmental
conditions.

	Not only will all 4 gates be subject to the same inter-batch and
inter-manufacturer variations, but they will have aged the same amount,
have been subjected to the same history of abuse and/or proper care, and
will see the same power supply and temperature conditions, not to mention
EMF, radiation, POM, etc.
--
Roy Smith, Public Health Research Institute
455 First Avenue, New York, NY 10016
roy@alanine.phri.nyu.edu -OR- {att,cmcl2,rutgers,hombre}!phri!roy
"Arcane?  Did you say arcane?  It wouldn't be Unix if it wasn't arcane!"

keith@mips.COM (Keith Garrett) (08/16/90)

In article <1080006@hpvcfs1.HP.COM> johne@hpvcfs1.HP.COM (John Eaton) writes:
>BTW, Does anyone worry about Best Case/Worst Case analysis? Its easy to
>anaylze a circuit if you assume that everything is at worst case but that
>will probably never occur. What you will see is some combination of timings
>that fall between best and worst. (Best in many cases is not even speced).
>How do you analyze the semi-infinite number of possible timings that a typical
>circuit can experiance?
>
you can't. you just look at the corners and the middle, and hope that the test
guys have taken care of other anomalies. fortunately, things tend to track
(ie. longer output delays and shorter setup times tend to go together).

	keith
-- 
Keith Garrett        "This is *MY* opinion, OBVIOUSLY"
      Mips Computer Systems, 930 Arques Ave, Sunnyvale, Ca. 94086
      (408) 524-8110     keith@mips.com  or  {ames,decwrl,prls}!mips!keith

pdsmith@bbn.com (Peter D. Smith) (08/17/90)

>In article <1080006@hpvcfs1.HP.COM> johne@hpvcfs1.HP.COM (John Eaton) writes:
>>BTW, Does anyone worry about Best Case/Worst Case analysis? Its easy to
>>anaylze a circuit if you assume that everything is at worst case but that
>>will probably never occur. What you will see is some combination of timings
>>that fall between best and worst. (Best in many cases is not even speced).
>>How do you analyze the semi-infinite number of possible timings that a typical
>>circuit can experiance?
>>

There are commercial programs that will analyze and/or simulate a circuit
under varying conditions.  I used to work on one such simulator, LASAR,
sold by Teradyne; our competition including Verilog, HiLo from Genrad,
and the simulators available from Daisy, Mentor, and Valid among others.

LASAR would, given the circuit diagram, knowledge of the specific parts to
be used (different processes, of course, are different parts) including the
correlation of the speed of internal gates (eg, the sn74ls04d gates will
always track one another to 90%), which gates go into which package, and
the signals to be applied to the circuit (which could be fuzzy), tell you
what happened and why -- which flip flops has timing specs violated, which
buses were driven but multiple drivers, etc.  It was really pretty nifty.

Most of our customers were quite concerned with accuracy, and really liked
the fact that we analyzed all possible cases simultaneously -- the simulator
knew where the leading and trailing edges were and would compare setup and
hold times against best/best, worst/worst, best/worse, and worse/best.  If
there was a conflict, it would trace back through the circuit to see if the
two edges were correlated in some way.

					Peter D. Smith


Disclaimer: I used to work there, I have fond memories of everyone, and
I liked and respected the product.  

jackk@shasta.Stanford.EDU (jackk) (08/17/90)

In article <40889@mips.mips.COM> keith@mips.COM (Keith Garrett) writes:
>In article <1080006@hpvcfs1.HP.COM> johne@hpvcfs1.HP.COM (John Eaton) writes:
>>BTW, Does anyone worry about Best Case/Worst Case analysis? Its easy to
>>anaylze a circuit if you assume that everything is at worst case but that
>>will probably never occur. What you will see is some combination of timings
>>that fall between best and worst. (Best in many cases is not even speced).
>>How do you analyze the semi-infinite number of possible timings that a typical
>>circuit can experiance?
>>
>you can't. you just look at the corners and the middle, and hope that the test
>guys have taken care of other anomalies. >

While it is not possible to individually simulate each possible case,
one can perform simulations to insure that the design is relatively 
robust with respect to timing variations. There are multiple-valued
logic simulators that propagate delay uncertainties through the logic.
(i.e. the output of a gate is shown to be in transition from
the earliest possible change to the latest possible change). If data
is ever used or clocked while it is unstable, this will show up in
the simulation. Of course, one can't run all possible simulations
either, so, as pointed outin another posting, it is also important to
run static timing analysis that propagates this sort of delay
uncertainty.  None of this guarantees that the circuit will work
but the design should be significantly more robust than one slapped
together with nominal timing. It's one thing to build 100 or 1000
working systems, quite another to build a million *and* to service them.

>fortunately, things tend to track
>(ie. longer output delays and shorter setup times tend to go together).

This tends to be true on die and to some extent across a wafer,
but in a system of several thousand chips which may come from
different wafer lots and manufacturers, there may not be any
chip to chip correlation. On chip, four corner simulation plus nominal
means a lot more than at the system level. Additionally, some circuit
simulators (ASTAP, HSPICE) provide the capability of running a 
simulation multiple times , varying the components through a specified
statistical distribution. This provides an indication of how the
output behavior of a circuit may vary with manufacturing variation.

davidb@brac.inmos.co.uk (David Boreham) (08/20/90)

In article <1990Aug16.144744.21058@phri.nyu.edu> roy@phri.nyu.edu (Roy Smith) writes:
>	Not only will all 4 gates be subject to the same inter-batch and
>inter-manufacturer variations, but they will have aged the same amount,
>have been subjected to the same history of abuse and/or proper care, and
>will see the same power supply and temperature conditions, not to mention
>EMF, radiation, POM, etc.

Exactly, in fact you can use this to your advantage.
Suppose that you need to keep some strobe signals
within some minimal skew of each other. If you
put them all through the same buffer or PAL, you
will achieve much better skew than putting them
through different gates in different packages.

This is because the datasheet min/max Tpd figures
are for the total spread over operating voltage
and temperature and over all chips ever produced.
If you take two gates on the same die and at the 
same voltage and temperature then the Tpd is going
to be very close.

Unfortunately very few datasheets give answers
about how well matched different gates in the same
device are, usually only line drivers and clock
buffer chips.

If you want to get really smart then you can do 
things like load each output with exactly the
same capacitance, even if the design would not
normally give the same loading. Also you can
sometimes blow the same number of fuses in PAL
product terms, since the number and position of
blown fuses makes a difference to the delay for
each output.

David Boreham, INMOS Limited | mail(uk): davidb@inmos.co.uk or ukc!inmos!davidb
Bristol,  England            |     (us): uunet!inmos.com!davidb
+44 454 616616 ex 547        | Internet: davidb@inmos.com

stevew@wyse.wyse.com (Steve Wilson x2580 dept303) (08/24/90)

In article <27@shasta.stanford.edu> jackk@shasta.UUCP (Jack Kouloheris) writes:
>it is also important to
>run static timing analysis that propagates this sort of delay
>uncertainty.  None of this guarantees that the circuit will work
>but the design should be significantly more robust than one slapped
>together with nominal timing. 
> rest of posting deleted....

I'd have to disagree with this.  A static timing analyzer that WORKS
will tell you the best case problems and the worst case  problems.
You fix em, then you've got a tight design.  Of the automated tools
I've used I've found that the static analysis tool is perhaps the
best way to solve the problem.  For this tool to work you have to
know a great deal about the circuit in question including layout
information, best and worst case numbers through each of the logic
paths in the design, and best and worst case propagation on the PCB
as well.  

Now my experience is with these tools is primarily with MSI implemenations
of processors accross multiple boards.  I'd expect the same to
be true in silicon based designs.  Any comments?

Steve Wilson