Design assistance device and design assistance method
The design support device and method address the expertise requirement in semiconductor device design by using a language model to assist in circuit block placement based on natural language constraints, enhancing usability and reliability for users with varying levels of experience.
Patent Information
- Application Number
- PCT/IB2024/062680
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-21
- Filing Date
- 2024-12-16
- Publication Date
- 2025-06-26
AI Technical Summary
Existing design automation tools for semiconductor devices require high-level expertise, making it difficult for individuals with little experience to perform circuit design tasks such as placing circuit blocks and setting constraints.
A design support device and method that utilizes a language model to assist in the arrangement of circuit blocks based on constraint conditions, allowing users to input constraints in natural language and generate layout data for block placement.
Enables users with little experience in design work to perform circuit design tasks efficiently, improving convenience, usefulness, and reliability in the design process by leveraging a language model for block arrangement.
Smart Images

Figure IB2024062680_26062025_PF_FP_ABST
Abstract
Description
Design support device and design support method
[0001] TECHNICAL FIELD One aspect of the present invention relates to a design support device, a design support system, and a design support method. TECHNICAL FIELD One aspect of the present invention relates to a design support system and a design support method that use a language model.
[0002] Note that one embodiment of the present invention is not limited to the above technical field. The technical field of one embodiment of the invention disclosed in this specification and the like relates to an object, a method, or a manufacturing method. Alternatively, one embodiment of the present invention relates to a process, a machine, manufacture, or a composition of matter. Therefore, more specifically, examples of the technical field of one embodiment of the present invention disclosed in this specification include a semiconductor device, a display device, a light-emitting device, a power storage device, a memory device, a driving method thereof, or a manufacturing method thereof.
[0003] In the circuit design of semiconductor devices, EDA (Electronic Design Automation) tools are used to automate design. Automating design ensures development speed, product standards, safety standards, etc. Patent Document 1 discloses a method for automatically placing two or more types of standard cells.
[0004] In recent years, there has been active development of language models using neural networks, with large-scale language models (LLMs) attracting particular attention. A large-scale language model is a natural language processing model trained using a large amount of data. A large-scale language model can realize, for example, a dialogue model that responds to user instructions. Non-Patent Document 1 discloses GPT-4 (Generative Pre-trained Transformer 4) as a large-scale language model, and ChatGPT as a dialogue model.
[0005] JP 2004-252717 A
[0006] Summary of ChatGPT / GPT-4 Research and Perspective Towards the Future of Large Language Models, Yiheng Liu et al. (Submitted on 4 Apr 2023, [online], Internet <URL: https: / / arxiv.org / abs / 2304.01852>
[0007] The use of EDA tools requires a high level of specialized knowledge. For example, when placing circuit blocks, constraints on placement cannot be set in natural language, and so proficiency with the EDA tools is required.
[0008] In view of the above, an object of one embodiment of the present invention is to provide a design support device that can be used even by a person with little experience in design work. Another object of one embodiment of the present invention is to provide a design support device that is highly convenient, useful, or reliable. Another object of one embodiment of the present invention is to provide a novel design support device. Another object of one embodiment of the present invention is to provide a design support system including the design support device. Another object of one embodiment of the present invention is to provide a design support method that can be applied to the design support device.
[0009] Note that the description of these problems does not preclude the existence of other problems. Note that one embodiment of the present invention does not necessarily solve all of these problems. Note that problems other than these will become apparent from the description of the specification, drawings, claims, etc., and it is possible to extract other problems from the description of the specification, drawings, claims, etc.
[0010] One aspect of the present invention provides a computer-implemented method for designing a layout of a computer, the computer comprising: a receiving unit, a coordinate data generating unit, a prompt data generating unit, a layout data generating unit, and an output unit; the receiving unit has a function of receiving first layout data indicating a layout of a first block, second layout data indicating a layout of a second block, and constraint data; the first layout data has first two-dimensional coordinate data indicating a first area in which the first block is laid out; the second layout data has second two-dimensional coordinate data indicating a second area in which the second block is laid out; the coordinate data generating unit has a function of converting the first two-dimensional coordinate data into first three-dimensional coordinate data and a function of converting the second two-dimensional coordinate data into second three-dimensional coordinate data; a data generation unit having a function of generating prompt data having instruction statement data, first three-dimensional coordinate data, second three-dimensional coordinate data, placement area data, and constraint data, the placement area data being data indicating the placement area using three-dimensional coordinates, and the instruction statement data being data indicating an instruction statement for causing a language model to present proposed placement positions of a first block and a second block in the placement area that satisfy the constraints indicated by the constraint data; a layout data generation unit having a function of generating third layout data indicating a layout of a third area based on the proposed placement positions, the third layout data including a layout of the first block and a layout of the second block; and an output unit having a function of outputting the third layout data.
[0011] Alternatively, in the above aspect, the system may have a verification unit that verifies the layout indicated by the third layout data and has a function of determining whether or not the third layout data needs to be modified, and the receiving unit may have a function of receiving modified constraint condition data when the third layout data is modified.
[0012] Alternatively, in the above aspect, the first layout data may have one or more first layers, the second layout data may have one or more second layers, and the third layout data may have one or more third layers, the first layout data may indicate a layout of the first region for each first layer, the second layout data may indicate a layout of the second region for each second layer, and the third layout data may indicate a layout of the third region for each third layer, the third layer may include at least one of a layout of the first layer and a layout of the second layer, each of the first layer and the second layer may be given a name, and the layout data generation unit may have a function of giving a name to the third layer based on the name of the first layer and the name of the second layer.
[0013] Alternatively, in the above aspect, the proposed placement position may include third three-dimensional coordinate data indicating the placement position of the first block and fourth three-dimensional coordinate data indicating the placement position of the second block, and the layout data generation unit may have a function of changing the names of at least some of the third layers including the layout of the second layer from the names of the second layers when the minimum value of the height coordinate indicated by the third three-dimensional coordinate data is different from the minimum value of the height coordinate indicated by the fourth three-dimensional coordinate data.
[0014] Alternatively, one aspect of the present invention includes a first step of receiving first layout data indicating a layout of a first block, second layout data indicating a layout of a second block, and constraint condition data, the first layout data having first two-dimensional coordinate data indicating a first area in which the first block is laid out, and the second layout data having second two-dimensional coordinate data indicating a second area in which the second block is laid out, the second step of converting the first two-dimensional coordinate data into first three-dimensional coordinate data and the second two-dimensional coordinate data into second three-dimensional coordinate data, and the third step of converting directive data and the first three-dimensional coordinate data into a third three-dimensional coordinate data. a fourth step of generating prompt data having first data, second three-dimensional coordinate data, placement area data, and constraint data, wherein the placement area data is data indicating the placement area using three-dimensional coordinates, and the instruction data is data indicating an instruction for causing a language model to present proposed placement positions of a first block and a second block in the placement area that satisfy the constraints indicated by the constraint data; a fourth step of generating third layout data indicating a layout of a third area based on the proposed placement positions, the third layout data including a layout of the first block and a layout of the second block; and a fifth step of outputting the third layout data.
[0015] Alternatively, in the above aspect, in the sixth step, the layout indicated by the third layout data is verified, and it is determined whether or not the third layout data needs to be modified. If the third layout data is modified, the modified constraint data may be accepted in the seventh step, and then the third step, the fourth step, and the sixth step may be performed again.
[0016] Alternatively, in the above aspect, the verification may be physical verification.
[0017] Alternatively, in the above aspect, the first layout data may have one or more first layers, the second layout data may have one or more second layers, and the third layout data may have one or more third layers, the first layout data may indicate a layout of a first region for each first layer, the second layout data may indicate a layout of a second region for each second layer, and the third layout data may indicate a layout of a third region for each third layer, the third layer may include at least one of a layout of the first layer and a layout of the second layer, and names may be assigned to each of the first layer and the second layer, and in a fourth step, a name may be assigned to the third layer based on the names of the first layer and the second layer.
[0018] Alternatively, in the above aspect, the proposed placement position includes third three-dimensional coordinate data indicating the placement position of the first block and fourth three-dimensional coordinate data indicating the placement position of the second block, and in the fourth step, if the minimum value of the height coordinate indicated by the third three-dimensional coordinate data is different from the minimum value of the height coordinate indicated by the fourth three-dimensional coordinate data, the names of at least some of the third layers including the layout of the second layer may be made different from the names of the second layers.
[0019] According to one aspect of the present invention, a design support device that can be used even by a person with little experience in design work can be provided. Alternatively, according to one aspect of the present invention, a design support device that is highly convenient, useful, or reliable can be provided. Alternatively, according to one aspect of the present invention, a novel design support device can be provided. Alternatively, according to one aspect of the present invention, a design support system including the design support device can be provided. Alternatively, according to one aspect of the present invention, a design support method that can be applied to the design support device can be provided.
[0020] The effects of one embodiment of the present invention are not limited to the effects listed above. The effects listed above do not preclude the existence of other effects. The other effects are described below and are not mentioned in this section. Effects not mentioned in this section can be derived by a person skilled in the art from the description in the specification or drawings, and can be extracted as appropriate from these descriptions. One embodiment of the present invention has at least one of the effects listed above and / or other effects. Therefore, one embodiment of the present invention may not have the effects listed above in some cases.
[0021] FIG. 1 is a schematic diagram showing an example of the configuration of a design support system. FIG. 2 is a block diagram showing an example of the configuration of a design support system. FIG. 3 is a flowchart showing an example of a design support method. FIG. 4A is a block diagram showing an example of the design support method. FIG. 4B is a schematic diagram showing an example of layout data. FIGS. 5A, 5B, and 5C are schematic diagrams showing an example of layout data. FIGS. 6A, 6B, and 6C are schematic diagrams for explaining two-dimensional coordinate data. FIG. 7 is a block diagram showing an example of the design support method. FIGS. 8A, 8B, and 8C are schematic diagrams showing an example of the design support method. FIG. 9A is a block diagram showing an example of the design support method. FIG. 9B is a schematic diagram showing an example of prompt data. FIG. 10A is a block diagram showing an example of the design support method. FIG. 10B is a schematic diagram showing an example of response data. FIG. 10C is a schematic diagram showing an example of a layout position plan for a block BK. FIG. 11A is a block diagram showing an example of the design support method. FIG. 11B is a schematic diagram showing an example of layout data. 12A and 12B are block diagrams showing an example of a design support method.
[0022] The embodiments will be described in detail with reference to the drawings. However, the present invention is not limited to the following description, and it will be readily understood by those skilled in the art that various changes can be made in form and detail without departing from the spirit and scope of the present invention. Therefore, the present invention should not be interpreted as being limited to the description of the embodiments shown below.
[0023] In the configuration of the invention described below, the same parts or parts having similar functions are denoted by the same reference numerals in different drawings, and repeated explanations thereof will be omitted. Furthermore, when referring to similar functions, the same hatching pattern may be used and no particular reference numeral may be assigned.
[0024] Furthermore, for ease of understanding, the position, size, range, etc. of each component shown in the drawings may not represent the actual position, size, range, etc. Therefore, the disclosed invention is not necessarily limited to the position, size, range, etc. disclosed in the drawings.
[0025] In this specification, the ordinal numbers such as "first" and "second" are used for convenience and do not limit the number of components or the order of the components (for example, the order of processes or the order of stacking). Furthermore, an ordinal number assigned to a component in one part of this specification may not match an ordinal number assigned to the same component in another part of this specification or in the claims.
[0026] Furthermore, in this specification, terms indicating positions such as "upper," "lower," "left," and "right" are used for convenience in describing the positional relationship between components with reference to the drawings. Furthermore, the positional relationship between components changes as appropriate depending on the direction in which each component is depicted. Therefore, the terms are not limited to those described in the specification, and can be rephrased appropriately depending on the situation.
[0027] Embodiment In this embodiment, a design support system, a design support device, and a design support method according to one embodiment of the present invention will be described with reference to the drawings.
[0028] One aspect of the present invention relates to a design support device that automatically places multiple blocks based on constraints. Another aspect of the present invention relates to a design support system that includes the design support device. Furthermore, another aspect of the present invention relates to a design support method that can be applied to the design support device. Here, a block includes one or more semiconductor elements. Examples of semiconductor elements include transistors and diodes. A block can sometimes be referred to as a circuit block. For example, if a block includes two or more semiconductor elements, and at least two of these semiconductor elements are connected to each other, the block can be referred to as a circuit block. The circuit block may or may not have a specific function.
[0029] In a design support method according to one aspect of the present invention, a design support device first receives layout data and constraint data. The layout data is data indicating the layout of blocks, and different layout data can be used for each block. The constraint data is data in which placement constraints are written in natural language, and is used when placing each block in a later process. The design support device can receive multiple layout data and one constraint data.
[0030] In this specification, the term "layout" refers to a pattern (circuit pattern) in which a plurality of circuit elements (e.g., semiconductor elements, resistive elements, and capacitive elements) and wiring connecting the circuit elements are arranged in a semiconductor device such as an integrated circuit. Examples of such patterns include a photomask pattern, a pattern used for direct drawing with an electron beam drawing device, a PCB pattern, and an FPC pattern.
[0031] Each piece of layout data has two-dimensional coordinate data. The two-dimensional coordinate data has an x coordinate and a y coordinate. The two-dimensional coordinate data is data that indicates, for each block, a layout area, which is an area where blocks are laid out, using two-dimensional coordinates. The two-dimensional coordinate data may have, for example, two-dimensional coordinates of the vertices of the layout area. For example, if the layout area is a rectangle, the two-dimensional coordinate data may have four two-dimensional coordinates. Note that when the two-dimensional coordinate data has two-dimensional coordinates of the vertices of the layout area, the coordinates of one vertex may be (0,0). In this case, the coordinates of the other vertices may indicate relative positions based on the vertex whose coordinates are (0,0).
[0032] In this specification and the like, the term "region" can be replaced with "area" or "range."
[0033] Next, the design support system converts each of the two-dimensional coordinate data into three-dimensional coordinate data. The three-dimensional coordinate data has coordinates obtained by adding a z-coordinate to the x- and y-coordinates of the two-dimensional coordinate data. For example, if the layout area is quadrangular, the three-dimensional coordinate data may have eight three-dimensional coordinates indicating the positions of the vertices of a hexahedron. Specifically, if the layout area is rectangular or square, the three-dimensional coordinate data may have eight three-dimensional coordinates indicating the positions of the vertices of a rectangular parallelepiped or cube. Of the eight three-dimensional coordinates in the three-dimensional coordinate data, for example, four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped or cube have z-coordinates set to "0." Furthermore, for four three-dimensional coordinates indicating the positions of the vertices of the top surface, the z-coordinate may be set to the number of stacked semiconductor elements, such as transistors. For example, in a block in which two layers of transistors are stacked, the z-coordinate of four three-dimensional coordinates indicating the positions of the vertices of the top surface is set to "2." In a block in which the transistors are not stacked and all the transistors are provided on the same plane, the z coordinate is set to "1" in the four three-dimensional coordinates indicating the positions of the vertices of the upper surface.
[0034] In this specification and the like, when two-dimensional coordinates are written as (a, b) (a and b are real numbers), a is the x-coordinate and b is the y-coordinate. Also, when three-dimensional coordinates are written as (a, b, c) (c is a real number), a is the x-coordinate, b is the y-coordinate, and c is the z-coordinate. Here, the z-coordinate is sometimes referred to as the coordinate in the height direction.
[0035] Next, each block is placed so as to satisfy the constraints indicated by the constraint data. For example, a large-scale language model (also simply referred to as a language model) is used to present a proposed placement position for each block. Specifically, the placement position of each block is presented as three-dimensional coordinate data. Then, based on the three-dimensional coordinate data, layout data is generated that indicates a layout in which each block is placed. The layout data is data that indicates a two-dimensional layout for each layer.
[0036] Next, the design support device performs verification, for example, physical verification, on the generated layout data. If the design support device determines as a result of the verification that each block needs to be rearranged, it prompts the user of the design support system having the design support device to, for example, modify the constraints. If the user modifies the constraints, for example, the design support device accepts constraint data indicating the modified constraints. Thereafter, the design support device regenerates layout data in which each block is arranged.
[0037] As described above, in the design support method of one embodiment of the present invention, placement of multiple blocks can be performed using a language model. Specifically, placement of multiple blocks can be performed based on response data generated by the language model. This allows a user of the design support system of one embodiment of the present invention to input, for example, block placement constraints in natural language. Therefore, even a person who is not skilled in EDA tools can place blocks. Therefore, by using the design support method of one embodiment of the present invention, even a person with little design experience can design a circuit. Furthermore, the design support device used in the design support method of one embodiment of the present invention can be used by a person with little design experience. As described above, the design support system, design support device, and design support method of one embodiment of the present invention can be a design support system, design support device, and design support method that are highly convenient, useful, or reliable.
[0038] <Configuration Example of Design Support System> Fig. 1 is a schematic diagram showing a configuration example of a design support system 10, which is a design support system according to one embodiment of the present invention. The design support system may also be referred to as a circuit layout data generation system, a circuit layout data generation system, a layout data generation system, or a data generation system. The design support system 10 includes an information terminal 20, a design support device 100, and an information processing device 40. The design support system 10 may also include a network 30 and a network 31. In Fig. 1, information terminal 20a, information terminal 20b, information terminal 20c, and information terminal 20d are shown as examples of the information terminal 20.
[0039] 1, the design support device 100 is connected to an information processing device 40 via a network 30. Also, in FIG. 1, the design support device 100 is connected to an information terminal 20a, an information terminal 20b, an information terminal 20c, and an information terminal 20d via a network 31.
[0040] A user (e.g., a designer) of the design support system 10 can access the design support device 100 from an information terminal 20a to an information terminal 20d, etc. The user can then receive services using the design support system according to one aspect of the present invention. As described above, the user of the design support system 10 can be specifically the user of the information terminal 20. Note that the user of the design support system 10 may also be referred to as the user of the design support device 100.
[0041] The design support device 100 can generate prompt data using layout data and constraint data input from the information terminal 20 via the network 31. As described above, the layout data is data indicating the layout of blocks each having one or more semiconductor elements, and different layout data can be used for each block. The constraint data is data in which constraints on block placement are written in natural language. The design support device 100 can generate prompt data using multiple pieces of layout data and one piece of constraint data.
[0042] In this specification, prompt data is data that indicates a prompt. A prompt corresponds to an input sentence that causes a language model to perform a desired action. When a prompt is given, the language model generates a response sentence based on the prompt. The prompt has an instruction sentence. The instruction sentence can be rephrased as a question sentence, an imperative sentence, etc. It is preferable that the instruction sentence be registered in advance by a developer or a service provider. By registering the instruction sentence that the prompt has in advance, it becomes easier to obtain a desired answer from the language model.
[0043] The design support device 100 can transmit prompt data to the information processing device 40 via the network 30. The information processing device 40 can use the transmitted prompt data to present a proposal for the placement position of each block. Based on the proposal, the design support device 100 can generate layout data indicating a layout in which each block is placed.
[0044] The information terminals 20a to 20d are each an information terminal device such as a computer used by a user, and may also be referred to as a client computer. FIG. 1 illustrates, as an example, the information terminal 20a, which is a desktop computer, the information terminal 20b, which is a notebook computer, the information terminal 20c, which is a smartphone, and the information terminal 20d, which is a tablet computer. The number of information terminals 20 connected to the design support device 100 is not particularly limited. While FIG. 1 illustrates four information terminals 20, the number of information terminals 20 may be one, two, three, five or more. Examples of the information terminals 20 include desktop information terminals, notebook information terminals, tablet information terminals, and mobile information terminals such as smartphones.
[0045] The design support device 100 is a device capable of executing a design support method according to one aspect of the present invention. The design support device 100 is a large computer such as a server computer or a supercomputer. The design support device 100 is a computer with higher processing power than the information terminal 20. The design support device 100 may be capable of performing processing using artificial intelligence (AI).
[0046] The information processing device 40 is a large computer such as a server computer or a supercomputer. The information processing device 40 is a computer with higher processing power than the information terminal 20 and the design support device 100. The information processing device 40 can perform large-scale calculations required for AI learning and inference, for example.
[0047] The information processing device 40 can perform processing using a natural language processing model that uses AI. Examples of natural language processing models that use AI include BERT (Bidirectional Encoder Representations from Transformers) and T5 (Text-to-Text Transfer Transformer). The information processing device 40 can also perform processing using a large-scale language model. Specifically, the information processing device 40 can perform processing using a model that uses a large-scale language model (such as a sentence generation model or a dialogue model). Examples of large-scale language models include GPT-3, GPT-3.5, GPT-4, LaMDA (Language Model for Dialogue Applications), PaLM (Pathways Language Model), and PaLM2, and it is preferable to use GPT-4.
[0048] Network 31 is a computer network smaller than network 30. Typically, network 30 is a global network, and network 31 is a local network. It is preferable to use the Internet, which is the foundation of the World Wide Web (WWW), as network 30. It is preferable to use an intranet or an extranet as network 31. In this embodiment, an example will be mainly described in which the Internet is used as network 30 and an intranet is used as network 31.
[0049] Other computer networks that can be used as the network 31 include a PAN (Personal Area Network), a LAN (Local Area Network), a CAN (Campus Area Network), a MAN (Metropolitan Area Network), a WAN (Wide Area Network), and a GAN (Global Area Network).
[0050] Furthermore, when wireless communication is performed, communication standards such as the fourth generation mobile communication system (4G), fifth generation mobile communication system (5G), and sixth generation mobile communication system (6G), or specifications standardized by the IEEE such as Wi-Fi (registered trademark) and Bluetooth (registered trademark), can be used as communication protocols or communication technologies.
[0051] Note that a computer network that can be used for network 30 may be used for network 31, or a computer network that can be used for network 31 may be used for network 30. For example, the same network may be used for networks 30 and 31. For example, a global network may be used for both networks 30 and 31. Alternatively, a local network may be used for both networks 30 and 31.
[0052] Fig. 2 is a block diagram showing an example of the configuration of the design support system 10. Fig. 2 shows a more specific example of the configuration of the design support device 100 than Fig. 1. The design support device 100 includes a receiving unit 101, an output unit 103, a storage unit 110, a coordinate data generating unit 121, a prompt data generating unit 123, a layout data generating unit 125, and a verification unit 127. The coordinate data generating unit 121, the prompt data generating unit 123, the layout data generating unit 125, and the verification unit 127 are collectively referred to as a processing unit.
[0053] The reception unit 101 and the output unit 103 are connected to the information terminal 20 via a network 31, and are connected to the information processing device 40 via a network 30. Although Fig. 2 shows an example in which the coordinate data generation unit 121, the prompt data generation unit 123, the layout data generation unit 125, and the verification unit 127 are all provided in the same design support device 100, at least one of these may be provided in a different design support device 100.
[0054] In the drawings attached to this specification, the components are classified by function and shown as block diagrams that are independent of each other, but in reality, it is difficult to completely separate the components by function, and one component may be involved in multiple functions.
[0055] The reception unit 101 has a function of receiving data from outside the design support device 100. The reception unit 101 can receive data from the information terminal 20 via the network 31. The reception unit 101 can also receive data from the information processing device 40 via the network 30. The reception unit 101 can receive, for example, layout data and constraint condition data from the information terminal 20. Examples of layout data received by the reception unit 101 include data indicating the layout of blocks. The reception unit 101 can receive multiple pieces of layout data. The reception unit 101 can also receive, for example, response data generated by a language model using prompt data from the information processing device 40.
[0056] The output unit 103 has a function of outputting data to the outside of the design support device 100. The output unit 103 has a function of outputting data generated by processing performed by at least one of the coordinate data generation unit 121, the prompt data generation unit 123, the layout data generation unit 125, and the verification unit 127, to the outside of the design support device 100. The output unit 103 can output data to the information terminal 20 via the network 31. The output unit 103 can also output data to the information processing device 40 via the network 30. The output unit 103 can output, for example, layout data to the information terminal 20. The output unit 103 can also output prompt data to the information processing device 40.
[0057] When the output unit 103 outputs data to the information terminal 20, the output unit 103 can, for example, display the information represented by the data on the display screen of the information terminal 20, and / or output a file in txt format, docx format, xml format, pdf format, csv format, etc. to the information terminal 20.
[0058] The storage unit 110 has a function of storing data received by the receiving unit 101. For example, it can store layout data and constraint condition data. The storage unit 110 also has a function of storing programs executed by the coordinate data generation unit 121, the prompt data generation unit 123, the layout data generation unit 125, and the verification unit 127. The storage unit 110 also has a function of storing instruction statement data indicating prompt instruction statements. The storage unit 110 may also have a function of storing data (e.g., calculation results, analysis results, inference results) generated by at least one of the coordinate data generation unit 121, the prompt data generation unit 123, the layout data generation unit 125, and the verification unit 127.
[0059] The storage unit 110 may function as a database. In this case, the user of the information terminal 20 can specify data stored in the storage unit 110, and the specified data can be accepted by the acceptance unit 101. For example, if layout data is stored in the storage unit 110, the user of the information terminal 20 can specify the layout data, and the acceptance unit 101 can accept the specified layout data. The data can be specified by the user of the information terminal 20 specifying at least one of the number assigned to the data, the date the data was created or registered, the data classification, the creator of the data, the description of the data, and the wording included in the data, for example.
[0060] The database may be provided outside the design support device 100 or outside the design support system 10. Alternatively, the database may be provided in two or more locations among inside the design support device 100, outside the design support device 100 and inside the design support system 10, and outside the design support system 10.
[0061] The storage unit 110 includes at least one of a volatile memory and a nonvolatile memory. Examples of the volatile memory include a dynamic random access memory (DRAM) and a static random access memory (SRAM). Examples of the nonvolatile memory include a resistive random access memory (ReRAM), a phase change random access memory (PRAM), a ferroelectric random access memory (FeRAM), a magnetoresistive random access memory (MRAM), and a flash memory. The storage unit 110 may also include at least one of NOSRAM (registered trademark) and DOSRAM (registered trademark). The storage unit 110 may also include a recording media drive. Examples of recording media drives include a hard disk drive (HDD) and a solid state drive (SSD).
[0062] NOSRAM is an abbreviation for "Nonvolatile Oxide Semiconductor Random Access Memory (RAM)." NOSRAM refers to a memory in which memory cells are two-transistor (2T) or three-transistor (3T) gain cells and transistors (also called OS transistors) that use metal oxide in their channel formation regions. OS transistors have an extremely small leakage current, i.e., a current that flows between the source and drain in an off state. NOSRAM can be used as a nonvolatile memory by retaining a charge corresponding to data in the memory cell using its extremely small leakage current characteristic. In particular, NOSRAM can read stored data without destroying it (nondestructive readout), making it suitable for arithmetic processing in which only data read operations are repeated a large number of times. NOSRAM can increase its data capacity by stacking layers, and therefore can be used as a large-scale cache memory, main memory, or storage memory to improve the performance of semiconductor devices.
[0063] DOSRAM is an abbreviation for "Dynamic Oxide Semiconductor RAM" and refers to a RAM having 1T (transistor) 1C (capacitor) type memory cells. DOSRAM is a DRAM formed using OS transistors, and is a memory that temporarily stores information sent from an external device. DOSRAM is a memory that takes advantage of the low off-state current of OS transistors.
[0064] In this specification and the like, a metal oxide refers to an oxide of a metal in a broad sense. Metal oxides are classified into oxide insulators, oxide conductors (including transparent oxide conductors), oxide semiconductors (also referred to as oxide semiconductors or simply as OSs), and the like. For example, when a metal oxide is used for a semiconductor layer of a transistor, the metal oxide may be referred to as an oxide semiconductor.
[0065] The metal oxide included in the channel formation region preferably contains indium (In). When the metal oxide included in the channel formation region contains indium, the carrier mobility (electron mobility) of the OS transistor is increased. Furthermore, the metal oxide included in the channel formation region is preferably an oxide semiconductor containing element M. The element M is preferably at least one of aluminum (Al), gallium (Ga), and tin (Sn). Other elements applicable to element M include boron (B), silicon (Si), titanium (Ti), iron (Fe), nickel (Ni), germanium (Ge), yttrium (Y), zirconium (Zr), molybdenum (Mo), lanthanum (La), cerium (Ce), neodymium (Nd), hafnium (Hf), tantalum (Ta), and tungsten (W). However, a combination of two or more of the above elements may be used as element M. The element M is, for example, an element having a high bond energy with oxygen. For example, it is an element having a higher bond energy with oxygen than indium. The metal oxide contained in the channel formation region is preferably a metal oxide containing zinc (Zn), since zinc-containing metal oxides may be easily crystallized.
[0066] The metal oxide contained in the channel formation region is not limited to a metal oxide containing indium, but may be, for example, a metal oxide containing zinc but not indium, such as zinc tin oxide or gallium tin oxide, a metal oxide containing gallium, or a metal oxide containing tin.
[0067] The coordinate data generation unit 121 has a function of generating three-dimensional coordinate data based on the layout data received by the receiving unit 101. The coordinate data generation unit 121 has a function of converting the two-dimensional coordinate data contained in the layout data into three-dimensional coordinate data. The two-dimensional coordinate data is data indicating a layout area, which is an area where blocks are laid out. The three-dimensional coordinate data is data indicating coordinates obtained by adding a coordinate indicating the height direction (z-coordinate) to the two-dimensional coordinate data. The three-dimensional coordinate data can indicate not only the layout area but also, for example, the number of stacked semiconductor elements such as transistors.
[0068] The prompt data generation unit 123 has a function of generating prompt data including instruction statement data, multiple pieces of three-dimensional coordinate data, placement area data, and constraint data. The prompt data generation unit 123 can generate the prompt data using a prompt data generation script or program. The prompt data is data generated based on the instruction statement data, multiple pieces of three-dimensional coordinate data, placement area data, and constraint data, and is data indicating instructions written in a natural language.
[0069] The instruction data is data indicating an instruction for causing a language model, specifically the language model of the information processing device 40, to present a proposed placement position for each block indicated by the above-mentioned three-dimensional coordinate data. The proposed placement position can be a proposal for placing each block in the placement area indicated by the placement area data so as to satisfy the constraint conditions indicated by the constraint data. The placement area data is data indicating the placement area using three-dimensional coordinates. The information processing device 40 can generate response data indicating a proposed placement position for each block using the prompt data generated by the prompt data generation unit 123.
[0070] The layout data generation unit 125 has a function of generating layout data based on the response data. Specifically, the layout data generation unit 125 has a function of generating layout data indicating a layout in which each block is arranged based on the proposed arrangement position indicated by the response data. Therefore, the layout data includes the layout of each block described above. The layout data has two-dimensional coordinate data and indicates the layout of the layout area indicated by the two-dimensional coordinate data. Here, the coordinate data generation unit 121 converts the two-dimensional coordinate data into three-dimensional coordinate data and then arranges each block, thereby allowing two or more blocks to be arranged in a stacked manner.
[0071] The verification unit 127 has a function of verifying the layout indicated by the layout data and determining whether or not the layout data needs to be modified. Specifically, the verification unit 127 has a function of verifying whether or not each block needs to be rearranged. For example, physical verification can be performed as the verification.
[0072] If, as a result of the verification, the verification unit 127 determines that the layout data needs to be modified, it prompts the user of the information terminal 20 to modify, for example, the constraints. If, for example, the user modifies the constraints, the reception unit 101 receives constraint data indicating the modified constraints. Thereafter, the prompt data generation unit 123 generates prompt data, the information processing device 40 generates response data, the layout data generation unit 125 generates layout data, and the verification unit 127 verifies the layout again. The above-described processes by the prompt data generation unit 123, the information processing device 40, the layout data generation unit 125, and the verification unit 127 are performed until the verification unit 127 determines that the layout satisfies the requirements and that modification of the layout data is unnecessary.
[0073] The coordinate data generation unit 121, the prompt data generation unit 123, the layout data generation unit 125, and the verification unit 127 can perform calculations using, for example, a central processing unit (CPU) or a graphics processing unit (GPU).
[0074] The transmission unit 130 has a function of transmitting data. Data can be transmitted and received between the reception unit 101, the output unit 103, the storage unit 110, the coordinate data generation unit 121, the prompt data generation unit 123, the layout data generation unit 125, and the verification unit 127 via the transmission unit 130.
[0075] As described above, the design support system 10, which includes the information terminal 20, the design support device 100, and the information processing device 40, can place multiple blocks using a language model. This allows a user of the design support system 10, specifically a user of the information terminal 20, to input, for example, block placement constraints in natural language. Therefore, even a person who is not skilled in EDA tools can place blocks. Therefore, the design support system 10 allows even a person with little design experience to design a circuit. Furthermore, the design support device 100 can be used by a person with little design experience. As described above, the design support system 10 and the design support device 100 can be a design support system and a design support device that are highly convenient, useful, and reliable.
[0076] <Example of Design Support Method> An example of a design support method according to one aspect of the present invention will be described below. Specifically, an example of a design support method using a design support system 10 shown in FIG.
[0077] 3 is a flowchart showing an example of a design support method, which includes steps S1 to S9.
[0078] [Step S1] In step S1, the receiving unit 101 receives layout data LTD1 and constraint condition data RSTD. Fig. 4A is a block diagram schematically illustrating step S1. In Fig. 4A, data movement is indicated by dotted arrows. As shown in Fig. 4A, for example, multiple pieces of layout data LTD1 and one piece of constraint condition data RSTD are transmitted from the information terminal 20 to the receiving unit 101 and stored in the storage unit 110. Note that data movement is also indicated by dotted arrows in the block diagrams shown below.
[0079] The storage unit 110 may function as a database, and the layout data LTD1 may be stored in advance in the storage unit 110. In this case, the user of the information terminal 20 may specify the layout data LTD1 stored in the storage unit 110, and the accepting unit 101 may accept the specified layout data LTD1. The layout data LTD1 may be specified by the user of the information terminal 20 specifying at least one of the number assigned to the layout data LTD1, the date the layout data LTD1 was created or registered, the layout indicated by the layout data LTD1, the person who designed the layout indicated by the layout data LTD1, a description of the layout indicated by the layout data LTD1, and text included in the layout data LTD1. Similarly, the constraint data RSTD may be stored in advance in the storage unit 110. In this case, the user of the information terminal 20 may specify the constraint data RSTD stored in the storage unit 110, and the accepting unit 101 may accept the specified constraint data RSTD.
[0080] 4A does not show the information processing device 40 shown in Fig. 2. The block diagrams shown later may also not show the information processing device 40. Furthermore, the block diagrams shown later may also not show the information terminal 20.
[0081] The layout data LTD1 is data indicating the layout of blocks each having one or more semiconductor elements, and can be different layout data for each block. The constraint data RSTD is data used when placing blocks in a later process, and is data in which constraints for block placement are written in natural language.
[0082] As mentioned above, examples of semiconductor elements include transistors and diodes. A block may also be referred to as a circuit block. For example, if a block has two or more semiconductor elements, and at least two of these semiconductor elements are connected to each other, the block may be referred to as a circuit block. A circuit block may or may not have a specific function.
[0083] FIG. 4A shows an example in which three pieces of layout data LTD1 are stored in the storage unit 110. FIG. 4B is a schematic diagram showing the three pieces of layout data LTD1, namely, layout data LTD1_A, layout data LTD1_B, and layout data LTD1_C. As shown in FIG. 4B, layout data LTD1_A is data indicating the layout of block BK_A. Layout data LTD1_B is data indicating the layout of block BK_B. Layout data LTD1_C is data indicating the layout of block BK_C. Note that blocks BK_A, BK_B, and BK_C may be collectively referred to as block BK.
[0084] 5A, 5B, and 5C are schematic diagrams showing examples of the data structures of layout data LTD1_A, layout data LTD1_B, and layout data LTD1_C, respectively. Layout data LTD1_A has two-dimensional coordinate data 2DCD1_A and layer data LYD1_A. Layout data LTD1_B has two-dimensional coordinate data 2DCD1_B and layer data LYD1_B. Layout data LTD1_C has two-dimensional coordinate data 2DCD1_C and layer data LYD1_C. The two-dimensional coordinate data 2DCD1_A, two-dimensional coordinate data 2DCD1_B, and two-dimensional coordinate data 2DCD1_C may be collectively referred to as two-dimensional coordinate data 2DCD1. Furthermore, the layer data LYD1_A, layer data LYD1_B, and layer data LYD1_C may be collectively referred to as layer data LYD1.
[0085] The two-dimensional coordinate data 2DCD1 has an x coordinate and a y coordinate, and is data that indicates, in two-dimensional coordinates, a layout area where the blocks BK are laid out.
[0086] The layer data LYD1 is data that indicates, for each layer, the layout of the layout area indicated by the two-dimensional coordinate data 2DCD1. Here, the layer that the layer data LYD1_A has is referred to as layer 201A. The layer that the layer data LYD1_B has is referred to as layer 201B. The layer that the layer data LYD1_C has is referred to as layer 201C. Note that the layers 201A, 201B, and 201C may be collectively referred to as layer 201. The layer data LYD1 may have one or more layers 201.
[0087] Names are assigned to the layers 201. Fig. 5A shows an example in which the layer data LYD1_A has a layer 201A named "LYA1" and a layer 201A named "LYA2". Fig. 5B shows an example in which the layer data LYD1_B has a layer 201B named "LYA1" and a layer 201B named "LYA2". Fig. 5C shows an example in which the layer data LYD1_C has a layer 201C named "LYA1", a layer 201C named "LYA2", a layer 201C named "LYB1", and a layer 201C named "LYB2".
[0088] 5A, 5B, and 5C, an example of the layout of a layer named "LYA1" is shown as layout 211. Also, an example of the layout of a layer named "LYA2" is shown as layout 212. In FIG. 5C, an example of the layout of a layer named "LYB1" is shown as layout 221. Also, in FIG. 5C, an example of the layout of a layer named "LYB2" is shown as layout 222. The above also applies to the subsequent drawings showing examples of layouts for each layer.
[0089] Generally, once the circuit design of a semiconductor device is completed and the layout data is finalized, a mask, such as a photomask, is manufactured that reflects the layout indicated by the layout data. Here, the mask is manufactured for each layer. Therefore, if one piece of layout data has n layers (n is an integer equal to or greater than 1), n types of masks that reflect the layout indicated by the layout data are manufactured. When manufacturing a circuit having the layout, the n types of masks are used in a predetermined order in the manufacturing process.
[0090] 6A, 6B, and 6C are schematic diagrams for explaining two-dimensional coordinate data 2DCD1_A, two-dimensional coordinate data 2DCD1_B, and two-dimensional coordinate data 2DCD1_C, respectively. For the purpose of explanation, Figures 6A, 6B, and 6C show blocks BK_A, BK_B, and BK_C, respectively. Specifically, Figures 6A, 6B, and 6C show the layout areas of blocks BK_A, BK_B, and BK_C.
[0091] 6A, 6B, and 6C, the direction indicated by the x coordinate (also referred to as the x direction) and the direction indicated by the y coordinate (also referred to as the y direction) are indicated by coordinate axes. In subsequent drawings that explain two-dimensional coordinate data, the x direction and the y direction are also indicated by coordinate axes.
[0092] The two-dimensional coordinate data 2DCD1 may have, for example, two-dimensional coordinates indicating the vertices of the layout area of the block BK. For example, if the layout area of the block BK is rectangular, the two-dimensional coordinate data 2DCD1 may have four two-dimensional coordinates. If the two-dimensional coordinate data 2DCD1 has two-dimensional coordinates indicating the vertices of the layout area, the coordinates of one vertex may be (0,0). In this case, the coordinates of the other vertices may indicate relative positions based on the vertex whose coordinates are (0,0). If the layout area of the block BK is rectangular or square, the two-dimensional coordinate data 2DCD1 may have two two-dimensional coordinates. In this case, the two-dimensional coordinate data 2DCD1 may have, for example, data indicating that the layout area of the block BK is rectangular or square, and two-dimensional coordinates indicating two vertices located on a diagonal line.
[0093] 6A, 6B, and 6C show examples in which the layout regions of blocks BK_A, BK_B, and BK_C are rectangular, respectively. FIG. 6A shows an example in which the four vertices of the layout region of block BK_A are (0,0), (0,5), (5,5), and (5,0), respectively. FIG. 6B shows an example in which the four vertices of the layout region of block BK_B are (0,0), (0,5), (5,5), and (5,0), respectively. FIG. 6C shows an example in which the four vertices of the layout region of block BK_C are (0,0), (0,4), (7,4), and (7,0), respectively. From the above, the layout regions of blocks BK_A and BK_B are square, and the layout region of block BK_C is rectangular. 6A, 6B, and 6C show examples in which the x and y coordinates are all integers equal to or greater than 0, but the x and y coordinates may be negative integers, positive or negative decimals, or numbers expressed by a predetermined formula. The same applies to the z coordinates of the three-dimensional coordinates shown below.
[0094] [Step S2] In step S2, the coordinate data generation unit 121 generates three-dimensional coordinate data 3DCD1 based on the layout data LTD1. In step S2, the coordinate data generation unit 121 converts the two-dimensional coordinate data 2DCD1 included in the layout data LTD1 into three-dimensional coordinate data 3DCD1. FIG. 7 is a block diagram schematically illustrating step S2. As shown in FIG. 7, for example, the layout data LTD1 stored in the storage unit 110 is transmitted to the coordinate data generation unit 121. Here, one piece of three-dimensional coordinate data 3DCD1 is generated from one piece of layout data LTD1. In the example shown in FIG. 7, three pieces of layout data LTD1 are stored in the storage unit 110, so the coordinate data generation unit 121 generates three pieces of three-dimensional coordinate data 3DCD1. Note that the coordinate data generation unit 121 may store the three-dimensional coordinate data 3DCD1 in the storage unit 110.
[0095] 8A, 8B, and 8C are schematic diagrams illustrating the generation of three-dimensional coordinate data 3DCD1_A, 3DCD1_B, and 3DCD1_C based on two-dimensional coordinate data 2DCD1_A, 2DCD1_B, and 2DCD1_C, respectively. In FIG. 8A, the figures represented by the two-dimensional coordinate data 2DCD1_A and the figures represented by the three-dimensional coordinate data 3DCD1_A are shown as figures in block BK_A. In FIG. 8B, the figures represented by the two-dimensional coordinate data 2DCD1_B and the figures represented by the three-dimensional coordinate data 3DCD1_B are shown as figures in block BK_B. Furthermore, in FIG. 8C, the figures represented by the two-dimensional coordinate data 2DCD1_C and the figures represented by the three-dimensional coordinate data 3DCD1_C are shown as figures in block BK_C. The three-dimensional coordinate data 3DCD1_A, the three-dimensional coordinate data 3DCD1_B, and the three-dimensional coordinate data 3DCD1_C may be collectively referred to as three-dimensional coordinate data 3DCD1.
[0096] As shown in Figures 8A, 8B, and 8C, the three-dimensional coordinate data 3DCD1 has three-dimensional coordinates obtained by adding a z-coordinate to the x- and y-coordinates of the two-dimensional coordinate data 2DCD1. For example, if the layout area of the block BK is quadrangular, the three-dimensional coordinate data 3DCD1 may have eight three-dimensional coordinates indicating the positions of the vertices of a hexahedron. Specifically, if the layout area of the block BK is rectangular or square, the three-dimensional coordinate data 3DCD1 may have eight three-dimensional coordinates indicating the positions of the vertices of a rectangular parallelepiped or cube. Of the eight three-dimensional coordinates in the three-dimensional coordinate data 3DCD1, for example, the z-coordinates of four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped or cube are set to "0." Furthermore, the z-coordinates of the four three-dimensional coordinates indicating the positions of the vertices of the top surface can be set to the number of stacked semiconductor elements, such as transistors. For example, in a block BK having two layers of transistors stacked, the z-coordinates of the four three-dimensional coordinates indicating the positions of the vertices of the top surface are set to "2." Here, in a block BK in which the transistors are not stacked and all the transistors are provided on the same plane, the z coordinate of the four three-dimensional coordinates indicating the positions of the vertices of the top surface is set to 1. Note that Figures 8A, 8B, and 8C show examples in which the figure indicated by the three-dimensional coordinate data 3DCD1_A, the figure indicated by the three-dimensional coordinate data 3DCD1_B, and the figure indicated by the three-dimensional coordinate data 3DCD1_C are rectangular parallelepipeds, respectively.
[0097] 8A, 8B, and 8C, the x-direction, y-direction, and z-coordinate direction (also referred to as the z-direction) of the three-dimensional coordinate data are indicated by coordinate axes. In subsequent drawings that describe the three-dimensional coordinate data, the x-direction, y-direction, and z-direction are also indicated by coordinate axes.
[0098] 8A shows an example in which the transistor Tr is provided in the block BK_A without being stacked. In FIG. 8A, the eight three-dimensional coordinates of the three-dimensional coordinate data 3DCD1_A are (0,0,0), (0,5,0), (5,5,0), (5,0,0), (0,0,1), (0,5,1), (5,5,1), and (5,0,1), respectively. That is, the z-coordinates of the four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped are set to "0," and the z-coordinates of the four three-dimensional coordinates indicating the positions of the vertices of the top surface are set to "1."
[0099] 8B shows an example in which, like block BK_A, transistors Tr are provided in block BK_B without being stacked. Fig. 8B shows an example in which the eight three-dimensional coordinates of the three-dimensional coordinate data 3DCD1_B are (0,0,0), (0,5,0), (5,5,0), (5,0,0), (0,0,1), (0,5,1), (5,5,1), and (5,0,1), respectively. That is, like block BK_A, the z-coordinates of the four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped are set to "0," and the z-coordinates of the four three-dimensional coordinates indicating the positions of the vertices of the top surface are set to "1."
[0100] 8C shows an example in which two layers of transistors Tr are stacked in block BK_C. In FIG. 8C, the eight three-dimensional coordinates of the three-dimensional coordinate data 3DCD1_C are (0,0,0), (0,4,0), (7,4,0), (7,0,0), (0,0,2), (0,4,2), (7,4,2), and (7,0,2). That is, the z-coordinates of the four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped are set to "0," and the z-coordinates of the four three-dimensional coordinates indicating the positions of the vertices of the top surface are set to "2."
[0101] Note that in Figures 8A, 8B, and 8C, an example is shown in which the z coordinates of four of the eight three-dimensional coordinates contained in the three-dimensional coordinate data 3DCD1 indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped are set to "0." However, the z coordinates do not have to be set to "0." In this case, for example, the z coordinates can be set so that the difference between the z coordinates of the vertices of the top surface of the rectangular parallelepiped and the z coordinates of the vertices of the bottom surface of the rectangular parallelepiped is equal to the number of stacked transistors Tr. For example, if the z coordinates of the vertices of the bottom surface of the rectangular parallelepiped are set to "-1," the z coordinates of the vertices of the top surface of the rectangular parallelepiped can be set to "0" in the examples shown in Figures 8A and 8B, and "1" in the example shown in Figure 8C. Note that, for example, the difference between the z coordinates of the vertices of the top surface of the rectangular parallelepiped and the z coordinates of the vertices of the bottom surface of the rectangular parallelepiped does not have to be equal to the number of stacked transistors Tr. Even in this case, it is preferable that the difference between the z coordinates of the vertices of the top surface of the rectangular parallelepiped and the z coordinates of the vertices of the bottom surface of the rectangular parallelepiped be proportional to the number of stacked transistors Tr.
[0102] [Step S3] In step S3, the prompt data generation unit 123 generates prompt data PPTD. Fig. 9A is a block diagram schematically illustrating step S3. As shown in Fig. 9A, for example, the constraint data RSTD stored in the storage unit 110 and the three-dimensional coordinate data 3DCD1 generated by the coordinate data generation unit 121 in step S2 are transmitted to the prompt data generation unit 123. The prompt data generation unit 123 generates the prompt data PPTD based on the three-dimensional coordinate data 3DCD1 and the constraint data RSTD.
[0103] 9B is a schematic diagram showing an example of the data structure of prompt data PPTD. The prompt data PPTD has instruction sentence data DSD, placement area data ARD, three-dimensional coordinate data 3DCD1, and constraint condition data RSTD. In FIG. 9B, an example is shown in which the prompt data PPTD has, as the three-dimensional coordinate data 3DCD1, the three-dimensional coordinate data 3DCD1_A shown in FIG. 8A, the three-dimensional coordinate data 3DCD1_B shown in FIG. 8B, and the three-dimensional coordinate data 3DCD1_C shown in FIG. 8C. The prompt data PPTD is data indicating instructions written in a sentence in natural language.
[0104] The placement area data ARD is data indicating a placement area, which is an area where a block BK can be placed. The placement area can be represented by, for example, three-dimensional coordinates. FIG. 9B shows an example in which the placement area is a rectangular parallelepiped, and the placement area data ARD has eight three-dimensional coordinates. FIG. 9B also shows an example in which the eight three-dimensional coordinates of the placement area data ARD are (0,0,0), (0,12,0), (12,12,0), (12,0,0), (0,0,2), (0,12,2), (12,12,2), and (12,0,2), respectively.
[0105] The placement area can be specified by the user of the information terminal 20, for example, in step S1. In this case, the placement area data ARD is transmitted from the information terminal 20 to the prompt data generation unit 123 via the reception unit 101. Alternatively, the placement area data ARD may be stored in advance in the storage unit 110. In this case, for example, in step S1, the user of the information terminal 20 can specify the placement area data ARD stored in the storage unit 110, and the reception unit 101 can receive the specified placement area data ARD. Note that the user of the information terminal 20 may not specify the placement area data ARD, and the prompt data generation unit 123 may specify the placement area data ARD. Alternatively, the coordinate data generation unit 121 may generate the placement area data ARD based on, for example, three-dimensional coordinate data 3DCD1.
[0106] The constraint data RSTD is data in which constraints on the placement of blocks BK are written in natural language. In the example shown in FIG. 9B , the constraint data RSTD indicates constraints that must be satisfied when placing blocks BK_A, BK_B, and BK_C. Examples of constraints include "place within the placement area," "do not rotate blocks BK_A, BK_B, and BK_C," and "block BK_B overlaps block BK_A." Note that constraints may also include matters related to response data generated by a language model in a later process. For example, the format of the proposed placement positions of blocks BK_A, BK_B, and BK_C may also be indicated as constraints. For example, constraints may include conditions such as "the vertex coordinates of blocks BK_A, BK_B, and BK_C are written in the format (x, y, z)," where x, y, and z are integers greater than or equal to 0, etc.
[0107] The instruction data DSD is data indicating an instruction for causing a language model, specifically the language model of the information processing device 40, to present a proposed placement position for the block BK. The instruction data DSD indicates, for example, an instruction for causing the language model of the information processing device 40 to present a proposed placement position for the block BK_A, block BK_B, and block BK_C shown in FIG. 9B. The proposed placement position may be a proposal for placing the block BK_A, block BK_B, and block BK_C in the placement area indicated by the placement area data ARD so as to satisfy the constraints indicated by the constraint data RSTD. The instruction may be, for example, "I would like to place the block BK_A, block BK_B, and block BK_C in the placement area indicated by the following vertex coordinates. Please place them while referring to the constraints."
[0108] The instruction sentence data DSD can be stored in advance in the storage unit 110. In this case, the instruction sentence data DSD is transmitted from the storage unit 110 to the prompt data generating unit 123 in step S3.
[0109] 9B shows an example in which the prompt data PPTD has the following columns: "#instruction," "#placement area X," "#blocks BK_A, BK_B, BK_C," and "#constraint." In the example shown in FIG. 9B, the "#instruction" column contains the instruction indicated by the instruction data DSD. The "#placement area X" column contains the three-dimensional coordinate indicated by the placement area data ARD in "[ ]" of "X=[ ]." The "#blocks BK_A, BK_B, BK_C" column contains the three-dimensional coordinate indicated by the three-dimensional coordinate data 3DCD1_A, the three-dimensional coordinate indicated by the three-dimensional coordinate data 3DCD1_B, and the three-dimensional coordinate indicated by the three-dimensional coordinate data 3DCD1_C in "[ ]" of "A=[ ]," "B=[ ]," and "C=[ ]," respectively. The "# constraint" column describes the constraint indicated by the constraint data RSTD.
[0110] [Step S4] In step S4, the prompt data generation unit 123 transmits the prompt data PPTD to the information processing device 40. Based on the prompt data PPTD, the information processing device 40 generates response data RPD using a language model. The response data RPD includes, for example, a proposed layout position for block BK presented by the language model based on the prompt data PPTD. The response data RPD includes, for example, proposed layout positions for blocks BK_A, BK_B, and BK_C.
[0111] 10A is a block diagram schematically illustrating step S4. As shown in FIG. 10A , the prompt data PPTD generated by the prompt data generation unit 123 in step S3 is output to the information processing device 40 via the output unit 103. The response data RPD generated by the information processing device 40 using the language model is received by the receiving unit 101 of the design support device 100. The receiving unit 101 transmits the response data RPD to the layout data generation unit 125. As a result, the design support device 100, specifically the layout data generation unit 125, acquires the response data RPD. Here, the response data RPD may be stored in the storage unit 110.
[0112] 10B is a schematic diagram showing an example of the data structure of response data RPD. The response data has three-dimensional coordinate data 3DCD2. FIG. 10B shows an example in which the response data RPD has three-dimensional coordinate data 3DCD2_A, three-dimensional coordinate data 3DCD2_B, and three-dimensional coordinate data 3DCD2_C as the three-dimensional coordinate data 3DCD2.
[0113] The three-dimensional coordinate data 3DCD2 is data that indicates, in three-dimensional coordinates, the position where the block BK will be placed. Specifically, the three-dimensional coordinate data 3DCD2_A, three-dimensional coordinate data 3DCD2_B, and three-dimensional coordinate data 3DCD2_C are data that indicate, in three-dimensional coordinates, the positions where the block BK_A, block BK_B, and block BK_C will be placed, respectively. The three-dimensional coordinate data 3DCD2 indicates a proposed placement position for the block BK. Specifically, the proposed placement positions for the block BK_A, block BK_B, and block BK_C are indicated by the three-dimensional coordinate data 3DCD2_A, three-dimensional coordinate data 3DCD2_B, and three-dimensional coordinate data 3DCD2_C, respectively.
[0114] 10B shows an example in which the three-dimensional coordinate data 3DCD2 has eight three-dimensional coordinates. The eight three-dimensional coordinates of the three-dimensional coordinate data 3DCD2_A are (0,0,0), (0,5,0), (5,5,0), (5,0,0), (0,0,1), (0,5,1), (5,5,1), and (5,0,1), respectively. The eight three-dimensional coordinates of the three-dimensional coordinate data 3DCD2_B are (0,0,1), (0,5,1), (5,5,1), (5,0,1), (0,0,2), (0,5,2), (5,5,2), and (5,0,2), respectively. 10B shows an example in which the eight three-dimensional coordinates of the three-dimensional coordinate data 3DCD2_C are (5,0,0), (5,4,0), (12,4,0), (12,0,0), (5,0,2), (5,4,2), (12,4,2), and (12,0,2), respectively. Note that Fig. 10B shows an example in which the three-dimensional coordinates indicated by the three-dimensional coordinate data 3DCD2_A, the three-dimensional coordinates indicated by the three-dimensional coordinate data 3DCD2_B, and the three-dimensional coordinates indicated by the three-dimensional coordinate data 3DCD2_C are written within "[ ]" of "A=[ ]", "B=[ ]", and "C=[ ]", respectively.
[0115] Fig. 10C is a schematic diagram showing an example of a proposed arrangement position of block BK presented by the language model of the information processing device 40. Specifically, Fig. 10C shows an example in which block BK_A, block BK_B, and block BK_C are arranged at positions indicated by three-dimensional coordinate data 3DCD2_A, three-dimensional coordinate data 3DCD2_B, and three-dimensional coordinate data 3DCD2_C shown in Fig. 10B, respectively.
[0116] FIG. 10C shows an example in which block BK_B is placed on block BK_A. FIG. 10C also shows an example in which block BK_A, block BK_B, and block BK_C have areas where they contact each other. That is, FIG. 10C shows an example in which block BK_A, block BK_B, and block BK_C are not separated from each other. FIG. 10C also shows an example in which block BK_A, block BK_B, and block BK_C are all shown as rectangular parallelepipeds. The bottom surfaces of block BK_A and block BK_C are flush with each other, and the top surfaces of block BK_B and block BK_C are flush with each other.
[0117] As described above, in an information processing method according to one embodiment of the present invention, after the coordinate data generation unit 121 converts the two-dimensional coordinate data 2DCD1 into three-dimensional coordinate data 3DCD1 in step S2, the language model of the information processing device 40 presents a proposal for the placement position of the block BK in step S4. As a result, the language model can present a proposal for stacking two or more blocks BK, as shown in FIG. 10C . Note that in an information processing method according to one embodiment of the present invention, the conversion of the two-dimensional coordinate data 2DCD1 into three-dimensional coordinate data 3DCD1 may not be necessary. That is, step S2 may be omitted. In this case, the placement area data ARD included in the prompt data PPTD shown in FIG. 9B may have two-dimensional coordinates, for example, four two-dimensional coordinates. Furthermore, the two-dimensional coordinate data 2DCD1 may be included in the prompt data PPTD instead of the three-dimensional coordinate data 3DCD2. Furthermore, the coordinate data included in the response data RPD shown in FIG. 10B may be two-dimensional coordinate data rather than three-dimensional coordinate data 3DCD2. If the two-dimensional coordinate data 2DCD1 is not converted into three-dimensional coordinate data 3DCD1, the design support device 100 does not need to include the coordinate data generation unit 121.
[0118] [Step S5] In step S5, the layout data generation unit 125 generates layout data LTD2 based on the response data RPD. Specifically, the layout data generation unit 125 generates the layout data LTD2 based on the proposed placement positions of the blocks BK contained in the response data RPD. The layout data LTD2 indicates a layout in which the blocks BK are placed.
[0119] 11A is a block diagram showing a schematic diagram of step S5. As shown in FIG. 11A, the layout data LTD2 generated by the layout data generating unit 125 in step S5 is stored in the storage unit 110.
[0120] 11B is a schematic diagram showing an example of the data structure of the layout data LTD2. The layout data LTD2 includes two-dimensional coordinate data 2DCD2 and layer data LYD2.
[0121] The two-dimensional coordinate data 2DCD2 is generated based on the three-dimensional coordinate data 3DCD2 included in the response data RPD shown in FIG. 10B . The two-dimensional coordinate data 2DCD2 has an x coordinate and a y coordinate, but does not have a z coordinate. The two-dimensional coordinate data 2DCD2 is data indicating an area in which one of the blocks BK is placed in the placement position plan included in the response data RPD. The two-dimensional coordinate data 2DCD2 can indicate a shape in a planar view of the area in which the block BK is placed in the placement position plan. Specifically, the two-dimensional coordinate data 2DCD2 can have two-dimensional coordinates indicating the positions of each vertex of the shape. Here, two-dimensional coordinates generated based on three-dimensional coordinates included in two or more three-dimensional coordinate data 3DCD2, for example, two-dimensional coordinates consisting of the x coordinate and y coordinate of the three-dimensional coordinates, do not need to be included in the two-dimensional coordinate data 2DCD2.
[0122] In the examples shown in Figures 10B, 10C, and 11B, blocks BK_A and BK_B are located in a region indicated by two-dimensional coordinates (0,0), (0,5), (5,5), and (5,0) in a planar view, specifically within a first rectangle having these four vertices. Block BK_C is located in a region indicated by two-dimensional coordinates (5,0), (5,4), (12,4), and (12,0) in a planar view, specifically within a second rectangle having these four vertices. The two-dimensional coordinate data 2DCD2 has two-dimensional coordinates (0,0), (0,5), (5,5), (5,4), (12,4), and (12,0) that indicate the vertices of the figure formed by combining the first and second rectangles.
[0123] Here, the three-dimensional coordinate (5,0,0) is included in the three-dimensional coordinate data 3DCD2_A and three-dimensional coordinate data 3DCD2_C. Furthermore, the three-dimensional coordinate (5,0,2) is included in the three-dimensional coordinate data 3DCD2_B and three-dimensional coordinate data 3DCD2_C. As described above, two-dimensional coordinates generated based on three-dimensional coordinates included in two or more three-dimensional coordinate data 3DCD2 do not need to be included in the two-dimensional coordinate data 2DCD2. Therefore, the two-dimensional coordinate (5,0) is not included in the two-dimensional coordinate data 2DCD2. The two-dimensional coordinate (5,0) may be included in the two-dimensional coordinate data 2DCD2. For example, all two-dimensional coordinates obtained by omitting the z coordinate from the three-dimensional coordinates included in the three-dimensional coordinates 3DCD2 shown in FIG. 10B may be included in the two-dimensional coordinate data 2DCD2.
[0124] The two-dimensional coordinate data 2DCD2 indicates an area in which the layout indicated by the layout data LTD2 is formed. Therefore, the two-dimensional coordinate data 2DCD2 can be said to indicate a layout area. The layout data LTD2 indicates a layout in which blocks BK are arranged based on the above-mentioned layout position plan. The layout data LTD2 indicates, for example, a layout in which blocks BK_A, BK_B, and BK_C are arranged in areas indicated by the x-coordinates and y-coordinates of the three-dimensional coordinate data 3DCD2_A, 3DCD2_B, and 3DCD2_C.
[0125] The layer data LYD2 is data that indicates, for each layer, the layout of the layout area indicated by the two-dimensional coordinate data 2DCD2. The layer data LYD2 includes a layer 202. The layer data LYD2 can include one or more layers 202.
[0126] Names are assigned to the layers 202. Fig. 11B shows an example in which the layer data LYD2 includes a layer 202 named "LYA1", a layer 202 named "LYA2", a layer 202 named "LYB1", and a layer 202 named "LYB2".
[0127] The layer 202 named "LYA1" and the layer 202 named "LYA2" include a layer-by-layer layout for block BK_A and a layer-by-layer layout for block BK_C. That is, the layout 211 and the layout 212 indicated by the layout data LTD2 include a layer-by-layer layout for block BK_A and a layer-by-layer layout for block BK_C. Furthermore, the layer 202 named "LYB1" and the layer 202 named "LYB2" include a layer-by-layer layout for block BK_B and a layer-by-layer layout for block BK_C. That is, the layout 221 and the layout 222 indicated by the layout data LTD2 include a layer-by-layer layout for block BK_B and a layer-by-layer layout for block BK_C.
[0128] As described above, in the layer 202 named "LYA1" and the layer 202 named "LYA2", one layout includes a layout for each layer of block BK_A and a layout for each layer of block BK_C. In addition, in the layer 202 named "LYB1" and the layer 202 named "LYB2", one layout includes a layout for each layer of block BK_B and a layout for each layer of block BK_C.
[0129] In the example shown in Figure 11B, layer 202 named "LYA1" includes the layout of layer 201A named "LYA1" shown in Figure 5A and the layout of layer 201C named "LYA1" shown in Figure 5C. Layer 202 named "LYA2" includes the layout of layer 201A named "LYA2" and the layout of layer 201C named "LYA2". Layer 202 named "LYB1" includes the layout of layer 201B named "LYA1" shown in Figure 5B and the layout of layer 201C named "LYB1" shown in Figure 5C. Layer 202 named "LYB2" includes the layout of layer 201B named "LYA2" and the layout of layer 201C named "LYB2". As described above, in the example shown in FIG. 11B, the layer 202 included in the layer data LYD2 includes at least one of the layout of the layer 201A, the layout of the layer 201B, and the layout of the layer 201C.
[0130] The name of the layer 202 shown in Fig. 11B can be given based on the name of the layer 201. Specifically, the name of the layer 202 can be any of the names of the layer 201. For example, the name of the layer 202 shown in Fig. 11B can be the same as the name of at least one of the layer 201A, the layer 201B, and the layer 201C.
[0131] Here, as shown in FIG. 10C , blocks BK_A and BK_B are stacked. Therefore, the layer owned by block BK_A and the layer owned by block BK_B are considered to be different layers 202. However, in the examples shown in FIGS. 4B , 5A , and 5B , the layer name of layer 201B owned by block BK_B is the same as the layer name of layer 201A owned by block BK_A. Therefore, in the example shown in FIG. 11B , if the name of layer 201B is used as is as the name of layer 202 containing the layout of block BK_B, the name of layer 202 containing the layout of block BK_B will be the same as the name of layer 202 containing the layout of block BK_A. In this case, layer 202 containing the layout of block BK_A and layer 202 containing the layout of block BK_B may be considered to be the same layer. For example, there are cases where the layout 211 and the layout 212 are considered to be layouts on the same layer, and the layout 221 and the layout 222 are considered to be layouts on the same layer.
[0132] Therefore, in a design support method according to one aspect of the present invention, for example, the names of at least some of the layers 202 including the layout of the block BK_B are made different from the name of the layer 201B. In other words, for example, the names of at least some of the layers 202 including the layout of the layer 201B are made different from the name of the layer 201B. This prevents the layer 202 including the layout of the block BK_A and the layer 202 including the layout of the block BK_B from being considered to be the same layer. Note that in the example shown in FIG. 11B, the block BK_B is laid out in the same layer as the layer 201C of the block BK_C shown in FIG. 5C. Therefore, the name of the layer 202 including the layout of the block BK_B is made the same as the name of the layer 201C. In the example shown in FIG. 11B, the names of the layers 202 including the layout of the block BK_B are "LYB1" and "LYB2," which are included in the name of the layer 201C. The name of the layer 202 including the layout of the block BK_A is also the same as the name of the layer 201C.
[0133] For example, the layout data generation unit 125 detects a block BK whose three-dimensional coordinate data 3DCD2 have different minimum z coordinate values. In the example shown in FIG. 10B , the minimum z coordinate value of the three-dimensional coordinate data 3DCD2_A and the three-dimensional coordinate data 3DCD2_C is 0. On the other hand, the minimum z coordinate value of the three-dimensional coordinate data 3DCD2_B is 1. Therefore, the minimum z coordinate value of the three-dimensional coordinate data 3DCD2_B is different from the minimum z coordinate value of the three-dimensional coordinate data 3DCD2_A and the three-dimensional coordinate data 3DCD2_C. Therefore, the layout data generation unit 125 detects a block BK_B.
[0134] The layout data generation unit 125 can make the names of at least some of the layers 202 including the layout of the detected block BK different from the names of the layers 201 including that layout. In the example shown in FIG. 11B , the names of at least some of the layers 202 including the layout of block BK_B can be made different from the name of layer 201B. In other words, for example, the names of at least some of the layers 202 including the layout of layer 201B can be made different from the name of layer 201B. This can prevent, for example, layouts of different layers 202 from being considered to be included in the same layer 202.
[0135] As described above, in the design support method according to one aspect of the present invention, the coordinates indicating the layout area in the layout data LTD2 can be expressed as two-dimensional coordinates. That is, since the information indicated by the z coordinate in the three-dimensional coordinate data 3DCD2 can be included in the layer data LYD2, the coordinate data indicating the layout area can be expressed as two-dimensional coordinate data in which the z coordinate is omitted. In the example shown in FIG. 11B , the layer data LYD2 can include information indicating that the blocks BK_A and BK_B are stacked. Therefore, even if the coordinate data indicating the layout area is expressed as two-dimensional coordinate data, the blocks BK_A and BK_B are not considered to be formed on the same layer 202.
[0136] [Step S6] In step S6, the verification unit 127 verifies the layout indicated by the layout data LTD2. FIG. 12A is a block diagram schematically illustrating step S6. As shown in FIG. 12A, the layout data LTD2 stored in, for example, the storage unit 110 is transmitted to the verification unit 127. The verification unit 127 can perform, for example, physical verification. The physical verification can perform, for example, design rule check (DRC) to confirm that the designed layout does not violate design rules. For example, it can verify that the distance between wirings formed in the same layer 202 is a desired size, and that two unconnected wirings are not adjacent to each other. By performing verification such as physical verification, the verification unit 127 can verify, for example, that the shape of the layout indicated by the layout data LTD2 satisfies the design rules and that the layout has a desired connection relationship.
[0137] [Step S7] In step S7, the verification unit 127 determines whether or not the layout data LTD2 needs to be modified based on the verification result. Specifically, the verification unit 127 determines whether or not the block BK needs to be rearranged based on the verification result.
[0138] [Step S8] When the layout data LTD2 is to be modified, specifically when the blocks BK are to be rearranged, the verification unit 127 performs the process shown in step S8. In step S8, the verification unit 127 prompts the user of the information terminal 20 to modify the constraints, for example. For example, the verification unit 127 prompts the user of the information terminal 20 to modify the constraints by outputting data indicating the verification results, the layout data LTD2, and the constraint data RSTD to the information terminal 20 via the output unit 103.
[0139] For example, if the user modifies a constraint, the receiving unit 101 receives constraint data RSTD indicating the modified constraint. Thereafter, steps S3 to S6 and step S7 are performed again. Steps S3 to S6 and step S7 are performed until the verification unit 127 determines that the layout indicated by the layout data LTD2 satisfies the requirements and that modification of the layout data LTD2 is unnecessary. Note that the verification unit 127 may, for example, modify the constraint data RSTD. In this case, the user of the information terminal 20 does not need to modify the constraint.
[0140] Note that, in step S4, if the language model of the information processing device 40 cannot present a proposed placement position of the block BK that satisfies the constraints indicated by the constraint data RSTD, for example, then the design support device 100 may perform step S8. For example, in step S4, if the language model of the information processing device 40 cannot present a proposed placement position of the block BK that satisfies the constraints indicated by the constraint data RSTD, then the response data RPD shown in FIG. 10B may include data indicating that the block BK cannot be placed. Then, for example, if the layout data generation unit 125 detects that the response data RPD includes data indicating that the block BK cannot be placed, then the layout data generation unit 125 may perform step S8. In this case, the layout data generation unit 125 does not generate layout data LTD2, but instead prompts the user of the information terminal 20 to modify the constraints indicated by the constraint data RSTD, for example.
[0141] Here, presenting the user of the information terminal 20 with the reason why block BK cannot be placed is preferable, as it allows the user to appropriately modify the constraints. For example, in step S3, the instruction data DSD shown in FIG. 9B includes an instruction for presenting the reason if block BK cannot be placed. This allows the reason to be included in the response data RPD. For example, by setting the instruction to "I would like to place blocks BK_A, BK_B, and BK_C in the placement area indicated by the following vertex coordinates. Please refer to the constraints when placing them. If you cannot place them so that they satisfy the constraints, please explain why you cannot place them," the reason for not being able to place block BK can be included in the response data RPD. Note that the user of the information terminal 20 may be prompted to modify not only the constraints indicated by the constraint data RSTD, but also, for example, the placement area data ARD shown in FIG. 9B.
[0142] [Step S9] If the layout data LTD2 is not to be modified, for example, the verification unit 127 outputs the layout data LTD2 to the outside of the design support device 100. Fig. 12B is a block diagram schematically showing step S9. As shown in Fig. 12B, the layout data LTD2 stored in the storage unit 110 is output to the information terminal 20 via the output unit 103. This allows the user of the information terminal 20 to check the layout indicated by the layout data LTD2.
[0143] In step S9, the layout data LTD2 is registered in a database. If a database is provided outside the design support device 100, the layout data LTD2 output from the output unit 103 is registered in the database.
[0144] The above is an example of a design support method according to one embodiment of the present invention. In the design support method according to one embodiment of the present invention, the placement of multiple blocks BK can be performed using a language model. This allows a user of the information terminal 20 to input, for example, constraints on the placement of blocks BK in natural language. Therefore, even if a user is not skilled in EDA tools, the placement of blocks BK can be performed. Therefore, the design support method according to one embodiment of the present invention allows even a person with little experience in design work to design a circuit. Therefore, the design support method according to one embodiment of the present invention can be a design support method that is highly convenient, useful, and reliable.
[0145] A plurality of configuration examples shown in this embodiment mode can be combined as appropriate.
[0146] ARD: placement area data, BK: block, BK_A: block, BK_B: block, BK_C: block, DSD: directive data, PPTD: prompt data, RPD: response data, RSTD: constraint data, Tr: transistor, 10: design support system, 20: information terminal, 20a: information terminal, 20b: information terminal, 20c: information terminal, 20d: information terminal, 30: network, 31: network, 40 : Information processing device, 100: Design support device, 101: Reception unit, 103: Output unit, 110: Storage unit, 121: Coordinate data generation unit, 123: Prompt data generation unit, 125: Layout data generation unit, 127: Verification unit, 130: Transmission unit, 201: Layer, 201A: Layer, 201B: Layer, 201C: Layer, 202: Layer, 211: Layout, 212: Layout, 221: Layout, 222: Layout
Claims
The apparatus includes a reception unit, a coordinate data generation unit, a prompt data generation unit, a layout data generation unit, and an output unit, the receiving unit has a function of receiving first layout data indicating a layout of a first block, second layout data indicating a layout of a second block, and constraint condition data; the first layout data has first two-dimensional coordinate data indicating a first area in which the first block is laid out; the second layout data has second two-dimensional coordinate data indicating a second area in which the second block is laid out; the coordinate data generation unit has a function of converting the first two-dimensional coordinate data into first three-dimensional coordinate data and a function of converting the second two-dimensional coordinate data into second three-dimensional coordinate data; the prompt data generation unit has a function of generating prompt data having instruction statement data, the first three-dimensional coordinate data, the second three-dimensional coordinate data, placement area data, and the constraint condition data; the placement area data is data indicating a placement area by three-dimensional coordinates, the instruction statement data is data indicating an instruction statement for causing a language model to present a proposal for placement positions of the first block and the second block in the placement area that satisfies a constraint condition indicated by the constraint condition data, the layout data generating unit has a function of generating third layout data indicating a layout of a third region based on the layout position plan, the third layout data including a layout of the first block and a layout of the second block; The output unit has a function of outputting the third layout data. In claim 1, A verification unit is provided. the verification unit has a function of verifying a layout indicated by the third layout data and determining whether or not the third layout data needs to be corrected; The design support apparatus, wherein the accepting unit has a function of accepting, when the third layout data is revised, revised constraint condition data. In claim 2, The design support apparatus, wherein the verification is physical verification. In claim 1, the first layout data includes one or more first layers; the second layout data includes one or more second layers; the third layout data includes one or more third layers; the first layout data indicates a layout of the first region for each of the first layers; the second layout data indicates a layout of the second region for each of the second layers; the third layout data indicates a layout of the third region for each of the third layers; the third layer includes at least one of a layout of the first layer and a layout of the second layer; A name is assigned to each of the first layer and the second layer, The design support device, wherein the layout data generating section has a function of giving a name to the third layer based on a name of the first layer and a name of the second layer. In claim 4, the layout position plan includes third three-dimensional coordinate data indicating a layout position of the first block and fourth three-dimensional coordinate data indicating a layout position of the second block; the layout data generation unit has a function of changing the names of at least a part of the third layers including the layout of the second layer from the names of the second layers when the minimum value of the height coordinate indicated by the third three-dimensional coordinate data is different from the minimum value of the height coordinate indicated by the fourth three-dimensional coordinate data. In a first step, first layout data indicating a layout of a first block, second layout data indicating a layout of a second block, and constraint condition data are received; the first layout data has first two-dimensional coordinate data indicating a first area in which the first block is laid out; the second layout data has second two-dimensional coordinate data indicating a second area in which the second block is laid out; In a second step, the first two-dimensional coordinate data is converted into first three-dimensional coordinate data, and the second two-dimensional coordinate data is converted into second three-dimensional coordinate data, In a third step, prompt data is generated, the prompt data having instruction data, the first three-dimensional coordinate data, the second three-dimensional coordinate data, placement area data, and the constraint condition data; the placement area data is data indicating a placement area by three-dimensional coordinates, the instruction statement data is data indicating an instruction statement for causing a language model to present a proposal for placement positions of the first block and the second block in the placement area that satisfies a constraint condition indicated by the constraint condition data, In a fourth step, third layout data indicating a layout of a third region is generated based on the proposed arrangement position, the third layout data including a layout of the first block and a layout of the second block; In a fifth step, the third layout data is output. In claim 6, In a sixth step, a layout indicated by the third layout data is verified, and it is determined whether or not the third layout data needs to be corrected; In the case where the third layout data is modified, the seventh step receives modified constraint condition data, and then the third step, the fourth step, and the sixth step are performed again. In claim 7, The design support method, wherein the verification is physical verification. In claim 6, the first layout data includes one or more first layers; the second layout data includes one or more second layers; the third layout data includes one or more third layers; the first layout data indicates a layout of the first region for each of the first layers; the second layout data indicates a layout of the second region for each of the second layers; the third layout data indicates a layout of the third region for each of the third layers; the third layer includes at least one of a layout of the first layer and a layout of the second layer; A name is assigned to each of the first layer and the second layer, In the fourth step, a name is assigned to the third layer based on the name of the first layer and the name of the second layer. In claim 9, the layout position plan includes third three-dimensional coordinate data indicating a layout position of the first block and fourth three-dimensional coordinate data indicating a layout position of the second block; A design support method in which, in the fourth step, when a minimum value of a height coordinate indicated by the third three-dimensional coordinate data is different from a minimum value of a height coordinate indicated by the fourth three-dimensional coordinate data, names of at least a part of the third layers including a layout of the second layer are made different from names of the second layers.
Citation Information
Patent Citations
Hardware design management device
JP2000293552A
Device, method and program for creating layout model, and method for manufacturing device
JP2008084207A
Design support device, design support method and program
JP2008217651A
Natural language user interface for computer-aided design systems
US9613020B1