US20140320164A1 - Fast dynamic register with transparent latch - Google Patents
Fast dynamic register with transparent latch Download PDFInfo
- Publication number
- US20140320164A1 US20140320164A1 US13/951,306 US201313951306A US2014320164A1 US 20140320164 A1 US20140320164 A1 US 20140320164A1 US 201313951306 A US201313951306 A US 201313951306A US 2014320164 A1 US2014320164 A1 US 2014320164A1
- Authority
- US
- United States
- Prior art keywords
- node
- clock
- coupled
- precharge
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/353—Generators characterised by the type of circuit or by the means used for producing pulses by the use, as active elements, of field-effect transistors with internal or external positive feedback
- H03K3/356—Bistable circuits
- H03K3/356104—Bistable circuits using complementary field-effect transistors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/0175—Coupling arrangements; Interface arrangements
- H03K19/017581—Coupling arrangements; Interface arrangements programmable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3872—Precharge of output to prevent leakage
Definitions
- the present invention relates to latch and register circuits, and more particularly to a fast dynamic register with a transparent latch for improving efficiency.
- Dynamic logic circuits often exhibit relatively long setup and/or hold times to ensure proper operation. It is desired to improve the efficiency of a fast dynamic register circuit with minimal setup times without the overhead of pulsed clock circuits.
- a fast dynamic register includes a data block, a precharge circuit, a transparent latch, and an output logic gate.
- the data block is coupled between a first precharge node and a discharge node, receives at least one data input, and evaluates by pulling the first precharge node to the discharge node when a clock node transitions from a first clock state to a second clock state.
- the precharge circuit precharges first and second precharge nodes while the clock node is in the first clock state, releases the first precharge node and pulls the discharge node low when the clock node transitions to the second clock state, and discharges the second precharge node low when the first precharge node remains high after the clock node transitions to the second clock state.
- the transparent latch has a latch input coupled to the second precharge node and an output coupled a store node.
- the transparent latch is transparent to pass a state of the second precharge node to the store node while the clock node is in the second clock state, and latches the store node when the clock node is in the first clock state.
- the output logic gate drives an output node to a state based on states of the second precharge node and the store node.
- the transparent latch may include first and second transistors and a keeper circuit.
- the transistors each having a pair of current terminals coupled between the latch input and the latch output, where the first transistor has a control input coupled to the clock node, and where the second transistor has a control input coupled to the inverting clock node.
- the keeper circuit is coupled to the clock node, an inverting clock node and the latch output, and operates to maintain a state of the output node when the clock node is in the first clock state.
- the fast dynamic register circuit may be implemented with a scan mode.
- the register circuit includes a scan enable block, a select gate, and a second transparent latch.
- the scan enable block is coupled between the first precharge node and the discharge node, receives a scan enable input, and pulls the first precharge node to the discharge node when the clock node transitions from the first clock state to the second clock state when the scan enable input is asserted.
- the select gate is interposed between the second precharge node and the transparent latch, where the select gate has a first input coupled to the second precharge node, has a second input coupled to a scan data node, and has an output coupled to the latch input of the transparent latch.
- the second transparent latch has an input receiving a scan data input and an output coupled to the scan data node.
- the second transparent latch is transparent to pass the scan data input to the scan data node while the clock node is in the first clock state and when the scan enable input is asserted, forces the scan data node high when the scan enable input is de-asserted and when the clock node is in the first clock state, and holds a last state of the scan data node when the clock node is in the second clock state.
- An integrated circuit includes combinatorial logic which provides at least one data input, and clock node, and a fast dynamic register as described above.
- a method of registering data includes precharging a first precharge node high while a clock signal is at a first clock state, evaluating at least one data input and maintaining the first precharge node high after the clock signal transitions to a second clock state when the at least one data input does not evaluate, and discharging the first precharge node low when the at least one data input evaluates when the clock signal transitions to the second clock state, precharging a second precharge node high while the clock signal is in the first clock state, discharging the second precharge node low if the first precharge node remains high after the clock signal transitions to the second logic state, and otherwise maintaining the second precharge node high, latching a state of a store node when the clock signal is at the first clock state, and passing a state of the second precharge node to the store node when the clock signal is at the second clock state, and asserting an output node to a state based on the second precharge node and the store node.
- the method may include inverting the clock signal and providing an inverted clock signal, turning on a first pass transistor coupled between the second precharge node and the store node controlled by the clock signal, turning on a second pass transistor coupled between the second precharge node and the store node controlled by the inverted clock signal, and keeping the state of store node when the clock signal is at the first clock state.
- the method may further include receiving a scan enable input, when the scan enable input is asserted, bypassing data evaluation by forcing the first precharge node to discharge low when the clock signal transitions to the second clock state, and when the scan enable input is asserted, injecting a scan data input instead of a state of the second precharge node, and passing a state of the scan data input to the store node when the clock signal is at the second clock state.
- FIG. 1 is a schematic diagram of a fast dynamic register implemented according to one embodiment
- FIGS. 2-5 illustrate different configurations of the data block of FIG. 1 including a one or more N-channel transistors
- FIG. 6 is a schematic diagram of a latch according to one embodiment which may be used as the latch of FIG. 1 ;
- FIG. 7 is a schematic diagram of a scannable fast dynamic register implemented according to one embodiment
- FIG. 8 is a schematic diagram of an alternative embodiment of either or both of the transparent latches of FIG. 7 using a multiplexer.
- FIG. 9 is a block and schematic diagram of an integrated circuit incorporating scannable fast dynamic registers each implemented according to the scannable fast dynamic register of FIG. 7 .
- FIG. 1 is a schematic diagram of a fast dynamic register 100 implemented according to one embodiment.
- One or more data inputs collectively denoted DN, are provided to respective inputs of an input data block 102 .
- the notation “DN” denotes any suitable integer number “N” of one or more data inputs, in which N is an integer greater than 0.
- a single input data value (e.g., D, or D1) is also contemplated.
- the input data block 102 is coupled between a precharge (PC1) node 103 and an discharge (DCH) node 101 .
- the input data block 102 is configured according to a desired logic function to evaluate the collective state of the one or more data inputs DN when CK goes high.
- the data block 102 “evaluates” when CK goes high, then it creates a current path between nodes 103 and 101 having a sufficiently low resistance to effectively pull the voltage of PC1 down towards VSS via the DCH node. If the data block 102 does not evaluate, then the current path is not provided or otherwise presents a high impedance path between the nodes 103 and 101 so that node PC1 103 remains high. At least one reason that the fast dynamic register 100 is fast is because it has close-to-zero setup requirement for non-scan data inputs.
- An N-channel transistor N1 has its drain coupled to the DCH node 101 , its source coupled to a power supply node VSS, and its gate coupled to a clock node 104 receiving an input clock signal CK.
- the clock node 104 is coupled to the gates of N-channel transistors N1, N4, and N6, to the gates of P-channel devices P1 and P2, to the inputs of inverters 105 and 123 , and to the non-inverting clock input “C” of a latch 117 .
- P1 and P2 have their sources coupled to a power supply node VDD.
- the drain of P1 is coupled to the PC1 node 103 and the drain of P2 is coupled to a second precharge (PC2) node 109 .
- the output of the inverter 105 is coupled to a node 107 , which is coupled to the source of an N-channel transistor N2.
- N2 has is gate coupled to the PC1 node 103 and its drain coupled to the PC2 node 109
- the PC2 node 109 is coupled to one input of a two-input NAND gate 111 , having its output providing the inverted data output QB. It is noted that in an alternative embodiment, the NAND gate 111 may be replaced by an AND gate (for a non-inverted output) depending upon the particular implementation.
- the PC2 node 109 is coupled to the input of another inverter 113 , having its output coupled to the input of an inverter 115 , having its output coupled to the data “D” input of the latch 117 .
- the output of the inverter 123 provides an inverted clock signal on a node CB 124 which is coupled to the inverted clock input “CB” of the latch 117 , which has its output coupled to a store node 120 providing a signal ST.
- the store node 120 is coupled to the other input of the NAND gate 111 .
- the PC1 node 103 is coupled to a keeper circuit 116 , which includes P-channel devices P3 and P4, N-channel transistors N3 and N4, and an inverter 119 .
- the source of P3 is coupled to VDD, its gate is coupled to VSS and its drain is coupled to the source of P4.
- the drain of P4 is coupled to the PC1 node 103 , which is further coupled to the input of the inverter 119 and to the drain of N3.
- the source of N3 is coupled to the drain of N4, having its source coupled to VSS.
- the output of the inverter 119 is coupled to the gates of N3 and P4.
- the PC2 node 109 is further coupled to a keeper circuit 118 , which includes P-channel devices P5 and P6, N-channel transistors N5 and N6, and an inverter 121 .
- the source of P5 is coupled to VDD, its gate is coupled to the PC1 node 103 , and its drain is coupled to the source of P6.
- the drain of P6 is coupled to the PC2 node 109 , which is further coupled to the input of the inverter 121 and to the drain of N5.
- the source of N5 is coupled to the drain of N6, having its source coupled to VSS and its gate coupled to the CK node 104 .
- the output of the inverter 121 is coupled to the gates of N5 and P6.
- N-channel and P-channel devices described herein are shown as MOS type devices or field-effect transistors (FETs) or MOSFETs or the like, such as NMOS, PMOS, NFET, PFET, etc., type transistor devices.
- each transistor device includes first and second current terminals (e.g., drain, source, emitter, collector, etc.) and a control node (e.g., gate, base, etc.).
- Any logic gates described herein, including inverters and logic gates (AND, NAND, OR, NOR, etc.), and any latches described herein, may also be implemented with N-channel and P-channel devices or transistors or the like.
- the latch 117 is configured as a transparent latch including pass gates or the like in which the D input is passed to the Q output when the C input is high and CB input is low, and in which the Q output is isolated from the D input when the C input is low and the CB input is high.
- the power supply node VSS has a suitable reference voltage (e.g., ground) relative to another power supply node VDD.
- the power supply voltage between VDD and VSS is any suitable voltage level depending upon the particular architecture or technology employed (e.g., 1V, 1.5V, 3V, 5V, etc.).
- the clock signal CK generated on the CK node 104 may be generated locally (e.g., local oscillator or the like, not shown) or provided from an external source.
- the CK signal is asserted in a positive-logic sense in which it provides a set-up time when low and a hold time when high for data evaluation.
- the operative clock edge is the rising clock edge.
- the present disclosure contemplates a negative-logic clock signal as well.
- the clock signal toggles between first and second states for purposes of timing and synchronization or the like.
- the precharge nodes PC1 103 and PC2 109 are both precharged high to VDD via P1 and P2, respectively.
- N4 and N6 of the keeper circuits 116 and 118 are turned off.
- P3 and P4 of the keeper circuit 116 are on keeping the PC 1 node 103 high.
- N1 is turned off and the inverter 105 pulls node 107 high so that N2 is off.
- the data inputs DN generally change or otherwise transition while CK is low. Assuming that the data signals DN do not cause the data block 102 to evaluate when CK goes high, P1 and P2 are turned off and N4, N6 and N1 are turned on.
- the PC1 node 103 remains pulled high by the keeper circuit 116 (via P3 and P4), and the inverter 105 pulls node 107 low, so that N2 is turned on to discharge the PC2 node 109 low.
- the NAND gate 111 pulls QB high (or otherwise keeps QB high) in response to PC2 going low.
- the inverters 113 and 115 pull the D input of the latch 117 low after a small delay.
- the latch 117 Since CK is high and CB is pulled low by the inverter 123 , the latch 117 is in its transparent state so that the low state of its D input is passed to pull the store node 120 low (or otherwise keep ST low). N5 and N6 of the keeper circuit 118 are on and keep the PC2 node 109 low until CK goes low.
- the latch 117 switches to its isolation state to keep the store node 120 low. In this manner, the NAND gate 111 keeps QB pulled high regardless of any change of state of the PC2 node 109 . N4 and N6 are turned off and P1 and P2 are turned on by CK, so that PC1 and PC2 are both precharged high again. The QB output signal is latched high, and the fast dynamic register 100 is ready for another data evaluation in the next CK cycle.
- CK next goes low the store node 120 at the output of the latch 117 is latched high until the next CK cycle.
- the inverter 105 (and the keeper circuits 116 and 118 ) collectively operate as a precharge circuit in response to CK.
- the precharge circuit precharges both nodes 103 and 109 high.
- CK goes high, one of the nodes 103 and 109 goes low depending upon whether the input data block 102 evaluates.
- FIGS. 2-5 illustrate different configurations of the data block 102 for performing a desired logic function.
- FIG. 2 illustrates a simple configuration in which the data block 102 includes a single N-channel transistor ND1 having its drain coupled to the PC1 node 103 , its source coupled to the DCH node 101 , and its gate receiving a single data input D1.
- the data block 102 evaluates when D1 is high since ND1 is turned on when CK goes high.
- the data block 102 does not evaluate when D1 is low since ND1 remains off so that the PC1 node 103 remains high when CK goes high.
- FIG. 3 is a schematic diagram of an alternative embodiment of the data block 102 including a number N of N-channel transistors ND1, ND2, . . . , NDN (ND1-NDN) coupled in parallel.
- each of the N-channel transistors ND1-NDN has its source coupled to the DCH node 101 , its drain coupled to the PC1 node 103 , and its gate receiving a corresponding one of N data inputs D1, D2, . . . , DN (D1-DN).
- the data block 102 evaluates when any of the of the data inputs D1-DN is high (such as according to the logic OR function).
- FIG. 4 is a schematic diagram of an alternative embodiment of the data block 102 including a number N of N-channel transistors ND1, ND2, . . . , NDN (ND1-NDN) coupled in series.
- a first N-channel transistor ND1 has its drain coupled to the PC1 node 103
- a second N-channel transistor ND2 has its drain coupled to the source of ND1, and so on up to a last N-channel transistor NDN having it source coupled to the DCH node 101 .
- the gates of the N-channel transistors ND1-NDN receive a corresponding one of the N data inputs D1, D2, . . . , DN (D1-DN).
- the data block 102 evaluates only when each of the of the data inputs D1-DN is high (such as according to the logic AND function).
- FIG. 5 is a schematic diagram of an alternative embodiment of the data block 102 including a number N of N-channel transistors ND1, ND2, . . . , NDN (ND1-NDN) coupled in any suitable series- and parallel-coupled combination.
- ND1-NDN NDN
- a first set of M devices ND1-NDM are coupled in parallel with each other between the PC1 node 103 and an intermediate node 501
- the remaining devices NDM+1, NDM+2, . . . , NDN are coupled in parallel between the intermediate node 501 and the DCH node 101 .
- the gates of the N-channel transistors ND1-NDN receive a corresponding one of the N data inputs D1, D2, . . .
- the data block 102 evaluates only when one of the of the data inputs D1-DM is high and one of the data inputs DM+1-DN is high (such as according to a logic OR-AND function). It is contemplated that additional layers may be added with corresponding additional intermediate nodes with any suitable number of devices coupled in parallel in each layer.
- FIG. 6 is a schematic diagram of a latch 600 according to one embodiment which may be used as the latch 117 .
- the latch 600 includes N-channel transistors NL1, NL2 and NL3, P-channel devices PL1, PL2 and PL3, and an inverter 603 .
- the non-inverted clock C is provided to the gates of NL1 and PL3 and the inverted clock CB is provided to the gates of PL1 and NL2.
- the data input D is provided to an input node 601 , which is further coupled to the sources of NL1 and PL1.
- the drains of NL1 and PL1 are coupled together at an output node 605 providing output signal Q.
- PL2, PL3, NL2 and NL3 are coupled into a stack configuration implementing a keeper circuit.
- PL2 has its source coupled to VDD, its drain coupled to the source of PL3, which has its drain coupled to the drain of NL2 at the output node 605 .
- the source of NL2 is coupled to the drain of NL3, which has its source coupled to VSS.
- Node 605 is coupled to the input of the inverter 603 , which has its output coupled to the gates of NL3 and PL2.
- the latch 600 In operation, when C is high and CB is low, the latch 600 is in its transparent state. In the transparent state, PL3 and NL2 remain or are otherwise turned off to isolate the Q output node 605 from operation of the keeper. Further, PL1 and NL1 are both turned on to provide a low impedance path from the input node 601 to the output node 605 , so that output Q is driven to the state of input D.
- the latch 600 is in its isolation state in which PL1 and NL1 are turned off to isolate Q from D. If Q is low, then NL2 and NL3 are both turned on to keep Q latched low.
- PL2 and PL3 are both turned on to keep Q latched high.
- CK is provided to clock input C
- CB is provided to clock input CB
- the output of the inverter 115 is provided to the data input D
- output Q drives the store node 120 .
- the latch 600 may be implemented in an efficient manner using smaller devices to consume less space and power.
- NL1 and PL1 are sufficiently sized (e.g., larger) to ensure fast transitions between the D input and the Q output.
- the remaining devices PL2, PL3, NL2, NL2 and the devices of the inverter 603 are made very small because they are only performing a keeper operation.
- the inverter 603 is configured as a P-channel device PI coupled in series with an N-channel transistor NI, having their gates coupled together at input IN and their drains coupled together at output OUT.
- the devices PI and NI are very small devices to consume less space and power.
- the inverters 105 , 123 , 113 and 115 may be made in similar manner, but using larger devices for faster switching operation.
- NL1 and PL1 perform the primary switching operation driven by an external gate (e.g., the output of the inverter 115 ), whereas the devices PL2 and PL3 or NL2 and NL3 switch in response to switching of inverter 603 to maintain the state of Q after switching.
- the first case is approximately a 2.5 gate delay from CK going high to QB going high. Since the gate of N2 is already precharged high, as the output of the inverter 105 is going low in response to the CK transition, the PC2 node 109 is pulled low at the same time, which is sensed by the NAND gate 111 .
- the D input is already high when CK transitions high.
- NL1 is turned on to initiate pulling the Q output high thus pulling the store node 120 high.
- the NAND gate 111 responsively pulls QB low which appears to be only a 2 gate delay. It is noted, however, that NL1 may be insufficient by itself to pull the store node 120 fully high.
- CB goes low with a 1-gate delay through the inverter 123 . CB going low turns on PL1 to complete the transition of the Q output going high to pull the store node 120 fully high.
- the combination of NL1 and PL1 of the latch 600 used as the latch 117 causes a transition of QB faster than a 3-gate delay.
- the overall delay is also approximately 2.5 gate delays from CK going high to QB going low.
- the configuration and placement of latch 117 as close as possible to final NAND gate 111 serves to minimize the delay of the second case, thus preventing this delay from being the critical delay of the circuit.
- FIG. 7 is a schematic diagram of a scannable fast dynamic register 700 implemented according to one embodiment.
- the scannable fast dynamic register 700 includes the same components which assume identical reference numbers except that the inverter 113 is replaced by a NAND gate 701 .
- the PC2 node 109 is coupled to one input of the NAND gate 701 .
- the NAND gate 701 provides an additional input for scan operation for injecting scan input data as further described below.
- the scannable fast dynamic register 700 includes an additional N-channel transistor NS, which is coupled in parallel with the data block 102 .
- the drain of NS is coupled to the PC1 node 103 , its source is coupled to the DCH node 101 , and its gate receives a scan enable signal SE.
- NS may be implemented as a single transistor with sufficient size to pull PC 1 to DCH when CK goes high, or may be implemented as multiple transistors in parallel.
- the input data block 102 and NS collectively form a data and scan enable circuit.
- the scannable fast dynamic register 700 further includes another NAND gate 703 having a first input receiving the SE signal, another input receiving a scan in signal SI, and an output coupled to the data input D of another latch 705 .
- the NAND gate 703 implements scan enable logic for enabling and receiving scan input data.
- the latch 705 is configured in substantially similar manner as the latch 117 , and may also be implemented as the latch 600 .
- the latch 705 includes a non-inverted clock input coupled to node 124 for receiving the inverted clock signal CB, an inverted clock input CB coupled to node 104 for receiving the non-inverted clock signal CK, and an output providing an inverted scan input signal SIB on a scan data node 707 .
- the scan data node 707 is coupled to provide SIB to the other input of the NAND gate 701 .
- the dynamic nature of the scannable fast dynamic register 700 is somewhat bypassed during a scan mode when SE is asserted high to enable injection of scan input data. It is noted that the dynamic nature is not completely bypassed since in scan mode, the node PC1 103 discharges for each CK cycle.
- SE When SE is high, the gate of NS is pulled high so that NS is turned on when CK goes high providing a current path from the node PC1 103 through N1.
- the data block 102 therefore, is shorted or otherwise bypassed.
- NS turned on by SE simulates evaluation so that the PC1 node 103 is pulled low when CK goes high and continues to precharge high when CK goes back low.
- the PC2 node 109 remains high during successive cycles of CK, so that the state of the NAND gate 701 is determined by SIB and the state of the NAND gate 111 is determined by ST.
- the NAND gate 703 When SE is asserted high, the NAND gate 703 operates as an inverter of the input scan input signal SI.
- the latch 705 When CK is low during scan mode, the latch 705 is in transparent mode so that the SI signal passes inverted as the SIB signal to the NAND gate 701 and thus to the D input of the latch 117 .
- the latch 117 is in isolation mode while CK is low.
- SIB When CK goes high, SIB is held at its current value by the latch 705 and is passed as the ST value by the latch 117 now in transparent mode. In this manner, the latches 705 and 117 collectively operate in a similar manner as a master-slave flip-flop to latch the scan input SI into the register 700 during successive cycles of CK.
- the NAND gate 701 operates as a select circuit depending upon the mode of operation providing a selected output.
- SIB remains high so that the NAND gate 701 effectively inverts the state of the PC2 node 109 as its output.
- the inverter 115 re-inverts the state provided to the D input of the latch 117 .
- the PC2 node 109 remains high so that the NAND gate 701 effectively inverts the state of SIB at its output.
- the inverter 115 re-inverts the state provided to the D input of the latch 117 .
- the NAND gate 701 enables injection of scan input data during the scan mode when SE is asserted.
- FIG. 8 is a schematic diagram of an alternative embodiment of either or both of the transparent latches 117 and 705 , which generally operate as store circuits. Either or both of the transparent latches are replaced by a multiplexer (MUX) 801 and a pair of inverters 803 and 805 .
- the MUX 801 has a first input I1 which operates in similar manner as the “D” input of the transparent latch, and has an output (0) which operates in similar manner as the “Q” output of the transparent latch.
- the MUX 801 further has a pair of select inputs S1 and S2, each receiving either CK or CB depending upon whether replacing latch 117 or latch 705 .
- the output of the MUX 801 is provided to the input of the inverter 803 , having its output provided to the input of inverter 805 , having its output provided to a second input I2 of the MUX 801 .
- the MUX 801 In operation, when the clock signals CK and CB have states such that the MUX 801 selects the input I1 as the output 0, then the MUX 801 operates in its “transparent” state in which data input D is provided as the data Q output. When the clock signals are reversed such that the MUX 801 selects the input I2 as the output 0, then the MUX 801 operates in its isolation state in which the state of the output Q is effectively “latched” regardless of changes of the D input.
- the output of the inverter 115 is provided to input I1 of the MUX 801 , the output of the MUX 801 provides the ST signal on the store node 120 , CK is provided to the S1 select input of the MUX 801 , and CB is provided to the S2 select input of the MUX 801 .
- the output of the NAND gate 703 is provided to input I1 of the MUX 801 , the output of the MUX 801 provides the SIB signal on the scan data node 707 , CK is provided to the S2 select input of the MUX 801 , and CB is provided to the S1 select input of the MUX 801 .
- FIG. 9 is a block and schematic diagram of an integrated circuit (IC) 900 incorporating scannable fast dynamic registers 901 , 905 , and 909 each implemented according to the scannable fast dynamic register 700 .
- IC integrated circuit
- FIG. 9 is a block and schematic diagram of an integrated circuit (IC) 900 incorporating scannable fast dynamic registers 901 , 905 , and 909 each implemented according to the scannable fast dynamic register 700 .
- IC integrated circuit
- One or more data inputs DN IN are provided to the data or “DN” inputs of the scannable fast dynamic register 901 , having an output QB provided to a combinatorial logic circuit 903 .
- N is any suitable integer greater than 0 and may be a single data bit as previously described.
- the combinatorial logic circuit 903 has a number “M” outputs provided to the DM IN inputs of the scannable fast dynamic register 905 , having an output QB provided to a combinatorial logic circuit 907 .
- M is any suitable integer greater than 0 and may be a single data bit as previously described.
- P outputs of the combinatorial logic circuit 907 are provided to the DP IN inputs of the scannable fast dynamic register 909 , having an output QB provided to a combinatorial logic circuit 911 , having an output providing Q data outputs DQ OUT.
- P and Q are each any suitable integer greater than 0, and either one may be a single data bit as previously described.
- a clock signal CLK is provided to the clock inputs of each of the scannable fast dynamic registers 901 , 905 , and 909 .
- the scan enable signal SE is provided from an external source via an IC pin as illustrated. SE is provided to the SE enable inputs of each of the scannable fast dynamic registers 901 , 905 , and 909 .
- An input scan signal SCAN IN is provided to a scan input SI of the scannable fast dynamic register 901 .
- SCAN IN may be provided from an external IC pin as illustrated.
- the QB output of the scannable fast dynamic register 901 is provided to the SI input of the scannable fast dynamic register 905 , having its QB output provided to the SI input of the scannable fast dynamic register 909 .
- the QB output of the scannable fast dynamic register 909 provides an output scan signal SCAN OUT.
- the SCAN OUT signal is provided externally via an IC pin as illustrated.
- DN IN may be generated on the IC 100 or provided from an external source via a corresponding IC pin or the like.
- the registers 901 , 905 , and 909 and the combinatorial logic circuits 903 , 907 and 911 perform at least one function of the IC 100 during normal operation.
- DQ OUT may be provided to another on-chip device or may be provided to an external device via a corresponding IC pin or the like.
- Each of the combinatorial logic circuits 903 , 907 and 911 incorporate combinatorial logic or the like and the scannable fast dynamic registers 901 , 905 , and 909 save the state of the circuitry during each cycle of CLK as understood by those of ordinary skill in the art.
- Scan capability is provided for test purposes to functionally test operation of the IC 100 .
- SE is asserted high effectively disabling the data inputs DN and enabling each of the SI inputs of each of the scannable fast dynamic registers 901 , 905 , and 909 .
- the scannable fast dynamic registers 901 , 905 , and 909 are daisy-chained in serial fashion between SCAN IN and SCAN OUT during scan mode.
- a test vector or the like is provided via the SCAN IN input and clocked via CLK to load the scannable fast dynamic registers 901 , 905 , and 909 with a test vector value.
- SE is temporarily pulled low and the IC 100 operates for one or more CLK cycles depending upon the particular test function. Then SE is then pulled high and the information stored in the scannable fast dynamic registers 901 , 905 , and 909 is output via SCAN OUT during successive cycles of CLK. The output test vector is then examined to determine the test results.
- At least one benefit of the configuration of the scannable fast dynamic register 700 is that the pathway of the scan data to the output is static and partially bypasses the dynamic features of the register to enable injection of scan input data.
- a significant benefit is to minimize the interaction of scan circuitry with the dynamic circuitry while retaining the initial fast-speed features for non-scan operation.
- the fast register shown and described herein incorporates a simple function of inverting one or more data inputs DN to register a single output QB. Many other logic functions, including more sophisticated functions, may be built into the fast register.
- the method of scan insertion shown herein may be employed in similar fashion to other registers incorporating much more complicated functions.
- circuits described herein may be implemented in any suitable manner including logic devices or circuitry or the like. Any number of the functions described for the logic circuits may be implemented in software or firmware within an integrated device. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiments as a basis for designing or modifying other structures for carrying out the same purposes of the present invention without departing from the spirit and scope of the invention.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
Abstract
Description
- This application claims priority to the following U.S. Provisional Patent Application which is hereby incorporated by reference in its entirety for all intents and purposes.
-
SERIAL FILING NUMBER DATE TITLE 61/815,642 Apr. 24, 2013 SCANNABLE FAST DYNAMIC (CNTR.2685) REGISTER - This application is related to the following co-pending U.S. Patent Applications, each of which has a common assignee and a common inventor.
-
SERIAL FILING NUMBER DATE TITLE SCANNABLE FAST DYNAMIC (CNTR.2865) REGISTER - 1. Field of the Invention
- The present invention relates to latch and register circuits, and more particularly to a fast dynamic register with a transparent latch for improving efficiency.
- 2. Description of the Related Art
- Dynamic logic circuits often exhibit relatively long setup and/or hold times to ensure proper operation. It is desired to improve the efficiency of a fast dynamic register circuit with minimal setup times without the overhead of pulsed clock circuits.
- A fast dynamic register according to one embodiment includes a data block, a precharge circuit, a transparent latch, and an output logic gate. The data block is coupled between a first precharge node and a discharge node, receives at least one data input, and evaluates by pulling the first precharge node to the discharge node when a clock node transitions from a first clock state to a second clock state. The precharge circuit precharges first and second precharge nodes while the clock node is in the first clock state, releases the first precharge node and pulls the discharge node low when the clock node transitions to the second clock state, and discharges the second precharge node low when the first precharge node remains high after the clock node transitions to the second clock state. The transparent latch has a latch input coupled to the second precharge node and an output coupled a store node. The transparent latch is transparent to pass a state of the second precharge node to the store node while the clock node is in the second clock state, and latches the store node when the clock node is in the first clock state. The output logic gate drives an output node to a state based on states of the second precharge node and the store node.
- The transparent latch may include first and second transistors and a keeper circuit. The transistors each having a pair of current terminals coupled between the latch input and the latch output, where the first transistor has a control input coupled to the clock node, and where the second transistor has a control input coupled to the inverting clock node. The keeper circuit is coupled to the clock node, an inverting clock node and the latch output, and operates to maintain a state of the output node when the clock node is in the first clock state.
- The fast dynamic register circuit may be implemented with a scan mode. In that case, the register circuit includes a scan enable block, a select gate, and a second transparent latch. The scan enable block is coupled between the first precharge node and the discharge node, receives a scan enable input, and pulls the first precharge node to the discharge node when the clock node transitions from the first clock state to the second clock state when the scan enable input is asserted. The select gate is interposed between the second precharge node and the transparent latch, where the select gate has a first input coupled to the second precharge node, has a second input coupled to a scan data node, and has an output coupled to the latch input of the transparent latch. The second transparent latch has an input receiving a scan data input and an output coupled to the scan data node. The second transparent latch is transparent to pass the scan data input to the scan data node while the clock node is in the first clock state and when the scan enable input is asserted, forces the scan data node high when the scan enable input is de-asserted and when the clock node is in the first clock state, and holds a last state of the scan data node when the clock node is in the second clock state.
- An integrated circuit according to one embodiment includes combinatorial logic which provides at least one data input, and clock node, and a fast dynamic register as described above.
- A method of registering data according to one embodiment includes precharging a first precharge node high while a clock signal is at a first clock state, evaluating at least one data input and maintaining the first precharge node high after the clock signal transitions to a second clock state when the at least one data input does not evaluate, and discharging the first precharge node low when the at least one data input evaluates when the clock signal transitions to the second clock state, precharging a second precharge node high while the clock signal is in the first clock state, discharging the second precharge node low if the first precharge node remains high after the clock signal transitions to the second logic state, and otherwise maintaining the second precharge node high, latching a state of a store node when the clock signal is at the first clock state, and passing a state of the second precharge node to the store node when the clock signal is at the second clock state, and asserting an output node to a state based on the second precharge node and the store node.
- The method may include inverting the clock signal and providing an inverted clock signal, turning on a first pass transistor coupled between the second precharge node and the store node controlled by the clock signal, turning on a second pass transistor coupled between the second precharge node and the store node controlled by the inverted clock signal, and keeping the state of store node when the clock signal is at the first clock state. The method may further include receiving a scan enable input, when the scan enable input is asserted, bypassing data evaluation by forcing the first precharge node to discharge low when the clock signal transitions to the second clock state, and when the scan enable input is asserted, injecting a scan data input instead of a state of the second precharge node, and passing a state of the scan data input to the store node when the clock signal is at the second clock state.
- The benefits, features, and advantages of the present invention will become better understood with regard to the following description, and accompanying drawings where:
-
FIG. 1 is a schematic diagram of a fast dynamic register implemented according to one embodiment; -
FIGS. 2-5 illustrate different configurations of the data block ofFIG. 1 including a one or more N-channel transistors; -
FIG. 6 is a schematic diagram of a latch according to one embodiment which may be used as the latch ofFIG. 1 ; -
FIG. 7 is a schematic diagram of a scannable fast dynamic register implemented according to one embodiment; -
FIG. 8 is a schematic diagram of an alternative embodiment of either or both of the transparent latches ofFIG. 7 using a multiplexer; and -
FIG. 9 is a block and schematic diagram of an integrated circuit incorporating scannable fast dynamic registers each implemented according to the scannable fast dynamic register ofFIG. 7 . - The following description is presented to enable one of ordinary skill in the art to make and use the present invention as provided within the context of a particular application and its requirements. Various modifications to the preferred embodiment will, however, be apparent to one skilled in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described herein, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed.
-
FIG. 1 is a schematic diagram of a fastdynamic register 100 implemented according to one embodiment. One or more data inputs, collectively denoted DN, are provided to respective inputs of aninput data block 102. The notation “DN” denotes any suitable integer number “N” of one or more data inputs, in which N is an integer greater than 0. A single input data value (e.g., D, or D1) is also contemplated. Theinput data block 102 is coupled between a precharge (PC1)node 103 and an discharge (DCH)node 101. Theinput data block 102 is configured according to a desired logic function to evaluate the collective state of the one or more data inputs DN when CK goes high. If thedata block 102 “evaluates” when CK goes high, then it creates a current path betweennodes data block 102 does not evaluate, then the current path is not provided or otherwise presents a high impedance path between thenodes dynamic register 100 is fast is because it has close-to-zero setup requirement for non-scan data inputs. - An N-channel transistor N1 has its drain coupled to the
DCH node 101, its source coupled to a power supply node VSS, and its gate coupled to aclock node 104 receiving an input clock signal CK. Theclock node 104 is coupled to the gates of N-channel transistors N1, N4, and N6, to the gates of P-channel devices P1 and P2, to the inputs ofinverters latch 117. P1 and P2 have their sources coupled to a power supply node VDD. The drain of P1 is coupled to thePC1 node 103 and the drain of P2 is coupled to a second precharge (PC2)node 109. The output of theinverter 105 is coupled to anode 107, which is coupled to the source of an N-channel transistor N2. N2 has is gate coupled to thePC1 node 103 and its drain coupled to thePC2 node 109. - The
PC2 node 109 is coupled to one input of a two-input NAND gate 111, having its output providing the inverted data output QB. It is noted that in an alternative embodiment, the NANDgate 111 may be replaced by an AND gate (for a non-inverted output) depending upon the particular implementation. ThePC2 node 109 is coupled to the input of anotherinverter 113, having its output coupled to the input of aninverter 115, having its output coupled to the data “D” input of thelatch 117. The output of theinverter 123 provides an inverted clock signal on anode CB 124 which is coupled to the inverted clock input “CB” of thelatch 117, which has its output coupled to astore node 120 providing a signal ST. Thestore node 120 is coupled to the other input of theNAND gate 111. - The
PC1 node 103 is coupled to akeeper circuit 116, which includes P-channel devices P3 and P4, N-channel transistors N3 and N4, and aninverter 119. The source of P3 is coupled to VDD, its gate is coupled to VSS and its drain is coupled to the source of P4. The drain of P4 is coupled to thePC1 node 103, which is further coupled to the input of theinverter 119 and to the drain of N3. The source of N3 is coupled to the drain of N4, having its source coupled to VSS. The output of theinverter 119 is coupled to the gates of N3 and P4. - The
PC2 node 109 is further coupled to akeeper circuit 118, which includes P-channel devices P5 and P6, N-channel transistors N5 and N6, and aninverter 121. The source of P5 is coupled to VDD, its gate is coupled to thePC1 node 103, and its drain is coupled to the source of P6. The drain of P6 is coupled to thePC2 node 109, which is further coupled to the input of theinverter 121 and to the drain of N5. The source of N5 is coupled to the drain of N6, having its source coupled to VSS and its gate coupled to theCK node 104. The output of theinverter 121 is coupled to the gates of N5 and P6. - It is noted that N-channel and P-channel devices described herein are shown as MOS type devices or field-effect transistors (FETs) or MOSFETs or the like, such as NMOS, PMOS, NFET, PFET, etc., type transistor devices. In general, each transistor device includes first and second current terminals (e.g., drain, source, emitter, collector, etc.) and a control node (e.g., gate, base, etc.). Any logic gates described herein, including inverters and logic gates (AND, NAND, OR, NOR, etc.), and any latches described herein, may also be implemented with N-channel and P-channel devices or transistors or the like.
- In one embodiment, the
latch 117 is configured as a transparent latch including pass gates or the like in which the D input is passed to the Q output when the C input is high and CB input is low, and in which the Q output is isolated from the D input when the C input is low and the CB input is high. The power supply node VSS has a suitable reference voltage (e.g., ground) relative to another power supply node VDD. The power supply voltage between VDD and VSS is any suitable voltage level depending upon the particular architecture or technology employed (e.g., 1V, 1.5V, 3V, 5V, etc.). - The clock signal CK generated on the
CK node 104 may be generated locally (e.g., local oscillator or the like, not shown) or provided from an external source. The CK signal is asserted in a positive-logic sense in which it provides a set-up time when low and a hold time when high for data evaluation. Thus, the operative clock edge is the rising clock edge. The present disclosure contemplates a negative-logic clock signal as well. In general, the clock signal toggles between first and second states for purposes of timing and synchronization or the like. - During normal operation, when CK is asserted low, the
precharge nodes PC1 103 andPC2 109 are both precharged high to VDD via P1 and P2, respectively. N4 and N6 of thekeeper circuits keeper circuit 116 are on keeping thePC 1node 103 high. N1 is turned off and theinverter 105 pullsnode 107 high so that N2 is off. - The data inputs DN generally change or otherwise transition while CK is low. Assuming that the data signals DN do not cause the data block 102 to evaluate when CK goes high, P1 and P2 are turned off and N4, N6 and N1 are turned on. The
PC1 node 103 remains pulled high by the keeper circuit 116 (via P3 and P4), and theinverter 105 pullsnode 107 low, so that N2 is turned on to discharge thePC2 node 109 low. TheNAND gate 111 pulls QB high (or otherwise keeps QB high) in response to PC2 going low. Theinverters latch 117 low after a small delay. Since CK is high and CB is pulled low by theinverter 123, thelatch 117 is in its transparent state so that the low state of its D input is passed to pull thestore node 120 low (or otherwise keep ST low). N5 and N6 of thekeeper circuit 118 are on and keep thePC2 node 109 low until CK goes low. - When CK goes back low, the
latch 117 switches to its isolation state to keep thestore node 120 low. In this manner, theNAND gate 111 keeps QB pulled high regardless of any change of state of thePC2 node 109. N4 and N6 are turned off and P1 and P2 are turned on by CK, so that PC1 and PC2 are both precharged high again. The QB output signal is latched high, and the fastdynamic register 100 is ready for another data evaluation in the next CK cycle. - In the next cycle, it is assumed that the data inputs DN change so that the data block 102 evaluates. When CK goes back high, P1 is turned off, N1 is turned on and the data block 102 evaluates to pull the
PC1 node 103 low. The devices within the data block 102 and N1 are sufficiently sized to overcome P3 and P4. As thePC1 node 103 is pulled low, N3 and N4 are turned on to keep PC1 low. PC1 going low turns P5 on to keep thePC2 node 109 pulled high via P5 and P6. It is noted that sincenode 107 is pulled low and that thePC1 node 103 is pulled low, N2 may turn slightly on momentarily. However, P5 and P6 keep thePC2 node 109 high. - While CK is high, the
latch 117 is transparent so that the high value of thePC2 node 109 is passed to thestore node 120, so that both inputs of theNAND gate 111 are high pulling QB low. When CK next goes low, thestore node 120 at the output of thelatch 117 is latched high until the next CK cycle. - P1, P2, N1, N2, the inverter 105 (and the
keeper circuits 116 and 118) collectively operate as a precharge circuit in response to CK. When CK is low, the precharge circuit precharges bothnodes nodes -
FIGS. 2-5 illustrate different configurations of the data block 102 for performing a desired logic function.FIG. 2 illustrates a simple configuration in which the data block 102 includes a single N-channel transistor ND1 having its drain coupled to thePC1 node 103, its source coupled to theDCH node 101, and its gate receiving a single data input D1. In this case, the data block 102 evaluates when D1 is high since ND1 is turned on when CK goes high. The data block 102 does not evaluate when D1 is low since ND1 remains off so that thePC1 node 103 remains high when CK goes high. -
FIG. 3 is a schematic diagram of an alternative embodiment of the data block 102 including a number N of N-channel transistors ND1, ND2, . . . , NDN (ND1-NDN) coupled in parallel. In particular, each of the N-channel transistors ND1-NDN has its source coupled to theDCH node 101, its drain coupled to thePC1 node 103, and its gate receiving a corresponding one of N data inputs D1, D2, . . . , DN (D1-DN). In this case, the data block 102 evaluates when any of the of the data inputs D1-DN is high (such as according to the logic OR function). -
FIG. 4 is a schematic diagram of an alternative embodiment of the data block 102 including a number N of N-channel transistors ND1, ND2, . . . , NDN (ND1-NDN) coupled in series. In particular, a first N-channel transistor ND1 has its drain coupled to thePC1 node 103, a second N-channel transistor ND2 has its drain coupled to the source of ND1, and so on up to a last N-channel transistor NDN having it source coupled to theDCH node 101. The gates of the N-channel transistors ND1-NDN receive a corresponding one of the N data inputs D1, D2, . . . , DN (D1-DN). In this case, the data block 102 evaluates only when each of the of the data inputs D1-DN is high (such as according to the logic AND function). -
FIG. 5 is a schematic diagram of an alternative embodiment of the data block 102 including a number N of N-channel transistors ND1, ND2, . . . , NDN (ND1-NDN) coupled in any suitable series- and parallel-coupled combination. In this case, a first set of M devices ND1-NDM are coupled in parallel with each other between thePC1 node 103 and anintermediate node 501, and the remaining devices NDM+1, NDM+2, . . . , NDN are coupled in parallel between theintermediate node 501 and theDCH node 101. Again, the gates of the N-channel transistors ND1-NDN receive a corresponding one of the N data inputs D1, D2, . . . , DN (D1-DN). In this case, the data block 102 evaluates only when one of the of the data inputs D1-DM is high and one of the data inputs DM+1-DN is high (such as according to a logic OR-AND function). It is contemplated that additional layers may be added with corresponding additional intermediate nodes with any suitable number of devices coupled in parallel in each layer. -
FIG. 6 is a schematic diagram of alatch 600 according to one embodiment which may be used as thelatch 117. In this case, thelatch 600 includes N-channel transistors NL1, NL2 and NL3, P-channel devices PL1, PL2 and PL3, and aninverter 603. The non-inverted clock C is provided to the gates of NL1 and PL3 and the inverted clock CB is provided to the gates of PL1 and NL2. The data input D is provided to aninput node 601, which is further coupled to the sources of NL1 and PL1. The drains of NL1 and PL1 are coupled together at anoutput node 605 providing output signal Q. PL2, PL3, NL2 and NL3 are coupled into a stack configuration implementing a keeper circuit. In particular, PL2 has its source coupled to VDD, its drain coupled to the source of PL3, which has its drain coupled to the drain of NL2 at theoutput node 605. The source of NL2 is coupled to the drain of NL3, which has its source coupled to VSS.Node 605 is coupled to the input of theinverter 603, which has its output coupled to the gates of NL3 and PL2. - In operation, when C is high and CB is low, the
latch 600 is in its transparent state. In the transparent state, PL3 and NL2 remain or are otherwise turned off to isolate theQ output node 605 from operation of the keeper. Further, PL1 and NL1 are both turned on to provide a low impedance path from theinput node 601 to theoutput node 605, so that output Q is driven to the state of input D. When C is low and CB is high, thelatch 600 is in its isolation state in which PL1 and NL1 are turned off to isolate Q from D. If Q is low, then NL2 and NL3 are both turned on to keep Q latched low. If Q is high, then PL2 and PL3 are both turned on to keep Q latched high. When used as thelatch 117, CK is provided to clock input C, CB is provided to clock input CB, the output of theinverter 115 is provided to the data input D, and output Q drives thestore node 120. - The
latch 600 may be implemented in an efficient manner using smaller devices to consume less space and power. NL1 and PL1 are sufficiently sized (e.g., larger) to ensure fast transitions between the D input and the Q output. However, in one embodiment, the remaining devices PL2, PL3, NL2, NL2 and the devices of theinverter 603 are made very small because they are only performing a keeper operation. As shown pointed by dashed arrow, theinverter 603 is configured as a P-channel device PI coupled in series with an N-channel transistor NI, having their gates coupled together at input IN and their drains coupled together at output OUT. In one embodiment, the devices PI and NI are very small devices to consume less space and power. Theinverters inverter 603 to maintain the state of Q after switching. - Consider a first case when transitioning QB from low to high. In this case, when CK is low, ST is latched high from a prior cycle, PC2 is precharged high and QB is initially low. In this case, when CK goes high and the data block 102 fails to evaluate, the delay includes the delay of the
inverter 105 pullingnode 107 low turning N2 on to pull PC2 low, and then delay of theNAND gate 111 responsively asserting its output high. Thestore node 120 goes low after delay through theinverters latch 117 to keep QB high. Theinverter 113 may be sized small to minimize loading on thePC2 node 109. Once thestore node 120 goes low, CK may transition back low to initiate the next cycle. - Consider a second case when transitioning QB from high to low. Continuing from the first case, ST is latched low from the prior cycle, so that QB is initially high. When CK goes back low, the
PC2 node 109 is precharged high once again. As the data input(s) change while CK is low, theinverters latch 117 is high. If thedata block 102 evaluates in the next cycle upon the next high assertion of CK, thePC2 node 109 stays high while thelatch 117 becomes transparent so that theinverter 115 asserts thestore node 120 through thelatch 117. In response to ST going high, theNAND gate 111 pulls QB low. - The first case is approximately a 2.5 gate delay from CK going high to QB going high. Since the gate of N2 is already precharged high, as the output of the
inverter 105 is going low in response to the CK transition, thePC2 node 109 is pulled low at the same time, which is sensed by theNAND gate 111. - For the second case, with reference to the
latch 600 shown inFIG. 6 , the D input is already high when CK transitions high. As CK goes high pulling the C input high, NL1 is turned on to initiate pulling the Q output high thus pulling thestore node 120 high. TheNAND gate 111 responsively pulls QB low which appears to be only a 2 gate delay. It is noted, however, that NL1 may be insufficient by itself to pull thestore node 120 fully high. As CK goes high, CB goes low with a 1-gate delay through theinverter 123. CB going low turns on PL1 to complete the transition of the Q output going high to pull thestore node 120 fully high. Although this appears to be a 3-gate delay, the combination of NL1 and PL1 of thelatch 600 used as thelatch 117 causes a transition of QB faster than a 3-gate delay. Thus, the overall delay is also approximately 2.5 gate delays from CK going high to QB going low. For this second case, the configuration and placement oflatch 117 as close as possible tofinal NAND gate 111 serves to minimize the delay of the second case, thus preventing this delay from being the critical delay of the circuit. -
FIG. 7 is a schematic diagram of a scannable fastdynamic register 700 implemented according to one embodiment. The scannable fastdynamic register 700 includes the same components which assume identical reference numbers except that theinverter 113 is replaced by aNAND gate 701. ThePC2 node 109 is coupled to one input of theNAND gate 701. TheNAND gate 701 provides an additional input for scan operation for injecting scan input data as further described below. The scannable fastdynamic register 700 includes an additional N-channel transistor NS, which is coupled in parallel with the data block 102. In particular, the drain of NS is coupled to thePC1 node 103, its source is coupled to theDCH node 101, and its gate receives a scan enable signal SE. NS may be implemented as a single transistor with sufficient size to pullPC 1 to DCH when CK goes high, or may be implemented as multiple transistors in parallel. The input data block 102 and NS collectively form a data and scan enable circuit. - The scannable fast
dynamic register 700 further includes anotherNAND gate 703 having a first input receiving the SE signal, another input receiving a scan in signal SI, and an output coupled to the data input D of anotherlatch 705. TheNAND gate 703 implements scan enable logic for enabling and receiving scan input data. Thelatch 705 is configured in substantially similar manner as thelatch 117, and may also be implemented as thelatch 600. Thelatch 705 includes a non-inverted clock input coupled tonode 124 for receiving the inverted clock signal CB, an inverted clock input CB coupled tonode 104 for receiving the non-inverted clock signal CK, and an output providing an inverted scan input signal SIB on ascan data node 707. Thescan data node 707 is coupled to provide SIB to the other input of theNAND gate 701. - When the scan enable signal SE is negated low, then NS remains off and the output of the
NAND gate 703 is asserted high. Thelatch 705 asserts SIB high, so that theNAND gate 701 effectively operates in the same manner as theinverter 113 it replaced. In this manner, when the scan enable signal SE is negated low, then the scannable fastdynamic register 700 operates in the same manner as the fastdynamic register 100 for normal operation. - The dynamic nature of the scannable fast
dynamic register 700 is somewhat bypassed during a scan mode when SE is asserted high to enable injection of scan input data. It is noted that the dynamic nature is not completely bypassed since in scan mode, thenode PC1 103 discharges for each CK cycle. When SE is high, the gate of NS is pulled high so that NS is turned on when CK goes high providing a current path from thenode PC1 103 through N1. The data block 102, therefore, is shorted or otherwise bypassed. Regardless of the state(s) of the one or more data inputs DN, NS turned on by SE simulates evaluation so that thePC1 node 103 is pulled low when CK goes high and continues to precharge high when CK goes back low. ThePC2 node 109 remains high during successive cycles of CK, so that the state of theNAND gate 701 is determined by SIB and the state of theNAND gate 111 is determined by ST. - When SE is asserted high, the
NAND gate 703 operates as an inverter of the input scan input signal SI. When CK is low during scan mode, thelatch 705 is in transparent mode so that the SI signal passes inverted as the SIB signal to theNAND gate 701 and thus to the D input of thelatch 117. Thelatch 117 is in isolation mode while CK is low. When CK goes high, SIB is held at its current value by thelatch 705 and is passed as the ST value by thelatch 117 now in transparent mode. In this manner, thelatches register 700 during successive cycles of CK. - It is appreciated that the
NAND gate 701 operates as a select circuit depending upon the mode of operation providing a selected output. During the normal mode when SE is de-asserted low, SIB remains high so that theNAND gate 701 effectively inverts the state of thePC2 node 109 as its output. Theinverter 115 re-inverts the state provided to the D input of thelatch 117. During the scan mode when SE is asserted high, thePC2 node 109 remains high so that theNAND gate 701 effectively inverts the state of SIB at its output. Again, theinverter 115 re-inverts the state provided to the D input of thelatch 117. Thus, theNAND gate 701 enables injection of scan input data during the scan mode when SE is asserted. -
FIG. 8 is a schematic diagram of an alternative embodiment of either or both of thetransparent latches inverters MUX 801 has a first input I1 which operates in similar manner as the “D” input of the transparent latch, and has an output (0) which operates in similar manner as the “Q” output of the transparent latch. TheMUX 801 further has a pair of select inputs S1 and S2, each receiving either CK or CB depending upon whether replacinglatch 117 orlatch 705. The output of theMUX 801 is provided to the input of theinverter 803, having its output provided to the input ofinverter 805, having its output provided to a second input I2 of theMUX 801. - In operation, when the clock signals CK and CB have states such that the
MUX 801 selects the input I1 as the output 0, then theMUX 801 operates in its “transparent” state in which data input D is provided as the data Q output. When the clock signals are reversed such that theMUX 801 selects the input I2 as the output 0, then theMUX 801 operates in its isolation state in which the state of the output Q is effectively “latched” regardless of changes of the D input. - When replacing the
latch 117, the output of theinverter 115 is provided to input I1 of theMUX 801, the output of theMUX 801 provides the ST signal on thestore node 120, CK is provided to the S1 select input of theMUX 801, and CB is provided to the S2 select input of theMUX 801. When replacing thelatch 705, the output of theNAND gate 703 is provided to input I1 of theMUX 801, the output of theMUX 801 provides the SIB signal on thescan data node 707, CK is provided to the S2 select input of theMUX 801, and CB is provided to the S1 select input of theMUX 801. -
FIG. 9 is a block and schematic diagram of an integrated circuit (IC) 900 incorporating scannable fastdynamic registers dynamic register 700. Although three of the scannable fastdynamic registers dynamic registers - One or more data inputs DN IN are provided to the data or “DN” inputs of the scannable fast
dynamic register 901, having an output QB provided to acombinatorial logic circuit 903. N is any suitable integer greater than 0 and may be a single data bit as previously described. Thecombinatorial logic circuit 903 has a number “M” outputs provided to the DM IN inputs of the scannable fastdynamic register 905, having an output QB provided to acombinatorial logic circuit 907. M is any suitable integer greater than 0 and may be a single data bit as previously described. P outputs of thecombinatorial logic circuit 907 are provided to the DP IN inputs of the scannable fastdynamic register 909, having an output QB provided to acombinatorial logic circuit 911, having an output providing Q data outputs DQ OUT. P and Q are each any suitable integer greater than 0, and either one may be a single data bit as previously described. A clock signal CLK is provided to the clock inputs of each of the scannable fastdynamic registers - The scan enable signal SE is provided from an external source via an IC pin as illustrated. SE is provided to the SE enable inputs of each of the scannable fast
dynamic registers dynamic register 901. SCAN IN may be provided from an external IC pin as illustrated. The QB output of the scannable fastdynamic register 901 is provided to the SI input of the scannable fastdynamic register 905, having its QB output provided to the SI input of the scannable fastdynamic register 909. The QB output of the scannable fastdynamic register 909 provides an output scan signal SCAN OUT. The SCAN OUT signal is provided externally via an IC pin as illustrated. - During normal operation, SE is pulled low effectively disabling the SI inputs of the scannable fast
dynamic registers IC 100 or provided from an external source via a corresponding IC pin or the like. Theregisters combinatorial logic circuits IC 100 during normal operation. DQ OUT may be provided to another on-chip device or may be provided to an external device via a corresponding IC pin or the like. Each of thecombinatorial logic circuits dynamic registers - Scan capability is provided for test purposes to functionally test operation of the
IC 100. During a scan mode, SE is asserted high effectively disabling the data inputs DN and enabling each of the SI inputs of each of the scannable fastdynamic registers dynamic registers dynamic registers IC 100 operates for one or more CLK cycles depending upon the particular test function. Then SE is then pulled high and the information stored in the scannable fastdynamic registers - At least one benefit of the configuration of the scannable fast
dynamic register 700 is that the pathway of the scan data to the output is static and partially bypasses the dynamic features of the register to enable injection of scan input data. A significant benefit is to minimize the interaction of scan circuitry with the dynamic circuitry while retaining the initial fast-speed features for non-scan operation. The fast register shown and described herein incorporates a simple function of inverting one or more data inputs DN to register a single output QB. Many other logic functions, including more sophisticated functions, may be built into the fast register. The method of scan insertion shown herein may be employed in similar fashion to other registers incorporating much more complicated functions. - Although the present invention has been described in considerable detail with reference to certain preferred versions thereof, other versions and variations are possible and contemplated. For example, the circuits described herein may be implemented in any suitable manner including logic devices or circuitry or the like. Any number of the functions described for the logic circuits may be implemented in software or firmware within an integrated device. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiments as a basis for designing or modifying other structures for carrying out the same purposes of the present invention without departing from the spirit and scope of the invention.
Claims (19)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/951,306 US8860463B1 (en) | 2013-04-24 | 2013-07-25 | Fast dynamic register with transparent latch |
CN201410003842.2A CN103714860B (en) | 2013-04-24 | 2014-01-02 | Fast dynamic register, register method, integrated circuit |
TW103104012A TWI543533B (en) | 2013-04-24 | 2014-02-07 | Fast dynamic register, integrated circuits, methods of registering data, and scannable fast dynamic register |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361815642P | 2013-04-24 | 2013-04-24 | |
US13/951,306 US8860463B1 (en) | 2013-04-24 | 2013-07-25 | Fast dynamic register with transparent latch |
Publications (2)
Publication Number | Publication Date |
---|---|
US8860463B1 US8860463B1 (en) | 2014-10-14 |
US20140320164A1 true US20140320164A1 (en) | 2014-10-30 |
Family
ID=51661103
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/951,295 Active US8928377B2 (en) | 2013-04-24 | 2013-07-25 | Scannable fast dynamic register |
US13/951,306 Active US8860463B1 (en) | 2013-04-24 | 2013-07-25 | Fast dynamic register with transparent latch |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/951,295 Active US8928377B2 (en) | 2013-04-24 | 2013-07-25 | Scannable fast dynamic register |
Country Status (2)
Country | Link |
---|---|
US (2) | US8928377B2 (en) |
TW (1) | TWI543533B (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9753086B2 (en) | 2014-10-02 | 2017-09-05 | Samsung Electronics Co., Ltd. | Scan flip-flop and scan test circuit including the same |
US9742408B1 (en) | 2016-09-23 | 2017-08-22 | International Business Machines Corporation | Dynamic decode circuit with active glitch control |
US10410699B1 (en) * | 2018-06-29 | 2019-09-10 | Intel Corporation | Multi-bit pulsed latch including serial scan chain |
US10374604B1 (en) * | 2018-08-12 | 2019-08-06 | International Business Machines Corporation | Dynamic decode circuit low power application |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4849658A (en) * | 1986-08-08 | 1989-07-18 | Hitachi, Ltd. | Dynamic logic circuit including bipolar transistors and field-effect transistors |
US7417465B2 (en) * | 2002-08-14 | 2008-08-26 | Via Technologies, Inc. | N-domino output latch |
US20140049289A1 (en) * | 2012-06-12 | 2014-02-20 | International Business Machines Corporation | Time division multiplexed limited switch dynamic logic |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5075386A (en) | 1990-04-12 | 1991-12-24 | Eastman Kodak Company | Cross-linkable hot-melt adhesive and method of producing same |
JPH087571A (en) | 1994-04-20 | 1996-01-12 | Hitachi Ltd | Gate circuit, semiconductor integrated circuit, semiconductor memory circuit, semiconductor integrated circuit device using them, and information processing device using them |
US5889979A (en) | 1996-05-24 | 1999-03-30 | Hewlett-Packard, Co. | Transparent data-triggered pipeline latch |
US5880608A (en) | 1996-12-27 | 1999-03-09 | Intel Corporation | Pulsed domino latches |
US5973531A (en) | 1997-06-20 | 1999-10-26 | Sun Microsystems, Inc. | Method for generating a pulse output in a dynamic register |
JP3036479B2 (en) | 1997-08-08 | 2000-04-24 | 日本電気株式会社 | Dynamic logic circuit |
US5926038A (en) | 1997-11-10 | 1999-07-20 | The United States Of America As Represented By The Secretary Of The Navy | Two-phase dynamic logic circuits for gallium arsenide complementary HIGFET fabrication |
US6265899B1 (en) | 1999-06-04 | 2001-07-24 | S3 Incorporated | Single rail domino logic for four-phase clocking scheme |
US6191618B1 (en) | 1999-07-23 | 2001-02-20 | Intel Corporation | Contention-free, low clock load domino circuit topology |
US6560737B1 (en) | 2000-02-16 | 2003-05-06 | Hewlett-Packard Development Company, L.P. | Method for adding scan controllability and observability to domino CMOS with low area and delay overhead |
US6496038B1 (en) | 2000-06-30 | 2002-12-17 | Intel Corporation | Pulsed circuit topology including a pulsed, domino flip-flop |
US6486706B2 (en) | 2000-12-06 | 2002-11-26 | Intel Corporation | Domino logic with low-threshold NMOS pull-up |
US6420904B1 (en) | 2001-01-25 | 2002-07-16 | Koninklijke Philips Electronics N.V. | Domino logic with self-timed precharge |
US6498514B2 (en) | 2001-04-30 | 2002-12-24 | Intel Corporation | Domino circuit |
US6956406B2 (en) | 2001-07-02 | 2005-10-18 | Intrinsity, Inc. | Static storage element for dynamic logic |
GB0121013D0 (en) | 2001-08-30 | 2001-10-24 | Micron Technology Inc | Combined dynamic logic gate and level shifter and method employing same |
US6628143B2 (en) | 2001-09-26 | 2003-09-30 | Intel Corporation | Full-swing source-follower leakage tolerant dynamic logic |
US6429689B1 (en) | 2001-10-10 | 2002-08-06 | International Business Machines Corporation | Method and apparatus for controlling both active and standby power in domino circuits |
US7161992B2 (en) | 2001-10-18 | 2007-01-09 | Intel Corporation | Transition encoded dynamic bus circuit |
US6650145B2 (en) | 2002-04-04 | 2003-11-18 | International Business Machines Corporation | Circuits and systems for limited switch dynamic logic |
US7187211B2 (en) | 2002-08-14 | 2007-03-06 | Via Technologies, Inc. | P-domino output latch |
US7193445B2 (en) | 2002-08-14 | 2007-03-20 | Ip-First, Llc | Non-inverting domino register |
US7187209B2 (en) | 2003-08-13 | 2007-03-06 | Via Technologies, Inc. | Non-inverting domino register |
US6873188B2 (en) | 2002-09-12 | 2005-03-29 | International Business Machines Corporation | Limited switch dynamic logic selector circuits |
US6963228B2 (en) | 2002-09-19 | 2005-11-08 | Ip-First, Llc | Complementary input dynamic logic |
US6828827B2 (en) | 2002-09-24 | 2004-12-07 | Ip-First, Llc | Complementary input dynamic logic for complex logic functions |
US6965254B2 (en) | 2002-12-10 | 2005-11-15 | Ip-First, Llc | Dynamic logic register |
US7064584B2 (en) | 2003-04-28 | 2006-06-20 | Via Technologies, Inc. | P-domino output latch with accelerated evaluate path |
US7429880B2 (en) | 2003-08-11 | 2008-09-30 | Amar Pal Singh Rana | Reduced glitch dynamic logic circuit and method of synthesis for complementary oxide semiconductor (CMOS) and strained/unstrained silicon-on-insulator (SOI) |
US7187210B2 (en) | 2003-08-13 | 2007-03-06 | Via Technologies, Inc. | P-domino register |
US7212039B2 (en) | 2003-08-27 | 2007-05-01 | Via Technologies, Inc. | Dynamic logic register |
US6960939B2 (en) | 2003-09-04 | 2005-11-01 | International Business Machines Corporation | Limited switch dynamic logic circuit with keeper |
US20050110522A1 (en) | 2003-11-21 | 2005-05-26 | Hoekstra George P. | Multistage dynamic domino circuit with internally generated delay reset clock |
US7224190B2 (en) | 2003-12-17 | 2007-05-29 | International Business Machines Corporation | Midcycle latch for power saving and switching reduction |
US7157930B2 (en) | 2003-12-22 | 2007-01-02 | Matsushita Electric Industrial Co., Ltd. | Scan flip flop, semiconductor device, and production method of semiconductor device |
KR20050099259A (en) | 2004-04-09 | 2005-10-13 | 삼성전자주식회사 | High speed flipflops and complex gates using thereof |
US7358775B2 (en) | 2005-01-14 | 2008-04-15 | Via Technologies, Inc. | Inverting dynamic register with data-dependent hold time reduction mechanism |
US7129754B2 (en) | 2005-03-17 | 2006-10-31 | International Business Machines Corporation | Controlled load limited switch dynamic logic circuitry |
US7336105B2 (en) | 2005-06-28 | 2008-02-26 | International Business Machines Corporation | Dual gate transistor keeper dynamic logic |
US7663408B2 (en) | 2005-06-30 | 2010-02-16 | Robert Paul Masleid | Scannable dynamic circuit latch |
US7321243B1 (en) | 2006-06-16 | 2008-01-22 | Via Technologies, Inc. | P-domino register with accelerated non-charge path |
US7317339B1 (en) | 2006-06-16 | 2008-01-08 | Via Technologies, Inc. | N-domino register with accelerated non-discharge path |
US7332938B2 (en) | 2006-06-23 | 2008-02-19 | The Curators Of The University Of Missouri | Domino logic testing systems and methods |
US7348806B2 (en) | 2006-08-11 | 2008-03-25 | Via Technologies, Inc. | Accelerated N-channel dynamic register |
US7382161B2 (en) | 2006-08-11 | 2008-06-03 | Via Technologies, Inc. | Accelerated P-channel dynamic register |
US7710155B2 (en) | 2007-04-20 | 2010-05-04 | Oracle America, Inc. | Dynamic dual output latch |
US7649395B2 (en) * | 2007-05-15 | 2010-01-19 | Ati Technologies Ulc | Scan flip-flop with internal latency for scan input |
US7414436B1 (en) | 2007-10-24 | 2008-08-19 | International Business Machines Corporation | Limited switch dynamic logic cell based register |
US20090108875A1 (en) | 2007-10-24 | 2009-04-30 | International Business Machines Corporation | Structure for a Limited Switch Dynamic Logic Cell Based Register |
US7501850B1 (en) | 2007-12-20 | 2009-03-10 | International Business Machines Corporation | Scannable limited switch dynamic logic (LSDL) circuit |
KR101629249B1 (en) | 2009-06-09 | 2016-06-22 | 삼성전자주식회사 | scan flipflop circuit and scan test circuit |
US7990180B2 (en) | 2009-09-09 | 2011-08-02 | Via Technologies, Inc. | Fast dynamic register |
US8493119B2 (en) | 2010-12-13 | 2013-07-23 | Apple Inc. | Scannable flip-flop with hold time improvements |
-
2013
- 2013-07-25 US US13/951,295 patent/US8928377B2/en active Active
- 2013-07-25 US US13/951,306 patent/US8860463B1/en active Active
-
2014
- 2014-02-07 TW TW103104012A patent/TWI543533B/en active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4849658A (en) * | 1986-08-08 | 1989-07-18 | Hitachi, Ltd. | Dynamic logic circuit including bipolar transistors and field-effect transistors |
US7417465B2 (en) * | 2002-08-14 | 2008-08-26 | Via Technologies, Inc. | N-domino output latch |
US20140049289A1 (en) * | 2012-06-12 | 2014-02-20 | International Business Machines Corporation | Time division multiplexed limited switch dynamic logic |
Also Published As
Publication number | Publication date |
---|---|
TW201442426A (en) | 2014-11-01 |
US20140320188A1 (en) | 2014-10-30 |
US8860463B1 (en) | 2014-10-14 |
US8928377B2 (en) | 2015-01-06 |
TWI543533B (en) | 2016-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9762214B2 (en) | Flip-flop circuit | |
US8656238B2 (en) | Flip-flop circuit and scan flip-flop circuit | |
EP1592133A1 (en) | N-domino output latch with accelerated evaluate path | |
US9564897B1 (en) | Apparatus for low power high speed integrated clock gating cell | |
WO2008138113A1 (en) | Scan flip-flop with internal latency for scan input | |
WO2007046368A1 (en) | Semiconductor integrated circuit | |
US8860463B1 (en) | Fast dynamic register with transparent latch | |
US9473121B1 (en) | Scannable flip-flop and low power scan-shift mode operation in a data processing system | |
US7737757B2 (en) | Low power level shifting latch circuits with gated feedback for high speed integrated circuits | |
US7321243B1 (en) | P-domino register with accelerated non-charge path | |
US5874845A (en) | Non-overlapping clock phase splitter | |
US6744282B1 (en) | Latching dynamic logic structure, and integrated circuit including same | |
US7348806B2 (en) | Accelerated N-channel dynamic register | |
EP1355423A2 (en) | Dynamic to static converter with noise suppression | |
US8037382B2 (en) | Multi-mode programmable scan flop | |
US7961009B2 (en) | Domino logic block having data holding function and domino logic including the domino logic block | |
US7382161B2 (en) | Accelerated P-channel dynamic register | |
US10340900B2 (en) | Sense amplifier flip-flop with embedded scan logic and level shifting functionality | |
US7164293B2 (en) | Dynamic latch having integral logic function and method therefor | |
US7187209B2 (en) | Non-inverting domino register | |
US7193445B2 (en) | Non-inverting domino register | |
US7990180B2 (en) | Fast dynamic register | |
US8330588B2 (en) | Fast repeater latch | |
US7075354B2 (en) | Dynamic multi-input priority multiplexer | |
CN103714860B (en) | Fast dynamic register, register method, integrated circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: VIA TECHNOLOGIES, INC., TAIWAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:QURESHI, IMRAN;REEL/FRAME:031231/0344 Effective date: 20130823 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |