# US 8,788,997 B1 · Method for simplifying RTL schematic by grouping nodes into a cloud

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

- Number: US 8,788,997 B1
- Document ID: US8788997B1
- Status: Granted
- Kind: B1
- Application number: 13/921,926
- Filed: 2013-06-19
- Granted: 2014-07-22
- Earliest claimed: 2008-05-28
- Assignees: Altera Corporation
- Applicants: Altera Corporation
- Inventors: Choi Phaik Chin; Denis Chuan Hu Goh
- Web page: https://patentgrep.com/patent/US8788997B1

## CPC

- G06F 30/30: Circuit design
- G06F 2111/12: Symbolic schematics
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The number of nodes in an RTL schematic is reduced in a process of cloud grouping, a process whereby nodes that are not specified to be of interest will be grouped into a cloud to the extent possible. This results in a much simplified schematic as the remaining nodes within the schematic will be those nodes that the users desire to see. Analysis of all nodes including those designated as cut nodes is performed to determine what circuitry can or cannot be simplified. The user will also have the option to revert to the original schematic if viewing more than the cut nodes is desirable.

## Claims

### Claim 1

A method of depicting and designing circuitry, the method comprising:
receiving a design including a plurality of circuit nodes and a plurality of paths interconnecting the circuit nodes;
enabling a user to designate selected circuit nodes of the plurality as cut nodes;
assessing that a node of the circuit nodes is a cut node;
determining how many input ports there are for the cut node;
for each input port of the cut node determining which of the plurality of circuit nodes serves as a source node for the input port;
for a node determined to be a source node, determining that the source node has not been designated a cut node;
determining the cut node is associated with a cloud;
inserting, by a processor, the source node into the cloud;
after a node other than a cut node is inserted into a cloud, checking every input of the inserted node;
for each input of the inserted node determining which of the plurality of circuit nodes serves as a source node for the inserted node; and
for each of the circuit nodes determined to serve as a source node for the inserted node, assessing that the source node to the inserted node is other than a cut node, and inserting the node into the cloud.

### Claim 2 (depends on 1)

The method of claim 1, wherein enabling a user to specify select circuit nodes as cut nodes comprises enabling a user to specify a DSP or RAM as a cut node, said cloud node having a single output feeding directly to an input of the DSP or RAM specified as a cut node.

### Claim 3 (depends on 1)

The method of claim 1, wherein enabling a user to specify select circuit nodes as cut nodes comprises enabling a user to specify a register as a cut node, said cloud node having a single output feeding directly to an input of the register specified as a cut node.

### Claim 4 (depends on 1)

The method of claim 1, wherein the cut node is a first component type, the first component type selected from the group consisting of: registers, combinatorial logic, and I/O pins.

### Claim 5 (depends on 1)

The method of claim 1, wherein the cut node is a first component type, the source node is a second component type, wherein the first component type is a register, and the second component type is combinatorial logic.

### Claim 6 (depends on 1)

The method of claim 1, wherein the cloud includes combinatorial logic.

### Claim 7 (depends on 1)

The method of claim 1, wherein a second cut node is associated with a second cloud, the cloud includes a first set of combinatorial logic, the second cloud includes a second set of combinatorial logic, the first set of combinatorial logic and the second set of combinatorial logic including the source node.

### Claim 8 (depends on 1)

The method of claim 1, wherein the cloud has an input and an output, the output provided to the cut node, the input provided by a second cut node.

### Claim 9

One or more computing devices for depicting and designing circuitry, the one or more computing devices comprising:
one or more processors operable to execute one or more instructions to:
receive a design including a plurality of circuit nodes and a plurality of paths interconnecting the circuit nodes;
enable a user to designate selected circuit nodes of the plurality as cut nodes;
assess whether a node of the circuit nodes is a cut node;
determine how many input ports there are for the cut node;
for each input port of the cut node determining which of the plurality of circuit nodes serves as a source node for the input port;
for a node determined to be a source node, determining that the source node has not been designated a cut node;
determine the cut node is associated with a cloud;
insert the source node into the cloud;
after a node other than a cut node is inserted into a cloud, check every input of the inserted node;
for each input of the inserted node determine which of the plurality of circuit nodes serves as a source node for the inserted node; and
for each of the circuit nodes determined to serve as a source node for the inserted node, assess that the source node to the inserted node is other than a cut node, and insert the node into the cloud.

### Claim 10 (depends on 9)

The one or more computing devices of claim 9, wherein enabling a user to specify select circuit nodes as cut nodes comprises enabling a user to specify a DSP or RAM as a cut node, said cloud node having a single output feeding directly to an input of the DSP or RAM specified as a cut node.

### Claim 11 (depends on 9)

The one or more computing devices of claim 9, wherein enabling a user to specify select circuit nodes as cut nodes comprises enabling a user to specify a register as a cut node, said cloud node having a single output feeding directly to an input of the register specified as a cut node.

### Claim 12 (depends on 9)

The one or more computing devices of claim 9, wherein the cut node is a first component type, the first component type selected from the group consisting of: registers, combinatorial logic, and I/O pins.

### Claim 13 (depends on 9)

The one or more computing devices of claim 9, wherein the cut node is a first component type, the source node is a second component type, wherein the first component type is a register, and the second component type is combinatorial logic.

### Claim 14 (depends on 9)

The one or more computing devices of claim 9, wherein the cloud includes combinatorial logic.

### Claim 15 (depends on 9)

The one or more computing devices of claim 9, wherein a second cut node is associated with a second cloud, the cloud includes a first set of combinatorial logic, the second cloud includes a second set of combinatorial logic, the first set of combinatorial logic and the second set of combinatorial logic including the source node.

### Claim 16 (depends on 9)

The one or more computing devices of claim 9, wherein the cloud has an input and an output, the output provided to the cut node, the input provided by a second cut node.

### Claim 17

A non-transitory computer readable medium having instructions stored thereon, the instructions executable by a processor to cause a computing device to:
receive a design including a plurality of circuit nodes and a plurality of paths interconnecting the circuit nodes;
enable a user to designate selected circuit nodes of the plurality as cut nodes;
assess whether a node of the circuit nodes is a cut node;
determine how many input ports there are for the cut node;
for each input port of the cut node determine which of the plurality of circuit nodes serves as a source node for the input port;
for a node determined to be a source node, determine that the source node has not been designated a cut node;
determine the cut node is associated with a cloud;
inserting the source node into the cloud;
after a node other than a cut node is inserted into a cloud, check every input of the inserted node;
for each input of the inserted node determine which of the plurality of circuit nodes serves as a source node for the inserted node; and
for each of the circuit nodes determined to serve as a source node for the inserted node, assess that the source node to the inserted node is other than a cut node, and insert the node into the cloud.

### Claim 18 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein a second cut node is associated with a second cloud, the cloud includes a first set of combinatorial logic, the second cloud includes a second set of combinatorial logic, the first set of combinatorial logic and the second set of combinatorial logic including the source node.
