A method and system for calculating the number of devices that meet certain conditions.

By acquiring layout and component information, and using the function leSearchHierarchy to directly calculate the number of components in the ciw window or virtuoso, the problem of tedious and erroneous component quantity calculation in layout drawing is solved, achieving efficient and accurate component quantity calculation.

CN120805827BActive Publication Date: 2025-12-02ZHONGYIN MICROELECTRONICS NANJING CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511308156.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-09-15
Publication Date
2025-12-02
Estimated Expiration
2045-09-15

AI Technical Summary

Technical Problem

In the process of layout drawing, calculating the number of a certain type of device is a tedious operation that is prone to calculation errors, resulting in low efficiency.

Method used

This invention provides a method and system for calculating the number of devices that meet certain conditions. By obtaining the layout and device information, the method directly calculates the number of devices in the CIW window or Virtuoso using the leSearchHierarchy function, reducing the steps of generating tree files and global search. Device attributes are directly entered in the dialog box for calculation.

Benefits of technology

It improves the efficiency of layout drawing, reduces unnecessary operation steps, can meet the same requirements under different processes and technologies, and improves the accuracy and efficiency of calculation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120805827B_ABST
    Figure CN120805827B_ABST
Patent Text Reader

Abstract

The purpose of this invention is to provide a method and system for calculating the number of devices that meet certain conditions. The method includes: acquiring layout information; acquiring device information for which the quantity needs to be calculated; and calculating the number of devices that meet the conditions based on the layout information and the device information. This invention improves layout execution efficiency, reduces unnecessary operation steps, and can meet the same functional requirements across different processes and technologies. This script allows operators to load the script in the CIW window or add it to Virtuoso shortcuts without generating a tree file or performing a global search and manual calculation. Instead, operators can simply open a dialog box, input the required device attributes, and obtain the desired results.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of data processing technology, and specifically to a method and system for calculating the number of devices that meet certain conditions. Background Technology

[0002] Layout design is the process of realizing the logical functions of a circuit through physical layers, similar to architectural blueprint design. It uses EDA (Electronic Design Automation) tools to define the shape, size, and position of each process layer. Different layers of process graphics are superimposed and arranged and wired to form a complete integrated circuit structure. Layout design plays a crucial role in information visualization, helping to present complex information clearly and efficiently. A well-designed layout can greatly enhance the effectiveness of information delivery, helping viewers understand and absorb information more quickly. In the semiconductor industry, layout design is the process of realizing the logical functions of a circuit through physical layers, including chip layout, routing, and size determination. The main types of layout components include: Resistors: Resistors are one of the most common components in analog layout design. Capacitors: Capacitors also play an important role in analog layout design. The types and design requirements of capacitors are similar to those of resistors, and the specific design methods also involve two-terminal connections and the addition of dummy layers. Transistors and diodes: These devices are used in analog circuits for signal amplification and rectification. Transistor design requires consideration of the connection methods of its base, emitter, and collector, while diodes are mainly used for unidirectional conduction. Inductors: Inductors are commonly used in high-frequency circuits for filtering and matching networks. Their design requires consideration of factors such as the number of turns, diameter, and spacing of the coil. Special devices such as ESD devices, PADs, SEAL-RINGs, and FUSE: These devices also play important roles in chip design. For example, ESD devices protect circuits from electrostatic damage, SEAL-RINGs protect chip packages, and FUSE provides overcurrent protection.

[0003] When creating a layout, there is often a need to calculate the quantity of certain types of components, such as capacitors to fill blank areas. However, conventional methods might require generating a tree file or using a global search function followed by manual calculation, which is prone to errors and requires multiple steps, making the process cumbersome and inefficient. Summary of the Invention

[0004] The purpose of this invention is to provide a method and system for calculating the number of devices that meet the conditions. This method can improve layout execution efficiency, reduce unnecessary operation steps, and meet the same requirements in different processes and technologies. This script allows operators to load the script in the CIW window or add it to the Virtuoso shortcut key without generating a tree file or performing a global search and then manually calculating. They only need to call up the dialog box and enter the required device attributes to get the desired results.

[0005] A method for calculating the number of devices that meet certain conditions includes:

[0006] Obtain map information;

[0007] Obtain the device information for the quantity to be calculated;

[0008] The number of devices that meet the conditions is calculated based on the layout information and the device information that needs to be calculated.

[0009] Preferably, obtaining the map information includes:

[0010] Obtain the dimensions, structure, design rules, process, and layout requirements of the layout.

[0011] Preferably, obtaining the device information of the quantity to be calculated includes:

[0012] Get the device name and device attributes.

[0013] Preferably, the step of calculating the number of devices that meet the conditions based on the layout information and the device information to be calculated is...

[0014] The number of devices includes:

[0015] Define the device properties that need to be calculated;

[0016] Configure the metal layers of the device;

[0017] Set the insertion range of the device;

[0018] Calculate the number of devices that meet the set conditions.

[0019] Preferably, the device properties that need to be calculated in the definition include:

[0020] Define the library name, cell name, and view name of the device.

[0021] Preferably, the metal layers of the device include:

[0022] Select the metal layer of the device as the current layer or from the current layer to the bottom layer.

[0023] Preferably, the insertion range of the setting device includes:

[0024] Choose whether to insert the device globally or in a specific region.

[0025] Preferably, calculating the number of devices that meet the set conditions includes:

[0026] Assign the device's properties to function variables;

[0027] Use metal level and insertion range as limiting conditions;

[0028] The function leSearchHierarchy is used to search for devices that meet the criteria;

[0029] Output the number of devices that meet the criteria.

[0030] A system for calculating the number of devices that meet certain conditions includes:

[0031] The territory information acquisition module is used to acquire territory information;

[0032] The device information acquisition module is used to acquire device information for the quantity to be calculated.

[0033] The information processing module is used to calculate the number of devices that meet the conditions based on the layout information and the device information that needs to be calculated.

[0034] An electronic device includes a chip, a processor, and a memory, the memory storing computer program code including computer instructions, wherein, when the chip executes the computer instructions, the electronic device performs a method for calculating the number of eligible devices.

[0035] Technical effects:

[0036] The beneficial effects of this invention are as follows: This invention can improve layout execution efficiency, reduce unnecessary operation steps, and meet the same functional requirements in different processes and technologies. This script allows operators to load the script in the CIW window or add it to the Virtuoso shortcut key without generating a tree file or performing a global search and manual calculation. They only need to call up the dialog box and can enter any required device attributes to get the required results. Attached Figure Description

[0037] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with the invention and, together with the description, serve to explain the principles of the invention.

[0038] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0039] Figure 1 This is a flowchart of a method for calculating the number of devices that meet the conditions according to the present invention;

[0040] Figure 2 This is a schematic diagram of the hardware structure of an electronic device according to the present invention. Detailed Implementation

[0041] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of the present invention, and not all of them. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of the present invention.

[0042] It should be noted that all directional indications (such as up, down, left, right, front, back, etc.) in the embodiments of the present invention are only used to explain the relative positional relationship and movement of each component in a certain specific posture (as shown in the figure). If the specific posture changes, the directional indication will also change accordingly.

[0043] Furthermore, the use of terms such as "first" and "second" in this invention is for descriptive purposes only and should not be construed as indicating or implying their relative importance or implicitly specifying the number of technical features indicated. Therefore, features defined with "first" and "second" may explicitly or implicitly include at least one of those features. Additionally, the technical solutions of the various embodiments can be combined with each other, but only on the basis of being achievable by those skilled in the art. When the combination of technical solutions is contradictory or impossible to implement, such a combination of technical solutions should be considered non-existent and not within the scope of protection claimed by this invention.

[0044] When creating a layout, there is often a need to calculate the quantity of certain types of components, such as capacitors to fill blank areas. However, conventional methods might require generating a tree file or using a global search function followed by manual calculation, which is prone to errors and requires multiple steps, making the process cumbersome and inefficient.

[0045] This invention can improve layout execution efficiency, reduce unnecessary operation steps, and meet the same functional requirements in different processes and technologies. This script allows operators to load the script in the CIW window or add it to the Virtuoso shortcut key without generating a tree file or performing a global search and manual calculation. They only need to call up the dialog box and enter any required device attributes to get the desired results.

[0046] Example 1

[0047] A method for calculating the number of eligible devices, see reference. Figure 1 ,include:

[0048] S100, obtain map information;

[0049] Circuit layout information includes the size of the integrated circuit, the topology definition of each layer, and all physical information about the devices. In this embodiment of the invention, the obtained layout information is the information of the layout for which the number of devices needs to be calculated. Calculating the number of a certain device based on the currently imported information can greatly improve the efficiency of layout drawing.

[0050] S200, obtain device information for the quantity to be calculated;

[0051] S300 calculates the number of eligible devices based on the layout information and the device information to be calculated.

[0052] In this embodiment of the invention, the number of devices that meet the conditions can be quickly calculated simply by obtaining the layout information and device information that need to be calculated, which can greatly save calculation time and improve the accuracy of calculation.

[0053] Preferably, in step S100, obtaining the layout information includes:

[0054] Obtain the dimensions, structure, design rules, process, and layout requirements of the layout.

[0055] In circuit design, the layout information affecting the number of components mainly includes: Device size and structure: Transistor size: Channel length (L) and width (W) directly affect the number of devices and area. Source / drain area: The size of the diffusion region affects the device placement density. Design rule constraints: Minimum spacing rules: The minimum spacing between devices (such as metal, polysilicon, diffusion region spacing) limits the placement density. Layer alignment rules: The alignment requirements of contact / via with the active region may affect the device arrangement. Isolation rules: Isolation regions between devices (such as STI, N / P well spacing) occupy additional area. Interconnect resources: Number of metal layers: More metal layers can reduce wiring congestion, indirectly allowing for higher device density. Trace width and spacing: Wide traces or large spacing will occupy area and limit the number of devices. Via layout: Vias connecting different layers must meet design rules and may affect the device arrangement. Matching and symmetry requirements: Matching devices: Such as differential pairs or current mirrors require strictly symmetrical layout, which may increase redundancy space. Common centroid layout: High-performance circuits require devices to be arranged in a cross pattern, sacrificing area to reduce process deviations. Power Consumption and Heat Dissipation: Heat Dissipation Channels: High-power devices require reserved heat dissipation space (e.g., increased spacing or addition of dummy devices). Power / Ground Width: High-current paths require wide metal lines, occupying wiring resources. Process-Related Factors: Process Nodes: Advanced processes (e.g., 7nm, 5nm) allow for smaller device spacing but may introduce additional rules (e.g., the number of fins in FinFETs). Stacked Devices: Vertical integration of devices, such as 3DICs or stacked transistors, increases density. Cell Library and IP Modules: Standard Cell Height: The standard cell height of digital circuits (e.g., 12T, 9T) determines the number of devices per row. Hardcore IP: Pre-designed IP modules (e.g., SRAM, ADC) occupy a fixed area, affecting remaining space. Redundancy and Yield Optimization: Redundant Devices: Spare devices may be added to improve yield (e.g., redundant cells in memory). Dummy Devices: Filling edges to ensure etching uniformity increases the total number of devices. Packaging Constraints: I / O Layout: Pads and ESD devices occupy edge areas, limiting the number of devices in the core area.

[0056] Thermal packaging: The heat dissipation capacity of the packaging may limit the feasibility of high-density devices.

[0057] Preferably, in step S200, obtaining the device information for the number to be calculated includes:

[0058] Get the device name and device attributes.

[0059] Device attributes are key parameters defining a device's physical structure, electrical characteristics, and process constraints. These attributes directly affect the device's performance, compatibility, reliability, and layout. Device attributes include: geometric attributes, electrical attributes, and process-related attributes: Layer information: the process layer it belongs to (e.g., Poly, Diffusion, Metal1, etc.) and its photomask definition. Design rule constraints: rules such as minimum spacing, minimum width, and enclosure. Antenna effect rules: restrictions on the ratio of gate connection area to metal area. Functional and labeling attributes: Device type: NMOS, PMOS, resistor, capacitor, diode, etc. Tags: device name, network connection relationship. Simulation parameters: parameters in the SPICE model (e.g., L / W scaling factor defined by PDK).

[0060] Preferably, in step S300, calculating the number of devices that meet the conditions based on the layout information and the device information to be calculated includes:

[0061] S310 defines the device properties that need to be calculated;

[0062] S320 sets the metal layer of the device;

[0063] S330, sets the insertion range of the device;

[0064] In this embodiment of the invention, before searching for the number of devices that meet the conditions, it is necessary to input the device attributes, the metal level of the device, and the insertion range of the device before an accurate search can be performed. This invention does not require manual calculation; it only requires a unified script to complete the calculation of the number of all types of devices. It can meet different manufacturing processes and different technologies, has a very wide range of applications, and has high calculation efficiency. It can avoid multiple operations caused by manual calculation errors and greatly improve the calculation efficiency of devices.

[0065] S340 calculates the number of devices that meet the set conditions.

[0066] The editable areas in the dialog box from top to bottom are lib_name, cell_name, view_name, level, and selection. The first three lists correspond to the device attributes to be calculated: library name, cell name, and view name, respectively. Their default value is "nil" (empty). After deleting "nil", fill in the corresponding dialog box list as needed. The fourth list, level, is the layer, with two modes to choose from: the default is currentlv (current layer); the other is crtobtlv (from the current layer to the bottom layer). The fifth list is selection, which is the region selection, with two modes to choose from: the default is full_selection (global selection); the other is scope_selection (range selection). The selections in the fourth and fifth lists can be combined in pairs.

[0067] In this embodiment of the invention, it is first determined whether the searchform has been defined: procedure(mosaic_statistics())

[0068] let((lbnmcenmvinmlevelcyclicselectcyclicsearchform)if(!boundp('searchform)||(searchform==nil)then.

[0069] Preferably, in step S310, the device properties to be calculated include:

[0070] Define the library name, cell name, and view name of the device.

[0071] In integrated circuit design (especially when using EDA tools), library names, cell names, and view names are key identifiers for hierarchically organizing design data, uniquely distinguishing different design units and their representations. A library is a container for storing related design units, typically categorized by project, process node, or functional module. Library names include: a process library, a standard cell library, or a custom IP library. Library names are used to manage design units from different sources or for different purposes (e.g., PDK libraries provided by process manufacturers vs. user-defined libraries). A cell is the basic design unit in a library, representing a specific circuit or physical structure. Examples include: an inverter, an operational amplifier, or a memory module. In hierarchical design, cells can be nested within other cells. A view is a different representation or abstraction level of a cell, used at different design stages. Common view types include: schematic: circuit schematic (logic connections); layout: physical layout (geometry and process layers); symbol: symbolic representation (used for schematic calls); abstract: abstract view (e.g., LEF view used for P&R); verilog: RTL or gate-level netlist; spice: transistor-level netlist (for simulation).

[0072] In this embodiment of the invention, right-click on the desktop, click OpenTerminalHere, start Virtuoso in the Terminal, and load the script to calculate the number of devices that meet the conditions. (1) In Virtuoso, open the layout that needs to be edited and define the library name:

[0073] lbnm=hiCreateStringField(

[0074] ?name'lbnm

[0075] ?prompt“lib_name”

[0076] )?defValue“nil”

[0077] ).

[0078] Define cell name:

[0079] cenm=hiCreateStringField(

[0080] ?name'cenm

[0081] ?prompt“cell_name”

[0082] ?defValue“nil”

[0083] ).

[0084] Define the view name:

[0085] vinm=hiCreateStringField(

[0086] ?name'vinm

[0087] ?prompt "view_name"

[0088] ?defValue“nil”

[0089] ).

[0090] Preferably, in step S320, setting the metal layers of the device includes:

[0091] Select the metal layer of the device as the current layer or from the current layer to the bottom layer.

[0092] The metal layers of a device refer to the interconnecting metal layers used to connect devices (such as transistors, resistors, capacitors, etc.) and modules during chip manufacturing. The number and structure of metal layers directly affect the chip's performance, power consumption, area, and manufacturing cost. Metal layers provide electrical connections between devices (such as signal, power, and ground lines), reduce wiring congestion, increase integration density, and optimize signal transmission speed (by reducing RC delay). Each metal layer consists of metal traces and vias (vertical channels connecting different metal layers). Metal layers include: Signal layers: transmit logic signals (typically narrow with small spacing). Power / Ground layers: provide global power and ground networks (typically wider, reducing IRDrop and electromigration risks). Clock layers: dedicated high-frequency clock wiring (requires low impedance and shielding design). Modern processes (such as 7nm, 5nm) typically have 10-15 metal layers, while mature processes (such as 28nm) may only have 6-9 layers. Some processes introduce intermediate layers or semi-global layers. Metal layers are the core of chip interconnects, and their design must balance performance (RC delay), power consumption, area (wiring density), and cost (number of layers).

[0093] In this embodiment of the invention, two levels can be provided for the user to choose from:

[0094] levelcyclic=hiCreateCyclicField(

[0095] ?name'levelcyclic

[0096] ?prompt "level"?value "currentlv"?choiceslist("currentlv" "crtobtlv")

[0097] ).

[0098] Preferably, in step S330, setting the insertion range of the device includes:

[0099] Choose whether to insert the device globally or in a specific region.

[0100] In this embodiment of the invention, the fifth list is selection, which is a region selection. There are two modes to choose from: the default value is full_selection, which is a global selection; the other mode is scope_selection, which is a range selection.

[0101] In this embodiment of the invention, two ranges are provided for the user to choose from:

[0102] selectcyclic=hiCreateCyclicField(

[0103] ?name'selectcyclic

[0104] ?prompt "selection"

[0105] )?value "full_selection"?choiceslist("full_selection" "scope_selection")

[0106] ).

[0107] Preferably, in step S340, calculating the number of devices that meet the set conditions includes:

[0108] S341 assigns the device's properties to a function variable;

[0109] S342, uses the metal level and insertion range as limiting conditions;

[0110] S343 uses the function leSearchHierarchy to search for devices that meet the criteria;

[0111] S344 outputs the number of devices that meet the criteria.

[0112] Define the dialog box to be displayed:

[0113] searchform=hiCreateAppForm(

[0114] ?name'searchform

[0115] ?formTitle "mosatic_statistics"?fieldslist(lbnmcenmvinmlevelcyclicselectcyclic)

[0116] ?callback "sandc()"

[0117] ?buttonLayout'OKCancel )

[0119] ); if

[0120] hiDisplayForm('searchform')

[0121] );;let

[0122] );;pro.

[0123] Retrieve the CLV ID and Window ID, and obtain the library name, cell name, view name, hierarchy, and scope information from the dialog box, then assign these values ​​to variables:

[0124] procedure(sandc()let((cvwininstslibnamecellnameviewnamelevelselectionobjobj_instsobj_mosaiccordx1x2y1y2comb_instsnu)cv=geGetEditRep()win=hiGetCurrentWindow()libname=se archform->lbnm->valuecellname=searchform->cenm->valueviewname=searchform->vinm->valuelevel=searchform->levelcyclic->valueselection=searchform->selectcyclic->valuecond(.

[0125] Select the current level:

[0126] (level==”currentlv”

[0127] cond(

[0128] Select global scope:

[0129] (selection==”full_selection”

[0130] insts=cv->instances

[0131] Assign values ​​from `insts` that meet the conditions to `obj`. If `objtype` is `inst`, assign it to `objinsts`; if it is `mosaic`, assign it to `objmosaic`.

[0132] obj=setof(obj11instsobj11~>libName==libname&&obj11~>cellName==cellname&&obj11~>viewName==viewname)

[0133] obj_insts=setof(obj11objobj11~>objType==”inst”)obj_mosaic=setof(obj11objobj11~>objType==”mosaic”)

[0134] nu=0

[0135] foreach(obj11obj_mosaicnu=nu+(obj11~>rows)*(obj11~>columns))

[0136] Adding the two together gives the corresponding quantity:

[0137] nu = nu + length(obj_insts) )

[0139] Select local range:

[0140] (selection=="scope_selection"cord=enterBox() The user selects a range and gets the bbox:

[0141] x1=caar(cord)y1=cadar(cord)x2=caadr(cord)y2=cadadr(cord)comb_insts=mapcar('listcv->instancescv->instances~>bBox)

[0142] Combine the insts's ID and his bbox into a new list:

[0143] insts=setof(inst11comb_instscaar(nth(1inst11))>=x1&&cadar(nth(1inst11))>=y1&&caadr(nth(1inst11))<=x2&&cadadr(nth( 1inst11))<=y2)obj=setof(obj11instsnth(0obj11)~>libName==libname&&nth(0obj11)~>cellName==cellname&&nth(0obj11)~>vie wName==viewname)obj_insts=setof(obj11objnth(0obj11)~>objType==”inst”)obj_mosatic=setof(obj11objnth(0obj11)~>objTyp e==”mosaic”)nu=0foreach(obj11obj_mosaicnu=nu+(nth(0obj11)~>rows)*(nth(0obj11)~>columns))nu=nu+length(obj_insts))))

[0144] The hierarchy selection is from the current level to the bottom level:

[0145] (level==”crtobtlv”

[0146] cond(

[0147] Select global scope:

[0148] (selection==”full_selection”

[0149] cord=cv->bBox

[0150] Use the function `leSearchHierarchy` to obtain cells based on the corresponding criteria and filter them, with the `cord` value being the overall size of the cellview.

[0151] obj_insts=leSearchHierarchy(cvcord32 "inst" list(list("cellname" "==" cellname)))

[0152] obj_insts=setof(obj11obj_instsobj11~>libName==libname&&obj11~>cellName==cellname&&obj11~>viewName==viewname)obj_mosaic=leSearchHierarchy(cvcord32 "array" list(list("cellname" "==" cellname)))

[0153] obj_mosaic=setof(ob11obj_mosaicobj11~>libName==libname&&obj11~>cellName==cellname&&obj11~>viewName==viewname)

[0154] nu=0

[0155] foreach(obj11obj_mosaicnu=nu+(obj11~>rows)*(obj11~>columns))

[0156] nu = nu + length(obj_insts) )

[0158] Select local range:

[0159] (selection==”scope_selection”

[0160] cord=enterBox()

[0161] The `leSearchHierarchy` function is used to obtain cells based on the corresponding criteria and then filter them. The `cord` value represents the size of the range selected by the user.

[0162] obj_insts=leSearchHierarchy(cvcord32 "inst" list(list("cellname" "==" cellname)))

[0163] obj_insts=setof(obj11obj_instsobj11~>libName==libname&&obj11~>cellName==cellname&&obj11~>viewName==viewname)

[0164] obj_mosaic=leSearchHierarchy(cvcord32 "array" list(list("cellname" "==" cellname)))

[0165] obj_mosaic=setof(obj11obj_mosaicobj11~>libName==libname&&obj11~>cellName==cellname&&obj11~>viewName==viewname)

[0166] nu=0

[0167] foreach(obj11obj_mosaicnu=nu+(obj11~>rows)*(obj11~>columns))

[0168] nu = nu + length(obj_insts) ) ) ) )

[0173] A pop-up window displays the search results and calculation results:

[0174] nu_insts=sprint(sc1"numberofinsts==%d"nu)

[0175] hiDisplayAppDBox(

[0176] ?name'nu_insts

[0177] ?dboxTextnu_insts )

[0179] );;let

[0180] );;pro.

[0181] Example 2

[0182] A system for calculating the number of devices that meet certain conditions includes:

[0183] The territory information acquisition module is used to acquire territory information;

[0184] The device information acquisition module is used to acquire device information for the quantity to be calculated.

[0185] The information processing module is used to calculate the number of devices that meet the conditions based on the layout information and the device information that needs to be calculated.

[0186] Example 3

[0187] An electronic device includes a chip, a processor, and a memory, the memory storing computer program code including computer instructions. When the chip executes the computer instructions, the electronic device performs a method for calculating the number of devices that meet certain conditions.

[0188] refer to Figure 2 The electronic device 2 includes a processor 21, a memory 22, an input device 23, and an output device 24. The processor 21, memory 22, input device 23, and output device 24 are coupled together via connectors, which may include various interfaces, transmission lines, or buses, etc., and are not limited in this embodiment of the invention. It should be understood that in the various embodiments of the invention, coupling refers to mutual connection through a specific method, including direct connection or indirect connection through other devices, such as through various interfaces, transmission lines, buses, etc.

[0189] Processor 21 can be one or more graphics processing units (GPUs). If processor 21 is a GPU, the GPU can be a single-core GPU or a multi-core GPU. Optionally, processor 21 can be a processor group composed of multiple GPUs, with the multiple processors coupled to each other via one or more buses. Optionally, the processor can also be other types of processors, etc., and this embodiment of the invention is not limited thereto.

[0190] The memory 22 can be used to store computer program instructions, as well as various types of computer program code, including program code for executing the present invention. Optionally, the memory includes, but is not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), or compact disc read-only memory (CD-ROM), which is used for related instructions and data.

[0191] Input device 23 is used to input data and / or signals, and output device 24 is used to output data and / or signals. Output device 24 and input device 23 can be independent devices or an integrated device.

[0192] This invention can improve layout execution efficiency, reduce unnecessary operation steps, and meet the same functional requirements in different processes and technologies. This script allows operators to load the script in the CIW window or add it to the Virtuoso shortcut key without generating a tree file or performing a global search and manual calculation. They only need to call up the dialog box and enter any required device attributes to get the desired results.

[0193] The above description is merely a specific embodiment of the present invention, enabling those skilled in the art to understand or implement the invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the invention. Therefore, the present invention is not to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features claimed herein.

Claims

1. A method for calculating the number of devices that meet certain conditions, characterized in that, include: Obtain map information; Obtain the device information for the quantity to be calculated; Calculate the number of devices that meet the conditions based on the layout information and the device information that needs to be calculated; The step of calculating the number of eligible devices based on the layout information and the device information to be calculated includes: Define the device properties that need to be calculated; Configure the metal layers of the device; Set the insertion range of the device; Calculate the number of devices that meet the set conditions; The calculation of the number of devices that meet the set conditions includes: Assign the device's properties to function variables; Use metal level and insertion range as limiting conditions; The function leSearchHierarchy is used to search for devices that meet the criteria; Output the number of devices that meet the criteria.

2. The method for calculating the number of devices that meet the conditions according to claim 1, characterized in that, The acquisition of the map information includes: Obtain the dimensions, structure, design rules, process, and layout requirements of the layout.

3. The method for calculating the number of devices that meet the conditions according to claim 1, characterized in that, The process of obtaining the device information of the required quantity includes: Get the device name and device attributes.

4. The method for calculating the number of devices that meet the conditions according to claim 1, characterized in that, The device properties that need to be calculated in the definition include: Define the library name, cell name, and view name of the device.

5. The method for calculating the number of devices that meet the conditions according to claim 1, characterized in that, The metal layers of the mounting device include: Select the metal layer of the device as the current layer or from the current layer to the bottom layer.

6. The method for calculating the number of devices that meet the conditions according to claim 1, characterized in that, The insertion range of the setting device includes: Choose whether to insert the device globally or in a specific region.

7. A system for calculating the number of devices that meet certain conditions, characterized in that, include: The territory information acquisition module is used to acquire territory information; The device information acquisition module is used to acquire device information for the quantity to be calculated. The information processing module is used to calculate the number of devices that meet the conditions based on the layout information and the device information that needs to be calculated. The step of calculating the number of eligible devices based on the layout information and the device information to be calculated includes: Define the device properties that need to be calculated; Configure the metal layers of the device; Set the insertion range of the device; Calculate the number of devices that meet the set conditions; The calculation of the number of devices that meet the set conditions includes: Assign the device's properties to function variables; Use metal level and insertion range as limiting conditions; The function leSearchHierarchy is used to search for devices that meet the criteria; Output the number of devices that meet the criteria.

8. An electronic device, characterized in that, include: A chip, a processor, and a memory, the memory being used to store computer program code, the computer program code including computer instructions, wherein, when the chip executes the computer instructions, the electronic device performs a method for calculating the number of eligible devices as claimed in any one of claims 1 to 6.

Citation Information

Patent Citations

  • Layout layout generation method, constraint file editor, layout layout generator and terminal

    CN120764471A

  • Automatic generating and correcting device for electric component list

    JP1997231260A