# US 7,746,116 B1 · Method and apparatus to clock-gate a digital integrated circuit by use of feed-forward quiescent input analysis

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,746,116 B1
- Document ID: US7746116B1
- Status: Granted
- Kind: B1
- Application number: 12/356,797
- Filed: 2009-01-21
- Granted: 2010-06-29
- Earliest claimed: 2009-01-21
- Assignees: Xilinx, Inc.
- Inventors: Sridhar Narayanan; Chaiyasit Manovit; Sridhar Subramanian; Gerald Gras
- Web page: https://patentgrep.com/patent/US7746116B1

## CPC

- H03K 19/0016: {by using a control or a clock signal, e.g. in order to apply power supply}
- H03K: PULSE TECHNIQUE (measuring pulse characteristics G01R; modulating sinusoidal oscillations with pulses H03C; transmission of digital information H04L; discriminator circuits detecting phase difference between two signals by counting or integrating cycles of oscillation H03D3/04; automatic control, starting, synchronisation or stabilisation of generators of electronic oscillations or pulses where the type of generator is irrelevant or unspecified H03L; coding, decoding or code conversion, in general H03M)

## Abstract

One aspect of the invention relates to a device including a first storage element and a first clock gating element, wherein a data input of the first storage element is coupled to an output of a combinatorial logic (CL) element, wherein the first storage element is clock-gated with the first clock gating element using a first clock enable signal to generate a clock signal for the first storage element, wherein the first clock enable signal is generated to suppress the clock signal in the first clock gating element when each of the at least one data input of the CL element is in a second quiescence inducing condition with respect to the clock signal at the same time as when each of the at least one control input of the CL element is in the first quiescence inducing condition.

## Claims

### Claim 1

A device comprising:
a first storage element and a first clock gating element, wherein a data input of the first storage element is coupled to an output of a combinatorial logic (CL) element, wherein the first storage element is clock-gated with the first clock gating element using a first clock enable signal to generate a clock signal for the first storage element; and
the CL element, wherein the output of the CL element is exclusively sensitized from at least one data input of the CL element by at least one control input of the CL element when each of the at least one control input of the CL element is in a first quiescence inducing condition with respect to the clock signal, wherein each of the at least one control input of the CL element does not change state between previous and current clock periods in the first quiescence inducing condition,
wherein the first clock enable signal is generated, using the at least one data input of the CL element, the at least one control input of the CL element, and the clock signal, to suppress the clock signal in the first clock gating element when each of the at least one data input of the CL element is in a second quiescence inducing condition with respect to the clock signal at the same time as when each of the at least one control input of the CL element is in the first quiescence inducing condition, wherein each of the at least one data input of the CL element does not change state from the previous clock period to the current clock period in the second quiescence inducing condition.

### Claim 2 (depends on 1)

The device of claim 1, further comprising:
a quiescent condition detector configured to compare a signal of the at least one control input of the CL element and the at least one data input of the CL element in the current clock period with a state of the signal in the previous clock period for detecting the first and second quiescence inducing conditions to generate the first clock enable signal.

### Claim 3 (depends on 1)

The device of claim 1, further comprising:
a second storage element and a second clock-gating element,
wherein a signal of the at least one data input of the CL element is coupled to an output of the second storage element clock-gated with the second clock gating element using a second clock enable signal to generate the clock signal for the second storage element, and
wherein the first clock enable signal is generated using the second clock enable signal.

### Claim 4

A computer readable medium storing a representation of a circuit, the representation comprising:
a first portion representing a first storage element and a first clock gating element in the circuit, wherein a data input of the first storage element is coupled to an output of a combinatorial logic (CL) element in the circuit, wherein the first storage element is clock-gated with the first clock gating element using a first clock enable signal to generate a clock signal for the first storage element; and
a second portion representing the CL element in the circuit, wherein the output of the CL element is exclusively sensitized from at least one data input of the CL element by at least one control input of the CL element when each of the at least one control input of the CL element is in a first quiescence inducing condition with respect to the clock signal, wherein each of the at least one control input of the CL element does not change state between previous and current clock periods in the first quiescence inducing condition,
wherein the first clock gating element is configured to generate the first clock enable signal, using the at least one data input of the CL element, the at least one control input of the CL element, and the clock signal, to suppress the clock signal in the first clock gating element when each of the at least one data input of the CL element is in a second quiescence inducing condition with respect to the clock signal at the same time as when each of the at least one control input of the CL element is in the first quiescence inducing condition, wherein each of the at least one data input of the CL element does not change state from the previous clock period to the current clock period in the second quiescence inducing condition.

### Claim 5 (depends on 4)

The computer readable medium of claim 4, the representation further comprising:
a third portion representing a quiescent condition detector configured at least to compare a signal of the at least one control input of the CL element and the at least one data input of the CL element in the current clock period with a state of the signal in the previous clock period for detecting the first and second quiescence inducing conditions to generate the first clock enable signal.

### Claim 6 (depends on 4)

The computer readable medium of claim 4, the representation further comprising:
a fourth portion representing a second storage element and a second clock-gating element in the circuit,
wherein a signal of the at least one data input of the CL element is coupled to an output of the second storage element clock-gated with the second clock gating element using a second clock enable signal to generate the clock signal for the second storage element, and
wherein the first clock enable signal is generated using the second clock enable signal.

### Claim 7

A method to clock-gate a circuit, comprising:
identifying a first storage element and a combinatorial logic (CL) element in the circuit, wherein the first storage element is clocked by a clock signal, wherein a data input of the first storage element is coupled to an output of the CL element in the circuit;
identifying a first quiescence inducing condition of at least one control input of the CL element with respect to the clock signal, wherein each of the at least one control input of the CL element does not change state between previous and current clock periods in the first quiescence inducing condition, wherein the output of the CL element is exclusively sensitized from at least one data input of the CL element by the at least one control input of the CL element when each of the at least one control input of the CL element is in the first quiescence inducing condition;
identifying a second quiescence inducing condition of the at least one data input of the CL element with respect to the clock signal, wherein each of the at least one data input of the CL element does not change state between previous and current clock periods in the second quiescence inducing condition,
providing a first clock gating element, wherein the first storage element is clock-gated with the first clock gating element using a first clock enable signal to generate a clock signal for the first storage element,
wherein the first clock gating element is configured to generate the first clock enable signal, using the at least one data input of the CL element, the at least one control input of the CL element, and the clock signal, to suppress the clock signal in the first clock gating element when each of the at least one data input of the CL element is in the second quiescence inducing condition at the same time as when each of the at least one control input of the CL element is in the first quiescence inducing condition.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
providing a quiescent condition detector configured to compare a signal of the at least one control input of the CL element and the at least one data input of the CL element in the current clock period with a state of the signal in the previous clock period for detecting the first and second quiescence inducing conditions to generate the first clock enable signal.

### Claim 9 (depends on 7)

The method of claim 7, further comprising:
identifying a signal of the at least one data input of the CL element being coupled to an output of a second storage element clock-gated with a second clock gating element using a second clock enable signal to generate the clock signal for the second storage element; and
providing a quiescent condition detector configured at least to generate the first clock enable signal using the second clock enable signal.

### Claim 10 (depends on 7)

The method of claim 7, wherein the circuit comprises a plurality of storage elements, the method further comprising:
identifying a portion of the plurality of storage elements as a first partition comprising the first storage element;
determining a clock efficiency metric and an area metric if the portion of the plurality of storage elements in the first partition is clocked using the clock signal and clock-gated with the first clock gating element using the first clock enable signal; and
presenting the clock efficiency metric and the area metric to a user for determining a final clock gating partition of the circuit.

### Claim 11

A computer readable medium storing instructions when executed by a processor comprising functionalities for:
identifying a first storage element in the circuit, wherein the first storage element is clocked by a clock signal, wherein a data input of the first storage element is coupled to an output of a combinatorial logic (CL) element in the circuit;
identifying a first quiescence inducing condition of the at least one control input of the CL element with respect to the clock signal, wherein each of the at least one control input of the CL element does not change state between previous and current clock periods in the first quiescence inducing condition, wherein the output of the CL element is exclusively sensitized from at least one data input of the CL element by the at least one control input of the CL element when each of the at least one control input of the CL element is in the first quiescence inducing condition;
identifying a second quiescence inducing condition of at least one data input of the CL element with respect to the clock signal, wherein each of the at least one data input of the CL element does not change state between previous and current clock periods in the second quiescence inducing condition;
providing a first clock gating element, wherein the first storage element is clock-gated with the first clock gating element using a first clock enable signal to generate a clock signal for the first storage element; and
wherein the first clock gating element is configured to generate the first clock enable signal, using the at least one data input of the CL element, the at least one control input of the CL element, and the clock signal, to suppress the clock signal in the first clock gating element when each of the at least one data input of the CL element is in the second quiescence inducing condition at the same time as when each of the at least one control input of the CL element is in the first quiescence inducing condition.

### Claim 12 (depends on 11)

The computer readable medium of claim 11, the instructions when executed by a processor further comprising functionalities for:
providing a quiescent condition detector configured at least to compare a signal of the at least one control input of the CL element and the at least one data input of the CL element in the current clock period with a state of the signal in the previous clock period for detecting the first and second quiescence inducing conditions to generate the first clock enable signal.

### Claim 13 (depends on 11)

The computer readable medium of claim 11, the instructions when executed by a processor further comprising functionalities for:
identifying a signal of the at least one data input of the CL element being coupled to an output of a second storage element clock-gated with a second clock gating element using a second clock enable signal to generate the clock signal for the second storage element; and
providing a quiescent condition detector configured to generate the first clock enable signal using the second clock enable signal.

### Claim 14 (depends on 11)

The computer readable medium of claim 11, the instructions when executed by a processor further comprising functionalities for:
identifying a portion of the plurality of storage elements as a first partition comprising the first storage element;
determining a clock efficiency metric and an area metric if the portion of the plurality of storage elements in the first partition is clocked using the clock signal and clock-gated with the first clock gating element using the first clock enable signal; and
presenting the clock efficiency metric and the area metric to a user for determining a final clock gating partition of the circuit.
