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.
Claims20
A method, comprising:
- generating, by a processing device, an empty undo/redo data set in an actual block of an electronic design;
- identifying, for each object pointer in an undo/redo data set of a virtual block, a memory location of a corresponding object in the actual block using a pointer map of the undo/redo data set of the virtual block;
- transferring each identified object pointer from the undo/redo data set of the virtual block to an undo/redo data set of the actual block, while mapping the object pointer from a frame of reference of the virtual block back to the memory location of the corresponding object in the actual block using the pointer map of the undo/redo data set of the virtual block;
- merging the transferred object pointer into the undo/redo set of the actual block if an object pointer already exists for the same object;
- and
- merging the pointer map of the undo/redo data set of the virtual block into the pointer map of the undo/redo data set of the actual block.
A non-transitory computer-readable medium storing instructions that cause a processing device to:
- generate an empty undo/redo data set in an actual block of an electronic design;
- identify, for each object pointer in an undo/redo data set of a virtual block, a memory location of a corresponding object in the actual block using a pointer map of the undo/redo data set of the virtual block;
- transfer each identified object pointer from the undo/redo data set of the virtual block to an undo/redo data set of the actual block, while mapping the object pointer from a frame of reference of the virtual block back to the memory location of the corresponding object in the actual block using the pointer map of the undo/redo data set of the virtual block;
- merge the transferred object pointer into the undo/redo set of the actual block if an object pointer already exists for the same object;
- and
- merge the pointer map of the undo/redo data set of the virtual block into the pointer map of the undo/redo data set of the actual block.
A system, comprising:
- a memory;
- and
- a processing device operatively coupled to the memory, the processing device configured to:
- generate an empty undo/redo data set in an actual block of an electronic design;
- identify, for each object pointer in an undo/redo data set of a virtual block, a memory location of a corresponding object in the actual block using a pointer map of the undo/redo data set of the virtual block;
- transfer each identified object pointer from the undo/redo data set of the virtual block to an undo/redo data set of the actual block, while mapping the object pointer from a frame of reference of the virtual block back to the memory location of the corresponding object in the actual block using the pointer map of the undo/redo data set of the virtual block;
- merge the transferred object pointer into the undo/redo set of the actual block if an object pointer already exists for the same object;
- and
- merge the pointer map of the undo/redo data set of the virtual block into the pointer map of the undo/redo data set of the actual block.
Dependencies are inferred from the claim text.