A parametric unit generation method, system and medium

By generating a general program framework and code based on a preset general description language, the compatibility problem of parameterized units in different EDA tools is solved, and the efficiency of integrated circuit back-end development is improved.

CN120278091BActive Publication Date: 2025-09-30BEIJING CELLIX REVEALING TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510769714.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-06-10
Publication Date
2025-09-30
Estimated Expiration
2045-06-10

AI Technical Summary

Technical Problem

The parameterized units of different EDA tools are difficult to be compatible with each other due to differences in programming languages, resulting in low efficiency in integrated circuit back-end development.

Method used

By generating a general program framework based on a preset general description language, analyzing the parameter change rules and supplementing the general program code, the conversion of parameterized units is realized, and target parameterized units compatible with different EDA tools are generated.

Benefits of technology

The compatibility of parameterized units between different EDA tools is achieved, which improves the development efficiency of the integrated circuit back-end.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120278091B_ABST
    Figure CN120278091B_ABST
Patent Text Reader

Abstract

The present application provides a parameterized unit generation method, system, and medium. In the method, a general program framework for a first target parameterized unit is generated based on parameter definition data; the parameters of the first target parameterized unit are analyzed for regularity to obtain parameter variation patterns, and based on the parameter variation patterns, the general program framework is supplemented to obtain general program code; and the parameterized unit is converted based on the general program code to obtain a second target parameterized unit that is compatible with the first parameterized unit design tool and is universal with the first target parameterized unit. This achieves compatibility of parameterized units across different EDA tools, improving the back-end development efficiency of integrated circuits.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of software development technology, and in particular to a parameterized unit generation method, system, and medium. Background Art

[0002] Current EDA tools primarily complete the back-end design of integrated circuits (ICs) using parameterized units within their PDK libraries. IC back-end development often involves the use of multiple different EDA tools. However, due to the differences in programming languages ​​used by these tools, parameterized units within different PDK libraries are difficult to interoperate, resulting in low IC back-end development efficiency. Summary of the Invention

[0003] Based on the above problems, in order to solve the problem that parameterized units in different EDA tools are difficult to be compatible with each other, the embodiments of the present application provide a parameterized unit generation method, system and medium.

[0004] The embodiments of this application disclose the following technical solutions:

[0005] In a first aspect, an embodiment of the present application provides a parameterized unit generation method, comprising:

[0006] Generating a general program framework of a first target parameterized unit according to the parameter definition data; wherein the general program framework is determined based on a preset general description language; and wherein the first target parameterized unit is run in a first parameterized unit design tool;

[0007] Analyzing the parameter variation pattern of the first target parameterized unit;

[0008] According to the parameter variation rule, the general program framework is supplemented to obtain a general program code;

[0009] Performing parameterized cell conversion according to the general program code to obtain at least one second target parameterized cell compatible with the first parameterized cell design tool; the second target parameterized cell runs a design tool different from the first parameterized cell design tool.

[0010] In a possible implementation, performing parameterized cell conversion according to the general program code to obtain at least one second target parameterized cell compatible with the first parameterized cell design tool includes:

[0011] Performing an abstract syntax tree structure conversion on the general program code to obtain a general syntax tree;

[0012] Perform code conversion according to the universal syntax tree to obtain target unit code;

[0013] Generate a parameterized unit according to the target unit code to obtain the second target parameterized unit.

[0014] In a possible implementation, the general syntax tree includes: a preset function call identifier; and performing code conversion according to the general syntax tree to obtain a target unit code includes:

[0015] According to the preset function call identifier, determining a preset function file corresponding to the preset function call identifier and function call parameters required when executing the preset function file; the program language type of the preset function file is the same as the program language type of the target unit code;

[0016] The preset function file is called according to the function call parameter to obtain the target unit code.

[0017] In a possible implementation, the data type of the parameter definition data includes: declared data and user-defined data.

[0018] In a possible implementation, generating a general program framework of the first target parameterization unit according to the parameter definition data includes:

[0019] When the data type of the parameter definition data is the declared data, generating a parameter file of the first target parameterized unit according to the parameter definition data;

[0020] generating the general program framework of the first target parameterized unit according to the parameter file;

[0021] In a possible implementation, generating a general program framework of the first target parameterization unit according to the parameter definition data includes:

[0022] When the data type of the parameter definition data is the custom data, compiling and generating a parameter file of the first target parameterized unit according to a preset parameter definition rule;

[0023] The general program framework of the first target parameterization unit is generated according to the parameter file.

[0024] In a possible implementation, analyzing a parameter variation pattern of the first target parameterization unit includes:

[0025] Adjusting parameters of the first target parameterized unit based on a preset parameter adjustment strategy to obtain a change pattern of a parameter graph of the first target parameterized unit under the preset parameter adjustment strategy;

[0026] The change rule is programmed using the preset universal description language to supplement the universal program framework and obtain universal program code.

[0027] In a second aspect, an embodiment of the present application provides a parameterized unit generation system, including:

[0028] A framework generation module, configured to generate a general program framework of a first target parameterized unit according to parameter definition data; the general program framework is determined based on a preset general description language; the first target parameterized unit is run in a first parameterized unit design tool;

[0029] A rule analysis module, configured to analyze the parameter variation rule of the first target parameterized unit;

[0030] A code generation module, configured to supplement the general program framework according to the parameter variation rule to obtain a general program code;

[0031] A unit conversion module is used to perform parameterized unit conversion according to the universal program code to obtain at least one second target parameterized unit compatible with the first parameterized unit design tool; the design tool running the second target parameterized unit is different from the first parameterized unit design tool.

[0032] In a possible implementation, the unit conversion module is specifically configured to:

[0033] Performing an abstract syntax tree structure conversion on the general program code to obtain a general syntax tree;

[0034] Perform code conversion according to the universal syntax tree to obtain target unit code;

[0035] Generate a parameterized unit according to the target unit code to obtain the second target parameterized unit.

[0036] In a third aspect, an embodiment of the present application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements any possible parameterized unit generation method in the first aspect.

[0037] Compared with the prior art, the present application has the following beneficial effects: the embodiment of the present application provides a parameterized unit generation method, system and medium, in which the general program framework of the first target parameterized unit is determined by parameter definition data and a preset general description language, so that the data structure of the first target parameterized unit belonging to the first parameterized unit design tool is generated into a specific and highly versatile general program framework through a preset general description language, thereby facilitating the subsequent generation of highly compatible parameterized units. Subsequently, the parameter change law of the first target parameterized unit is analyzed, and the general program framework is supplemented based on the parameter change law, and the data content of the first target parameterized unit is presented through a general program code. Finally, the parameterized unit conversion is performed according to the general program code, so that at least one second target parameterized unit compatible with the first parameterized unit design tool can be effectively generated. In this way, through the parameter definition data of the first target parameterized unit itself and the preset general description language, a general program framework and general program code specific to the first target parameterized unit can be generated. By converting the parameterized unit of the general program code to generate the second target parameterized unit of different design tools, the differences in program language and data structure between different parameterized units can be effectively eliminated, thereby achieving compatibility of parameterized units between different EDA tools and improving the development efficiency of the integrated circuit back-end. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.

[0039] Figure 1 A schematic diagram of a process for generating a parameterized unit provided in an embodiment of the present application;

[0040] Figure 2 A schematic diagram of a CDF file for exporting rupolym from Virtuoso provided in an embodiment of the present application;

[0041] Figure 3 A schematic diagram of a general program framework provided in an embodiment of the present application;

[0042] Figure 4 A schematic diagram of first parameter regularity analysis data provided in an embodiment of the present application;

[0043] Figure 5 A schematic diagram of a python file of Hcell provided in an embodiment of the present application;

[0044] Figure 6 A flow chart of another parameterized unit generation method provided in an embodiment of the present application;

[0045] Figure 7 A schematic diagram of the structure of an abstract syntax tree of an expression provided in an embodiment of the present application;

[0046] Figure 8 A schematic diagram of the structure of a statement abstract syntax tree provided in an embodiment of the present application;

[0047] Figure 9 A schematic diagram of the structure of a function abstract syntax tree provided in an embodiment of the present application;

[0048] Figure 10 A schematic diagram of the structure of a comprehensive abstract syntax tree provided in an embodiment of the present application;

[0049] Figure 11 A schematic diagram of a process flow of another parameterized unit generation method provided in an embodiment of the present application;

[0050] Figure 12 A schematic diagram of a preset parameter definition rule provided in an embodiment of the present application;

[0051] Figure 13 A structural diagram of a parameterized unit generation system provided in an embodiment of the present application. DETAILED DESCRIPTION

[0052] To make the objectives, technical solutions, and advantages of this application more clearly understood, the application is further described in detail below in conjunction with specific embodiments and with reference to the accompanying drawings. It should be noted that the embodiments described in the embodiments of this application are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making any creative efforts are within the scope of protection of this application.

[0053] It should be noted that, unless otherwise defined, the technical or scientific terms used in the embodiments of this application should have the ordinary meaning understood by people with ordinary skills in the field to which this application belongs. The words "first", "second" and similar terms used in the embodiments of this application do not indicate any order, quantity or importance, but are only used to distinguish different components. Words such as "include" or "comprise" mean that the elements or objects preceding the word include the elements or objects listed after the word and their equivalents, but do not exclude other elements or objects. Words such as "connect" or "connected" are not limited to physical or mechanical connections, but can include electrical connections, whether direct or indirect. "Up", "down", "left", "right" and the like are only used to indicate relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.

[0054] As described above, due to the differences in programming languages ​​used by different EDA tools, parameterized units in different PDK libraries are difficult to be compatible with each other, resulting in low efficiency in the back-end development of integrated circuits.

[0055] In order to solve the above problems, the embodiments of the present application provide a method, system and medium for generating a parameterized unit. In the method, a general program framework of a first target parameterized unit is determined by parameter definition data and a preset general description language, so that the data structure of the first target parameterized unit belonging to the first parameterized unit design tool is generated into a specific and highly versatile general program framework through a preset general description language, thereby facilitating the subsequent generation of highly compatible parameterized units. Subsequently, the parameter change law of the first target parameterized unit is analyzed, and the general program framework is supplemented based on the parameter change law, and the data content of the first target parameterized unit is presented through a general program code. Finally, the parameterized unit conversion is performed according to the general program code, so that at least one second target parameterized unit compatible with the first parameterized unit design tool can be effectively generated. In this way, through the parameter definition data of the first target parameterized unit itself and the preset general description language, a general program framework and general program code specific to the first target parameterized unit can be generated. By converting the parameterized unit of the general program code to generate the second target parameterized unit of different design tools, the differences in program language and data structure between different parameterized units can be effectively eliminated, thereby achieving compatibility of parameterized units between different EDA tools and improving the development efficiency of the integrated circuit back-end.

[0056] Next, the parameterized unit generation method provided in the embodiment of the present application will be introduced in conjunction with the specific embodiment drawings.

[0057] See also Figure 1, which is a flow chart of a parameterized unit generation method provided in an embodiment of the present application, specifically comprising the following steps:

[0058] S101: Generate a general program framework of a first target parameterized unit according to parameter definition data; the general program framework is determined based on a preset general description language; the first target parameterized unit runs on a first parameterized unit design tool.

[0059] As can be seen from the previous description of the background technology, different EDA tools often use different programming languages, making it difficult for parameterized units to be compatible with each other. For example, Cadence Virtuoso software uses Skill, while DesignSmart Builder uses Python. This difference in programming languages ​​makes parameterized units incompatible with each other.

[0060] Therefore, in order to achieve compatibility of parameterized units under different programming languages, in this embodiment, when generating a second target parameterized unit that is compatible with the first parameterized unit design tool and universal with the first target parameterized unit, it is first necessary to define the parameter data of the first target parameterized unit and use a preset general description language to generate a general program framework, so that the basic structure of the code in the first target parameterized unit is presented through the general description language to facilitate subsequent parameterized unit conversion.

[0061] Among them, the general program framework is generated based on a pre-set general description language. The pre-set general description language extracts the common characteristics of the languages ​​commonly used in designing parametric units (Skill, Python, etc.) to achieve maximum compatibility.

[0062] In the embodiments of the present application, the preset general description language can support programming structures in various scenarios, such as variable definition, function call, loop structure, function definition, etc. The diverse structures it supports can make the code writing process more intuitive and efficient. The following is an example of the syntax of the preset general description language:

[0063]

[0064] In actual application scenarios, the parameter definition data for the first target parameterized unit includes different parameter types, limit values, and callback functions. This parameter definition data can usually be obtained through the EDA tool to which the parameterized unit belongs. For example, Cadence Virtuoso software can export the parameter definitions of supported parameterized units and save them in CDF files.

[0065] Take the first target parameterized unit as the unit rupolym in Cadence Virtuoso software as an example. When obtaining the parameter definition data of the first target parameterized unit rupolym, Select the first target parameterized unit rupolym in the existing parameterized unit library tsmN28 of Virtuoso and obtain the CDF file of rupolym. The CDF file obtained in this example can be found in Figure 2 The one shown is from Cadence Schematic diagram of exporting the CDF file of rupolym in Virtuoso.

[0066] After obtaining the CDF file of the first target parameterized unit rupolym, that is, the parameter definition of the first target parameterized unit rupolym, a general program framework of the first target parameterized unit rupolym is generated according to the parameter definition. Figure 3 , Figure 3 A schematic diagram of a general program framework of a first target parameterization unit rupolym provided in an embodiment of the present application.

[0067] S102: Analyze the parameter variation pattern of the first target parameterized unit.

[0068] Parametric layout cells are composed of geometric shapes on different layout layers. The size and position of each geometric shape are controlled by parameters. To analyze the relationship between these parameters and the cell shape, it is necessary to construct a scenario in which the parameter values ​​change by repeatedly adjusting the parameter values ​​within the parametric cell and observe the synchronous changes in the layout shape during the parameter value changes. On this basis, the changing relationship between the parameter values ​​and the layout shape is described as actual code content using a preset universal description language. This is used to characterize the mapping relationship between the parameters and the cell shape, and then the parameter change pattern of the first target parametric cell can be obtained.

[0069] The parameter variation rule of the first target parameterized unit is described using a preset universal description language that is the same as the universal program framework, thereby ensuring that subsequent parameterized units can be smoothly converted.

[0070] S103: According to the parameter variation rule, the general program framework is supplemented to obtain a general program code.

[0071] After obtaining the parameter variation rule of the first target parameterized unit, the variation rule is described using a preset general description language, the general program framework of the first target parameterized unit is completed, and the general program code corresponding to the first target parameterized unit is obtained. Figure 4A schematic diagram of a complete general program code corresponding to a first target parameterization unit rupolym provided in an embodiment of the present application.

[0072] S104: Performing parameterized unit conversion according to the general program code to obtain at least one second target parameterized unit compatible with the first parameterized unit design tool; the design tool running on the second target parameterized unit is different from the first parameterized unit design tool.

[0073] Finally, the general program code generated based on the preset general description language is compiled and converted, and the preset general description language within the general program code can be uniformly converted into the programming language of the required parameterized unit, thereby generating at least one second target parameterized unit compatible with the first parameterized unit design tool. In one possible implementation, multiple second target parameterized units compatible with the first parameterized unit design tool and belonging to different design tools can be generated as needed.

[0074] In the present invention, the universal program code exists as a virtual parameterized unit, and at least one second target parameterized unit obtained after code conversion is used to achieve compatible interoperability of parameterized units between different EDA tools.

[0075] Cadence The Pcell in Virtuoso software is the first target parameterized unit. If you want to achieve Cadence Virtuoso software is compatible with the second target parameterized unit Hcell supported by DesignSmart Builder software, that is, to achieve Cadence The compatibility of parameterized cells between Virtuoso software and DesignSmart Builder software requires overcoming the differences between the Python programming language used by Hcell and the Skill programming language used by Pcell. After building the general program framework of Pcell according to the parameter definition, the general program framework is supplemented according to the parameter change law of Pcell to obtain the general program code corresponding to Pcell. Since the general program code is data described by a general description language, by converting the general program code described by the general description language into a Python code file described by the Python language, and importing the corresponding Python code file into the DesignSmart Builder software, a general program code compatible with the first parameterized cell design tool Cadence can be generated. The second target parameterized unit Hcell is compatible with Virtuoso software and is common to the first target parameterized unit Pcell. For details, see Figure 5The disclosed python file diagram of Hcell is combined for understanding.

[0076] Next, the steps for generating the second target parameterized unit compatible with the first parameterized unit design tool and common to the first target parameterized unit in step S104 will be described with reference to the accompanying drawings of specific embodiments. Figure 6 , which is a flow chart of another parameterized unit generation method provided in an embodiment of the present application, specifically comprising the following steps:

[0077] S201: Performing syntax tree structure conversion on the general program code to obtain a general syntax tree.

[0078] As described above, the process of converting parameterized cells requires converting the general program code into a code file compatible with the desired EDA tool. For example, if the parameterized cells to be generated are those supported by the DesignSmart Builder software, the general program code must be converted into the corresponding Python code file.

[0079] Therefore, since the general program code is a code file generated based on a preset general description language, in order to ensure the smooth conversion of different program language files, it is necessary to first convert the syntax tree structure of the general program code and parse it into an abstract syntax tree structure, so as to more intuitively represent the syntax structure and logic in the general program code and improve the generation efficiency of parameterized units.

[0080] In the embodiment of the present application, the abstract syntax tree structure includes an expression abstract syntax tree, a statement abstract syntax tree, and a function abstract syntax tree. A general syntax tree can be generated by nesting and combining these three syntax tree structures. Among them, the syntax structure of the expression abstract syntax tree can be seen in Figure 7 The structure diagram of the abstract syntax tree of the expression shown is as follows. Figure 7 The code of the expression abstract syntax tree in the preset general description language, skill and Python programming language:

[0081] Preset general description language code: 1+3*(4-1)+2 / / Four arithmetic expressions

[0082] Skill code: (1 + (3 * (4 - 1))) + 2) / / Four arithmetic operations expression

[0083] Python code: ((1 + (3 * (4 - 1))) + 2) / / Four arithmetic expressions

[0084] Further, the grammatical structure of the statement abstract syntax tree can be found in Figure 8 The structure diagram of the abstract syntax tree of the statement shown is exemplary, as follows Figure 8 The code of the statement abstract syntax tree in the preset general description language, skill and Python programming language:

[0085] Preset general description language code:

[0086] if (a>2){

[0087] a = b;

[0088] } else {

[0089] a = b + 1;

[0090] }

[0091] Skill code:

[0092] if( (a>2) then

[0093] a = b

[0094] else

[0095] a = (b + 1) )

[0097] Python code:

[0098] if (a>2):

[0099] a = b

[0100] else:

[0101] a = (b + 1)

[0102] Further, the syntax structure of the function abstract syntax tree can be found in Figure 9 The structure diagram of the function abstract syntax tree shown is as follows. Figure 9 Function abstract syntax tree code in the default general description language, skill, and Python programming language:

[0103] Preset general description language code:

[0104] function vctMax(z1, z2){

[0105] if (z1 <z2)

[0106] return z2;

[0107] else

[0108] return z1;

[0109] }

[0110] Skill code:

[0111] procedure(vctMax(z1 z2)

[0112] prog( ()

[0113] if( (z1 <z2) then

[0114] return(z2)

[0115] else

[0116] return(z1) ) ) )

[0120] Python code:

[0121] def vctMax(z1, z2):

[0122] if (z1 <z2):

[0123] return z2

[0124] else:

[0125] return z1

[0126] It can be seen that after nesting and combining the three abstract syntax trees, a comprehensive syntax tree structure can be obtained, which can more intuitively describe the syntax structure and logic represented by the general program code. For details, please refer to Figure 10 The schematic diagram of the structure of the comprehensive abstract syntax tree shown is exemplary, as follows Figure 10 The code of the comprehensive abstract syntax tree in the preset general description language, skill and Python programming language:

[0127] Preset general description language code:

[0128] module example(a,b)

[0129] {

[0130] a = 1+3*(4-1)+2;

[0131] b = 5;

[0132] vctMax(a, b);

[0133] }

[0134] Skill code:

[0135] procedure(main(libname)

[0136] ;; example

[0137] pcDefinePCell(

[0138] list(ddGetObj(libname) "example" "layout") (

[0140] (a "string" "")

[0141] (b "string" "") )

[0143] prog( ()

[0144] a = ((1 + (3 * (4 - 1))) + 2)

[0145] b = 5

[0146] vctMax(ab) ) ) )

[0150] main("tsmcN28")

[0151] Python code:

[0152] def example(this, args):

[0153] global __vclThis

[0154] __vclThis = this

[0155] a = args["a"]

[0156] b = args["b"]

[0157] a = ((1 + (3 * (4 - 1))) + 2)

[0158] b = 5

[0159] vctMax(a, b)

[0160] S202: Perform code conversion according to the universal syntax tree to obtain target unit code.

[0161] Subsequently, the general syntax tree obtained after the syntax tree structure conversion is subjected to code conversion to obtain the required code file, that is, the target unit code.

[0162] In one possible implementation, to improve the performance of converting a pre-set general description language code in a general program code to a target unit code, an embodiment of the present application pre-encapsulates some key code into pre-set function files, and defines the names and parameters of these pre-set function files using a pre-set general description language to form pre-set function call identifiers. Thus, when converting the general program code to the target unit code, the pre-set function call identifier described by the pre-set general description language in the general program code can be used to determine the corresponding pre-set function file in the target unit code and the function call parameters required to call the pre-set function file, thereby directly calling the pre-set function file, thereby improving the efficiency of converting the general program code to the target unit code.

[0163] The preset function call identifier is merely a name for the preset function file and its parameters in the preset general description language, and does not contain the actual function code. When converting and generating the target unit code, the corresponding preset function file can be directly called for replacement reference without converting the code in the general program code.

[0164] Here, we use a function to create a rectangle as an example. In real-world applications, since parameterized layout cells are composed of geometric shapes on different layout layers, and the size and position of each geometric shape are controlled by parameters, different software tools have different data structures for geometric shapes, so each software provides different methods for creating geometric shapes. As a result, the methods for creating parameterized layout cells vary across EDA tools.

[0165] In order to improve the generation efficiency of the target unit code of the parameterized layout unit, this application defines a plurality of different preset function files corresponding to the same preset function representation for different programming languages. Here, the programming language general description language, skill and python are taken as examples, and their corresponding preset function file names are: libvcl.vcl, libvcl.il and libvcl.py. The functions in libvcl.vcl can be directly referenced when writing general program code. The functions with the same name in libvcl.il and libvcl.py are used to replace the syntax tree nodes when the general program code is converted into the target unit code, and are referenced by the target unit code. The specific exemplary code is as follows:

[0166] General Description Language Programming Language:

[0167] module example(l, w)

[0168] {

[0169] string l = "300n";

[0170] string w = "1000n";

[0171] l = vcsParseValue(l);

[0172] w = vcsParseValue(w);

[0173] lower_x_po = 0;

[0174] lower_y_po = 0;

[0175] upper_x_po = l;

[0176] upper_y_po = w;

[0177] vclCreateRectangle(vclThis(), "PO", lower_x_po, lower_y_po, upper_x_po, upper_y_po);

[0178] }

[0179] Skill programming language:

[0180] procedure(main(libname)

[0181] ;; example

[0182] pcDefinePCell(

[0183] list(ddGetObj(libname) "example" "layout") (

[0185] (l "string" "300n")

[0186] (w "string" "1000n") )

[0188] prog( (lower_x_po lower_y_po upper_x_po upper_y_po)

[0189] l = vcsParseValue(l)

[0190] w = vcsParseValue(w)

[0191] lower_x_po = 0

[0192] lower_y_po = 0

[0193] upper_x_po = l

[0194] upper_y_po = w

[0195] vclCreateRectangle(vclThis(), "PO", lower_x_po, lower_y_po, upper_x_po, upper_y_po) ) ) )

[0199] Python programming language:

[0200] def example(this, args): [[ID=3L]]

[0201] global __vclThis [[ID=3^]]

[0202] __vclThis = this

[0203] l = args["l"]

[0204] w = args["w"]

[0205] l = vcsParseValue(l)<00U0449>

[0206] w = vcsParseValue(w)

[0207] lower_x_po = 0

[0208] lower_y_po = 0

[0209] upper_x_po = l

[0210] upper_y_po = w

[0211] vclCreateRectangle(vclThis(), "PO", lower_x_po, lower_y_po, upper_x_po, upper_y_po)

[0212] It should be noted that there may be some errors in the original text, such as the misspelling of "3L" and "3^" which should be "31" and "33" respectively. This translation is based on the corrected understanding.S203: Generate a parameterized unit according to the target unit code to obtain the second target parameterized unit.

[0213] Finally, by importing the target unit code into the corresponding EDA tool for parameterized unit conversion, a second target parameterized unit compatible with the first parameterized unit design tool can be generated, wherein the generated second target parameterized unit can be one or more, and the second target parameterized unit can be supported by other design tools different from the first parameterized unit design tool to open and perform related operations, that is, a second target parameterized unit that is common to the first target parameterized unit and compatible with multiple parameterized unit design tools is generated.

[0214] The parameters of the second target parameterized unit are consistent with those of the first target parameterized unit and the pattern change rules of the layout are also consistent. The second target parameterized unit can use the same programming language as the first target parameterized unit, or a different programming language.

[0215] Next, the process of generating the general program framework of the target parameterization unit in step S101 will be described with reference to the accompanying drawings of specific embodiments. It should be noted that when generating the corresponding general program framework based on parameter definition data, the parameter definition data can be declared data and / or custom data.

[0216] See also Figure 11 , which is a flow chart of another parameterized unit generation method provided in an embodiment of the present application, specifically comprising the following steps:

[0217] S301: When the data type of the parameter definition data is the declared data, generating a parameter file of the first target parameterized unit according to the parameter definition data;

[0218] S302: When the data type of the parameter definition data is the user-defined data, compile and generate a parameter file of the first target parameterized unit according to a preset parameter definition rule;

[0219] S303: Generate the general program framework of the first target parameterization unit according to the parameter file of the first target parameterization unit in step S301 or S302.

[0220] EDA tools have files / views specifically for storing parameter definition data (i.e., parameter files). As shown in the previous example, Cadence Virtuoso software stores parameter definition data in CDF files, while DesignSmartBuilder software stores parameter definition data in model views. If parameter definition data can be retrieved from a CDF file or model view, it indicates that the parameter definition data has been pre-declared in the EDA tool to which it belongs and is considered declared data. If parameter definition data cannot be retrieved from a CDF file or model view, it indicates that the parameter definition data is custom data. The general program framework generation method varies for different data types.

[0221] When the data type of the parameter definition is declared data, it is necessary to generate a parameter file for the first target parameterized unit based on its specific declared data, and generate a general program framework through the corresponding parameter file. Taking the first target parameterized unit Pcell supported by Cadence Virtuoso software and the second target parameterized unit Hcell supported by DesignSmart Builder software as examples, the parameter definition data of Pcell in Cadence Virtuoso software exists in the form of a CDF file. The declared parameter definition data, that is, the CDF file of Pcell, can be obtained by exporting, and the CDF file can be imported into the database structure of the device generated by DesignSmart Builder software to generate the corresponding model view. The parameter definition is obtained through the model view and a general program framework is generated through the DesignSmart Engineer software. Among them, the model view is the parameter definition form of the parameterized unit supported by the DesignSmart Builder software, that is, the parameter file; the DesignSmart Engineer software is the development and debugging environment of the general description language of the present invention.

[0222] Correspondingly, when the data type of the parameter definition data is custom data, it is necessary to complete the parameter definition according to the preset parameter definition rules, compile and generate the parameter file, and thus generate the corresponding general program framework. Among them, the preset parameter definition rules stipulate the specific format requirements of the parameter definition, which can be found in Figure 12 A schematic diagram of a preset parameter definition rule is disclosed, which will not be described in detail in this embodiment.

[0223] In the embodiment of the present application, only the generation of a second target parameterized unit compatible with the first parameterized unit design tool and universal with the first target parameterized unit is shown, but in actual application, the technical effect of generating multiple second target parameterized units compatible with the first parameterized unit design tool and universal with the first target parameterized unit can be achieved by constructing a virtual parameterized unit once. Compared with the prior art that requires multiple compilations for different language formats of different layout design tools, the present invention can obtain parameterized units adapted to different layout design tools through only one general program code programming, thereby achieving compatibility of parameterized units between different EDA tools, improving the development efficiency of the integrated circuit backend, and breaking through the technical bottleneck of the integration of domestic foundry manufacturers and domestic backend design tools.

[0224] The embodiment of the present application provides a parameterized unit generation method, in which the parameter definition data of the first target parameterized unit and the general program framework of the first target parameterized unit are determined by a preset general description language. The specific data structure in the first target parameterized unit can be generated into a specific and highly versatile general program framework by a preset general description language to facilitate the compatibility of the parameterized unit. Subsequently, the parameters of the first target parameterized unit are analyzed for regularity, and the specific change regularity of different parameters in the first target parameterized unit can be determined, and the general program framework is supplemented to obtain the general program code corresponding to the first target parameterized unit. Finally, the parameterized unit is converted according to the general program code, and the second target parameterized unit compatible with the first parameterized unit design tool can be effectively generated. In this way, the compatibility of parameterized units between different EDA tools is achieved, and the development efficiency of the integrated circuit back end is improved.

[0225] A parameterized unit generation system provided in an embodiment of the present application is introduced below. The parameterized unit generation system described below and the parameterized unit generation method described above can refer to each other.

[0226] See also Figure 13 , which is a schematic diagram of the structure of a parameterized unit generation system provided in an embodiment of the present application, specifically including the following modules:

[0227] A framework generation module 100 is configured to generate a general program framework of a first target parameterized unit according to parameter definition data; the general program framework is determined based on a preset general description language; the first target parameterized unit is run in a first parameterized unit design tool;

[0228] A rule analysis module 200 is used to analyze the parameter variation rule of the first target parameterized unit;

[0229] A code generation module 300 is used to supplement the general program framework according to the parameter variation rule to obtain a general program code;

[0230] The unit conversion module 400 is used to perform parameterized unit conversion according to the general program code to obtain at least one second target parameterized unit compatible with the first parameterized unit design tool; the design tool running the second target parameterized unit is different from the first parameterized unit design tool.

[0231] Based on the same inventive concept, corresponding to any of the above-mentioned embodiment methods, an embodiment of the present application also provides a computer-readable storage medium, wherein the computer-readable storage medium stores computer instructions, and the computer instructions are used to enable the computer to execute the parameterized unit generation method described in any of the above embodiments.

[0232] The computer-readable media of the embodiments of the present application include permanent and non-permanent, removable and non-removable media that can be used to store information by any method or technology. The information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device.

[0233] The computer instructions stored in the storage medium of the above embodiment are used to enable the computer to execute the parameterized unit generation method described in any of the above embodiments, and have the beneficial effects of the corresponding method embodiments, which will not be repeated here.

[0234] It should be noted that the various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for methods, systems and media, since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiments. The methods, systems and media described above are merely schematic, wherein the units described as separate components may or may not be physically separated, and the components indicated as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. A person of ordinary skill in the art can understand and implement it without expending creative work.

[0235] The above is merely one specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A parameterized unit generation method, characterized in that: include: generating a general program framework of a first target parameterized unit according to the parameter definition data; The general program framework is determined based on a preset general description language; the first target parameterized unit is run on a first parameterized unit design tool; Analyzing the parameter variation pattern of the first target parameterized unit; According to the parameter variation rule, the general program framework is supplemented to obtain a general program code; Performing parameterized cell conversion according to the general program code to obtain at least one second target parameterized cell compatible with the first parameterized cell design tool; The second target parameterized cell runs a design tool different from the first parameterized cell design tool; The analyzing the parameter variation rule of the first target parameterized unit includes: Adjusting the parameters of the first target parameterized unit based on a preset parameter adjustment strategy to obtain a change pattern of the parameter graph of the first target parameterized unit under the preset parameter adjustment strategy; the preset parameter adjustment strategy is to construct a parameter value change scenario for the parameterized unit by adjusting the parameter value of the parameterized unit multiple times, and simultaneously observing the change pattern of the corresponding layout graph; The change rule is programmed using the preset universal description language to supplement the universal program framework and obtain universal program code.

2. The method according to claim 1, characterized in that The performing parameterized cell conversion according to the universal program code to obtain at least one second target parameterized cell compatible with the first parameterized cell design tool includes: Performing an abstract syntax tree structure conversion on the general program code to obtain a general syntax tree; Perform code conversion according to the universal syntax tree to obtain target unit code; Generate a parameterized unit according to the target unit code to obtain the second target parameterized unit.

3. The method according to claim 2, characterized in that The general syntax tree includes: a preset function call identifier; and performing code conversion according to the general syntax tree to obtain a target unit code includes: According to the preset function call identifier, determining a preset function file corresponding to the preset function call identifier and function call parameters required when executing the preset function file; the program language type of the preset function file is the same as the program language type of the target unit code; The preset function file is called according to the function call parameter to obtain the target unit code.

4. The method according to claim 1, wherein The data types of the parameter definition data include: declared data and user-defined data.

5. The method according to claim 4, characterized in that The method of generating a general program framework of the first target parameterized unit according to the parameter definition data includes: When the data type of the parameter definition data is the declared data, generating a parameter file of the first target parameterized unit according to the parameter definition data; The general program framework of the first target parameterization unit is generated according to the parameter file.

6. The method according to claim 4, characterized in that The method of generating a general program framework of the first target parameterized unit according to the parameter definition data includes: When the data type of the parameter definition data is the custom data, compiling and generating a parameter file of the first target parameterized unit according to a preset parameter definition rule; The general program framework of the first target parameterization unit is generated according to the parameter file.

7. A parameterized unit generation system, characterized in that: include: A framework generation module, configured to generate a general program framework of the first target parameterized unit according to the parameter definition data; The general program framework is determined based on a preset general description language; the first target parameterized unit is run on a first parameterized unit design tool; A rule analysis module, configured to analyze the parameter variation rule of the first target parameterized unit; A code generation module, configured to supplement the general program framework according to the parameter variation rule to obtain a general program code; a cell conversion module, configured to perform parameterized cell conversion according to the universal program code to obtain at least one second target parameterized cell compatible with the first parameterized cell design tool; wherein the second target parameterized cell runs a design tool different from the first parameterized cell design tool; The rule analysis module is specifically used to: Adjusting the parameters of the first target parameterized unit based on a preset parameter adjustment strategy to obtain a change pattern of the parameter graph of the first target parameterized unit under the preset parameter adjustment strategy; the preset parameter adjustment strategy is to construct a parameter value change scenario for the parameterized unit by adjusting the parameter value of the parameterized unit multiple times, and simultaneously observing the change pattern of the corresponding layout graph; The change rule is programmed using the preset universal description language to supplement the universal program framework and obtain universal program code.

8. The system according to claim 7, characterized in that The unit conversion module is specifically used to: Performing an abstract syntax tree structure conversion on the general program code to obtain a general syntax tree; Perform code conversion according to the universal syntax tree to obtain target unit code; Generate a parameterized unit according to the target unit code to obtain the second target parameterized unit.

9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the parameterized unit generation method according to any one of claims 1 to 6 is implemented.