This application claims priority to and the benefit of Korean Patent Application No. 10-2023-0058395, filed on May 4, 2023, the disclosure of which is incorporated herein by reference in its entirety.
The present disclosure relates generally to a user interface method of a semiconductor design program and an operation device therefor.
Semiconductor circuit design methods include a method of designing a layout using a generator. The generator receives parameters of a circuit from a designer and automatically generates a layout complying design rules and having sizes matching the input parameters. That is, when the generator is used, circuits of various sizes and designs can be quickly designed and manufactured for various different technology nodes after one task of coding.
Because a circuit design method using a generator supports a hierarchical design, it is possible to efficiently perform work by simply designing a generator of a unit cell and thereafter allocating a previously developed generator as a generator of a sub-cell when a complex cell is designed. Such a generator-based layout design is effectively used in semiconductor circuits requiring high-performances, e.g., circuits operating at high speeds, circuits requiring low power, etc in order to reduce the design times.
A process of developing a generator for automatically generating a layout according to the related art requires complex coding. A designer should express a width, height, length, physical layer information, etc., which are design specifications of a layout, using variables so that a layout generator may satisfy performance requirements and complicated design rules for the fabrication process.
However, in order to use variables describing design specifications of a specific layout object, the name of the layout object should be memorized to access data. Because a complex layout includes a very large number of layout objects, it is difficult for a designer to memorize all the names of the layout objects to access data. Therefore, the designer should repeatedly compare the parameters of the layout object, written in complex code, with the geometry of the generated layout, and find the names of the variables to modify a layout object.
The problem of the related art may become worse in a complex cell layout having a deep hierarchical structure. This is because the names of layout objects of a higher hierarchy layer are also required to access a specific layout object of a lower hierarchy layer. Therefore, the length or complexity of the names of objects to be referenced by the designer increase greatly, thus greatly increasing a time required to design the generator.
The present disclosure is intended to solve the problems of the related art. The present disclosure is directed to a method of providing a simplified interface for facilitating a process of converting an already designed layout of a semiconductor circuit into a its generator.
An embodiment of the present disclosure provides an operation device for performing a user interface method of a semiconductor design program, the operation device including at least one processor, and a memory storing one or more programs executable by the at least one processor, in which the at least one processor executes the one or more programs to perform the user interface method including displaying, by a terminal. performing the semiconductor design program, an interaction button for displaying an interaction to be performed by a user in a layout view and an expression view, the layout view displaying a layout being converted into a generator, and displaying, by the terminal, pseudo code matching the user's interaction on an expression window of the expression view when the user clicks the interaction button.
According to an aspect of the present embodiment, the layout to be converted into the generator may have a hierarchical structure, and when a user selects a lower hierarchy layer, the terminal may display a layout of the lower hierarchy layer in the layout view.
According to an aspect of the present embodiment, when the user clicks an interaction button for the lower hierarchy layer, the displaying of the pseudo code may include generating, by the terminal, the body of pseudo code which expresses hierarchical structure of the layer and displaying the pseudo code on the expression window.
According to an aspect of the present embodiment, the layout to be converted into the generator may have a hierarchical structure, and the terminal may display a layout of the lower hierarchy layer in a layout view displaying a sub-cell in an additional window.
According to an aspect of the present embodiment, the interaction button may display an interaction for obtaining pseudo code representing coordinates of a center of each of instances displayed in the layout view, coordinates of a left end of each of the instances, coordinates of a right end of each of the instances, coordinates of a top end of each of the instances, and coordinates of a bottom end of each of the instances.
According to an aspect of the present embodiment, the interaction button may display an interaction for obtaining pseudo code representing coordinates of an upper left vertex of a quadrangle including an instance displayed in the layout view, coordinates of a lower left vertex of the quadrangle, coordinates of an upper right vertex of the quadrangle, coordinates of a lower right vertex of a quadrangle, coordinates of a left side of the quadrangle, coordinates of a right side of the quadrangle, coordinates of a top side of the quadrangle, coordinates of a bottom side of the quadrangle, and coordinates of a midpoint of the quadrangle.
According to an aspect of the present embodiment, the interaction button may display an interaction for obtaining pseudo code representing a length, width, and area of a quadrangle including an instance displayed in the layout view.
According to an aspect of the present embodiment, the interaction button may include arithmetic operation buttons.
According to an aspect of the present embodiment, the expression view may further display a design rule (DR) window displaying design rule parameters for design of the semiconductor.
According to an aspect of the present embodiment, the expression view may further include a workspace for storing results of work conducted by the designer.
The above and other objects, features and advantages of the present disclosure will become more apparent to those of ordinary skill in the art by describing exemplary embodiments thereof in detail with reference to the accompanying drawings, in which:
Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.
The operation device 1 performs a user interface method including displaying a layout of a semiconductor circuit that is being converted into a generator in a layout view (100) and displaying an interaction button (210) for displaying an interaction to be performed by a user in an expression view (200) (S100), and displaying pseudo code matching the user's interaction on an expression window of the expression view (200) when the user clicks the interaction button (210) (S200), the user interface method being performed by a terminal that performs the semiconductor design program.
The inputter 21 is a means for receiving an interaction input or the like from a user. For example, the inputter 21 may include an input means, such as a keyboard or a mouse, for directly receiving an interaction from a user, and an input means for receiving a touch input from a user through a touch panel on the outputter 22 or the like. Through the inputter 21, various types of signals or data may be received in association with the processor 25 or data may be directly obtained in association with an external device and transmitted to the processor 25. The inputter 21 may be a device or a server for inputting or receiving log information, various condition information, or a control signal but is not necessarily limited thereto.
The outputter 22 may be a means for displaying information, such as a layout view, an expression view, and an interaction view, in association with the processor 25. The outputter 22 may display various types of information through a display (not shown), a speaker or the like included in the operation device 1 to output information but is not limited thereto.
The processor 25 performs at least one instruction or program stored in the memory 24. The processor 25 according to the present embodiment calculates data for performing each operation on the basis of data obtained from the inputter 21 or the data storage 23.
The memory 24 includes at least one instruction or program executable by the processor 25. The memory 24 may fetch and store instructions or a program for processing data stored in the data storage 23. The memory 24 may store a result of performing each operation, related values such as an intermediate value, etc.
The data storage 23 is a general data structure implemented in a storage space (hard disk or memory) of a computer system using a data storage management program (DBMS). Data may be freely retrieved (extracted) from, deleted from, edited in or added to the data storage 23. In an embodiment, the data storage 23 may store instructions compiled to allow a user interface method according to the present embodiment to be executed and driven by the processor 25. The memory 24 may fetch the instructions in response to a request from the processor 25.
The data storage 23 according to the present embodiment may receive and store a user input and a user restriction condition provided through the inputter 21, and may provide stored data as necessary. The data storage 23 is described herein as being included in the operation device 1 but is not necessarily limited thereto and may be implemented as a separate data storage device.
In an embodiment, instances include functional blocks designed by a semiconductor circuit designer, sub-blocks that are sub-components in each of the functional blocks, and unit elements constituting the sub-blocks, and may be hierarchically configured up to a lowest level as described above.
The expression view 200 may display interaction buttons 210 for displaying an interaction to be performed by a user with respect to various instances displayed in the layout view 100. In an embodiment, information including pseudo code of an instance designated by a user may be formed and displayed on the expression window 220 through the interaction buttons 210.
In the illustrated embodiment, the interaction buttons 210 may include a button L for obtaining pseudo code representing the coordinates of a left end of an instance designated by a user, a button C for obtaining pseudo code representing the coordinates of the center of the instance, a button R for obtaining pseudo code representing the coordinates of a right end of the instance, a button T for obtaining pseudo code representing the coordinates of a top end of the instance, and a button B for obtaining pseudo code representing the coordinates of a bottom end of the instance.
The interaction buttons 210 may include a button Le for obtaining pseudo code representing the length of a quadrangle including an instance designated by a user, a button Wi for obtaining pseudo code representing the width of the quadrangle, and a button Ar for obtaining pseudo code representing the area of the quadrangle. The interaction buttons 210 may further include +, −, x, and ÷ buttons for performing arithmetic operations and interaction buttons 210 may further include buttons for performing mathematic operations.
In an embodiment not shown, interaction buttons may be displayed in a layout view, and may include buttons for obtaining pseudo codes representing the coordinates of an upper left vertex, the coordinates of a lower left vertex, the coordinates of an upper right vertex, the coordinates of a lower right vertex, the coordinates of a midpoint on a left side of the quadrangle, the coordinates of a midpoint on a right side of the quadrangle, the coordinates of a midpoint on an upper side of the quadrangle, the coordinates of a midpoint on a lower side of the quadrangle, and the coordinates of a midpoint.
In an embodiment not shown, interaction buttons may include a button for displaying functions required to design a layout. For example, buttons may include buttons for obtaining a function for calculating the distance between two layout objects, a function for calculating the number of vias or contacts satisfying design rules for a given area, and a function for obtaining the total number of layout objects expressed as an array.
The expression view 200 may include a design rule (DR) window 230 displaying semiconductor design rules restricting layout designs. In an embodiment, when instances include a plurality of transistors, the expression view 200 may display pseudo code which represents design rules for design of the semiconductor and design rules that describes various layout design restrictions, such as the minimum distance between metal interconnections included in the transistors, the minimum distance between diffusion physical layers included in the transistors, and the like.
When a user selects one instance in the layout view 100 and thereafter selects the button C for obtaining the pseudo code representing the coordinates of the center of the instance from among the interaction buttons 210, the pseudo code corresponding to the coordinates of the center of the selected instance is displayed on the expression window 220 of the expression view 200.
A case in which pseudo code representing the coordinates of a right end of an instance op_layer (OL) included in a sub-cell of a sub-cell of a layout that is being converted into a generator will be described with reference to
In the layout view 100 of
However, when information that the user wants to obtain is included in a polyresistor PR included in the resistor unit RU in
Pseudo code to create representation of the hierarchical structure of the sub-cell instance could be generated by the terminal. The hierarchical structure of the sub-cell instance may be modified, enabling alterations such as the addition or removal of sub-cells within the hierarchy. Furthermore, pseudo code representing partial and/or whole paths for the current sub-cell instance could be generated by the terminal to reference and retrieve related data. A partial path refers to the path from the top cell to the current cell for referencing purposes, while a whole path encompasses the path from the top cell to the bottom cell for referencing. For instance, a partial path or whole path could be used to access the width of a specific sub-cell within a cell. Generated pseudo codes are displayed on an expression window 220.
The pseudo code for obtaining the coordinates of the right end of the sub-cell instance op_layer (OL) selected by the user is displayed on an expression window 220. The pseudo code displayed on the expression window 220 is automatically composed according to hierarchical paths of instances selected by the user as well as according to interaction buttons selected by the user.
The pseudo code formed as described above and results of work conducted by a designer may be stored in a directory 240 of the expression view 200, and a worker may use previous work results stored in the directory 240.
Hereinafter, an example in which the coordinates of the center of an instance are found using another instance displayed in a layout view will be described with reference to
There are design rules required for semiconductor circuit layout design. As described above, the distance between metal interconnections, the distance between diffusion physical layers of transistors, and the like are limited by the design rules of process technology. In the embodiment of
Therefore, the coordinates (X2, Y2) of the center of the instance NMOS2 may be expressed in the form of pseudo code using the above-described variables as in Equation 1 below.
In the related art, a designer memorizes all the names of instances and performs coding using the names. Therefore, when a hierarchical structure is complicated, a large amount of time is required to perform coding, thus reducing productivity.
However, according to the present embodiment, there is no need for a designer to memorize the name of each object as described above, and a formula can be easily completed by simply selecting a desired layout object in a layout view and clicking a desired button or the like in an expression view. As described above, a circuit designer can express design specifications, such as coordinates, a length, and a height, of a layout in the form of an equation using variables.
According to an embodiment of the present disclosure, it is possible to obtain information through a layout and an interaction button without having to memorize all the names of instances included in a semiconductor circuit to be converted into a generator by a designer, thereby improving productivity.
Although the embodiments illustrated in the drawings have been described above to help the present disclosure be understood, these embodiments are only examples and it will be apparent to those of ordinary skill in the art that various modifications may be made and other equivalent embodiments are derivable from the embodiments. Therefore, the scope of the present disclosure should be defined by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2023-0058395 | May 2023 | KR | national |