Block virtualization for multi-threaded electronic design automation read/write database access
AssigneeSynopsys, Inc.
InventorsJohn R. Chase, Paul M. Furnanz, Darren C. Cronquist
Life of this patent
Estimating the term…
Abstract
A method includes accessing, by a processing device, an electronic design of an integrated circuit. The method further includes generating a virtual block corresponding to an actual block of the electronic design, the virtual block including a plurality of virtual subblocks corresponding to a plurality of actual subblocks in the actual block. The method also includes cloning or shallow copying contents of the plurality of actual subblocks in the corresponding virtual subblocks, wherein the cloned contents in the virtual subblocks are linked to the corresponding actual subblocks and no data is copied.
Claims18
A method, comprising:
- accessing, by a processing device, an electronic design of an integrated circuit, the electronic design comprising modeled circuitry components;
- generating a virtual block corresponding to an actual block of the electronic design, the virtual block comprising a plurality of virtual subblocks corresponding to a plurality of actual subblocks in the actual block, wherein the processing device is configured to operate under a data policy, and under the data policy, the processing device is to perform at least one of a multi-threaded read operation of the actual block or a single-threaded write to the actual block;
- cloning contents of the plurality of actual subblocks in the corresponding virtual subblocks, wherein the cloned contents in the virtual subblocks are linked to the corresponding actual subblocks;
- copying contents of one or more of the actual subblocks to the corresponding virtual subblocks, wherein a memory location of the content copied to the virtual subblocks differs from a memory location of the content in the actual subblocks;
- and
- mapping the memory location of the content copied to the virtual subblocks and the memory location of the content in the actual subblocks in a pointer map.
A non-transitory computer-readable medium storing instructions that, when executed, cause a processing device to:
- generate a virtual block corresponding to an actual block of an electronic design of an integrated circuit, the electronic design comprising modeled circuitry components, wherein the virtual block comprises a plurality of virtual subblocks corresponding to a plurality of actual subblocks in the actual block, wherein the processing device is configured to operate under a data policy, and under the data policy, the processing device is to perform at least one of a multi-threaded read operation of the actual block or a single-threaded write to the actual block;
- clone contents of the plurality of actual subblocks in the corresponding virtual subblocks, wherein the cloned contents in the virtual subblocks are linked to the corresponding actual subblocks and no data is copied;
- copy contents of one or more of the actual subblocks to the corresponding virtual subblocks, wherein a memory location of the content copied to the virtual subblocks differs from a memory location of the content in the actual subblocks;
- and
- map the memory location of the content copied to the virtual subblocks and the memory location of the content in the actual subblocks in a pointer map.
A system, comprising:
- a memory;
- and
- a processing device operatively coupled to the memory, the processing device configured to:
- generate a virtual block corresponding to an actual block of an electronic design of an integrated circuit, the electronic design comprising modeled circuitry components, wherein the virtual block comprises a plurality of virtual subblocks corresponding to a plurality of actual subblocks in the actual block, wherein the processing device is configured to operate under a data policy, and under the data policy, the processing device is to perform at least one of a multi-threaded read operation of the actual block or a single-threaded write to the actual block;
- clone contents of the plurality of actual subblocks in the corresponding virtual subblocks, wherein the cloned contents in the virtual subblocks are linked to the corresponding actual subblocks and no data is copied;
- copy contents of one or more of the actual subblocks to the corresponding virtual subblocks, wherein a memory location of the content copied to the virtual subblocks differs from a memory location of the content in the actual subblocks;
- and
- map the memory location of the content copied to the virtual subblocks and the memory location of the content in the actual subblocks in a pointer map.
Dependencies are inferred from the claim text.