The present application relates to event detection in digital technology, and more particularly to timing event detection.
In electronics, a flip-flop or latch is a circuit that has two stable states, typically a low state and a high state, and can be used to store state information. A flip-flop may be a bistable multivibrator. The circuit can be made to change state by signals applied to one or more control inputs and will have one or two outputs. It is the basic storage element in sequential logic. Flip-flops and latches are fundamental building blocks of digital electronics systems used in computers, communications, and many other types of systems.
Flip-flops and latches are used as data storage elements. A flip-flop stores a single bit (binary digit) of data; one of its two states represents a “one” and the other represents a “zero”. Such data storage can be used for storage of state, and such a circuit is described as sequential logic. When used in a finite-state machine, the output and next state depend not only on its current input, but also on its current state (and hence, previous inputs). It can also be used for detection of pulses, and for synchronizing variably-timed input signals to a reference timing signal.
Flip-flops can be either simple (transparent or opaque) or clocked (synchronous or edge-triggered). Although historically the term flip-flop has generically referred to both simple and clocked circuits, in modern usage it is common to reserve the term flip-flop exclusively for discussing clocked circuits; the simple ones are commonly called latches. The latch may be level-sensitive, whereas a flip-flop may be edge-sensitive. When a latch is enabled it becomes transparent, while a flip flop's output only changes on a single type (positive going or negative going) of clock edge. When the latch is disabled, it becomes non-transparent.
In conventional digital design flow, combinational logic delay constraints are static in the sense that the resulting circuit from synthesis should meet the worst case operation condition delays in order to guarantee the circuit operation. If the run-time delay is longer than analyzed during the design time, correct circuit operation cannot be secured. In a conventional design, meeting timing requirements introduces overdesign leading to both area and power-dynamic and static-consumption increase in the system.
When energy consumption is intended to be reduced, consequently the voltage of the circuit must be low in order to achieve this. This proposes new and additional challenges for the operation and configuration of the latch. The lower the voltage becomes, the higher the susceptibility of the circuit to variations becomes, and in smaller CMOS process nodes the variation worsens. Both lead to increasing overdesign. Therefore, methods to find out the actual dynamic operating condition become increasingly important. That dynamic operating condition can be used in Dynamic Voltage and Frequency scaling, for example. To minimize margin and overdesign, the dynamic operation condition should be that of the actual logic and not an external canary circuit or logic circuit copy. In
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
It is an objective to provide timing event detection. The object is achieved by the features of the independent claims. Further implementation forms are provided in the dependent claims, the description and the figures.
According to a first aspect, a device comprises: a clocked conditional buffer configured to set an output of the clocked conditional buffer to a first state during a non-detection period; the clocked conditional buffer further configured to toggle the output from the first state to the second state during a detection period, wherein the toggling being enabled by either one of the two states; and the clocked conditional buffer further configured to guarantee that the output is toggling only to one direction during the detection period. This may prevent false event detections. Furthermore, with respect to a timing point of view, one is able to operate without pulses, where pulse width may be difficult to manage in low voltages.
In an embodiment, the clocked conditional buffer is further configured to lack an ability to toggle back to other direction than said one direction.
In an embodiment, the clocked conditional buffer is configured with the conditional toggling taking place with the first state, and the clocked conditional buffer is configured with the conditional toggling taking place with the second state.
In an embodiment, further including a second clocked conditional buffer.
In an embodiment, the two buffers are connected in parallel.
In an embodiment, the two buffers are connected in series.
In an embodiment, the first buffer comprises: a first clocked conditional inverting buffer circuit; and the second buffer comprises a second clocked conditional inverting buffer circuit; wherein the first and the second clocked conditional inverting buffers circuits are configured to output the first state when a latch of the buffers is non-transparent; wherein the first clocked conditional inverting buffer is configured to toggle the output from the first state to the second state; and wherein the second clocked conditional inverting buffer is configured to toggle the output from the second state to the first state.
In an embodiment, the first clocked conditional inverting buffer is configured to pull-up or pull-down depending on how the states are configured.
In an embodiment, the second clocked conditional inverting buffer is configured to pull-up or pull-down depending how the states are configured.
In an embodiment, a detection phase of the latch comprises that the latch is configured transparent.
In an embodiment, a non-detection phase of the latch comprises that the latch is configured non-transparent.
In an embodiment, the first and the second clocked conditional inverting buffers receive an inversed clock of a clock of the latch, and the first clocked conditional inverting buffer receives a data signal as input and outputs a first comparative signal, wherein the second clocked conditional inverting buffer receives the first comparative signal as input and outputs a second comparative signal.
In an embodiment, the first comparative signal is delayed and an inverted version of the data signal and the second comparative signal is delayed and an inverted version of the first comparative signal.
In an embodiment, the clocked conditional buffer is configured outside a signal path of the latch.
In an embodiment, wherein a generate block of an event detection device comprises at least the clocked conditional buffer, wherein the device comprises the event detection device.
In an embodiment, further including a pull-down keeper configured to prevent leakage due to floating logic levels of the first comparative signal XD.
In an embodiment, a transistor is configured to be common to both clocked conditional inverting buffers so that pull-up paths of the inverting buffers are controlled by the common transistor.
In an embodiment, further comprising a detect block, wherein the detect block receives the outputs of the clocked conditional buffer and the data signal and is further configured to detect an event indicative of an event for the latch.
According to a second aspect, a detection block of an event detection device of a latch comprises: a first pull-down path; and a second pull-down path, wherein the paths are coupled in parallel and both are coupled to a common pull-up path. Timing mismatches between two event detection cases may be thereby balanced.
Many of the attendant features will be more readily appreciated as they become better understood by reference to the following detailed description considered in connection with the accompanying drawings.
The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
Like references (such as numerals and abbreviations in capitals) are used to designate like parts in the accompanying drawings.
The detailed description provided below in connection with the appended drawings is intended as a description of the embodiments and is not intended to represent the only forms in which the embodiment may be constructed or utilized. However, the same or equivalent functions and structures may be accomplished by different embodiments.
Typically, the latch 20 has two different states, a first state and a second state. The states of the latch may be described as being low LOW or high HIGH, which illustrate an example of two different states of a state machine, for example as illustrated in
There is a general trend to increase the efficiency of microprocessors. The main efficiency increase comes from ultra-low or low voltage subthreshold operation of the circuit and latch 20 and other digital technology processor components. With the low to ultra-low voltage operation, it is feasible to operate approximately at the minimum energy point, which is where energy per digital operation is reduced. Additionally, the elimination of timing margins may bring gains at nominal operating voltages.
A purpose of an embodiment may be to detect data changing, such as an event, during a detection time, for example a clock phase that a data latch 20 is transparent or a separately generated detection time. The detection device comprises a clocked conditional buffer that is configured to generate output for event detection in either case, the input having changed from low to high or high to low during the detection period. According to an embodiment, one requires two clocked conditional buffers to be able to detect data changes for both directions. However, due to various connection possibilities of two clocked conditional buffers, an embodiment is more concisely described by introducing the operation of one clocked conditional buffer first.
A clocked conditional buffer may be referred to as a circuit arrangement with one input and one output, wherein during the non-detection phase, for example the associated monitored latch is non-transparent, the output of the buffer is set to either low or high and the input of the buffer has no effect on the output. During the detection phase, the buffer can conditionally toggle its output to the other polarity that it was set to. The toggling operation may be dependent on the input polarity only and the toggling may thus not dependent on input change. The operation of the clocked conditional buffer is configured such that it is not allowed for the buffer to toggle back to the set value once it has been toggled once from the set value, and this functionality gives the buffer the feature ‘conditional’.
Due to the operation of the clocked conditional buffer, an event during the detection period has occurred, when the buffer output has been toggled and the input of the buffer is at a logic level that does not toggle the buffer. This type of event condition can be easily evaluated by a following digital block.
There are various embodiments to implement a circuit block with the functionality described above. The buffer can be set to either low LOW or high HIGH state during the non-detection phase and can be toggled to one direction by either low LOW or high HIGH input level during the detection phase. In a CMOS case, NMOS-transistors are used to pull a node to low LOW and PMOS transistors are used to pull a node high HIGH. However, especially at low voltages, NMOS-transistor can also be used to pull-up and PMOS-transistor can be used for pulling down a node. When using NMOS for pull-down and PMOS for pull-up, two different exemplary buffers can be constructed, where in the first buffer, the set phase sets the output LOW, and in the second exemplary buffer the output is set high HIGH during the non-detection phase. Transistor level arrangements are shown in
In
In
Since it is also possible to have (at least partial) a pull-up functionality with an NMOS transistor and (at least partial) a pull-down functionality with PMOS transistor, non-inverting buffers may also be embodied implementations. Two embodied configurations are shown in
To be able to detect data input change to both directions one requires two clocked conditional buffers where one monitors the input changing from high HIGH to low LOW and the other monitors the low LOW to HIGH transition. There are various possibilities to connect the two buffers to receive the input value during the detection phase so that changes in the data during that phase can be monitored. The buffers can be connected in parallel or in series where the only requirement for the selection of the types of the two buffers is that one is monitoring the LOW-to-HIGH transition and the other is monitoring the HIGH-to-LOW transition. In
The arrangement for the following logic to extract the event occurrence from the inputs and outputs of the buffers varies from buffer type selection to selection. One of the most efficient manners to connect the two buffers is to connect two similar inverting buffers in series. This type of arrangement is described in more detail next.
According to an embodiment, a data signal polarity change may be detected during the latch transparency period. Consequently, a possible event may be detected.
Consequently, because the latch 20 is transparent during the clock CLK being high HIGH, the output of the circuit 10 is always low LOW during the non-transparent phase of the latch 20. This may eliminate the possibility of the event signal. Furthermore, because each of the inventing buffers may only operate in one direction, from a timing point of view the circuit and latch 20 may be operated completely without pulses, where a pulse width may be extremely difficult to manage, especially in the low voltages.
According to an embodiment, the event detection device comprises a detect block (for example reference 101 in
Referring to
The generate block 100 receives a clock signal CLK and a data input signal D as inputs. The generate block 100 is configured for generating a delayed version XD and/or an inverted version XXD of the data input D for the detect block 101. The generate block 100 also passes on the data input D to the detect block 101. The detect block 101 is configured for performing a simple logic operation between the input D and it's delayed and/or inverted versions XD, XXD. According to an embodiment, to have a simple detect block 100, the inverted/delayed versions XD, XXD of the data input D may be essentially set to predetermined logic values during the non-detection phase within the generate block 100. The detect block 101 may trigger an event as an outcome of the signals D, XD and/or XXD. For example, a certain event may be triggered by a certain combination of the states of the signals D, XD, and XXD. The event may be further used and processed within a computing device for detecting the event.
The generate and detect blocs 100,101 are described separately, whereby both blocks 100,101 can have different embodiments. The circuit diagrams in
Referring to
According to an embodiment, the generation of XD and XXD may be blocked during the non-transparent phase of the main latch operation. Therefore, the simple inverters of
The inverting buffer, for example, comprises transistors M1, M2 and M3. The inverting buffer receives inputs of an inversed clock XCLK and a data signal IN. Furthermore, the inverting buffer is connected to the operation voltage VDD and ground GND. In the embodiment of
The generate block 100, according to an embodiment, is illustrated in
The operation of the embodiment of
In the first option, the input D is high HIGH at the beginning of the detection phase and stays high HIGH for the whole detection period. At the beginning of the detection period, the signal XD is low LOW and the signal XD stays low LOW for the whole detection period. Furthermore, at the beginning of the detection period, since the signal XD is low LOW, the signal XXD is pulled high HIGH, and the signal XXD stays high HIGH for the whole detection period.
In the second option, the input D is low LOW at the beginning of the detection phase and stays low LOW for the whole detection period. At the beginning of the detection period, the signal XD is low LOW and is pulled high HIGH, and the signal XD stays high HIGH for the whole detection period. At the beginning of the detection period, the signal XXD is initially low LOW, and since the signal XD is pulled high HIGH, the signal XXD stays low LOW for the whole detection period.
In the third option, the input D is low LOW at the beginning of the detection phase and turns high HIGH during the detection period. At the beginning of the detection period, the signal XD is low LOW and the signal XD is pulled high HIGH, and the signal XD stays high HIGH for the whole detection period, since the first clocked conditional inverting buffer lacks the pull-down operation. At the beginning of the detection period, the signal XXD is initially low LOW, and since the signal XD is pulled high HIGH, the signal XXD stays low LOW for the whole detection period.
In the fourth option, the input D is high HIGH at the beginning of the detection phase and turns low LOW during the detection period. At the beginning of the detection period, the signal XD is low LOW and the signal XD stays low LOW until the signal D goes low LOW, and then the signal XD is pulled high HIGH and stays high HIGH for the rest of the detection period. At the beginning of the detection period, since the signal XD is low LOW, the signal XXD is pulled high HIGH, and the signal XXD stays high HIGH for the whole detection period, since the second clocked conditional inverting buffer lacks the pull-down operation.
From these four possible scenarios, according to the embodiment, an event EVENT is detected in the third and fourth options and not detected in the first and second options. The event may be extracted by monitoring options where signals D and XD are simultaneously high HIGH or where signals XD and XXD are simultaneously high HIGH. The monitoring is performed by the detect block 101 for example as described in the embodiments below.
According to an embodiment, there are certain design issues that are considered for the generate block 101. For example, the nodes XD and XXD may be conditionally floating, leaving them possibly susceptible of either transistor leakage or power supply disturbance to destroy the floating logic levels. Moreover, the timing of the clocked conditional inverting buffers may be arranged in such a manner that if the first clocked conditional inverting buffer is to be pulled high HIGH during the beginning of the detection period (signal D being low LOW), the second clocked conditional inverting buffer does not have time to go high HIGH (for example for the third option above).
The conditional floating of the node XD can be removed by adding a weak pull-down keeper M7 as illustrated in
The detect block 101 may be implemented by performing a logic function of the signals XD(D+XXD), or according to another embodiment having the inverted version as illustrated
This is not the case in the third option above when the signal D goes high HIGH during the detection period, since the corresponding pull-down transistor M5 in
Whereas the detection arrangement of
According to an embodiment, more than one pull-down networks may be connected to the same pull-up network. Moreover, there is no need to have a dedicated reset transistor RESET in the pull-down path (in series with other pull-down transistors) taking care of inhibiting short-circuit currents during the reset operation RESET. This additional transistor may create a transistor stack of three in the pull-down path. The transistor may be an NMOS transistor.
The transistor may encompass both N-type and P-type metal oxide field effect (MOS) transistors, depending on circuit. Further encompassed are MOS transistors where different parameters such as VT, material type, gate size and configuration, insulator thickness, etc. vary. According to another embodiment, the transistor can also include other FET-type and bipolar-junction transistors and other types of transistors.
The functionality described herein can be performed, at least in part, by one or more hardware logic components. Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more computer program product components such as software components. According to an embodiment, the device comprises a processor configured by the program code when executed to execute the embodiments of the operations and functionality described.
Any range or device value given herein may be extended or altered without losing the effect sought. Also any embodiment may be combined with another embodiment unless explicitly disallowed.
Although the subject matter has been described in language specific to structural features and/or acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as examples of implementing the claims and other equivalent features and acts are intended to be within the scope of the claims.
It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. The embodiments are not limited to those that solve any or all of the stated problems or those that have any or all of the stated benefits and advantages. It will further be understood that reference to ‘an’ item may refer to one or more of those items.
The steps of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the spirit and scope of the subject matter described herein. Aspects of any of the embodiments described above may be combined with aspects of any of the other embodiments described to form further embodiments without losing the effect sought.
The term ‘comprising’ is used herein to mean including the method, blocks or elements identified, but that such blocks or elements do not comprise an exclusive list and a method or apparatus may contain additional blocks or elements.
It will be understood that the above description is given by way of example only and that various modifications may be made by those skilled in the art. The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments. Although various embodiments have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this specification.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/FI2017/050475 | 6/22/2017 | WO | 00 |