Parameterization unit generation method and system and medium

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

CN120278091AActive Publication Date: 2025-07-08BEIJING CELLIX REVEALING TECH CO LTD

Patent Information

Application Number
CN202510769714.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-10
Publication Date
2025-07-08
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 program language differences, resulting in inefficient development of the integrated circuit back-end.

Method used

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

Benefits of technology

The compatibility of parameterized units between different EDA tools is achieved, and the development efficiency of the integrated circuit backend is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120278091A_ABST
    Figure CN120278091A_ABST
Patent Text Reader

Abstract

The invention provides a parameterization unit generation method and system and a medium, and the method comprises the steps: generating a general program framework of a first target parameterization unit according to parameter definition data; performing rule analysis on parameters of the first target parameterization unit to obtain a parameter change rule, and supplementing a general program framework according to the parameter change rule to obtain a general program code; and performing parameterization unit conversion according to the universal program code to obtain a second target parameterization unit which is compatible with the first parameterization unit design tool and is universal with the first target parameterization unit. Therefore, the compatibility of parameterized units in different EDA tools is realized, and the development efficiency of the back end of an integrated circuit is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the technical field of software development, and particularly to a method, system and medium for generating parameterized cells. Background Art

[0002] Currently, EDA tools mainly complete the back-end design of integrated circuits through the parameterized cells in their PDK libraries. In the back-end development of integrated circuits, the use of multiple different EDA tools is often involved. However, due to the differences in the programming languages applied by different EDA tools, it is difficult for the parameterized cells in different PDK libraries to be compatible with each other, resulting in low development efficiency for the back-end of integrated circuits. Summary of the Invention

[0003] Based on the above problems, in order to solve the problem that it is difficult for parameterized cells in different EDA tools to be compatible with each other, the embodiments of this application provide a method, system and medium for generating parameterized cells.

[0004] The embodiments of this application disclose the following technical solutions: In a first aspect, the embodiments of this application provide a method for generating parameterized cells, including: Generating a general program framework for a first target parameterized cell according to parameter definition data; the general program framework is determined based on a preset general description language; the first target parameterized cell runs on a first parameterized cell design tool; Analyzing the parameter change rule of the first target parameterized cell; Supplementing the general program framework according to the parameter change rule to obtain general program code; Performing parameterized cell conversion according to the general program code to obtain at least one second target parameterized cell that is compatible with the first parameterized cell design tool; the design tool on which the second target parameterized cell runs is different from the first parameterized cell design tool.

[0005] In a possible implementation, the performing parameterized cell conversion according to the general program code to obtain at least one second target parameterized cell that is compatible with the first parameterized cell design tool includes: Performing abstract syntax tree structure conversion on the general program code to obtain a general syntax tree; Performing code conversion according to the general syntax tree to obtain target cell code; Generating a parameterized cell according to the target cell code to obtain the second target parameterized cell.

[0006] In a possible implementation, the general syntax tree includes: a preset function call identifier; and the code conversion based on the general syntax tree to obtain the target unit code includes: Determine a preset function file corresponding to the preset function call identifier and function call parameters required when executing the preset function file according to the preset function call identifier; the program language type of the preset function file is the same as that of the target unit code; Call the preset function file according to the function call parameters to obtain the target unit code.

[0007] In a possible implementation, the data types of the parameter definition data include: declared data and custom data.

[0008] In a possible implementation, the generation of the 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, generate a parameter file of the first target parameterized unit according to the parameter definition data; Generate the general program framework of the first target parameterized unit according to the parameter file; In a possible implementation, the generation of the 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, compile and generate a parameter file of the first target parameterized unit according to the preset parameter definition rules; Generate the general program framework of the first target parameterized unit according to the parameter file.

[0009] In a possible implementation, the analysis of the parameter change rule of the first target parameterized unit includes: Perform parameter adjustment on the first target parameterized unit based on a preset parameter adjustment strategy to obtain the change rule of the parameter graph of the first target parameterized unit under the preset parameter adjustment strategy; Write a program body for the change rule through the preset general description language to supplement the general program framework and obtain general program code.

[0010] In a second aspect, an embodiment of the present application provides a parameterized unit generation system, including: 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 runs on a first parameterized unit design tool; A rule analysis module analyzes the parameter variation rule of the first target parameterized unit; A code generation module is configured to supplement the general program framework according to the parameter variation rule to obtain general program code; A unit conversion module is configured to perform parameterized unit conversion according to the general program code to obtain at least one second target parameterized unit compatible with the design tool of the first parameterized unit; the design tool on which the second target parameterized unit runs is different from the design tool of the first parameterized unit.

[0011] In a possible implementation manner, the unit conversion module is specifically configured to: Perform abstract syntax tree structure conversion on the general program code to obtain a general syntax tree; Perform code conversion according to the general syntax tree to obtain target unit code; Generate a parameterized unit according to the target unit code to obtain the second target parameterized unit.

[0012] In a third aspect, an embodiment of the present application provides a computer-readable storage medium, on which a computer program is stored, and when the program is executed by a processor, any possible parameterized unit generation method in the first aspect is implemented.

[0013] 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 the method, a general program framework of the first target parameterized unit is determined through parameter definition data and a preset general description language, so as to generate a specific and highly general general program framework for the data structure belonging to the first parameterized unit design tool in the first target parameterized unit, thereby facilitating the subsequent generation of parameterized units with high compatibility. Subsequently, the parameter variation rule of the first target parameterized unit is analyzed, and the general program framework is supplemented based on the parameter variation rule, so that the data content of the first target parameterized unit is presented through the general program code. Finally, parameterized unit conversion is performed according to the general program code, and at least one second target parameterized unit compatible with the design tool of the first parameterized unit 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, and the second target parameterized unit of different design tools can be generated through the parameterized unit conversion of the general program code, which can effectively eliminate the differences in programming languages and data structures between different parameterized units, thereby realizing the compatibility of parameterized units between different EDA tools and improving the development efficiency of the integrated circuit backend. Description of the Drawings

[0014] To more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the accompanying drawings required for the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other accompanying drawings can be obtained based on these drawings.

[0015] Figure 1 It is a schematic flowchart of a method for generating a parametric unit provided by an embodiment of the present application; Figure 2 It is a schematic diagram of exporting a CDF file of rupolym from Virtuoso provided by an embodiment of the present application; Figure 3 It is a schematic diagram of a general program framework provided by an embodiment of the present application; Figure 4 It is a schematic diagram of a first parameter law analysis data provided by an embodiment of the present application; Figure 5 It is a schematic diagram of a python file of Hcell provided by an embodiment of the present application; Figure 6 It is a schematic flowchart of another method for generating a parametric unit provided by an embodiment of the present application; Figure 7 It is a schematic diagram of the structure of an expression abstract syntax tree provided by an embodiment of the present application; Figure 8 It is a schematic diagram of the structure of a statement abstract syntax tree provided by an embodiment of the present application; Figure 9 It is a schematic diagram of the structure of a function abstract syntax tree provided by an embodiment of the present application; Figure 10 It is a schematic diagram of the structure of a comprehensive abstract syntax tree provided by an embodiment of the present application; Figure 11 It is a schematic flowchart of yet another method for generating a parametric unit provided by an embodiment of the present application; Figure 12 It is a schematic diagram of a preset parameter definition rule provided by an embodiment of the present application; Figure 13 It is a schematic diagram of the structure of a parametric unit generation system provided by an embodiment of the present application. Detailed implementation manners

[0016] To make the objectives, technical solutions, and advantages of this application more clearly understood, the following further elaborates on this application in detail with reference to specific embodiments and the accompanying drawings. It should be specifically noted that the embodiments described in the embodiments of this application are only a part of the embodiments of this application, rather than all of the embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments in this application without making creative efforts fall within the scope of protection of this application.

[0017] It should be noted that unless otherwise defined, the technical terms or scientific terms used in the embodiments of this application should have the ordinary meaning understood by those of ordinary skill in the art to which this application belongs. The "first", "second", and similar terms used in the embodiments of this application do not denote any order, quantity, or importance, but are only used to distinguish different components. Words such as "include" or "comprise" mean that the elements or items appearing before this word cover the elements or items listed after this word and their equivalents, without excluding other elements or items. Words such as "connect" or "couple" are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect. "Upper", "lower", "left", "right", etc. are only used to represent relative positional relationships, and when the absolute position of the object being described changes, the relative positional relationship may also change accordingly.

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

[0019] To solve the above problems, the embodiments of the present application provide a method, system, and medium for generating parameterized units. In the method, by defining parameter data and presetting a general description language, a general program framework for the first target parameterized unit is determined, so as to generate a specific and highly general general program framework for the data structure belonging to the first parameterized unit design tool in the first target parameterized unit, thereby facilitating the subsequent generation of parameterized units with high compatibility. Subsequently, the parameter change rule of the first target parameterized unit is analyzed, and the general program framework is supplemented based on the parameter change rule, so as to present the data content of the first target parameterized unit through general program code. Finally, parameterized unit conversion is performed according to the general program code, and 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 performing parameterized unit conversion on the general program code to generate second target parameterized units of different design tools, the differences in program language and data structure between different parameterized units can be effectively eliminated, thereby realizing the compatibility of parameterized units between different EDA tools and improving the development efficiency of the integrated circuit backend.

[0020] Next, the method for generating parameterized units provided by the embodiments of the present application will be introduced in combination with specific embodiment drawings.

[0021] See Figure 1 , which is a schematic flowchart of a method for generating parameterized units provided by the embodiments of the present application, specifically including the following steps: S101: Generate a general program framework for 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 runs on the first parameterized unit design tool.

[0022] As can be seen from the previous description of the background technology, among different EDA tools, due to the differences in the program languages used by different EDA tools, it is difficult to achieve mutual compatibility of parameterized units between different EDA tools. Taking Cadence Virtuoso software and DesignSmart Builder software as examples, the former uses the Skill language, while the latter uses the Python language. The differences in program language between the two make it difficult for parameterized units to be mutually compatible.

[0023] Therefore, in order to achieve the compatibility of parameterized units under different programming languages, when generating a second target parameterized unit that is compatible with the first parameterized unit design tool and common to the first target parameterized unit in this embodiment, it is first necessary to generate a general program framework according to the parameter definition data of the first target parameterized unit and using a preset general description language, so as to present the basic structure of the code in the first target parameterized unit through the general description language, facilitating subsequent parameterized unit conversion.

[0024] Among them, the general program framework is generated based on a preset general description language, and the preset general description language extracts the common features of commonly used languages (such as Skill, Python, etc.) when designing parameterized units to achieve maximum compatibility.

[0025] In the embodiments of the present application, the preset general description language can support programming structures in multiple scenarios, such as variable definition, function call, loop structure, and function definition, etc. The diverse structures it supports can make the process of code writing more intuitive and efficient. The following is a syntax example of the preset general description language: In addition, in actual application scenarios, the parameter definition data of the first target parameterized unit includes different parameter types, limit values, callback functions, etc., and the parameter definition data can usually be obtained through the EDA tool to which the parameterized unit belongs. For example, Cadence Virtuoso software can export and save the parameter definitions of the parameterized units it supports in a CDF file.

[0026] Taking 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 from the existing parameterized unit library tsmN28 in Cadence Virtuoso to obtain the CDF file of rupolym. Specifically, the CDF file obtained in this example can be seen in Figure 2 as shown in a schematic diagram of exporting the CDF file of rupolym from Cadence Virtuoso.

[0027] After obtaining the CDF file of the first target parameterized unit rupolym, that is, the parameter definition of the first target parameterized unit rupolym, generate the general program framework of the first target parameterized unit rupolym, see Figure 3 , Figure 3Schematic diagram of a general program framework for a first target parameterized unit rupolym provided by an embodiment of the present application.

[0028] S102: Analyze the parameter change rule of the first target parameterized unit.

[0029] The parameterized layout unit is composed of geometric figures on different layout layers. The size, position, etc. of each geometric figure are controlled by parameters. In order to analyze the relationship between these parameters and the unit figures, it is necessary to construct a scenario of parameter value change by adjusting the parameter values in the parameterized unit multiple times, and observe the graphic changes that occur synchronously during the parameter value change process. On this basis, the change relationship between the parameter values and the layout figures is described as actual code content in a preset general description language, so as to represent the mapping relationship between the parameters and the unit figures, and then the parameter change rule of the first target parameterized unit can be obtained.

[0030] Among them, the parameter change rule of the first target parameterized unit is described in the same preset general description language as the general program framework, so as to ensure the smooth conversion of subsequent parameterized units.

[0031] S103: Supplement the general program framework according to the parameter change rule to obtain general program code.

[0032] After obtaining the parameter change rule of the first target parameterized unit, describe the change rule in the preset general description language, and supplement the general program framework of the first target parameterized unit to obtain the general program code corresponding to the first target parameterized unit. Figure 4 Schematic diagram of a complete general program code corresponding to a first target parameterized unit rupolym provided by an embodiment of the present application.

[0033] S104: Perform parameterized unit conversion according to the general program code to obtain at least one second target parameterized unit compatible with the design tool of the first parameterized unit; the design tool on which the second target parameterized unit runs is different from the design tool of the first parameterized unit.

[0034] Finally, compile and convert the general program code generated based on the preset general description language, and the preset general description language in the general program code can be uniformly converted into the programming language of the required parameterized unit, so as to generate at least one second target parameterized unit compatible with the design tool of the first parameterized unit. In a possible implementation, multiple second target parameterized units compatible with the design tool of the first parameterized unit and belonging to different design tools can be generated according to requirements.

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

[0036] Taking the Pcell in Cadence Virtuoso software as the first target parameterization unit, to achieve the compatibility of Cadence Virtuoso software with the second target parameterization unit Hcell supported by DesignSmart Builder software, that is, to achieve the compatibility of parameterization units between Cadence Virtuoso software and DesignSmart Builder software, it is necessary to overcome the difference between the python programming language applied by Hcell and the skill programming language applied by Pcell. After constructing the general program framework of Pcell according to the parameter definition, the general program framework is supplemented according to the parameter change rule of Pcell to obtain the general program code corresponding to Pcell. Since the general program code is data described by a general description language, therefore, 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 second target parameterization unit Hcell that is compatible with the first parameterization unit design tool Cadence Virtuoso software and is general with the first target parameterization unit Pcell can be generated. For specific combination and understanding, reference can be made to Figure 5 the schematic diagram of a python file of an Hcell disclosed.

[0037] Next, in combination with the specific embodiment drawings, the generation steps of the second target parameterization unit that is compatible with the first parameterization unit design tool and is general with the first target parameterization unit in step S104 will be introduced. Refer to Figure 6 This figure is a schematic flow chart of another parameterization unit generation method provided by an embodiment of the present application, which specifically includes the following steps: S201: Perform a syntax tree structure conversion on the general program code to obtain a general syntax tree.

[0038] As can be seen from the previous description, during the process of parametric unit conversion, it is necessary to convert the general program code into a code file adapted to the EDA tool to be compatible. For example, if the parametric unit to be generated is a parametric unit supported by DesignSmart Builder software, the general program code needs to be converted into a corresponding python code file.

[0039] 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 programming language files, it is necessary to first perform a syntax tree structure conversion on the general program code, 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 parametric units.

[0040] In the embodiments 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. The 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 referred to Figure 7 the structural schematic diagram of the expression abstract syntax tree shown. Exemplarily, the following is Figure 7 the code of the expression abstract syntax tree in the preset general description language, skill, and python programming language: Preset general description language code: 1+3*(4-1)+2 / / Four arithmetic operation expression Skill code: (1 + (3 * (4 - 1))) + 2) / / Four arithmetic operation expression Python code: ((1 + (3 * (4 - 1))) + 2) / / Four arithmetic operation expression Furthermore, the syntax structure of the statement abstract syntax tree can be referred to Figure 8 the structural schematic diagram of the statement abstract syntax tree shown. Exemplarily, the following is Figure 8 the code of the statement abstract syntax tree in the preset general description language, skill, and python programming language: Preset general description language code: if (a>2){ a = b; } else { a = b + 1; } Skill code: if( (a>2) then a = b else a = (b + 1) ) Python code: if (a > 2): a = b else: a = (b + 1) Furthermore, the syntax structure of the function abstract syntax tree can be referred to Figure 9 the structural schematic diagram of the function abstract syntax tree shown below. Exemplarily, the following is Figure 9 the code of the function abstract syntax tree in the preset general description language, skill, and Python programming language: Preset general description language code: function vctMax(z1, z2){ if (z1 < z2) return z2; else return z1; } Skill code: procedure(vctMax(z1 z2) prog( () if( (z1 < z2) then return(z2) else return(z1) ) ) ) Python code: def vctMax(z1, z2): if (z1 < z2): return z2 else: return z1 It can be seen that after nesting and combining the three abstract syntax trees, a comprehensive syntax tree structure can be obtained, thus more intuitively describing the syntax structure and logic represented by the general program code. Specifically, it can be referred to Figure 10 the structural schematic diagram of the comprehensive abstract syntax tree shown below. Exemplarily, the following is Figure 10 the code of the comprehensive abstract syntax tree in the preset general description language, skill, and Python programming language: Preset general description language code: module example(a, b) { a = 1 + 3 * (4 - 1) + 2; b = 5; vctMax(a, b); } Skill code: procedure(main(libname) ;; example pcDefinePCell( list(ddGetObj(libname) "example" "layout") ( (a “string” “”) (b “string” “”) ) prog( () a = ((1 + (3 * (4 - 1))) + 2) b = 5 vctMax(a b) ) ) ) main(“tsmcN28”) Python code: def example(this, args): global __vclThis __vclThis = this a = args[“a”] b = args[“b”] a = ((1 + (3 * (4 - 1))) + 2) b = 5 vctMax(a, b) S202: Perform code conversion based on the general syntax tree to obtain the target unit code.

[0041] Subsequently, perform code conversion on the general syntax tree obtained after the syntax tree structure conversion to obtain the required code file, i.e., the target unit code.

[0042] In a possible implementation, to improve the performance of converting the preset general description language code in the general program code to the target unit code, the embodiments of the present application pre-encapsulate some key codes into preset function files, and define the names and parameters of these preset function files through the preset general description language to form preset function call identifiers. In this way, when converting the general program code to the target unit code, the corresponding preset function files in the target unit code and the function call parameters required to call the preset function files can be determined through the preset function call identifiers described by the preset general description language in the general program code, so as to directly call the preset function files and improve the efficiency of converting the general program code to the target unit code.

[0043] Among them, the preset function call identifier is only the naming of the preset function file and the preset function call parameters by the preset general description language, and does not include the actual function code. When 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.

[0044] Here, taking the function of creating a rectangle as an example, in the actual application scenario, since the parametric layout unit is composed of geometric figures on different layout layers, and the size and position of each geometric figure are controlled by parameters. Geometric figures have different data structures in different software tools, so the methods for creating geometric figures provided by each software are different. Therefore, there are differences in the methods for creating parametric layout units in different EDA tools.

[0045] To improve the generation efficiency of the target unit code of the parametric layout unit, for different programming languages, the present application respectively defines multiple different preset function files corresponding to the same preset function representation. Here, taking the general description language, skill, and python as examples, the corresponding names of the preset function files are: libvcl.vcl, libvcl.il, and libvcl.py. The functions in libvcl.vcl can be directly referenced when writing the general program code, and the functions with the same name in libvcl.il and libvcl.py are used for syntax tree node replacement when the general program code is converted to the target unit code and are referenced by the target unit code. The specific exemplary codes are as follows: General description language programming language: moduleexample(l, w) { string l = "300n"; string w = "1000n"; l =vcsParseValue(l); w = vcsParseValue(w); lower_x_po = 0; lower_y_po = 0; upper_x_po = l; upper_y_po = w; vclCreateRectangle(vclThis(), "PO", lower_x_po, lower_y_po, upper_x_po, upper_y_po); } Skill programming language: procedure(main(libname) ;; example pcDefinePCell( list(ddGetObj(libname) "example" "layout") ( (l "string" "300n") (w "string" "1000n") ) prog( (lower_x_po lower_y_po upper_x_po upper_y_po) l = vcsParseValue(l) w = vcsParseValue(w) lower_x_po = 0 lower_y_po = 0 upper_x_po = l upper_y_po = w vclCreateRectangle(vclThis() "PO" lower_x_po lower_y_po upper_x_poupper_y_po) ) ) ) Python programming language: def example(this, args): global __vclThis __vclThis = this l = args["l"] w = args["w"] l = vcsParseValue(l) w = vcsParseValue(w) lower_x_po = 0 lower_y_po = 0 upper_x_po = l upper_y_po = w vclCreateRectangle(vclThis(), "PO", lower_x_po, lower_y_po, upper_x_po, upper_y_po) S203: Generate a parameterized cell according to the target cell code to obtain the second target parameterized cell.

[0046] Finally, by importing the target cell code into the corresponding EDA tool for parameterized cell conversion, a second target parameterized cell compatible with the first parameterized cell design tool can be generated. Among them, the generated second target parameterized cell can be one or more, and this second target parameterized cell can be supported and opened by other design tools different from the first parameterized cell design tool for related operations, that is, a second target parameterized cell compatible with multiple parameterized cell design tools and common with the first target parameterized cell is generated.

[0047] The parameters of the second target parameterized cell are the same as those of the first target parameterized cell, and the layout pattern change rules are also the same. The second target parameterized cell can use the same programming language as the first target parameterized cell or different programming languages.

[0048] Next, in combination with the specific embodiment drawings, the generation process of the general program framework of the target parameterized cell in step S101 above will be introduced. It should be noted that when generating the corresponding general program framework according to the parameter definition data, the parameter definition data can be declared data and / or custom data.

[0049] See Figure 11 , this figure is a schematic flowchart of another method for generating a parameterized cell provided by an embodiment of the present application, which specifically includes the following steps: S301: When the data type of the parameter definition data is the declared data, generate a parameter file of the first target parameterized cell according to the parameter definition data; S302: When the data type of the parameter definition data is the custom data, compile and generate a parameter file for the first target parameterization unit according to a preset parameter definition rule; 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.

[0050] In an EDA tool, there is a dedicated file / view for storing parameter definition data (i.e., a parameter file). As can be seen from the previous example, the parameter definition data of the Cadence Virtuoso software is stored in a CDF file; while the parameter definition data of the DesignSmartBuilder software is stored in a model view. If the parameter definition data can be obtained from a CDF file or a model view, it indicates that the parameter definition data has been previously declared in its corresponding EDA tool and is declared data. When the parameter definition data cannot be obtained from a CDF file or a model view, it indicates that the parameter definition data is custom data. For different data types, the generation methods of their general program frameworks also vary.

[0051] When the data type of the parameter definition is declared data, it is necessary to generate a parameter file for the first target parameterization unit according to its specific declared data, and generate a general program framework through the corresponding parameter file. Taking the first target parameterization unit Pcell supported by the Cadence Virtuoso software and the second target parameterization unit Hcell supported by the DesignSmart Builder software as examples, the parameter definition data of Pcell in the Cadence Virtuoso software exists in the form of a CDF file. The declared parameter definition data can be obtained by export, that is, the CDF file of Pcell, and the CDF file is imported into the DesignSmart Builder software to generate the database structure of the device, and then the corresponding model view can be generated. Obtain the parameter definition through the model view and generate the general program framework through the DesignSmart Engineer software. Among them, the model view is the parameter definition form of the parameterization 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.

[0052] Correspondingly, when the data type of the parameter definition data is custom data, it is necessary to complete the parameter definition according to a preset parameter definition rule, compile and generate a parameter file, and thus generate the corresponding general program framework. Among them, the preset parameter definition rule stipulates the specific format requirements for parameter definition. For details, please refer to Figure 12A schematic diagram of a preset parameter definition rule is disclosed, which will not be elaborated in this embodiment.

[0053] In the embodiment of the present application, only one second target parameterized unit that is compatible with the first parameterized unit design tool and is common to the first target parameterized unit is shown. However, in actual applications, through the construction of a virtual parameterized unit once, the technical effect of generating multiple second target parameterized units that are compatible with the first parameterized unit design tool and are common to the first target parameterized unit can be achieved. 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 realizing the 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.

[0054] The embodiment of the present application provides a method for generating a parameterized unit. In this method, through the parameter definition data of the first target parameterized unit and a preset general description language, the general program framework of the first target parameterized unit can be determined. The specific data structure in the first target parameterized unit can be used to generate a specific and highly general general program framework through the preset general description language, so as to facilitate the compatibility of the parameterized unit. Subsequently, by analyzing the parameter rules of the first target parameterized unit, the specific change rules of different parameters in the first target parameterized unit can be determined, and the general program framework can be supplemented to obtain the general program code corresponding to the first target parameterized unit. Finally, through parameterized unit conversion according to the general program code, a 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 realized, and the development efficiency of the integrated circuit backend is improved.

[0055] Next, a parameterized unit generation system provided by the embodiment of the present application will be introduced. The parameterized unit generation system described below can be mutually corresponded and referred to with the parameterized unit generation method described above.

[0056] See Figure 13 , which is a schematic structural diagram of a parameterized unit generation system provided by the embodiment of the present application, and specifically includes the following modules: A framework generation module 100, 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 runs on a first parameterized unit design tool; A rule analysis module 200, configured to analyze the parameter change rule of the first target parameterized unit; A code generation module 300, configured to supplement the general program framework according to the parameter variation rule to obtain general program code; A unit conversion module 400, configured 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; a design tool for running the second target parameterized unit is different from the first parameterized unit design tool.

[0057] Based on the same inventive concept, corresponding to the method in any of the above embodiments, an embodiment of the present application further provides a computer-readable storage medium. The computer-readable storage medium stores computer instructions, and the computer instructions are used to cause the computer to execute the parameterized unit generation method described in any of the above embodiments.

[0058] The computer-readable medium of the embodiment of the present application includes permanent and non-permanent, removable and non-removable media, and information storage can be implemented 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 technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassette tapes, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information accessible by a computing device.

[0059] The computer instructions stored in the storage medium of the above embodiment are used to cause 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 elaborated here.

[0060] It should be noted that the various embodiments in this specification are described in a progressive manner. For the same or similar parts among the various embodiments, reference can be made to each other, and the key point of each embodiment is to illustrate the differences from other embodiments. In particular, for the method, system, and medium, since they are basically similar to the method embodiments, the description is relatively simple, and reference can be made to the relevant parts of the method embodiments for the relevant content. The method, system, and medium described above are merely illustrative. The units described as separate components may or may not be physically separated, and the components referred to as units may or may not be physical units, that is, they may be located in one place or distributed to 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. Those of ordinary skill in the art can understand and implement it without creative efforts.

[0061] As described above, this is only a specific implementation manner of the present application, but the protection scope of the present application is not limited thereto. Any changes or substitutions that can be easily thought of by those skilled in the art within the technical scope disclosed in the present application should be covered by the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. A parametric unit generation method, characterized in that, Including: Defining data according to parameters and generating a general program framework for a first target parameterized unit; 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; Analyzing the parameter change rule of the first target parameterized unit; Supplementing the general program framework according to the parameter change rule to obtain general program code; 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 on which the second target parameterized unit runs is different from the first parameterized unit design tool.

2. The method according to claim 1, wherein The 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 includes: Performing abstract syntax tree structure conversion on the general program code to obtain a general syntax tree; Performing code conversion according to the general syntax tree to obtain target unit code; Generating a parameterized unit according to the target unit code to obtain the second target parameterized unit.

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

4. The method according to claim 1, wherein The data type of the parameter definition data includes: declared data and custom data.

5. The method according to claim 4, wherein The generating a general program framework for a 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 for the first target parameterized unit according to the parameter definition data; Generating the general program framework for the first target parameterized unit according to the parameter file.

6. The method according to claim 4, wherein The generating a general program framework for a 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 for the first target parameterized unit according to a preset parameter definition rule; Generating the general program framework for the first target parameterized unit according to the parameter file.

7. The method according to claim 1, characterized in that, The analyzing the parameter change rule of the first target parameterized unit includes: Performing parameter adjustment on the first target parameterized unit based on a preset parameter adjustment strategy to obtain the change rule of the parameter graph of the first target parameterized unit under the preset parameter adjustment strategy; Writing a program body for the change rule through the preset general description language and supplementing the general program framework to obtain general program code.

8. A parametric unit generation system, characterized in that, Including: A framework generation module for generating a general program framework for 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 parameterization unit runs on a first parameterization unit design tool; A rule analysis module analyzes the parameter change rule of the first target parameterization unit; A code generation module is used to supplement the general program framework according to the parameter change rule to obtain general program code; A unit conversion module is used to perform parameterization unit conversion according to the general program code to obtain at least one second target parameterization unit compatible with the first parameterization unit design tool; The design tool on which the second target parameterization unit runs is different from the first parameterization unit design tool.

9. The system according to claim 8, wherein The unit conversion module is specifically used for: Performing an abstract syntax tree structure conversion on the general program code to obtain a general syntax tree; Performing code conversion according to the general syntax tree to obtain target unit code; Generating a parameterization unit according to the target unit code to obtain the second target parameterization unit.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the program is executed by a processor, it implements the parameterization unit generation method described in any one of claims 1-7.

Citation Information

Patent Citations

  • Applet cross-application migration method, device, terminal, system and storage medium

    CN113805890A

  • Code generation method and device, equipment and medium

    CN119597262A

  • Apparatus and methods for developing parallel networks using a general purpose programming language

    US20140330763A1

  • Network scan server support method using a web browser

    US6289371B1

  • Method and apparatus for generating unified abstract syntax tree, and program analysis method and apparatus

    WO2024041301A1

Cited By

  • Conversion method based on unified PDK interface specification

    CN120975036A

  • A conversion method based on a unified PDK interface specification

    CN120975036B