The subject matter disclosed herein generally relates to semiconductor devices. More specifically, the subject matter disclosed herein relates to a flip-flop circuit and layout that optimizes the amount of space (area) used when the flip-flop is laid out on a single diffusion break (SDB) technology.
As technology nodes shrink, it is becoming harder and harder to shrink the area of a semiconductor device, such as a flip-flop. Flip-flop area scaling may be a key metric for new technology nodes in terms of area and number of contacted poly pitches (CPP) used to build a fabricated flip-flop.
An example embodiment provides a flip-flop that may include a pair of primary latches and a secondary latch configured to output a first signal q and a second signal qb that is an inverse of the first signal q. The pair of primary latches may include a gate circuit, a first logic gate, a second logic gate and a third logic gate. The secondary latch may include a fourth logic gate and a fifth logic gate. The gate circuit may be configured to receive as inputs a data signal d, a first intermediate signal p, a first control signal si and a second control signal se, and to output a second intermediate signal pb. The first logic gate may be configured to receive as an input the second intermediate signal pb, a third intermediate signal cb, and to output a fourth intermediate signal c. The second logic gate may be configured to receive as inputs a clock signal clk and the fourth intermediate signal c, and to output the third intermediate signal cb. The third logic gate may be configured to receive as inputs the clock signal clk, the second intermediate signal pb and the third intermediate signal cb, and to output the first intermediate signal p. The fourth logic gate may be configured to receive as inputs the third intermediate signal cb and the second signal qb, and to output the first signal q. The fifth logic gate may be configured to receive as inputs the first intermediate signal p and the first signal q, and to output the second signal qb.
Another example embodiment provides an apparatus that may include a flip-flop arranged on a single diffusion break substrate, a double diffusion break substrate, or an alternative diffusion break substrate. The flip-flop may include a pair of primary latches and a secondary latch configured to output a first signal q and a second signal qb that is an inverse of the first signal q. The pair of primary latches may include a gate circuit, a first logic gate, a second logic gate and a third logic gate. The secondary latch may include a fourth logic gate and a fifth logic gate. The gate circuit may be configured to receive as inputs a data signal d, a first intermediate signal p, a first control signal si and a second control signal se, and to output a second intermediate signal pb. The first logic gate may be configured to receive as an input the second intermediate signal pb, a third intermediate signal cb, and to output a fourth intermediate signal c. The second logic gate may be configured to receive as inputs a clock signal clk and the fourth intermediate signal c, and to output the third intermediate signal cb. The third logic gate may be configured to receive as inputs the clock signal clk, the second intermediate signal pb and the third intermediate signal cb, and to output the first intermediate signal p. The fourth logic gate may be configured to receive as inputs the third intermediate signal cb and the second signal qb, and to output the first signal q. The fifth logic gate may be configured to receive as inputs the first intermediate signal p and the first signal q, and to output the second signal qb.
Still another example embodiment provides a flip-flop that may include a gate circuit, a first logic circuit, a second logic circuit, a third logic circuit, a fourth logic circuit and a fifth logic circuit. The gate circuit may be configured to receive as inputs a data input signal d, a first intermediate signal p, a first control signal si and a second control signal se, and to output a second intermediate signal pb. The first logic gate may be configured to receive as an input the second intermediate signal pb, a third intermediate signal cb, and to output a fourth intermediate signal c. The second logic gate may be configured to receive as inputs a clock signal clk and the fourth intermediate signal c, and to output the third intermediate signal cb. The third logic gate may be configured to receive as inputs the clock signal clk, the second intermediate signal p, the third intermediate signal cb, and to output the first intermediate signal p. The fourth logic gate may be configured to receive as inputs the third intermediate signal cb and a second signal qb, and to output a first signal q. The fifth logic gate may be configured to receive as inputs the first intermediate signal p and the first signal q, and to output the second signal qb.
In the following section, the aspects of the subject matter disclosed herein will be described with reference to exemplary embodiments illustrated in the figures, in which:
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the disclosure. It will be understood, however, by those skilled in the art that the disclosed aspects may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail not to obscure the subject matter disclosed herein.
Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment disclosed herein. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” or “according to one embodiment” (or other phrases having similar import) in various places throughout this specification may not be necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner in one or more embodiments. In this regard, as used herein, the word “exemplary” means “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not to be construed as necessarily preferred or advantageous over other embodiments. Also, depending on the context of discussion herein, a singular term may include the corresponding plural forms and a plural term may include the corresponding singular form. It is further noted that various figures (including component diagrams) shown and discussed herein are for illustrative purpose only, and are not drawn to scale. Similarly, various waveforms and timing diagrams are shown for illustrative purpose only. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, if considered appropriate, reference numerals have been repeated among the figures to indicate corresponding and/or analogous elements.
The terminology used herein is for the purpose of describing particular exemplary embodiments only and is not intended to be limiting of the claimed subject matter. As used herein, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. The terms “first,” “second,” etc., as used herein, are used as labels for nouns that they precede, and do not imply any type of ordering (e.g., spatial, temporal, logical, etc.) unless explicitly defined as such. Furthermore, the same reference numerals may be used across two or more figures to refer to parts, components, blocks, circuits, units, or modules having the same or similar functionality. Such usage is, however, for simplicity of illustration and ease of discussion only; it does not imply that the construction or architectural details of such components or units are the same across all embodiments or such commonly-referenced parts/modules are the only way to implement the teachings of particular embodiments disclosed herein.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this subject matter belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
The subject matter discloses herein relates to a flip-flop architecture having an optimized schematic and layout that saves space (area) and power when fabricated on a single diffusion break (SDB) standard-cell substrate. The flip-flop architecture may also be fabricated on double diffusion break (DDB), multi-diffusion break (MDB) and/or alternative diffusion break (ADB) substrates. The flip-flop architecture provides both NAND-based flip-flops and NOR-based flip-flops, and both types of flip-flops output both q and qb output signals. Both types of flip-flops use full complementary metal-oxide-semiconductor (CMOS) logic so both types of flip-flops may be used for low-voltage (LV) applications. This is in contrast to transmission-gate-type flip-flops, such as depicted in
In one embodiment, a flip-flop may include a scan-optimized input gate that saves one CPP of area and if fabricated on an SDB substrate optimizes the area used by the flip-flop in terms of CPP units. Although SDB provides an area efficiency for the subject matter disclosed herein, the flip-flop circuit configuration disclosed herein may also be fabricated on a DDB, an MDB and/or an ADB substrates for the number of diffusion breaks that may be left between transistors. Additionally, in one embodiment, a flip-flop may provide an efficient implementation of resetb and setb input signals, so a circuit design may take advantage of a negative polarity of set and reset input signal, thereby further saving space. Additional embodiments of flip-flops may be generated by 1) switching the q and qb signal designation, thereby inverting the input polarity of d and changing a set signal to be a reset signal and changing a reset signal to be a set signal; 2) bubble pushing to convert a flip-flop from a NAND-based topology to a NOR-based topology; 3) inverters and/or buffers may be inserted on input and/or output signals to obtain a desired polarity or output drive strengths; and 4) the q and/or the qb output may be tapped depending upon application needs. These techniques may help generate an optimized area efficient layout for a full family of flip-flops and different possible embodiments.
The NAND gate 113 receives as inputs an intermediate signal pb, an intermediate signal cb, and outputs an intermediate signal c. The NAND gate 114 receives as inputs the clock signal clk and the intermediate signal c, and outputs the intermediate signal cb. The NAND gate 115 receives as inputs the clock signal clk, the intermediate signal pb and the intermediate signal cb, and outputs the intermediate signal p. The NAND gate 116 receives as inputs the data input signal d and the intermediate signal p, and outputs the intermediate signal pb. The signal names p, pb, c and cb for the flip-flop 100 and for other flip-flops disclosed herein have been arbitrarily selected for the internal signals of the corresponding flip-flop. Additionally, the internal signals for the flip-flop 100 and other flip-flops described herein are not inverses of each other in all operating modes.
The NAND gate 117 receives as inputs the intermediate signal cb and an output signal qb, and outputs the output signal q. The NAND gate 118 receives as inputs the output signal q and the intermediate signal p, and outputs the output signal qb.
The NOR gate 123 receives as inputs an intermediate signal pb, an intermediate signal cb, and outputs an intermediate signal c. The NOR gate 124 receives as inputs an inverted clock signal clkb and the intermediate signal c, and outputs the intermediate signal cb. The NOR gate 125 receives as inputs the inverted clock signal clkb, the intermediate signal pb and the intermediate signal cb, and outputs the intermediate signal p. The NOR gate 126 receives as inputs the data input signal d and the intermediate signal p, and outputs the intermediate signal pb.
The NOR gate 127 receives as inputs the intermediate signal cb and the output signal qb, and outputs the output signal q. The NOR gate 118 receives as inputs the output signal q and the intermediate signal p, and outputs the output signal qb.
It is important that the cross-couple layout of the transmission gates of the flip-flop 100 be efficient so that the flip-flop occupies as small an area as possible. In some embodiments of the flip-flops, tristate inverters are used to replace the transmission gates to provide a full-CMOS, low-voltage operation. Such tristate-inverter-based flip-flops, however, involve more transistors than transmission-gate-based flip-flops and, therefore, occupy a greater area than the transmission-gate-based flip-flops.
The input gate circuit 203 may receive as inputs the data input d, the scan input signal si, the scan enable signal se and an intermediate signal p, and outputs an intermediate signal pb. The NAND gate 204 may receive as inputs the intermediate signal pb, an intermediate signal cb, and outputs an intermediate signal c. The NAND gate 205 may receive as inputs the clock signal clk and the intermediate signal c, and outputs the intermediate signal cb. The NAND gate 206 may receive as inputs the clock signal clk, the intermediate signal pb and the intermediate signal cb, and outputs the intermediate signal p.
The NAND gate 207 may receive as inputs the intermediate signal cb and the output signal q, and outputs the output signal q. The NAND gate 208 may receive as inputs the output signal q and the intermediate signal p, and outputs the output signal qb.
The PMOS transistor 210 may have a first source/drain region coupled to a Vdd power supply voltage, a second source/drain region, and a gate terminal coupled to the data input signal d. The PMOS transistor 211 may have a first source/drain region coupled to the second source/drain region of the PMOS transistor 210, a second source/drain region that outputs the intermediate signal pb, and a gate terminal coupled to the scan enable signal se. The PMOS transistor 212 may have a first source/drain region coupled to the Vdd power supply voltage, a second source/drain region, and a gate terminal coupled to the scan input signal si. The PMOS transistor 213 may have a first source/drain region coupled to the second source/drain region of the PMOS transistor 212, a second source/drain region that outputs the intermediate signal pb, and a gate terminal coupled to a signal seb, which is an inversion of the scan enable signal se. The PMOS transistor 214 may have a first source/drain region coupled to the Vdd power supply voltage, a second source/drain region that outputs the intermediate signal pb, and a gate terminal coupled to the intermediate signal p. The PMOS transistor 215 may include a first source/drain region coupled to the Vdd power supply voltage, a second source/drain region to output the signal seb, and a gate terminal coupled to the scan enable signal se. A PMOS transistor 2214 indicated by a dashed line may be connected in the same way as the PMOS transistor 214; however, the PMOS transistor 2214 may be redundant and, therefore, optional. Choice of using the PMOS transistor 2214 may be based on layout efficiency. The PMOS transistor 2214 may not be needed for circuit operation. To reduce capacitance and power inside the flip-flop 200, the PMOS transistor 2214 may be replaced with a dummy transistor.
The NMOS transistor 216 may include a first source/drain region that outputs the intermediate signal pb, a second source/drain region, and a gate terminal coupled to the data input signal d. The NMOS transistor 217 may include a first source/drain region coupled to the second source/drain region of the NMOS transistor 216, a second source/drain region, and a gate terminal coupled to the intermediate signal p. The NMOS transistor 218 may include a first source/drain region coupled to the second source/drain region of the NMOS transistor 217, a second source/drain region coupled to ground, and a gate terminal coupled to the signal seb. The NMOS transistor 219 may include a first source/drain region coupled to the second source/drain region of the NMOS transistor 217, a second source/drain region coupled to ground, and a gate terminal coupled to the scan input signal si. The NMOS transistor 220 may include a first source/drain region to output the intermediate signal pb, a second source/drain region, and a gate terminal coupled to the scan enable signal se. The NMOS transistor 221 may include a first source/drain region coupled to the second source/drain region of the NMOS transistor 220, a second source/drain region, and a gate terminal coupled to the scan input signal si. The NMOS transistor 222 may include a first source/drain region coupled to the second source/drain region of the NMOS transistor 221, a second source/drain region coupled to ground, and a gate terminal coupled to the intermediate signal p. The NMOS transistor 223 may include a first source/drain region coupled to the second source/drain region of the PMOS transistor 215, a second source/drain region coupled to ground, and a gate terminal coupled to the scan enable signal se.
It should be noted that if there is no risk of a glitch occurring in the intermediate signal pb if the scan signal si equals the data input d and the signal seb changes, then the portion 230 (i.e., NMOS transistor 219) of the input gate circuit 203 may be omitted. For most flip-flop circuits and designs disclosed herein, it is a good, very low risk assumption that that scan signal si and the scan enable signal se changing at the same time causes a glitch, so the input NMOS transistor 219 may often be omitted and replaced by a dummy or floating gate depending on the preference of a layout designer.
By flipping the polarity of the q and qb output signals of the flip-flop 400, the flip-flop 400 of
Similar to the flip-flops 200 and 400, the flip-flop 500 may include a primary latch pair 501 and a secondary latch 502. The primary latch pair 401 may include NAND gates 503-506, and the secondary latch 502 may include NAND gates 507 and 508.
The NAND gate 503 may receive as inputs the input signal resetb, an intermediate signal pb, an intermediate signal cb, and outputs an intermediate signal c. The NAND gate 504 may receive as inputs the clock signal clk and the intermediate signal c, and outputs the intermediate signal cb. The NAND gate 505 may receive as inputs the clock signal clk, the intermediate signal pb and the intermediate signal cb, and outputs the intermediate signal p. The NAND gate 506 may receive as inputs either an inverted data input d or an inverted scan signal si and the intermediate signal p, and outputs the intermediate signal pb. A multiplexer 509 may receive the data input signal d and the scan input signal si, and outputs an inverted version of either signal depending on whether the flip-flop is in a normal mode (data input signal d) or a scan mode (scan input signal si). The multiplexer 509 is controlled by the scan enable signal se.
The NAND gate 507 may receive as inputs the input signal resetb, the intermediate signal cb and the output signal q, and outputs the output signal qb. The NAND gate 508 may receive as inputs as inputs the output signal qb and the intermediate signal p, and outputs the output signal q.
The flip-flop shown in
The input signal set is input to the inverter 611, and the output signal setb of the inverter 611 is input to the NAND gate 504 and the NAND gate 508. The input signal reset is input to the inverter 612, and the output signal of the inverter 612 is input to the NAND gate 503 and the NAND gate 507.
The input gate circuit 703 may receive as inputs the data input signal d, an intermediate signal p, the scan input signal si and the scan enable signal se, and outputs an intermediate signal pb. The NOR gate 704 may receive as inputs the reset input signal reset, an intermediate signal pb, an intermediate signal cb, and outputs an intermediate signal c. The NOR gate 705 may receive as inputs an inverted clock signal clkb and the intermediate signal c, and outputs the intermediate signal cb. The NOR gate 706 may receive as inputs the inverted clock signal clkb, the intermediate signal pb and the intermediate signal cb, and outputs the intermediate signal p. An inverter 709 may receive the clock signal clk and outputs the inverted clock signal clkb.
The gate circuit 703 may perform the function of a scan multiplexer. For example, an inverting multiplexing gate between the input signal d and the scan input signal si that may be controlled by scan enable signal se and then combined with a subsequent NOR gate. There would be, however, an extra inversion on the data path in comparison to the input gate circuit 703. Merging the logic function into the input gate circuit 703 removes an inversion and may be implemented in minimal area. It may be useful to have both a configuration of the gate circuit 203 and a configuration of an inverting multiplexing gate with a subsequent NAND gate available to provide a full standard cell (stdcell) library that includes all families of flip-flops and all variations of flip-flops and signal polarities that may be used by designers,
The NOR gate 707 may receive as inputs the reset input signal reset, the intermediate signal cb and the output signal q, and outputs the output signal q. The NOR gate 708 may receive as inputs the output signal q and the intermediate signal p, and outputs the output signal qb.
The PMOS transistor 710 may have a first source/drain region coupled to a Vdd power supply voltage, a second source/drain region, and a gate terminal coupled to the input scan enable se. The PMOS transistor 711 may have a first source/drain region coupled to the Vdd power supply voltage, a second source/drain region coupled to the second source/drain region of the PMOS transistor 710, and a gate terminal coupled to the input scan signal si. It should be noted that the PMOS transistor 711 may not be needed if it is determined that there is no risk of a glitch occurring in the intermediate signal pb when the inverted signal seb changes and the scan input signal si equals the data input signal d. For most flip-flop circuits and designs disclosed herein, it is a good, very low risk assumption that that scan signal si and the scan enable signal se changing at the same time causes a glitch, so the input PMOS transistor 711 may often be omitted and replaced by a dummy or floating gate depending on the preference of a layout designer.
The PMOS transistor 712 may have a first source/drain region coupled to the second source/drain region of the PMOS transistor 710, a second source/drain region, and a gate terminal coupled to the intermediate signal p. The PMOS transistor 713 may have a first source/drain region coupled to the second source/drain region of the PMOS 712 transistor, a second source/drain region that outputs the intermediate signal pb, and a gate terminal coupled to the input data signal d. The PMOS transistor 714 may have a first source/drain region coupled to the Vdd power supply voltage, a second source/drain region, and a gate terminal coupled to the scan input signal si. The PMOS transistor 715 may have a first source/drain region coupled to the second source/drain region of the PMOS transistor 714, a second source/drain region, and a gate terminal coupled to the intermediate signal p. The PMOS transistor 716 may have a first source/drain region coupled to the second source/drain region of the PMOS transistor 615, a second source/drain region to output the intermediate signal pb, and a gate terminal coupled to a signal seb, which is an inverted signal of the scan enable signal se. The PMOS transistor 717 may have a first source/drain region coupled to the Vdd power supply voltage, a second source/drain region to output the signal seb, and a gate terminal coupled to the scan enable signal se.
The NMOS transistor 718 may include a first source/drain region that outputs the intermediate signal pb, a second source/drain region, and a gate terminal coupled to the scan enable signal se. The NMOS transistor 719 may include a first source/drain region coupled to the second source/drain region of the NMOS transistor 718, a second source/drain region, and a gate terminal coupled to the scan input signal si. The NMOS transistor 720 may include a first source/drain region that outputs the intermediate signal pb, a second source/drain region, and a gate terminal coupled to the signal seb. The NMOS transistor 721 may include a first source/drain region coupled to the second source/drain region of the NMOS transistor 720, a second source/drain region coupled to ground, and a gate terminal coupled to the input data signal d. The NMOS transistor 722 may include a first source/drain region to output the intermediate signal pb, a second source/drain region coupled to ground, and a gate terminal coupled to the intermediate signal p. The NMOS transistor 723 may include a first source/drain region that output the coupled to the second source/drain region of the NMOS transistor 720, a second source/drain region, and a gate terminal coupled to the scan input signal si. An NMOS transistor 2722 indicated by a dashed line may be connected in the same way as the NMOS transistor 722; however, the NMOS transistor 2722 may be redundant and, therefore, optional. Choice of using the NMOS transistor 2722 may be based on layout efficiency. The NMOS transistor 2722 may not be needed for circuit operation. To reduce capacitance and power inside the flip-flop 700, the NMOS transistor 2722 may be replaced with a dummy transistor.
By flipping the polarity of the q and qb output signals, the flip-flop 700 may be configured to be used for a scan-in flip-flop having a set input signal.
Similar to the flip-flop 700, the flip-flop 800 may include a primary latch 801 and a secondary latch 802. The primary latch 801 may include NOR gates 803-806, and the secondary latch 802 may include NOR gates 807 and 808.
The NOR gate 803 may receive as inputs the input signal set, an intermediate signal pb, an intermediate signal cb, and outputs an intermediate signal c. The NOR gate 804 may receive as inputs an inverted clock signal clkb and the intermediate signal c, and outputs the intermediate signal cb. The NOR gate 805 may receive as inputs the inverted clock signal clkb, the intermediate signal pb and the intermediate signal cb, and outputs the intermediate signal p. The NOR gate 806 may receive as inputs either an inverted data input signal d or an inverted scan input signal si and the intermediate signal p, and outputs the intermediate signal pb. An inverter 809 may receive the clock signal clk and outputs the inverted clock signal clkb. A multiplexer 810 may receive the data input signal d and the scan input signal si, and outputs an inverted version of either signal depending on whether the flip-flop is in a normal mode (data input signal d) or a scan mode (scan input signal si). The multiplexer 810 may be controlled by the scan enable signal se.
The NOR gate 807 may receive as inputs the input signal set, the intermediate signal cb and the output signal q, and outputs the output signal qb. The NOR gate 808 may receive as inputs as inputs the output signal qb and the intermediate signal p, and outputs the output signal q.
The NOR gate 903 may receive as inputs the input signal reset, an intermediate signal pb, an intermediate signal cb, and outputs an intermediate signal c. The NOR gate 904 may receive as inputs the input signal set, an inverted clock signal clkb and the intermediate signal c, and outputs the intermediate signal cb. The NOR gate 905 may receive as inputs the inverted clock signal clkb, the intermediate signal pb and the intermediate signal cb, and outputs the intermediate signal p. The NOR gate 906 may receive as inputs the data input signal d, the input signal set, and the intermediate signal p, and outputs the intermediate signal pb. An inverter 909 may receive the clock signal clk and outputs the inverted clock signal clkb.
The NOR gate 907 receives as inputs the input signal reset, the intermediate signal cb and the output signal qb, and outputs the output signal q. The NOR gate 908 may receive as inputs the input signal set, the output signal q and the intermediate signal p, and outputs the output signal qb.
Based on the details discussed herein, a family of flip-flops may be created for an actual standard cell (stdcell) library. Many of the flip-flops according to the subject matter disclosed herein save area one to two CPPs and also provided a reduced internal flip-flop clock power in comparison to conventional implementations. Table 1 summarizes some of the different families of flip-flops that may be created based on application needs.
As will be recognized by those skilled in the art, the innovative concepts described herein can be modified and varied over a wide range of applications. Accordingly, the scope of claimed subject matter should not be limited to any of the specific exemplary teachings discussed above, but defined by the following claims.
This patent application claims the priority benefit under 35 U.S.C. § 119(e) of U.S. Provisional Patent Application No. 62/739,799, filed on Oct. 1, 2018, the disclosure of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62739799 | Oct 2018 | US |