Electronic digital logic circuitry – Multifunctional or programmable
Reexamination Certificate
1999-12-03
2003-02-04
Tokar, Michael (Department: 2819)
Electronic digital logic circuitry
Multifunctional or programmable
C326S040000, C326S046000, C326S093000
Reexamination Certificate
active
06515504
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates generally to data processing units and more particularly to a circuit and methods for implementing sequential logic functions from autonomous, i.e., clock-less, self-validating circuits.
BACKGROUND OF THE INVENTION
The traditional way of implementing logic functions has been, for decades now, to have pure combinational boolean logic inserted-between banks of binary storage devices, i.e., latches or flip-flops controlled from a single free-running signal referred to as the clock that sets the pace at which the whole logic function is operating. In this standard approach all the combinational logic required for implementing a given logic function can be decomposed in cones of logic. Each cone having one-output and, in the general case, several inputs although anything between one input and many inputs is obviously possible. Then, each output of a cone feeds an input of a latch, updated at next occurrence of a clock transition thus, remembering the current output result of the cone until it is updated again at a subsequent transition of the clock. In turn, latch outputs are possible inputs to all other cones of logic (recursive feeding is possible and is a common practice especially, when a particular state must be maintained for several cycles of the clock) so as every cone input is stable for a complete clock cycle since every latch is holding its binary information for one clock cycle. As a consequence, state of the logic may only change with the clock and any logic function built according to these principles is orderly evolving since it is under the control of a common timing device.
This way of implementing logic functions has become a standard when their complexity has dramatically increased fueled by the progresses in the integration, on a single piece of silicon, of thousands and soon, of millions of transistors. Early logic circuits tended to be more sophisticated than the simple scheme herein above described. They were often characterized by the presence of several clocks, not necessarily running in synchronism, and even by logic supplying clocks to other pieces of logic. These approaches were very prone to errors and unpredictable results were observed depending on the relative speed of the components. Moreover, logic boards built with such logic devices were often not even completely testable after fabrication. Some defects could only be found within the machine they were put in it and sometimes only at customer premises that was the most expensive way of discovering bugs. Therefore, logic designs were structured, so as they could more easily be synthesized, simulated and tested leading to the simple approach to designing logic previously described.
However, this approach hinges on a crucial requirement which is that the clock speed must be set for the worst case paths, sometimes the only worst case path, found within the logic. Moreover, worst case paths must be considered for the worst case environmental conditions of temperature and power-supply in which a particular logic will have to operate. Finally, the characteristics of the worst case fabrication lot must also be considered to decide at which speed a particular device will possibly run. Because a particular logic is designed in view of accomplishing a given task, at a given level of performance, the speed at which clock must run is in fact the starting requirement. The designer is then faced to the problem of fitting the design into this requirement for the worst case conditions, herein above mentioned, even though they are seldom, not to say never, all simultaneously encountered. In fact, a very disturbing problem of the binary boolean type of logic, universally used as of now to implement combinational logic, is that there is no associated notion of completeness. It is not possible, just observing the output of a cone, to determine if the job has been carried out or not. In fact, often, output of a cone is glitching until the longest path of the cone has settled. As a consequence the result must be assumed based on the time that has elapsed since the last transition of the clock has occurred. In practice, this means that every path in every cone of a particular design must be analyzed so as to make sure that all cone outputs are stable before the next clock transition occurs. Indeed, checking programs have been designed which scrub all the possible paths, pinpointing the ones for which delays are exceeding the period of the clock even though some may not be functional! Then, it is up to the designer to decide if those paths are indeed functional and must be corrected through another round of physical design. This is a time consuming, expensive in terms of computing resources and cumbersome job that is not always successful if the clock period is too tight for the current technology available and the logic function too complex. A dead-end situation that may become obvious only long after the physical design process has started and that may require drastic actions like restarting from scratch with a brand new approach.
So, in an attempt to facilitate the physical design and make possible the actual implementation of a logic, often, the designer is pipe-lining the design. Which means that smaller chunks of logic are inserted between banks of latches so as the paths are becoming shorter. The price to pay for that is twofold. Firstly, the result of a pipe-lined logic function becomes available only after several cycles of the clock thus, increasing the latency. Secondly, latches must be inserted where logic function has been cut even though the intermediate results are generally of no interest and are useless for the rest of the logic. This brings another limitation of the current way of designing logic dealing with the fact that a clock timing has to be precisely distributed over a whole logic function, i.e., to every latch. It is particularly important that the clock distribution structure, often referred to as the clock tree, exhibits no skew between its various branches over the whole area covered by a logic function implemented on a semiconductor chip (most of the time silicon) or at least has a skew which is lower than the best case of the shortest path present on the chip so as it is not possible to experience any short-cut that would result of a latch feeding another one too soon because their respective clocks are enough skewed to allow propagation to occur on the same master clock transition. This is another headache for the logic designers although this part might be, at some extent, handled by the provider of the Gate Array (GA) or Field Programmable Gate Array (FPGA) generally used for the Application Specific Integrated Circuits (ASIC). In which cases considerable software and hardware resources are spent either during the physical design phase of any part or initially while the particular device was devised by the manufacturer to provide numerous repowering and the possibility of a load balancing between branches so as to keep skew at a minimum. Moreover, the clock tree in itself occupies a significant portion of a chip area and dissipates much power too because it is constantly toggled at the highest frequency present on the chip.
Still another problem of clocked designs is that everything is changing on the advent of a clock transition common to every latch that triggers peaks of current through the power supply terminals of the chips and modules thus, disturbing, among other things, the ground and which may jeopardize the noise immunity of the gates and latches if not contained through a careful design of the packaging at each level, i.e., chip, module and board so as to keep the parasitic inductances as low as possible.
A mention should also be made here of the electromagnetic emissions produced by the clocked designs that may create interferences to other pieces of equipment and that must be drastically controlled so as to conform with the EMC (ElectroMagnetic Compatibility) directives in effect.
In spite of all these drawbacks, beca
International Business Machines - Corporation
Tan Vibol
Tokar Michael
LandOfFree
Circuits and method for implementing autonomous sequential... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Circuits and method for implementing autonomous sequential..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Circuits and method for implementing autonomous sequential... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3175784