An EDA design layout to simulation layout mapping method

By defining design layers, layer processing functions, and Boolean operators, a method for parsing and calculating layer expressions is provided. This solves the problem of complex and inflexible mapping from EDA design layout to simulation layout in existing technologies, and realizes flexible layer operations and efficient simulation layout mapping.

CN117195816BActive Publication Date: 2025-12-19XPEEDIC CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311254694.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-09-26
Publication Date
2025-12-19
Estimated Expiration
2043-09-26

AI Technical Summary

Technical Problem

Existing technologies are complex and inflexible in the mapping process from EDA design layout to simulation layout, making it difficult to achieve flexible layer operations and mapping.

Method used

By defining design layers, layer processing functions, and Boolean operators, a method for parsing and calculating layer expressions is provided, including steps S1: defining layers and Boolean operators; step S2: traversing the expression string by character; step S3: converting it into a list of postfix expressions; step S4: calling Boolean operations and layer functions; and step S5: outputting the results to complete the simulation layout layer calculation.

Benefits of technology

It implements flexible mapping methods, improves ease of use, and supports efficient mapping from design layout to simulation layout.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117195816B_ABST
    Figure CN117195816B_ABST
Patent Text Reader

Abstract

The application provides an EDA design layout to simulation layout mapping method, the mapping method comprises the following steps: S1, defining a design layer, a layer processing function and a Boolean operator symbol to support an arbitrary layer operation expression; providing a layer expression analysis calculation method to support the final calculation of the required simulation layout layer through the expression; S2, traversing the expression string according to characters, removing spaces, and decomposing the expression into a list of expressions of parentheses, layers, layer processing functions and Boolean operators; S3, converting the expression list into a postfix expression list according to the defined rules; S4, traversing the expression list, calling Boolean operations and layer functions, and calculating the elements in the list; S5, outputting the result to complete the calculation and obtain the simulation layout layer. The flexible mapping mode definition is realized, and the convenience of use is improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of EDA model layout simulation, and particularly relates to a mapping method from EDA design layout to simulation layout. BACKGROUND

[0002] In layout design, usually, graphics in a layout are classified into different types such as drawing, fill, pin and text according to the use purpose; however, the actual model structure is not classified in this way. Therefore, during simulation, graphics in the design process need to be correctly mapped to corresponding simulation layers.

[0003] In the prior art, some Boolean expression methods are used to perform operations on corresponding layers to obtain the expression of the final simulation layer.

[0004] The method used in the prior art has the disadvantages of complex expression and inflexible use. SUMMARY

[0005] In view of the above problems, the present application is proposed to provide a mapping method from EDA design layout to simulation layout which overcomes the above problems or at least partially solves the above problems.

[0006] According to an aspect of the present application, a mapping method from EDA design layout to simulation layout is provided, and the mapping method comprises the following steps.

[0007] Step S1: defining a design layer, a layer processing function and a Boolean operator symbol to define support for an arbitrary layer operation expression; providing a layer expression analysis and calculation method to support final calculation of the required simulation layout layer through the expression;

[0008] Step S2: traversing the expression string according to characters, removing spaces and decomposing the expression into a list of expressions of parentheses, layers, layer processing functions and Boolean operators;

[0009] Step S3: converting the list of expressions into a list of postfix expressions according to the defined rules;

[0010] Step S4: traversing the list of expressions, calling Boolean operations and layer functions and calculating the elements in the list;

[0011] Step S5: outputting the result to complete the calculation to obtain the simulation layout layer.

[0012] Optionally, the step S1: defining a design layer, a layer processing function and a Boolean operator symbol to define support for an arbitrary layer operation expression; providing a layer expression analysis and calculation method to support final calculation of the required simulation layout layer specifically comprises:

[0013] defining layers, defining layers in the manner of LxTy;

[0014] defining Boolean operators, + representing layer union, * representing layer intersection, - representing layer subtraction; defining the names of the result layers after union, intersection and subtraction;

[0015] defining layer processing functions;

[0016] defining layer mapping expressions.

[0017] Optionally, the defining layer processing functions specifically includes various geometric operations such as scaling and merging.

[0018] Optionally, the defining layer mapping expressions specifically includes using Boolean operators, layer definitions and layer processing functions to define mapping expressions.

[0019] Optionally, the step S3 of converting the expression list into a postfix expression list according to the defined rules specifically includes:

[0020] outputting the expression list as input, creating an empty operator stack and a postfix expression list at the same time;

[0021] firstly, pushing the terminal symbol # into the operator stack;

[0022] traversing the expression list, checking the current element in the list;

[0023] after the expression list is traversed, checking the top element of the operator stack, if the element is not the terminal symbol, moving the element to the postfix expression list and continuing to check the operator stack;

[0024] outputting the generated postfix expression list.

[0025] Optionally, the traversing the expression list and checking the current element in the list specifically includes:

[0026] if the current element is a layer, adding the current element to the postfix expression list;

[0027] if the current element is a left bracket, adding the current element to the operator stack;

[0028] if the current element is an operator, checking the top element of the operator stack, if the element is the terminal symbol or the left bracket, adding the current element to the operator stack; if the top element of the operator stack is not the terminal symbol or the left bracket, moving the top element of the operator stack to the postfix expression list and then rechecking the operator stack;

[0029] The current element is a right bracket, check the top element of the operator stack, if the element is not a left bracket, move the element to the postfix expression list, continue to check the operator stack; if the top element of the operator stack is a left bracket, remove the left bracket and exit the check;

[0030] The current element is a layer function, add the current element to the postfix expression list.

[0031] Optionally, the step S4: traversing the expression list, calling the Boolean operation and layer function, calculating the elements in the list specifically includes:

[0032] Take the postfix expression list as input, and create a blank calculation list at the same time;

[0033] Traverse the postfix expression list, check the current element in the list;

[0034] After the postfix expression is completed, there will be an element in the calculation list;

[0035] Output the last element to complete the calculation.

[0036] Optionally, the step of traversing the postfix expression list and checking the current element in the list specifically includes:

[0037] The current element is a layer, and the element is added to the calculation list;

[0038] The current element is a layer function, and the parameters in the layer function are checked;

[0039] The current element is a Boolean operator, the last two elements added to the calculation list are taken out, the corresponding Boolean operation is called, the graphic processing is completed, and the calculation result is added to the calculation list.

[0040] Optionally, the step of checking the parameters in the layer function when the current element is a layer function specifically includes:

[0041] The current element is a layer function, and the parameters in the layer function are checked, specifically including: if the parameter is not a simple layer, calling the expression solving described in the patent to convert into a simple layer; when all parameters are simple layers, calling the corresponding layer function to perform specific solving; and adding the calculation result to the calculation list.

[0042] The application provides a mapping method from EDA design layout to simulation layout, which comprises the following steps: S1, defining a design layer, a layer processing function and a Boolean operator symbol to support an arbitrary layer operation expression; providing a layer expression analysis and calculation method to support final calculation of a required simulation layout layer through an expression; S2, traversing an expression string according to characters, removing spaces and decomposing the expression into a bracket, a layer, a layer processing function and a Boolean operator expression list; S3, converting the expression list into a postfix expression list according to a defined rule; S4, traversing the expression list, calling a Boolean operation and a layer function and calculating elements in the list; S5, outputting a result to complete calculation of the simulation layout layer.

[0043] The above description is only a summary of the technical scheme of the application, in order to more clearly understand the technical means of the application, the content of the specification can be implemented, and in order to make the above and other purposes, characteristics and advantages of the application more obvious and easy to understand, the following specific embodiments of the application are described. BRIEF DESCRIPTION OF DRAWINGS

[0044] In order to more clearly illustrate the technical scheme of the embodiments of the application, the following will briefly introduce the drawings needed to be used in the embodiment description. Obviously, the drawings in the following description are only some embodiments of the application, and those skilled in the art can obtain other drawings according to these drawings without creative labor.

[0045] Figure 1 The flow chart of the overall method of layout mapping solution provided by the embodiments of the application;

[0046] Figure 2 The flow chart of the generation method of postfix expression in layout mapping provided by the embodiments of the application;

[0047] Figure 3 The flow chart of the solution method of postfix expression in layout mapping provided by the embodiments of the application. DETAILED DESCRIPTION

[0048] The exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. Although the exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments described herein. On the contrary, these embodiments are provided so that the present disclosure can be more thoroughly understood and the scope of the present disclosure can be fully conveyed to those skilled in the art.

[0049] The terms "comprise", "comprising", "include", "including", "contain", "containing", "have", "having", "may" and "including", or any variation thereof, and any combinations thereof within the DETAILED DESCRIPTION of the Invention and the claims herein, shall not be construed as indicating an exclusive inclusion of the listed items or excluding additional items.

[0050] The technical solutions of the present application will be described in further detail below in conjunction with the drawings and embodiments.

[0051] Embodiment 1

[0052] As shown in the drawings, a general expression and solving method of mapping between a design layout and a real physical layout for simulation. Figure 1 By defining design layers, layer processing functions, Boolean operator symbols, etc., definition of arbitrary layer operation expressions is supported.

[0053] A layer expression parsing and calculation method is provided to support final calculation of the required simulation layout layer through the expression, including:

[0054] In the first step, the expression string is traversed by character, spaces are removed, and the expression is decomposed into a list of expressions of parentheses, layers, layer functions, and Boolean operators;

[0055] In the second step, the expression list is converted into a postfix expression list according to the defined rules;

[0056] In the third step, the expression list is traversed, Boolean operations and layer functions are called, and the elements in the list are calculated;

[0057] In the fourth step, the result is output, and the calculation is completed.

[0058] As shown in the drawings, a general expression and solving method of mapping between a design layout and a real physical layout for simulation. Figure 2 Figure 3 As shown in the drawings, a general expression and solving method of mapping between a design layout and a real physical layout for simulation.

[0059] Step S1: By defining design layers, layer processing functions, Boolean operator symbols, etc., definition of arbitrary layer operation expressions is supported; at the same time, a layer expression parsing and calculation method is provided to support final calculation of the required simulation layout layer through the expression. The detailed preparation work is as follows:

[0060] Define layers in the form of LxTy; for example: a layer with layer id 1 and data type 0 is defined as L1T0

[0061] Define Boolean operators: + represents layer union, * represents layer intersection, and - represents layer subtraction; define the names of the resulting layers after union, intersection, and subtraction, which are obtained by concatenating the original layer names with "_u_", "_i_", and "_s_", respectively. For example, the resulting layer of L1T0+L2T0 is marked as L1T0_u_L2T0​

[0062] Define layer processing function, layer processing function includes scaling, merging and other geometric operations; Usually defined as a unary, binary and other functions, such as: Func1(L1T0), Func2(L1T0,2) and so on;

[0063] Define layer mapping expression, using Boolean operators, layer definition, graphics processing function to define the mapping expression, such as: L30T0+(L40T60*Func2(L70T80,3))-L40T0;

[0064] Step S2: traversing the expression string by character, removing spaces, and decomposing the expression into a list of expressions of parentheses, layers, layer functions, and Boolean operators;

[0065] Step S3: according to the defined rules, the expression list is converted into a postfix expression list;

[0066] Step S4: traverse the expression list, call the Boolean operation and layer function, and calculate the elements in the list;

[0067] Step S5: output the result, complete the calculation to get the simulation layout layer

[0068] In step S3, the specific steps of converting the expression list into a postfix expression list are as follows:

[0069] 1) Take the expression list output by the previous step as input, and create an empty operator stack and a postfix expression list at the same time

[0070] 2) First, push the terminal symbol # into the operator stack

[0071] 3) Traverse the expression list and check the current element in the list

[0072] 3.1) The current element is a layer, and the current element is added to the postfix expression list

[0073] 3.2) The current element is a left parenthesis, and the current element is added to the operator stack

[0074] 3.3) The current element is an operator, and the top element of the operator stack is checked. If the element is a terminal symbol or a left parenthesis, the current element is added to the operator stack. If the top element of the operator stack is not a terminal symbol or a left parenthesis, the top element of the operator stack is moved to the postfix expression list, and then the operator stack is rechecked

[0075] 3.4) The current element is a right parenthesis, and the top element of the operator stack is checked. If the element is not a left parenthesis, the element is moved to the postfix expression list and the operator stack is continued to be checked. If the top element of the operator stack is a left parenthesis, remove the left parenthesis and exit the check

[0076] 3.5) Current element layer function, add current element to postfix expression list

[0077] 4) After the expression list is traversed, check the top element of the operator stack. If the element is not a terminator, move the element to the postfix expression list and continue checking the operator stack.

[0078] 5) Output the generated postfix expression list

[0079] In the S4 step, the specific steps for converting the expression list into a postfix expression list are as follows:

[0080] 1) Take the postfix expression list output in the previous step as input, and create an empty calculation list

[0081] 2) Traverse the postfix expression list and check the current element in the list

[0082] 2.1) The current element is a layer, add the element to the calculation list

[0083] 2.2) The current element is a layer function, check the parameters in the layer function. If the parameters are not simple layers, call the expression solving method described in this patent to convert them into simple layers. When all parameters are simple layers, call the corresponding layer function to perform specific solving, and add the calculation result to the calculation list

[0084] 2.3) The current element is a Boolean operator, take the last two elements added to the calculation list, call the corresponding Boolean operation to complete the graphic processing, and add the calculation result to the calculation list

[0085] 3) After the postfix expression is traversed, there will be one element in the calculation list

[0086] 4) Output the last element to complete the calculation.

[0087] Example 2

[0088] Define a layer M1 as the union of a layer with ID 1 type 2 and a layer with ID 1 type 4, and then take the intersection with a layer with ID 3 type 2, and finally subtract a layer with ID 5 type 2.

[0089] Step S1, define M1 = (L1T2 + L1T4) * L3T2 - L5T2;

[0090] Step S2, split the expression into a list (, L1T2, +, L1T4, ), *, L3T2, -, L5T2;

[0091] Step S3, convert the expression to a postfix expression list: L1T2, L1T4, +, L3T2, *, L5T2, -

[0092] Step S4, traverse the postfix expression list, and perform calculation:

[0093] Define the calculation list:

[0094] Postfix expression list: L1T2, L1T4, +, L3T2, *, L5T2, -

[0095] The calculation list is empty

[0096] Traverse the postfix expression list, and the first two elements are simple layers, which are added to the calculation list:

[0097] Postfix expression list: +, L3T2, *, L5T2, -

[0098] Calculation list: L1T2, L1T4

[0099] The current element of the postfix expression list is +, so the last two elements in the calculation list, L1T2 and L1T4, are taken out to perform layer union operation. The layer obtained by the union operation is added to the calculation list, and the result is:

[0100] Postfix expression list: L3T2, *, L5T2, -

[0101] Calculation list: L1T2_u_L1T4

[0102] The current element of the postfix expression list is L3T2, and the result after processing is:

[0103] Postfix expression list: *, L5T2, -

[0104] Calculation list: L1T2_u_L1T4, L3T2

[0105] The current element of the postfix expression list is *, so the last two elements in the calculation list are taken out to perform calculation, and then added to the calculation list, and the result is:

[0106] Postfix expression list: L5T2, -

[0107] Calculation list: L1T2_u_L1T4_i_L3T2

[0108] The current element of the postfix expression list is L5T2, and the result after processing is:

[0109] Postfix expression list: -

[0110] Calculation list: L1T2_u_L1T4_i_L3T2, L5T2

[0111] The current element of the postfix expression list is -, and the result after processing is:

[0112] The postfix expression list is empty.

[0113] The calculation list is: L1T2_u_L1T4_i_L3T2_s_L5T2;

[0114] The postfix expression is empty, and finally the layers in the calculation list are outputted, and the calculation is completed.

[0115] Beneficial effects: flexible mapping mode definition is realized, and the convenience of use is improved; and a feasible solving method is provided, and the mapping from a design layout to a simulation layout is supported.

[0116] The above detailed description further explains the purpose, technical solutions and beneficial effects of the present application. It should be understood that the above is only a specific embodiment of the present application, and is not used to limit the protection scope of the present application. Any modification, equivalent replacement, improvement, etc. within the spirit and principle of the present application should be included in the protection scope of the present application.

Claims

1. A mapping method from EDA design layout to simulation layout, characterized in that, The mapping method includes: Step S1: Define layer mapping expressions that support arbitrary layer operations by defining design layers, layer functions, and Boolean operators; provide a method for parsing and calculating layer expressions to support the final calculation of the required simulation layout layers through expressions; Step S2: Traverse the expression string character by character, remove spaces, and decompose the expression into a list of expressions containing parentheses, layers, layer functions, and Boolean operators; Step S3: According to the defined rules, convert the expression list into a postfix expression list, including: The output list of expressions is used as input, and an empty operator stack and a list of postfix expressions are created simultaneously. First, push the terminating symbol # onto the operator stack; Iterate through the list of expressions and check the current element in the list; After the expression list has been traversed, check the top element of the operator stack. If the element is not a terminator, move the element to the postfix expression list and continue checking the operator stack. Output the list of generated postfix expressions; The traversal of the expression list, specifically checking the current element in the list, includes: The current element is a layer; add the current element to the postfix expression list. If the current element is a left parenthesis, add the current element to the operator stack; If the current element is an operator, check the top element of the operator stack. If the element is a terminator or a left parenthesis, add the current element to the operator stack. If the top element of the operator stack is not a terminator or a left parenthesis, move the top element of the operator stack to the postfix expression list, and then check the operator stack again. If the current element is a right parenthesis, check the top element of the operator stack. If the element is not a left parenthesis, move the element to the postfix expression list and continue checking the operator stack. If the top element of the operator stack is a left parenthesis, remove the left parenthesis and exit the check. The current element is a layer function; add the current element to the postfix expression list. Step S4: Traverse the list of postfix expressions, call Boolean operations and layer functions, and calculate the elements in the list; Step S5: Output the results and complete the calculation to obtain the simulation layout layer.

2. The mapping method from EDA design layout to simulation layout according to claim 1, characterized in that, Step S1: Define a layer mapping expression that supports arbitrary layer operations by defining design layers, layer functions, and Boolean operators; A method for parsing and calculating layer expressions is provided to support the final calculation of the required simulation layout layers through expressions. Specifically, this includes: Define the layer using the LxTy method; Define Boolean operators: + represents the union of layers, * represents the intersection of layers, and - represents the subtraction of layers; define the names of the resulting layers after the union, intersection, and subtraction operations. Define layer functions; Define the layer mapping expression.

3. The mapping method from EDA design layout to simulation layout according to claim 2, characterized in that, The defined layer functions specifically include various geometric operations such as scaling and merging.

4. The mapping method from EDA design layout to simulation layout according to claim 2, characterized in that, The definition of the layer mapping expression specifically includes: using Boolean operators, layer definitions, and graphics processing functions to define the mapping expression.

5. The mapping method from EDA design layout to simulation layout according to claim 1, characterized in that, Step S4: Traversing the list of postfix expressions, calling Boolean operations and layer functions, and calculating the elements in the list specifically includes: Take a list of postfix expressions as input and create a blank list of calculations. Iterate through the list of postfix expressions and check the current element in the list; After the postfix expression completes the traversal, the evaluated list will contain one element; Output the last element to complete the calculation.

6. The mapping method from EDA design layout to simulation layout according to claim 5, characterized in that, The traversal of the postfix expression list and the checking of the current element in the list specifically includes: The current element is a layer; add the element to the calculation list. The current element is a layer function; check the parameters in the layer function. The current element is a Boolean operator. The last two elements added to the calculation list are retrieved, the corresponding Boolean operations are called to complete the graphics processing, and the calculation results are added to the calculation list.

7. The mapping method from EDA design layout to simulation layout according to claim 6, characterized in that, The current element is a layer function. The parameters in the layer function are checked as follows: if the parameter is not a simple layer, the expression list is called to solve it and convert it into a simple layer; if all parameters are simple layers, the corresponding layer function is called to solve it; and the calculation result is added to the calculation list.

Citation Information

Patent Citations

  • Rule processing method and device, medium and electronic equipment

    CN111460815A

  • Hierarchical dynamic heat maps in full custom EDA applications

    US10719650B1