Mailing List Archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlug] What is Code?




On Mon, Jul 13, 2015 at 10:42 PM, Stephen J. Turnbull <stephen@example.com> wrote:
Attila Kinali writes:

 > Hehe.. I'm currently working on metastability of electronical (logic)
 > circuits. After a long discussion on what the state of art is,
 > we concluded that most people just ignore it, unconsciously fearing it.
 > Over time, it became a craft to handle it. A craft very few specialists
 > in high towers know about.

That seems weird to me.  After all, isn't the original flipflop a
device that works precisely because of metastability?  In fact, isn't
metastability the property of systems that makes computer logic
possible?  Maybe I'm thinking of a different word though.

The way it's usually used in digital design is to refer to the propensity of a physical flip-flop (which is, after all, an analog device with two convenient stable states) to go into an unstable state -- a logical one-half, if you will -- when clocked right on the edge of when the data is changing. It can stay in that weird state for much longer than its usual propagation delay, hence causing havoc in downstream circuitry. A curious engineer at one place I worked (a long time ago) set up an experiment and proved that the extremely long metastable state actually does exist -- or at least that it did for the particular TTL flop he happened to be testing.

I believe the general consensus at the time was that you could either reduce the probability of hitting this state with additional layers of clocked devices, at the expense of latency, or you could mitigate the effect it has on the downstream logic by careful design. But there's no way to prevent a flop from going metastable -- at least none that has proven to be 100% effective. You just end up pushing the problem around to other part of the circuit.

Of course, this really only applies to clocked logic whose data inputs are not already synchronized with the input device's clock -- typically the first clocked device receiving an asynchronous input stream.


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links