WO2025133868A1 - Design assistance device and design assistance method - Google Patents
Design assistance device and design assistance method Download PDFInfo
- Publication number
- WO2025133868A1 WO2025133868A1 PCT/IB2024/062680 IB2024062680W WO2025133868A1 WO 2025133868 A1 WO2025133868 A1 WO 2025133868A1 IB 2024062680 W IB2024062680 W IB 2024062680W WO 2025133868 A1 WO2025133868 A1 WO 2025133868A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- layout
- dimensional coordinate
- block
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Definitions
- One aspect of the present invention relates to a design support device, a design support system, and a design support method.
- One aspect of the present invention relates to a design support system and a design support method that use a language model.
- one aspect of the present invention is not limited to the above technical field.
- the technical field of one aspect of the invention disclosed in this specification relates to an object, a method, or a manufacturing method.
- one aspect of the present invention relates to a process, a machine, a manufacture, or a composition of matter. Therefore, more specifically, examples of the technical field of one aspect 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.
- Patent Document 1 discloses a method for automatically placing two or more types of standard cells.
- Non-Patent Document 1 discloses GPT-4 (Generative Pre-trained Transformer 4) as a large-scale language model, and ChatGPT as a dialogue model.
- EDA tools require a high level of specialized knowledge. For example, when placing circuit blocks, the constraints for placement cannot be set in natural language, and so proficiency with the EDA tools is required.
- one aspect of the present invention has an objective to provide a design support device that can be used even by those with little experience in design work.
- one aspect of the present invention has an objective to provide a design support device that is highly convenient, useful, or reliable.
- one aspect of the present invention has an objective to provide a new design support device.
- one aspect of the present invention has an objective to provide a design support system that includes the design support device.
- one aspect of the present invention has an objective to provide a design support method that can be applied to the design support device.
- One aspect of the present invention is a device having a reception unit, a coordinate data generation unit, a prompt data generation unit, a layout data generation unit, and an output unit
- the reception 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 having first two-dimensional coordinate data indicating a first area in which the first block is laid out, the second layout data having 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 has a function of generating prompt data having instruction data, first three-dimensional coordinate data, second three-dimensional coordinate data, placement area data, and constraint data
- the placement area data is data indicating the placement area by three-dimensional coordinates
- the instruction data is data indicating
- the device may have a verification unit, which has a function of verifying the layout indicated by the third layout data and determining whether or not the third layout data needs to be modified, and the reception unit may have a function of receiving the modified constraint condition data when the third layout data is modified.
- the first layout data has one or more first layers
- the second layout data has one or more second layers
- the third layout data has one or more third layers
- the first layout data shows the layout of the first region for each first layer
- the second layout data shows the layout of the second region for each second layer
- the third layout data shows the layout of the third region for each third layer
- the third layer includes at least one of the layout of the first layer and the layout of the second layer
- each of the first layer and the second layer is given a name
- the layout data generating 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.
- 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
- the layout data generating unit may have a function of making the names of at least some of the third layers including the layout of the second layer different 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.
- one aspect of the present invention includes a method for receiving, 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, 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, and in a second step, 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, respectively, and in a third step, converting instruction statement data and the first three-dimensional coordinate data into a first three-dimensional coordinate data.
- 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 seventh step may receive the modified constraint condition data, and then the third step, the fourth step, and the sixth step may be performed again.
- the verification may be physical verification.
- the first layout data has one or more first layers
- the second layout data has one or more second layers
- the third layout data has one or more third layers
- the first layout data shows the layout of the first region for each first layer
- the second layout data shows the layout of the second region for each second layer
- the third layout data shows the layout of the third region for each third layer
- the third layer includes at least one of the layout of the first layer and the layout of the second layer
- each of the first layer and the second layer is given a name
- the third layer may be given a name based on the name of the first layer and the name of the second layer.
- 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, 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, 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.
- One aspect of the present invention provides a design support device that can be used even by those with little experience in design work. Alternatively, one aspect of the present invention provides a design support device that is highly convenient, useful, or reliable. Alternatively, one aspect of the present invention provides a new design support device. Alternatively, one aspect of the present invention provides a design support system that includes the above design support device. Alternatively, one aspect of the present invention provides a design support method that can be applied to the above design support device.
- 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 effects not mentioned in this section, which will be described below. 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 appropriately extracted from these descriptions. Note that 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.
- 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 a design support method
- Fig. 4B is a schematic diagram showing an example of layout data.
- 5A, 5B, and 5C are schematic diagrams showing an example of layout data.
- 6A, 6B, and 6C are schematic diagrams for explaining two-dimensional coordinate data.
- FIG. 7 is a block diagram showing an example of a design support method.
- 8A, 8B, and 8C are schematic diagrams showing an example of a design support method.
- FIG. 9A is a block diagram showing an example of a 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 a 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 a 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.
- ordinal numbers “first” and “second” are used for convenience and do not limit the number of components or the order of the components (e.g., the order of processes or the order of stacking).
- an ordinal number attached to a component in one place in this specification may not match an ordinal number attached to the same component in another place in this specification or in the claims.
- a block has one or more semiconductor elements. Examples of semiconductor elements include transistors and diodes.
- a block may 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.
- the circuit block may or may not have a specific function.
- a design support device first accepts layout data and constraint data.
- the layout data is data that indicates the layout of blocks, and can be different layout data 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 later processing.
- the design support device can accept multiple layout data and one constraint data.
- Each 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 the layout area, which is the area in which the blocks are laid out, for each block using two-dimensional coordinates.
- the two-dimensional coordinate data may have, for example, the two-dimensional coordinates of the vertices of the layout area.
- 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 the 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).
- the design support device 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-coordinate and y-coordinate of the two-dimensional coordinate data.
- the three-dimensional coordinate data can have eight three-dimensional coordinates indicating the positions of the vertices of a hexahedron.
- the layout area is a rectangle or a square
- the three-dimensional coordinate data can have eight three-dimensional coordinates indicating the positions of the vertices of a rectangular parallelepiped or cube.
- a is the x coordinate and b is the y coordinate.
- b is the y coordinate
- c is the z coordinate.
- the z coordinate is sometimes referred to as the coordinate in the height direction.
- the design support device performs verification, for example, physical verification, on the generated layout data described above. If the design support device determines as a result of the verification that it is necessary to rearrange each block, it prompts the user of the design support system having the design support device to, for example, modify the constraint conditions. If the user, for example, modifies the constraint conditions, the design support device accepts constraint condition data indicating the modified constraint conditions. Thereafter, the design support device regenerates layout data in which each of the above blocks is arranged.
- verification for example, physical verification
- the placement of multiple blocks can be performed using a language model. Specifically, the 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 aspect of the present invention to input, for example, constraints for block placement in natural language. Therefore, even if the user is not skilled in EDA tools, for example, the user can place blocks. Therefore, by using the design support method of one aspect of the present invention, even those with little experience in design work can design circuits.
- the design support device used in the design support method of one aspect of the present invention can be used by those with little experience in design work.
- the design support system, design support device, and design support method of one aspect of the present invention can be a design support system, design support device, and design support method that are excellent in convenience, usefulness, or reliability.
- ⁇ Example of design support system configuration> 1 is a schematic diagram showing an example of the configuration of a design support system 10, which is a design support system according to one aspect of the present invention.
- the design support system may be called, for example, 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.
- information terminals 20a, 20b, 20c, and 20d are shown as examples of the information terminals 20.
- 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 information terminals 20a, 20b, 20c, and 20d via a network 31.
- a user (such as 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. Then, the user can receive services using a design support system according to one aspect of the present invention.
- a user of the design support system 10 can be specifically a user of the information terminal 20. Note that a user of the design support system 10 can also be called a user of the design support device 100.
- 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.
- the layout data is data indicating the layout of a block having one or more semiconductor elements, and different layout data can be used for each block.
- the constraint data is data in which constraint conditions for block placement are written in natural language.
- the design support device 100 can generate prompt data using multiple layout data and one constraint data.
- prompt data is data that indicates a prompt.
- a prompt corresponds to an input sentence that causes a language model to perform a desired operation.
- the language model 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 is 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.
- 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 present a proposal for the placement position of each block using the transmitted prompt data.
- the design support device 100 can generate layout data indicating a layout in which each block is placed based on the proposal.
- the information terminals 20a to 20d are information terminal devices such as computers used by users, and can also be called client computers.
- the information terminal 20a is a desktop computer
- the information terminal 20b is a notebook computer
- the information terminal 20c is a smartphone
- the information terminal 20d is a tablet computer.
- the number of information terminals 20 connected to the design support device 100 is not particularly limited. Although four information terminals 20 are shown in FIG. 1, the number of information terminals 20 may be one, two, three, or 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.
- 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).
- AI artificial intelligence
- 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 high processing power compared to the information terminal 20 and the design support device 100.
- the information processing device 40 can perform large-scale calculations necessary for AI learning and inference, for example.
- the information processing device 40 can perform processing using a natural language processing model using AI.
- natural language processing models using 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 utilizes a large-scale language model (sentence generation model, dialogue model, etc.).
- 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.
- Network 31 is a computer network smaller than network 30.
- network 30 is a global network
- network 31 is a local network.
- the Internet which is the foundation of the World Wide Web (WWW), as network 30.
- WWW World Wide Web
- the case where the Internet is used as network 30 and an intranet is used as network 31 will be mainly described as an example.
- Network 31 Other computer networks that can be used as 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).
- PAN Personal Area Network
- LAN Local Area Network
- CAN Campus Area Network
- MAN Metropolitan Area Network
- WAN Wide Area Network
- GAN Global Area Network
- 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.
- a computer network that can be used for network 30 may be used for network 31, and a computer network that can be used for network 31 may be used for network 30.
- the same network may be used for networks 30 and 31.
- a global network may be used for both networks 30 and 31.
- a local network may be used for both networks 30 and 31.
- 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 has a reception unit 101, an output unit 103, a storage unit 110, a coordinate data generation unit 121, a prompt data generation unit 123, a layout data generation unit 125, and a verification unit 127.
- the coordinate data generation unit 121, the prompt data generation unit 123, the layout data generation unit 125, and the verification unit 127 are collectively referred to as a processing unit.
- the reception unit 101 and the output unit 103 are connected to the information terminal 20 via the network 31, and are connected to the information processing device 40 via the network 30.
- 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 them may be provided in a different design support device 100.
- 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.
- 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.
- the output unit 103 When the output unit 103 outputs data to the information terminal 20, the output unit 103 can, for example, either or both of displaying the information represented by the data on the display screen of the information terminal 20 and outputting a file in a format such as txt, docx, xml, pdf, or csv to the information terminal 20.
- the storage unit 110 has a function of storing data received by the reception unit 101. For example, it can store layout data and constraint condition data.
- the storage unit 110 also has a function of storing a program executed by the coordinate data generation unit 121, a program executed by the prompt data generation unit 123, a program executed by the layout data generation unit 125, and a program executed by the verification unit 127.
- the storage unit 110 also has a function of storing instruction statement data indicating a prompt instruction statement.
- the storage unit 110 may have a function of storing data (such as a calculation result, an analysis result, an inference result, etc.) 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.
- the storage unit 110 may have a function as a database.
- the user of the information terminal 20 can specify data stored in the storage unit 110, and the reception unit 101 can accept the specified data.
- the user of the information terminal 20 can specify the layout data, and the reception unit 101 can accept the specified layout data.
- 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 classification of the data, the creator of the data, a description of the data, and the wording included in the data.
- 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.
- the memory unit 110 has at least one of a volatile memory and a non-volatile memory.
- volatile memory include DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory).
- non-volatile memory include ReRAM (Resistive Random Access Memory, also called resistive memory), PRAM (Phase change Random Access Memory), FeRAM (Ferroelectric Random Access Memory), MRAM (Magnetoresistive Random Access Memory, also called magnetoresistive memory), and flash memory.
- the storage unit 110 may also have at least one of NOSRAM (registered trademark) and DOSRAM (registered trademark).
- the storage unit 110 may also have a recording media drive. Examples of recording media drives include a hard disk drive (HDD) and a solid state drive (SSD).
- NOSRAM is an abbreviation for "Nonvolatile Oxide Semiconductor Random Access Memory (RAM)".
- NOSRAM is a memory in which the memory cell is a two-transistor (2T) or three-transistor (3T) gain cell, and the transistor is a transistor (also called an OS transistor) that uses metal oxide in the channel formation region.
- the current that flows between the source and drain in the off state, that is, the leakage current, is extremely small.
- NOSRAM can be used as a nonvolatile memory by retaining a charge according to data in the memory cell using the characteristic of extremely small leakage current.
- NOSRAM can read the retained data without destroying it (nondestructive read), so it is suitable for arithmetic processing in which only data read operations are repeated in large quantities. Since NOSRAM can increase the data capacity by stacking, it can be used as a large-scale cache memory, main memory, or storage memory to improve the performance of semiconductor devices.
- metal oxide is a metal oxide in a broad sense. Metal oxides are classified into oxide insulators, oxide conductors (including transparent oxide conductors), oxide semiconductors (also called oxide semiconductors or simply OS), and the like. For example, when a metal oxide is used in the semiconductor layer of a transistor, the metal oxide may be called an oxide semiconductor.
- element M Other elements that can be used for 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).
- element M a combination of multiple elements described above may be used.
- the element M is, for example, an element that has a high binding energy with oxygen. For example, it is an element that has a higher bond energy with oxygen than indium.
- the metal oxide in the channel formation region is a metal oxide that contains zinc (Zn). Metal oxides that contain zinc may be more likely to crystallize.
- the metal oxide of the channel formation region is not limited to a metal oxide containing indium.
- the metal oxide of the channel formation region may be, for example, a metal oxide containing zinc, a metal oxide containing gallium, or a metal oxide containing tin, which does not contain indium, such as zinc tin oxide or gallium tin oxide.
- the coordinate data generation unit 121 has a function of generating three-dimensional coordinate data based on the layout data received by the reception 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 in which 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 also indicate, for example, the number of stacked layers of semiconductor elements such as transistors.
- 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 condition data.
- the placement area data is data indicating the placement area by 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.
- 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. Thus, 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.
- 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.
- the verification unit 127 prompts the user of the information terminal 20 to modify, for example, the constraint conditions. If the user modifies, for example, the constraint conditions, the reception unit 101 receives constraint condition data indicating the modified constraint conditions. 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-mentioned 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 no modification of the layout data is necessary.
- the transmission unit 130 has a function of transmitting data. Data can be sent 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.
- the design support system 10 which includes the information terminal 20, the design support device 100, and the information processing device 40, can use a language model to place multiple blocks.
- This allows a user of the design support system 10, specifically the user of the information terminal 20, to input, for example, constraints for block placement in natural language. Therefore, even if the user is not skilled in, for example, EDA tools, the blocks can be placed. Therefore, the design support system 10 allows even those with little experience in design work to design circuits.
- the design support device 100 can be used by those with little experience in design work.
- 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, or reliable.
- Figure 3 is a flowchart showing an example of a design support method.
- the design support method shown in Figure 3 has steps S1 to S9.
- step S1 the receiving unit 101 receives layout data LTD1 and constraint condition data RSTD.
- Fig. 4A is a block diagram showing step S1.
- data movement is indicated by dotted arrows.
- multiple layout data LTD1 and one 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.
- the storage unit 110 may have a function as a database, and the layout data LTD1 may be stored in advance in the storage unit 110.
- the user of the information terminal 20 may specify the layout data LTD1 stored in the storage unit 110, and the reception unit 101 may receive 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 given to the layout data LTD1, the date on which 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, the description of the layout indicated by the layout data LTD1, and the text included in the layout data LTD1.
- the constraint condition data RSTD may be stored in advance in the storage unit 110.
- the user of the information terminal 20 may specify the constraint condition data RSTD stored in the storage unit 110, and the reception unit 101 may receive the specified constraint condition data RSTD.
- FIG. 4A the information processing device 40 shown in FIG. 2 is not shown.
- the block diagrams shown later may not show the information processing device 40 either.
- the block diagrams shown later may not show the information terminal 20 either.
- the layout data LTD1 is data that indicates the layout of a block having one or more semiconductor elements, and can be different layout data for each block.
- the constraint data RSTD is data that is used when placing blocks in a later process, and is data in which the constraints for block placement are written in natural language.
- a block may also be referred to as a circuit block.
- a circuit block For example, if a block has two or more semiconductor elements, and at least two of the 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.
- 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, that is, layout data LTD1_A, layout data LTD1_B, and layout data LTD1_C.
- 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.
- blocks BK_A, block BK_B, and block BK_C may be collectively referred to as block BK.
- Figures 5A, 5B, and 5C are schematic diagrams showing an example of the data structure 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.
- the layer data LYD1_A, layer data LYD1_B, and layer data LYD1_C may be collectively referred to as layer data LYD1.
- the two-dimensional coordinate data 2DCD1 has an x coordinate and a y coordinate.
- the two-dimensional coordinate data 2DCD1 is data that indicates, in two-dimensional coordinates, the layout area in which the block BK is laid out.
- the layer data LYD1 is data that indicates the layout of the layout area indicated by the two-dimensional coordinate data 2DCD1 for each layer.
- layer 201A the layer that the layer data LYD1_A has is referred to as layer 201A.
- layer 201B The layer that the layer data LYD1_B has is referred to as layer 201B.
- layer 201C the layer that the layer data LYD1_C has is referred to as layer 201C.
- layers 201A, 201B, and 201C may be collectively referred to as layer 201.
- the layer data LYD1 can have one or more layers 201.
- FIG. 5A shows an example where layer data LYD1_A has layer 201A named "LYA1” and layer 201A named "LYA2".
- FIG. 5B shows an example where layer data LYD1_B has layer 201B named "LYA1” and layer 201B named "LYA2".
- FIG. 5C shows an example where layer data LYD1_C has layer 201C named "LYA1", layer 201C named "LYA2”, layer 201C named "LYB1”, and layer 201C named "LYB2".
- FIGs 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 Figure 5C, an example of the layout of a layer named "LYB1" is shown as layout 221. Also, in Figure 5C, an example of the layout of a layer named "LYB2" is shown as layout 222. The above also applies to the subsequent figures showing examples of layouts for each layer.
- a mask for example a photomask
- n types of masks are manufactured that reflect the layout indicated by the layout data.
- Figures 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.
- Figures 6A, 6B, and 6C respectively show blocks BK_A, BK_B, and BK_C.
- Figures 6A, 6B, and 6C show the layout area of block BK_A, the layout area of block BK_B, and the layout area of block BK_C.
- the two-dimensional coordinate data 2DCD1 may have, for example, two-dimensional coordinates indicating the vertices of the layout area of the block BK.
- 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 a rectangle or a 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 a rectangle or a square, and two-dimensional coordinates indicating two vertices located on a diagonal line.
- Figures 6A, 6B, and 6C show examples in which the layout regions of blocks BK_A, BK_B, and BK_C are rectangular.
- Figure 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.
- Figure 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.
- Figure 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.
- 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 specific formula. The same applies to the z coordinates of the three-dimensional coordinates shown below.
- step S2 the coordinate data generating unit 121 generates three-dimensional coordinate data 3DCD1 based on the layout data LTD1.
- step S2 the coordinate data generating 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 showing step S2 in a schematic manner. As shown in FIG. 7, for example, the layout data LTD1 stored in the storage unit 110 is transmitted to the coordinate data generating unit 121. Here, one three-dimensional coordinate data 3DCD1 is generated from one layout data LTD1. In the example shown in FIG. 7, since three layout data LTD1 are stored in the storage unit 110, the coordinate data generating unit 121 generates three three-dimensional coordinate data 3DCD1.
- the coordinate data generating unit 121 may store the three-dimensional coordinate data 3DCD1 in the storage unit 110.
- Figures 8A, 8B, and 8C are schematic diagrams explaining the generation of three-dimensional coordinate data 3DCD1_A, three-dimensional coordinate data 3DCD1_B, and three-dimensional coordinate data 3DCD1_C based on two-dimensional coordinate data 2DCD1_A, two-dimensional coordinate data 2DCD1_B, and two-dimensional coordinate data 2DCD1_C, respectively.
- Figure 8A the figure indicated by the two-dimensional coordinate data 2DCD1_A and the figure indicated by the three-dimensional coordinate data 3DCD1_A are shown as figures in block BK_A.
- FIG 8B the figure indicated by the two-dimensional coordinate data 2DCD1_B and the figure indicated by the three-dimensional coordinate data 3DCD1_B are shown as figures in block BK_B.
- Figure 8C the figure indicated by the two-dimensional coordinate data 2DCD1_C and the figure indicated 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 the three-dimensional coordinate data 3DCD1.
- the three-dimensional coordinate data 3DCD1 has three-dimensional coordinates obtained by adding a z-coordinate to the x-coordinate and y-coordinate of the two-dimensional coordinate data 2DCD1.
- the three-dimensional coordinate data 3DCD1 can have eight three-dimensional coordinates indicating the positions of the vertices of a hexahedron.
- the layout area of the block BK is a rectangle or a square
- the three-dimensional coordinate data 3DCD1 can have eight three-dimensional coordinates indicating the positions of the vertices of a rectangular parallelepiped or cube.
- the z-coordinate is set to "0" in four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of a rectangular parallelepiped or cube.
- the z-coordinate can be set to the number of stacked semiconductor elements such as transistors in four three-dimensional coordinates indicating the positions of the vertices of the top surface in a block BK in which transistors are stacked in two layers.
- the z-coordinate is set to "2" in four three-dimensional coordinates indicating the positions of the vertices of the top surface.
- the z coordinate is set to "1" in the four three-dimensional coordinates indicating the positions of the vertices of the upper surface.
- Figures 8A, 8B, and 8C each show an example 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.
- Figure 8A shows an example in which a transistor Tr is provided in block BK_A without being stacked.
- Figure 8A shows an example in which 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). That is, the z coordinate is set to "0" in the four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped, and the z coordinate is set to "1" in the four three-dimensional coordinates indicating the positions of the vertices of the top surface.
- Figure 8B shows an example in which a transistor Tr is provided in block BK_B without being stacked, similar to block BK_A.
- Figure 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). That is, similar to block BK_A, the z coordinate is "0" in the four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped, and the z coordinate is "1" in the four three-dimensional coordinates indicating the positions of the vertices of the top surface.
- Figure 8C shows an example in which transistors Tr are stacked in two layers in block BK_C.
- Figure 8C shows an example in which 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 coordinate of the four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped is "0", and the z coordinate of the four three-dimensional coordinates indicating the positions of the vertices of the top surface is "2".
- the z coordinate is set to "0" in four three-dimensional coordinates indicating the positions of the vertices of the lower surface of the rectangular parallelepiped among the eight three-dimensional coordinates contained in the three-dimensional coordinate data 3DCD1, but the z coordinate does not have to be set to "0".
- the z coordinate can be set so that the difference between the z coordinate of the vertex of the upper surface of the rectangular parallelepiped and the z coordinate of the vertex of the lower surface is the number of stacked layers of the transistor Tr.
- the z coordinate of the vertex of the lower surface of the rectangular parallelepiped when the z coordinate of the vertex of the lower surface of the rectangular parallelepiped is set to "-1", the z coordinate of the vertex of the upper surface of the rectangular parallelepiped can be set to "0" in the example shown in FIG. 8A and FIG. 8B, and the z coordinate of the vertex of the upper surface of the rectangular parallelepiped can be set to "1" in the example shown in FIG.
- the difference between the z coordinate of the vertex of the upper surface of the rectangular parallelepiped and the z coordinate of the vertex of the lower surface does not have to be equal to the number of stacked layers of the transistor Tr. Even in this case, it is preferable that the difference between the z coordinate of the vertex of the upper surface of the rectangular parallelepiped and the z coordinate of the vertex of the lower surface is proportional to the number of stacked transistors Tr.
- step S3 the prompt data generating unit 123 generates prompt data PPTD.
- Fig. 9A is a block diagram showing step S3. As shown in Fig. 9A, for example, the constraint condition data RSTD stored in the storage unit 110 and the three-dimensional coordinate data 3DCD1 generated by the coordinate data generating unit 121 in step S2 are transmitted to the prompt data generating unit 123. The prompt data generating unit 123 generates the prompt data PPTD based on the three-dimensional coordinate data 3DCD1 and the constraint condition data RSTD.
- the placement area data ARD is data that indicates a placement area, which is an area in which blocks BK can be placed.
- the placement area can be indicated 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).
- the placement area can be specified by the user of the information terminal 20, for example, in step S1.
- the placement area data ARD is transmitted from the information terminal 20 to the prompt data generation unit 123 via the reception unit 101.
- the placement area data ARD may be stored in advance in the storage unit 110.
- 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 accept the specified placement area data ARD.
- 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.
- the coordinate data generation unit 121 may generate the placement area data ARD based on, for example, three-dimensional coordinate data 3DCD1.
- the constraint data RSTD is data in which constraints on the placement of the blocks BK are written in natural language.
- the constraint data RSTD indicates constraints that must be satisfied in the placement of the blocks BK_A, BK_B, and BK_C. Examples of constraints include “place within the placement area,” “do not rotate the blocks BK_A, BK_B, and BK_C,” and "place the block BK_B on the block BK_A.”
- constraints items related to the response data generated by the language model in a later process may be indicated as constraints.
- the description format of the proposed placement positions of the blocks BK_A, BK_B, and BK_C may be indicated as constraints.
- conditions such as "describe the vertex coordinates of the blocks BK_A, BK_B, and BK_C in the (x, y, z) format," and "x, y, and z are integers equal to or greater than 0" may be indicated as constraints.
- 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 block BK.
- the instruction data DSD indicates, for example, an instruction for causing a proposed placement position for blocks BK_A, BK_B, and BK_C shown in FIG. 9B to be presented.
- the proposed placement position can be a proposal for placing blocks BK_A, BK_B, and BK_C in the placement area indicated by the placement area data ARD so as to satisfy the constraint conditions indicated by the constraint condition data RSTD.
- the instruction can be, for example, "I would like to place blocks BK_A, BK_B, and BK_C in the placement area indicated by the following vertex coordinates. Please place them while referring to the constraint conditions.”
- the instruction sentence data DSD can be stored in advance in the storage unit 110. In this case, in step S3, the instruction sentence data DSD is transmitted from the storage unit 110 to the prompt data generation unit 123.
- Figure 9B shows an example where prompt data PPTD has the columns "#instruction”, “#placement area X", "#blocks BK_A, BK_B, BK_C", and "#constraint".
- the "#instruction” column lists the instruction indicated by the instruction data DSD.
- step S4 the prompt data generator 123 transmits the prompt data PPTD to the information processing device 40.
- the information processing device 40 generates response data RPD using a language model based on the prompt data PPTD.
- the response data RPD includes, for example, a proposal for the placement position of block BK presented by the language model based on the prompt data PPTD.
- the response data RPD includes, for example, a proposal for the placement positions of block BK_A, block BK_B, and block BK_C.
- FIG. 10A is a block diagram showing step S4.
- 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 reception unit 101 of the design support device 100.
- the reception unit 101 transmits the response data RPD to the layout data generation unit 125.
- the design support device 100 specifically the layout data generation unit 125, acquires the response data RPD.
- the response data RPD may be stored in the storage unit 110.
- Figure 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.
- Figure 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.
- the three-dimensional coordinate data 3DCD2 is data that indicates the position where the block BK is to be placed in three-dimensional coordinates.
- the three-dimensional coordinate data 3DCD2_A, the three-dimensional coordinate data 3DCD2_B, and the three-dimensional coordinate data 3DCD2_C are data that indicate the positions where the blocks BK_A, BK_B, and BK_C are to be placed, respectively, in three-dimensional coordinates.
- the proposed placement position of the block BK is indicated by the three-dimensional coordinate data 3DCD2.
- the proposed placement positions of the blocks BK_A, BK_B, and BK_C are indicated by the three-dimensional coordinate data 3DCD2_A, the three-dimensional coordinate data 3DCD2_B, and the three-dimensional coordinate data 3DCD2_C, respectively.
- Figure 10B shows an example in which the three-dimensional coordinate data 3DCD2 has eight three-dimensional coordinates.
- the example shows an example in which 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).
- the example shows an example in which 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).
- Figure 10C is a schematic diagram showing an example of a proposed arrangement position of block BK presented by the language model of information processing device 40. Specifically, Figure 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 Figure 10B, respectively.
- Figure 10C shows an example where block BK_B is placed on block BK_A. Also, Figure 10C shows an example where block BK_A, block BK_B, and block BK_C have areas where they are in contact with each other. In other words, an example where block BK_A, block BK_B, and block BK_C are not separated from the other blocks BK. Also, Figure 10C shows an example where block BK_A, block BK_B, and block BK_C are all shown as rectangular parallelepipeds. And, an example where the bottom surface of block BK_A and the bottom surface of block BK_C are arranged on the same plane, and the top surface of block BK_B and the top surface of block BK_C are arranged on the same plane.
- the language model of the information processing device 40 presents a proposal for the placement position of the block BK in step S4.
- the language model can present a proposal for stacking two or more blocks BK as shown in FIG. 10C.
- the two-dimensional coordinate data 2DCD1 does not need to be converted into three-dimensional coordinate data 3DCD1. That is, step S2 may be omitted.
- the design support device 100 does not need to have a coordinate data generation unit 121.
- step S5 the layout data generating unit 125 generates layout data LTD2 based on the response data RPD. Specifically, the layout data generating unit 125 generates the layout data LTD2 based on the proposal for the placement position of the block BK included in the response data RPD.
- the layout data LTD2 indicates a layout in which the block BK is placed.
- FIG. 11A is a block diagram showing 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.
- FIG. 11B is a schematic diagram showing an example of the data structure of layout data LTD2.
- the layout data LTD2 has two-dimensional coordinate data 2DCD2 and layer data LYD2.
- the two-dimensional coordinate data 2DCD2 is generated based on the three-dimensional coordinate data 3DCD2 contained 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 any block BK is placed in the proposed placement position contained in the response data RPD.
- the two-dimensional coordinate data 2DCD2 can indicate a figure in a planar view of the area in which the block BK is placed in the proposed placement position.
- the two-dimensional coordinate data 2DCD2 can have two-dimensional coordinates indicating the positions of each vertex of the figure.
- two-dimensional coordinates generated based on three-dimensional coordinates contained 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.
- blocks BK_A and BK_B are arranged in a region indicated by two-dimensional coordinates (0,0), (0,5), (5,5), and (5,0) in plan view, specifically within a first rectangle with these four points as vertices.
- Block BK_C is arranged in a region indicated by two-dimensional coordinates (5,0), (5,4), (12,4), and (12,0) in plan view, specifically within a second rectangle with these four points as 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 that combines the first rectangle and the second rectangle.
- the three-dimensional coordinate (5,0,0) is included in the three-dimensional coordinate data 3DCD2_A and the three-dimensional coordinate data 3DCD2_C.
- the three-dimensional coordinate (5,0,2) is included in the three-dimensional coordinate data 3DCD2_B and the three-dimensional coordinate data 3DCD2_C.
- 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.
- 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.
- 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.
- the two-dimensional coordinate data 2DCD2 indicates the area in which the layout indicated by the layout data LTD2 is formed. Therefore, it can be said that the two-dimensional coordinate data 2DCD2 indicates the layout area.
- the layout data LTD2 indicates a layout in which the blocks BK are arranged based on the above-mentioned arrangement position proposal.
- the layout data LTD2 indicates, for example, a layout in which the blocks BK_A, BK_B, and BK_C are arranged in the area indicated by the x coordinate and y coordinate of the three-dimensional coordinate data 3DCD2_A, the three-dimensional coordinate data 3DCD2_B, and the three-dimensional coordinate data 3DCD2_C.
- the layer data LYD2 is data that indicates the layout of the layout area indicated by the two-dimensional coordinate data 2DCD2 for each layer.
- the layer data LYD2 has a layer 202.
- the layer data LYD2 can have one or more layers 202.
- FIG. 11B shows an example in which layer data LYD2 has a layer 202 named "LYA1", a layer 202 named “LYA2", a layer 202 named “LYB1”, and a layer 202 named "LYB2".
- 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.
- 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.
- one layout includes the layout for each layer of block BK_A and the layout for each layer of block BK_C. Also, in the layer 202 named "LYB1” and the layer 202 named “LYB2”, one layout includes the layout for each layer of block BK_B and the layout for each layer of block BK_C.
- layer 202 named "LYA1” includes the layout of layer 201A named “LYA1” shown in FIG. 5A and the layout of layer 201C named “LYA1” shown in FIG. 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 FIG. 5B and the layout of layer 201C named “LYB1” shown in FIG. 5C.
- Layer 202 named “LYB2” includes the layout of layer 201B named "LYA2” and the layout of layer 201C named “LYB2”.
- layer 202 included in layer data LYD2 includes at least one of the layout of layer 201A, the layout of layer 201B, and the layout of layer 201C.
- the name of layer 202 shown in FIG. 11B can be given based on layer 201. Specifically, the name of layer 202 can be any of the names of layer 201. For example, the name of layer 202 shown in FIG. 11B can be the same as at least one of layer 201A, layer 201B, and layer 201C.
- blocks BK_A and BK_B are arranged in a stacked manner. Therefore, the layer that block BK_A has and the layer that block BK_B has are different layers 202.
- the layer name of layer 201B that block BK_B has is the same as the layer name of layer 201A that block BK_A has. Therefore, in the example shown in FIG.
- layer 202 that includes the layout of block BK_B will be the same as the name of layer 202 that includes the layout of block BK_A.
- layer 202 that includes the layout of block BK_A and layer 202 that includes the layout of block BK_B may be considered to be the same layer.
- layout 211 and layout 212 may be considered to be layouts on the same layer
- layout 221 and layout 222 may be considered to be layouts on the same layer.
- the name of at least a part of layers 202 is made different from the name of layer 201B.
- the name of at least a part of layers 202 is made different from the name of layer 201B.
- the name of layer 202 including the layout of block BK_B is the same as layer 201C.
- the names of layers 202 including the layout of block BK_B are "LYB1" and "LYB2" included in the name of layer 201C.
- the name of layer 202, which contains the layout of block BK_A, is also the same as the name of layer 201C.
- the layout data generation unit 125 detects a block BK whose three-dimensional coordinate data 3DCD2 indicates a different minimum value of the z coordinate.
- the minimum value of the z coordinate of the three-dimensional coordinate data 3DCD2_A and the three-dimensional coordinate data 3DCD2_C is 0.
- the minimum value of the z coordinate of the three-dimensional coordinate data 3DCD2_B is 1. Therefore, the minimum value of the z coordinate of the three-dimensional coordinate data 3DCD2_B is different from the minimum value of the z coordinate 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.
- the layout data generating unit 125 can make the names of at least some of the layers 202 that include the layout of the detected block BK different from the name of the layer 201 that includes the layout.
- the names of at least some of the layers 202 that include the layout of block BK_B can be made different from the name of layer 201B.
- the names of at least some of the layers 202 that include 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.
- the coordinates indicating the layout area in the layout data LTD2 can be 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 two-dimensional coordinate data in which the z coordinate is omitted. In the example shown in FIG. 11B, the information that blocks BK_A and BK_B are arranged in a stacked manner can be included in the layer data LYD2. Therefore, even if the coordinate data indicating the layout area is two-dimensional coordinate data, blocks BK_A and BK_B are not considered to be formed in the same layer 202.
- step S6 the verification unit 127 verifies the layout indicated by the layout data LTD2.
- FIG. 12A is a block diagram showing step S6.
- the layout data LTD2 stored in the storage unit 110 is transmitted to the verification unit 127.
- the verification unit 127 can perform, for example, physical verification as the verification.
- a DRC Design Rule Check
- DRC Design Rule Check
- the verification unit 127 can perform, for example, physical verification as the verification.
- a DRC Design Rule Check
- the verification unit 127 performing the physical verification for example, it can be verified 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.
- 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 blocks BK need to be rearranged based on the verification result.
- Step S8 When the layout data LTD2 is modified, specifically when the block BK is rearranged, the verification unit 127 performs the process shown in step S8.
- the verification unit 127 prompts the user of the information terminal 20 to modify the constraint conditions, for example.
- the verification unit 127 prompts the user of the information terminal 20 to modify the constraint conditions by outputting data indicating the verification result, the layout data LTD2, and the constraint condition data RSTD to the information terminal 20 via the output unit 103.
- the receiving unit 101 receives constraint condition data RSTD indicating the modified constraint conditions. 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.
- the constraint condition data RSTD may be modified, for example, by the verification unit 127. In this case, the user of the information terminal 20 does not need to modify the constraint conditions.
- step S4 if the language model of the information processing device 40 cannot present a proposal for the placement position of the block BK that satisfies the constraint conditions indicated by the constraint condition data RSTD, for example, then the design support device 100 may perform step S8.
- step S4 if the language model of the information processing device 40 cannot present a proposal for the placement position of the block BK that satisfies the constraint conditions indicated by the constraint condition data RSTD, then the response data RPD shown in FIG. 10B may include data indicating that the block BK cannot be placed.
- the layout data generation unit 125 may perform step S8.
- the layout data generation unit 125 does not generate the layout data LTD2, and prompts the user of the information terminal 20 to modify the constraint conditions indicated by the constraint condition data RSTD, for example.
- the instruction data DSD shown in FIG. 9B includes an instruction for presenting the reason if the block BK cannot be placed.
- This allows the reason to be included in the response data RPD.
- the instruction 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.
- Step S9 When 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 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.
- step S9 the layout data LTD2 is registered in a database. Note that, 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.
- 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 for the placement of blocks BK in natural language. Therefore, even if the user is not skilled in EDA tools, for example, the placement of blocks BK can be performed. Therefore, the design support method according to one embodiment of the present invention allows even those with little experience in design work to design circuits. 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.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
本発明の一態様は、設計支援装置、設計支援システム、及び設計支援方法に関する。本発明の一態様は、言語モデルを利用した設計支援システム、及び設計支援方法に関する。 One aspect of the present invention relates to a design support device, a design support system, and a design support method. One aspect of the present invention relates to a design support system and a design support method that use a language model.
なお、本発明の一態様は、上記の技術分野に限定されない。本明細書等で開示する発明の一態様の技術分野は、物、方法、又は、製造方法に関するものである。又は、本発明の一態様は、プロセス、マシン、マニュファクチャ、又は、組成物(コンポジション・オブ・マター)に関するものである。そのため、より具体的に本明細書で開示する本発明の一態様の技術分野としては、半導体装置、表示装置、発光装置、蓄電装置、記憶装置、それらの駆動方法、又は、それらの製造方法、を一例として挙げることができる。 Note that one aspect of the present invention is not limited to the above technical field. The technical field of one aspect of the invention disclosed in this specification relates to an object, a method, or a manufacturing method. Alternatively, one aspect of the present invention relates to a process, a machine, a manufacture, or a composition of matter. Therefore, more specifically, examples of the technical field of one aspect 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.
半導体装置の回路設計では、設計を自動で行うツールであるEDA(Electronic Design Automation)ツールが用いられている。設計を自動化することにより、開発のスピード、製品基準、安全基準等を確保できる。特許文献1には、2種類以上のスタンダードセルを自動配置する方法が開示されている。 In the circuit design of semiconductor devices, EDA (Electronic Design Automation) tools, which are tools for automating design, are used. By automating design, it is possible to ensure development speed, product standards, safety standards, etc. Patent Document 1 discloses a method for automatically placing two or more types of standard cells.
また近年、ニューラルネットワークを用いた言語モデルの開発が盛んに行われており、特に大規模言語モデル(LLM:Large Language Model)が注目されている。大規模言語モデルは、大量のデータを用いて学習された自然言語処理モデルである。大規模言語モデルにより、例えばユーザの指示に対して回答を行う対話モデルを実現できる。非特許文献1では、大規模言語モデルとしてGPT−4(Generative Pre−trained Transformer 4)が開示されており、また、対話モデルとしてChatGPTが開示されている。 In recent years, there has been active development of language models using neural networks, with large-scale language models (LLMs) attracting particular attention. Large-scale language models are natural language processing models trained using large amounts of data. Large-scale language models can be used to realize dialogue models that respond to user instructions, for example. Non-Patent Document 1 discloses GPT-4 (Generative Pre-trained Transformer 4) as a large-scale language model, and ChatGPT as a dialogue model.
EDAツールを用いる場合、高度な専門知識が必要になる。例えば、回路ブロックを配置する場合、配置の際の制約条件の設定は自然言語で行うことができず、EDAツールに熟練している必要がある。 The use of EDA tools requires a high level of specialized knowledge. For example, when placing circuit blocks, the constraints for placement cannot be set in natural language, and so proficiency with the EDA tools is required.
そこで、本発明の一態様は、設計業務の経験が浅い者でも利用できる設計支援装置を提供することを課題の1つとする。又は、本発明の一態様は、利便性、有用性、又は信頼性に優れた設計支援装置を提供することを課題の1つとする。又は、本発明の一態様は、新規な設計支援装置を提供することを課題の1つとする。又は、本発明の一態様は、上記設計支援装置を有する設計支援システムを提供することを課題の1つとする。又は、本発明の一態様は、上記設計支援装置に適用可能な設計支援方法を提供することを課題の1つとする。 In view of this, one aspect of the present invention has an objective to provide a design support device that can be used even by those with little experience in design work. Alternatively, one aspect of the present invention has an objective to provide a design support device that is highly convenient, useful, or reliable. Alternatively, one aspect of the present invention has an objective to provide a new design support device. Alternatively, one aspect of the present invention has an objective to provide a design support system that includes the design support device. Alternatively, one aspect of the present invention has an objective to provide a design support method that can be applied to the design support device.
なお、これらの課題の記載は、他の課題の存在を妨げるものではない。なお、本発明の一態様は、これらの課題の全てを解決する必要はないものとする。なお、これら以外の課題は、明細書、図面、請求項等の記載から、自ずと明らかとなるものであり、明細書、図面、請求項等の記載から、これら以外の課題を抽出することが可能である。 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 have to solve all of these problems. Note that problems other than these will become apparent from the description in the specification, drawings, claims, etc., and it is possible to extract problems other than these from the description in the specification, drawings, claims, etc.
本発明の一態様は、受付部と、座標データ生成部と、プロンプトデータ生成部と、レイアウトデータ生成部と、出力部と、を有し、受付部は、第1のブロックのレイアウトを示す第1のレイアウトデータと、第2のブロックのレイアウトを示す第2のレイアウトデータと、制約条件データと、を受け付ける機能を有し、第1のレイアウトデータは、第1のブロックがレイアウトされる第1の領域を示す、第1の2次元座標データを有し、第2のレイアウトデータは、第2のブロックがレイアウトされる第2の領域を示す、第2の2次元座標データを有し、座標データ生成部は、第1の2次元座標データを第1の3次元座標データに変換する機能、及び第2の2次元座標データを第2の3次元座標データに変換する機能を有し、プロンプトデータ生成部は、指示文データと、第1の3次元座標データと、第2の3次元座標データと、配置領域データと、制約条件データと、を有するプロンプトデータを生成する機能を有し、配置領域データは、配置領域を3次元座標によって示すデータであり、指示文データは、言語モデルに、制約条件データが示す制約条件を満たす、第1のブロック、及び第2のブロックの配置領域への配置位置の案を提示させるための指示文を示すデータであり、レイアウトデータ生成部は、配置位置の案に基づき、第3の領域のレイアウトを示す第3のレイアウトデータを、第1のブロックのレイアウトと、第2のブロックのレイアウトと、を含むように生成する機能を有し、出力部は、第3のレイアウトデータを出力する機能を有する、設計支援装置である。 One aspect of the present invention is a device having a reception unit, a coordinate data generation unit, a prompt data generation unit, a layout data generation unit, and an output unit, the reception 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 having first two-dimensional coordinate data indicating a first area in which the first block is laid out, the second layout data having 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, and the prompt data The data generation unit has a function of generating prompt data having instruction data, first three-dimensional coordinate data, second three-dimensional coordinate data, placement area data, and constraint data, the placement area data is data indicating the placement area by three-dimensional coordinates, the instruction data is data indicating an instruction for causing the language model to present a proposal for placement positions of the first block and the second block in the placement area that satisfies the constraint conditions indicated by the constraint data, the layout data generation unit has a function of generating third layout data indicating the layout of the third area based on the proposal for placement positions, the third layout data including the layout of the first block and the layout of the second block, and the output unit has a function of outputting the third layout data.
又は、上記態様において、検証部を有し、検証部は、第3のレイアウトデータが示すレイアウトの検証を行い、第3のレイアウトデータの修正の要否を判断する機能を有し、受付部は、第3のレイアウトデータを修正する場合に、修正された制約条件データを受け付ける機能を有してもよい。 Or, in the above aspect, the device may have a verification unit, which has a function of verifying the layout indicated by the third layout data and determining whether or not the third layout data needs to be modified, and the reception unit may have a function of receiving the modified constraint condition data when the third layout data is modified.
又は、上記態様において、第1のレイアウトデータは、1つ又は複数の第1のレイヤを有し、第2のレイアウトデータは、1つ又は複数の第2のレイヤを有し、第3のレイアウトデータは、1つ又は複数の第3のレイヤを有し、第1のレイアウトデータは、第1の領域のレイアウトを、第1のレイヤごとに示し、第2のレイアウトデータは、第2の領域のレイアウトを、第2のレイヤごとに示し、第3のレイアウトデータは、第3の領域のレイアウトを、第3のレイヤごとに示し、第3のレイヤは、第1のレイヤのレイアウト、及び第2のレイヤのレイアウトの少なくとも一方を含み、第1のレイヤ、及び第2のレイヤのそれぞれには、名称が付与され、レイアウトデータ生成部は、第1のレイヤの名称、及び第2のレイヤの名称に基づき、第3のレイヤに名称を付与する機能を有してもよい。 Or, in the above aspect, the first layout data has one or more first layers, the second layout data has one or more second layers, and the third layout data has one or more third layers, the first layout data shows the layout of the first region for each first layer, the second layout data shows the layout of the second region for each second layer, and the third layout data shows the layout of the third region for each third layer, the third layer includes at least one of the layout of the first layer and the layout of the second layer, each of the first layer and the second layer is given a name, and the layout data generating 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.
又は、上記態様において、配置位置の案は、第1のブロックの配置位置を示す第3の3次元座標データ、及び第2のブロックの配置位置を示す第4の3次元座標データを含み、レイアウトデータ生成部は、第3の3次元座標データが示す高さ方向の座標の最小値が、第4の3次元座標データが示す高さ方向の座標の最小値と異なる場合に、第2のレイヤのレイアウトを含む第3のレイヤのうち、少なくとも一部の第3のレイヤの名称を、第2のレイヤの名称と異ならせる機能を有してもよい。 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 the layout data generating unit may have a function of making the names of at least some of the third layers including the layout of the second layer different 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.
又は、本発明の一態様は、第1のステップにおいて、第1のブロックのレイアウトを示す第1のレイアウトデータと、第2のブロックのレイアウトを示す第2のレイアウトデータと、制約条件データと、を受け付け、第1のレイアウトデータは、第1のブロックがレイアウトされる第1の領域を示す、第1の2次元座標データを有し、第2のレイアウトデータは、第2のブロックがレイアウトされる第2の領域を示す、第2の2次元座標データを有し、第2のステップにおいて、第1の2次元座標データを第1の3次元座標データに、第2の2次元座標データを第2の3次元座標データにそれぞれ変換し、第3のステップにおいて、指示文データと、第1の3次元座標データと、第2の3次元座標データと、配置領域データと、制約条件データと、を有するプロンプトデータを生成し、配置領域データは、配置領域を3次元座標によって示すデータであり、指示文データは、言語モデルに、制約条件データが示す制約条件を満たす、第1のブロック、及び第2のブロックの配置領域への配置位置の案を提示させるための指示文を示すデータであり、第4のステップにおいて、配置位置の案に基づき、第3の領域のレイアウトを示す第3のレイアウトデータを、第1のブロックのレイアウトと、第2のブロックのレイアウトと、を含むように生成し、第5のステップにおいて、第3のレイアウトデータを出力する、設計支援方法である。 Or, one aspect of the present invention includes a method for receiving, 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, 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, and in a second step, 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, respectively, and in a third step, converting instruction statement data and the first three-dimensional coordinate data into a first three-dimensional coordinate data. This is a design support method that generates prompt data having first 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 data being data indicating an instruction for causing the language model to present a proposal for placement positions of the first block and the second block in the placement area that satisfies the constraint conditions indicated by the constraint data, in a fourth step, generates third layout data indicating a layout of the third area based on the proposal for placement positions, the third layout data including a layout of the first block and a layout of the second block, and in a fifth step, outputs the third layout data.
又は、上記態様において、第6のステップにおいて、第3のレイアウトデータが示すレイアウトの検証を行い、第3のレイアウトデータの修正の要否を判断し、第3のレイアウトデータを修正する場合は、第7のステップにおいて、修正された制約条件データを受け付けた後、第3のステップ、第4のステップ、及び第6のステップが再度行われてもよい。 Or, 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 seventh step may receive the modified constraint condition data, and then the third step, the fourth step, and the sixth step may be performed again.
又は、上記態様において、検証は、物理検証であってもよい。 Or, in the above aspect, the verification may be physical verification.
又は、上記態様において、第1のレイアウトデータは、1つ又は複数の第1のレイヤを有し、第2のレイアウトデータは、1つ又は複数の第2のレイヤを有し、第3のレイアウトデータは、1つ又は複数の第3のレイヤを有し、第1のレイアウトデータは、第1の領域のレイアウトを、第1のレイヤごとに示し、第2のレイアウトデータは、第2の領域のレイアウトを、第2のレイヤごとに示し、第3のレイアウトデータは、第3の領域のレイアウトを、第3のレイヤごとに示し、第3のレイヤは、第1のレイヤのレイアウト、及び第2のレイヤのレイアウトの少なくとも一方を含み、第1のレイヤ、及び第2のレイヤのそれぞれには、名称が付与され、第4のステップにおいて、第1のレイヤの名称、及び第2のレイヤの名称に基づき、第3のレイヤに名称を付与してもよい。 Or, in the above aspect, the first layout data has one or more first layers, the second layout data has one or more second layers, and the third layout data has one or more third layers, the first layout data shows the layout of the first region for each first layer, the second layout data shows the layout of the second region for each second layer, and the third layout data shows the layout of the third region for each third layer, the third layer includes at least one of the layout of the first layer and the layout of the second layer, each of the first layer and the second layer is given a name, and in the fourth step, the third layer may be given a name based on the name of the first layer and the name of the second layer.
又は、上記態様において、配置位置の案は、第1のブロックの配置位置を示す第3の3次元座標データ、及び第2のブロックの配置位置を示す第4の3次元座標データを含み、第4のステップにおいて、第3の3次元座標データが示す高さ方向の座標の最小値が、第4の3次元座標データが示す高さ方向の座標の最小値と異なる場合に、第2のレイヤのレイアウトを含む第3のレイヤのうち、少なくとも一部の第3のレイヤの名称を、第2のレイヤの名称と異ならせてもよい。 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, 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, 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.
本発明の一態様により、設計業務の経験が浅い者でも利用できる設計支援装置を提供できる。又は、本発明の一態様により、利便性、有用性、又は信頼性に優れた設計支援装置を提供できる。又は、本発明の一態様により、新規な設計支援装置を提供できる。又は、本発明の一態様により、上記設計支援装置を有する設計支援システムを提供できる。又は、本発明の一態様により、上記設計支援装置に適用可能な設計支援方法を提供できる。 One aspect of the present invention provides a design support device that can be used even by those with little experience in design work. Alternatively, one aspect of the present invention provides a design support device that is highly convenient, useful, or reliable. Alternatively, one aspect of the present invention provides a new design support device. Alternatively, one aspect of the present invention provides a design support system that includes the above design support device. Alternatively, one aspect of the present invention provides a design support method that can be applied to the above design support device.
なお本発明の一態様の効果は、上記列挙した効果に限定されない。上記列挙した効果は、他の効果の存在を妨げるものではない。なお他の効果は、以下の記載で述べる、本項目で言及していない効果である。本項目で言及していない効果は、当業者であれば明細書又は図面等の記載から導き出せるものであり、これらの記載から適宜抽出することができる。なお、本発明の一態様は、上記列挙した効果、及び/又は他の効果のうち、少なくとも一つの効果を有するものである。したがって本発明の一態様は、場合によっては、上記列挙した効果を有さない場合もある。 Note that 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 effects not mentioned in this section, which will be described below. 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 appropriately extracted from these descriptions. Note that 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.
図1は、設計支援システムの構成例を示す模式図である。
図2は、設計支援システムの構成例を示すブロック図である。
図3は、設計支援方法の一例を示すフローチャートである。
図4Aは、設計支援方法の一例を示すブロック図である。図4Bは、レイアウトデータの一例を示す模式図である。
図5A、図5B、及び図5Cは、レイアウトデータの一例を示す模式図である。
図6A、図6B、及び図6Cは、2次元座標データについて説明するための模式図である。
図7は、設計支援方法の一例を示すブロック図である。
図8A、図8B、及び図8Cは、設計支援方法の一例を示す模式図である。
図9Aは、設計支援方法の一例を示すブロック図である。図9Bは、プロンプトデータの一例を示す模式図である。
図10Aは、設計支援方法の一例を示すブロック図である。図10Bは、応答データの一例を示す模式図である。図10Cは、ブロックBKの配置位置の案の一例を示す模式図である。
図11Aは、設計支援方法の一例を示すブロック図である。図11Bは、レイアウトデータの一例を示す模式図である。
図12A、及び図12Bは、設計支援方法の一例を示すブロック図である。
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 a design support method, and Fig. 4B is a schematic diagram showing an example of layout data.
5A, 5B, and 5C are schematic diagrams showing an example of layout data.
6A, 6B, and 6C are schematic diagrams for explaining two-dimensional coordinate data.
FIG. 7 is a block diagram showing an example of a design support method.
8A, 8B, and 8C are schematic diagrams showing an example of a design support method.
Fig. 9A is a block diagram showing an example of a design support method, and Fig. 9B is a schematic diagram showing an example of prompt data.
Fig. 10A is a block diagram showing an example of a design support method, Fig. 10B is a schematic diagram showing an example of response data, and 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 a design support method, and 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.
実施の形態について、図面を用いて詳細に説明する。但し、本発明は以下の説明に限定されず、本発明の趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは当業者であれば容易に理解される。従って、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。 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 the form and details can be modified in various ways 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.
なお、以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、その繰り返しの説明は省略する。また、同様の機能を指す場合には、ハッチングパターンを同じくし、特に符号を付さない場合がある。 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 will be omitted. Also, when referring to similar functions, the same hatching pattern may be used and no particular reference numeral may be used.
また、図面において示す各構成の、位置、大きさ、及び、範囲等は、理解の簡単のため、実際の位置、大きさ、及び、範囲等を表していない場合がある。このため、開示する発明は、必ずしも、図面に開示された位置、大きさ、及び、範囲等に限定されない。 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.
なお、本明細書等において、「第1」、「第2」という序数詞は、便宜上用いるものであり、構成要素の数、又は、構成要素の順序(例えば、工程順、又は積層順)を限定するものではない。また、本明細書のある箇所において構成要素に付す序数詞と、本明細書の他の箇所、又は特許請求の範囲において、当該構成要素に付す序数詞と、が一致しない場合がある。 In this specification, the ordinal numbers "first" and "second" are used for convenience and do not limit the number of components or the order of the components (e.g., the order of processes or the order of stacking). In addition, an ordinal number attached to a component in one place in this specification may not match an ordinal number attached to the same component in another place in this specification or in the claims.
また、本明細書等において、「上」、「下」、「左」、及び「右」等の配置を示す語句は、構成要素同士の位置関係を、図面を参照して説明するために、便宜上用いている。また、構成要素同士の位置関係は、各構成を描写する方向に応じて適宜変化するものである。したがって、明細書で説明した語句に限定されず、状況に応じて適切に言い換えることができる。 In addition, in this specification, terms indicating position such as "upper," "lower," "left," and "right" are used for convenience in explaining 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 configuration is depicted. Therefore, the terms are not limited to those described in the specification, and can be rephrased appropriately depending on the situation.
(実施の形態)
本実施の形態では、本発明の一態様の設計支援システム、設計支援装置、及び設計支援方法について図面を用いて説明する。
(Embodiment)
In this embodiment, a design support system, a design support apparatus, and a design support method according to one embodiment of the present invention will be described with reference to drawings.
本発明の一態様は、複数のブロックの配置を、制約条件に基づき自動的に行う設計支援装置に関する。また、本発明の一態様は、当該設計支援装置を有する設計支援システムに関する。さらに、本発明の一態様は、当該設計支援装置に適用可能な設計支援方法に関する。ここで、ブロックは、半導体素子を1つ以上有する。半導体素子として、例えばトランジスタ、及びダイオードが挙げられる。ブロックは、回路ブロックということができる場合がある。例えば、ブロックが、半導体素子を2つ以上有し、これらの半導体素子の少なくとも2つが互いに接続されている場合、当該ブロックは回路ブロックということができる。回路ブロックは、特定の機能を有してもよいし、有さなくてもよい。 One aspect of the present invention relates to a design support device that automatically arranges a plurality of blocks based on constraint conditions. Another aspect of the present invention relates to a design support system that includes the design support device. Another aspect of the present invention relates to a design support method that can be applied to the design support device. Here, a block has one or more semiconductor elements. Examples of semiconductor elements include transistors and diodes. A block may 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. The circuit block may or may not have a specific function.
本発明の一態様の設計支援方法では、まず、設計支援装置が、レイアウトデータと、制約条件データと、を受け付ける。レイアウトデータは、ブロックのレイアウトを示すデータであり、ブロックごとに異なるレイアウトデータとすることができる。制約条件データは、配置の制約条件が自然言語で記載されたデータであり、後の処理で各ブロックを配置する際に用いられる。設計支援装置は、複数のレイアウトデータと、1つの制約条件データと、を受け付けることができる。 In one aspect of the design support method of the present invention, a design support device first accepts layout data and constraint data. The layout data is data that indicates the layout of blocks, and can be different layout data 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 later processing. The design support device can accept multiple layout data and one constraint data.
本明細書等において、レイアウトとは、例えば、集積回路などの半導体装置において複数の回路素子(例えば、半導体素子、抵抗素子、及び容量素子など)と当該回路素子同士を接続する配線とが配置されたパターン(回路パターン)のことをいう。当該パターンとして、例えば、フォトマスクのパターン、電子ビーム描画装置で直接描画する際のパターン、PCBのパターン、及びFPCのパターンなどが挙げられる。 In this specification, the term "layout" refers to a pattern (circuit pattern) in which multiple circuit elements (e.g., semiconductor elements, resistive elements, and capacitive elements) and wiring that connects the circuit elements to each other are arranged in a semiconductor device such as an integrated circuit. Examples of such patterns include photomask patterns, patterns used when directly drawing with an electron beam drawing device, PCB patterns, and FPC patterns.
レイアウトデータは、それぞれ2次元座標データを有する。2次元座標データは、x座標、及びy座標を有する。2次元座標データは、ブロックがレイアウトされる領域であるレイアウト領域を、ブロックごとに2次元座標で示すデータである。2次元座標データは、例えばレイアウト領域の頂点の2次元座標を有することができる。例えば、レイアウト領域が四角形である場合、2次元座標データは4つの2次元座標を有することができる。なお、2次元座標データが、レイアウト領域の頂点の2次元座標を有する場合、1つの頂点の座標を(0,0)とすることができる。この場合、他の頂点の座標は、座標が(0,0)である頂点を基準とした相対的な位置を示すことができる。 Each 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 the layout area, which is the area in which the blocks are laid out, for each block using two-dimensional coordinates. The two-dimensional coordinate data may have, for example, the 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 the 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).
本明細書等において、「領域」という用語は、「区域」、又は「範囲」と言い換えることができる。 In this specification, the term "area" can be replaced with "area" or "range."
続いて、設計支援装置が、2次元座標データをそれぞれ3次元座標データに変換する。当該3次元座標データは、2次元座標データが有するx座標、及びy座標に、z座標を追加した座標を有する。例えば、レイアウト領域が四角形である場合、3次元座標データは、六面体の頂点の位置を示す8つの3次元座標を有することができる。具体的には、レイアウト領域が長方形又は正方形である場合、3次元座標データは、直方体又は立方体の頂点の位置を示す8つの3次元座標を有することができる。3次元座標データが有する8つの3次元座標のうち、例えば直方体又は立方体の下面の頂点の位置を示す4つの3次元座標では、z座標を“0”とする。また、上面の頂点の位置を示す4つの3次元座標では、z座標を、トランジスタ等の半導体素子の積層数とすることができる。例えば、トランジスタが2層積層されているブロックでは、上面の頂点の位置を示す4つの3次元座標において、z座標を“2”とする。ここで、トランジスタが積層されておらず、全てのトランジスタが同一平面上に設けられるブロックでは、上面の頂点の位置を示す4つの3次元座標において、z座標を“1”とする。 Then, the design support device 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-coordinate and y-coordinate of the two-dimensional coordinate data. For example, when the layout area is a rectangle, the three-dimensional coordinate data can have eight three-dimensional coordinates indicating the positions of the vertices of a hexahedron. Specifically, when the layout area is a rectangle or a square, the three-dimensional coordinate data can have eight three-dimensional coordinates indicating the positions of the vertices of a rectangular parallelepiped or cube. Of the eight three-dimensional coordinates of the three-dimensional coordinate data, for example, the z-coordinate is set to "0" in four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of a rectangular parallelepiped or cube. In addition, the z-coordinate can be set to the number of layers of semiconductor elements such as transistors in four three-dimensional coordinates indicating the positions of the vertices of the top surface in a block in which transistors are stacked in two layers. For example, the z-coordinate is set to "2" in four three-dimensional coordinates indicating the positions of the vertices of the top surface. Here, 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 that indicate the positions of the vertices of the top surface.
本明細書等において、2次元座標を(a,b)(a,bは実数)と記載して示す場合、aをx座標、bをy座標とする。また、3次元座標を(a,b,c)(cは実数)と記載して示す場合、aをx座標、bをy座標、cをz座標とする。ここで、z座標は、高さ方向の座標という場合がある。 In this specification, 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. 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.
続いて、各ブロックを、制約条件データが示す制約条件を満たすように配置する。例えば、各ブロックの配置位置の案を大規模言語モデル(単に言語モデルともいう)に提示させる。具体的には、各ブロックの配置位置を、3次元座標データとして提示させる。その後、当該3次元座標データに基づき、各ブロックが配置されたレイアウトを示すレイアウトデータを生成する。レイアウトデータは、2次元のレイアウトをレイヤごとに示すデータである。 Then, each block is placed so as to satisfy the constraint conditions indicated by the constraint data. For example, a proposed placement position for each block is presented in a large-scale language model (also simply referred to as a language model). Specifically, the placement position for each block is presented as three-dimensional coordinate data. Then, based on the three-dimensional coordinate data, layout data is generated that indicates the layout in which each block is placed. The layout data is data that indicates a two-dimensional layout for each layer.
続いて、設計支援装置は、生成された上述のレイアウトデータに対して検証、例えば物理検証を行う。検証の結果、設計支援装置が、各ブロックを再配置する必要があると判断した場合は、例えば制約条件の修正を、設計支援装置を有する設計支援システムのユーザに促す。ユーザが例えば制約条件を修正した場合は、設計支援装置が、修正された制約条件を示す制約条件データを受け付ける。その後、設計支援装置は、上述の各ブロックが配置されたレイアウトデータの生成を再度行う。 Then, the design support device performs verification, for example, physical verification, on the generated layout data described above. If the design support device determines as a result of the verification that it is necessary to rearrange each block, it prompts the user of the design support system having the design support device to, for example, modify the constraint conditions. If the user, for example, modifies the constraint conditions, the design support device accepts constraint condition data indicating the modified constraint conditions. Thereafter, the design support device regenerates layout data in which each of the above blocks is arranged.
以上のように、本発明の一態様の設計支援方法では、複数のブロックの配置を、言語モデルを用いて行うことができる。具体的には、複数のブロックの配置を、言語モデルが生成する応答データに基づき行うことができる。これにより、本発明の一態様の設計支援システムのユーザは、例えばブロック配置の制約条件を、自然言語で入力できる。よって、例えばEDAツールに熟練していなくても、ブロックの配置を行うことができる。したがって、本発明の一態様の設計支援方法を用いることで、設計業務の経験が浅い者でも回路設計を行うことができる。また、本発明の一態様の設計支援方法で用いる設計支援装置は、設計業務の経験が浅い者でも利用できる。以上により、本発明の一態様の設計支援システム、設計支援装置、及び設計支援方法は、利便性、有用性、又は信頼性に優れた設計支援システム、設計支援装置、及び設計支援方法とすることができる。 As described above, in the design support method of one aspect of the present invention, the placement of multiple blocks can be performed using a language model. Specifically, the 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 aspect of the present invention to input, for example, constraints for block placement in natural language. Therefore, even if the user is not skilled in EDA tools, for example, the user can place blocks. Therefore, by using the design support method of one aspect of the present invention, even those with little experience in design work can design circuits. In addition, the design support device used in the design support method of one aspect of the present invention can be used by those with little experience in design work. As described above, the design support system, design support device, and design support method of one aspect of the present invention can be a design support system, design support device, and design support method that are excellent in convenience, usefulness, or reliability.
<設計支援システムの構成例>
図1は、本発明の一態様の設計支援システムである、設計支援システム10の構成例を示す模式図である。なお、設計支援システムは、例えば回路配置データ生成システム、回路レイアウトデータ生成システム、レイアウトデータ生成システム、又はデータ生成システムという場合がある。設計支援システム10は、情報端末20と、設計支援装置100と、情報処理装置40と、を有する。また、設計支援システム10には、ネットワーク30、及びネットワーク31を含めることができる。なお、図1では、情報端末20の一例として、情報端末20a、情報端末20b、情報端末20c、及び情報端末20dを示している。
<Example of design support system configuration>
1 is a schematic diagram showing an example of the configuration of a
図1において、設計支援装置100は、情報処理装置40とネットワーク30を介して接続されている。また、図1において、設計支援装置100は、情報端末20a、情報端末20b、情報端末20c、及び情報端末20dとネットワーク31を介して接続されている。
In FIG. 1, the
設計支援システム10のユーザ(設計者等)は、情報端末20a乃至情報端末20d等から設計支援装置100に対してアクセスすることができる。そして、ユーザは、本発明の一態様の設計支援システムを用いたサービスを受けることができる。以上により、設計支援システム10のユーザは、具体的には、情報端末20のユーザとすることができる。なお、設計支援システム10のユーザを、設計支援装置100のユーザといってもよい。
A user (such as a designer) of the
設計支援装置100は、情報端末20からネットワーク31を介して入力されたレイアウトデータと、制約条件データと、を用いて、プロンプトデータを生成できる。前述のように、レイアウトデータは、半導体素子を1つ以上有するブロックのレイアウトを示すデータであり、ブロックごとに異なるレイアウトデータとすることができる。制約条件データは、ブロック配置の制約条件が自然言語で記載されたデータである。設計支援装置100は、複数のレイアウトデータと、1つの制約条件データと、を用いて、プロンプトデータを生成できる。
The
本明細書等において、プロンプトデータとは、プロンプトを示すデータである。プロンプトとは、言語モデルに所望の動作をさせるための入力文に対応する。言語モデルは、プロンプトが与えられると、当該プロンプトに基づいて、応答文を生成する。プロンプトは、指示文を有する。指示文は、質問文、命令文等と言い換えることができる。指示文は、開発者又はサービスの提供者によりあらかじめ登録されていることが好ましい。プロンプトが有する指示文をあらかじめ登録しておくことで、言語モデルから所望の回答を得やすくなる。 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 operation. 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 is 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.
設計支援装置100は、ネットワーク30を介して、プロンプトデータを情報処理装置40に送信できる。情報処理装置40は、送信されたプロンプトデータを用いて、各ブロックの配置位置の案を提示できる。設計支援装置100は、当該案に基づき、各ブロックが配置されたレイアウトを示すレイアウトデータを生成できる。
The
情報端末20a乃至情報端末20dは、それぞれ、ユーザが使用するコンピュータ等の情報端末装置であり、クライアントコンピュータ等と呼ぶこともできる。図1では、一例として、デスクトップ型コンピュータである情報端末20aと、ノート型コンピュータである情報端末20bと、スマートフォンである情報端末20cと、タブレット型コンピュータである情報端末20dを図示している。設計支援装置100と接続される情報端末20の数は特に限定されない。図1では4つの情報端末20を示すが、情報端末20の数は、1つ、2つ、3つ、又は5つ以上であってもよい。情報端末20としては、例えば、デスクトップ型情報端末、ノート型情報端末、タブレット型情報端末、及びスマートフォン等の携帯情報端末が挙げられる。
The
設計支援装置100は、本発明の一態様の設計支援方法を実行できる装置である。設計支援装置100は、サーバコンピュータ、スーパーコンピュータ等の大型のコンピュータである。設計支援装置100は、情報端末20と比較して、処理能力が高いコンピュータである。設計支援装置100は、人工知能(AI:Artificial Intelligence)を用いた処理を行うことができてもよい。
The
情報処理装置40は、サーバコンピュータ、スーパーコンピュータ等の大型のコンピュータである。情報処理装置40は、情報端末20及び設計支援装置100と比較して、処理能力が高いコンピュータである。情報処理装置40は、例えば、AIの学習及び推論に必要な大規模の計算を行うことができる。
The
情報処理装置40は、AIを用いた自然言語処理モデルによる処理を行うことができる。AIを用いた自然言語処理モデルとしては、例えば、BERT(Bidirectional Encoder Representations from Transformers)、及びT5(Text−to−Text Transfer Transformer)が挙げられる。また、情報処理装置40は、大規模言語モデルを用いた処理を行うことができる。情報処理装置40は、具体的には、大規模言語モデルを利用したモデル(文章生成モデル、対話モデル等)を用いた処理を行うことができる。大規模言語モデルとしては、例えば、GPT−3、GPT−3.5、GPT−4、LaMDA(Language Model for Dialogue Applications)、PaLM(Pathways Language Model)、及びPaLM2が挙げられ、GPT−4を用いることが好ましい。
The
ネットワーク31は、ネットワーク30よりも小規模なコンピュータネットワークである。代表的には、ネットワーク30は、グローバルネットワークであり、ネットワーク31は、ローカルネットワークである。ネットワーク30として、World Wide Web(WWW)の基盤であるインターネットを用いることが好ましい。ネットワーク31として、イントラネット又はエクストラネットを用いることが好ましい。本実施の形態では、主に、ネットワーク30としてインターネットを用い、ネットワーク31としてイントラネットを用いる場合を例に挙げて説明する。
その他、ネットワーク31としては、PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、GAN(Global Area Network)等のコンピュータネットワークを用いることができる。
Other computer networks that can be used as
また、無線通信を行う場合、通信プロトコル又は通信技術として、第4世代移動通信システム(4G)、第5世代移動通信システム(5G)、第6世代移動通信システム(6G)等の通信規格、又は、Wi−Fi(登録商標)、Bluetooth(登録商標)等のIEEEにより通信規格化された仕様を用いることができる。 Furthermore, when performing wireless communication, 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.
なお、ネットワーク30に用いることができるコンピュータネットワークをネットワーク31に用いてもよいし、ネットワーク31に用いることができるコンピュータネットワークをネットワーク30に用いてもよい。例えば、ネットワーク30、及びネットワーク31に、同一のネットワークを用いてもよい。例えば、ネットワーク30及びネットワーク31の両方に、グローバルネットワークを用いてもよい。又は、ネットワーク30及びネットワーク31の両方に、ローカルネットワークを用いてもよい。
Note that a computer network that can be used for
図2は、設計支援システム10の構成例を示すブロック図である。図2では、設計支援装置100の図1より具体的な構成例を示している。設計支援装置100は、受付部101と、出力部103と、記憶部110と、座標データ生成部121と、プロンプトデータ生成部123と、レイアウトデータ生成部125と、検証部127と、を有する。なお、座標データ生成部121、プロンプトデータ生成部123、レイアウトデータ生成部125、及び検証部127をまとめて、処理部という。
FIG. 2 is a block diagram showing an example of the configuration of the
受付部101、及び出力部103は、ネットワーク31を介して情報端末20と接続され、ネットワーク30を介して情報処理装置40と接続される。なお、図2では、座標データ生成部121、プロンプトデータ生成部123、レイアウトデータ生成部125、及び検証部127が、全て同一の設計支援装置100に設けられる例を示しているが、これらのうち少なくとも1つが異なる設計支援装置100に設けられてもよい。
The
なお、本明細書に添付した図面では、構成要素を機能ごとに分類し、互いに独立したブロックとしてブロック図を示しているが、実際の構成要素は機能ごとに完全に切り分けることが難しく、1つの構成要素が複数の機能に係わることもあり得る。 Note that in the drawings attached to this specification, the components are classified by function and shown in block diagrams as independent blocks, but in reality it is difficult to completely separate components by function, and one component may be involved in multiple functions.
受付部101は、設計支援装置100の外部からデータを受け付ける機能を有する。受付部101は、ネットワーク31を介して、情報端末20からデータを受け付けることができる。また、受付部101は、ネットワーク30を介して、情報処理装置40からデータを受け付けることができる。受付部101は、情報端末20から、例えばレイアウトデータ、及び制約条件データを受け付けることができる。受付部101が受け付けるレイアウトデータとして、ブロックのレイアウトを示すデータが挙げられる。受付部101は、複数のレイアウトデータを受け付けることができる。また、受付部101は、情報処理装置40から、例えば言語モデルがプロンプトデータを用いて生成する応答データを受け付けることができる。
The
出力部103は、データを設計支援装置100の外部に出力する機能を有する。出力部103は、例えば座標データ生成部121、プロンプトデータ生成部123、レイアウトデータ生成部125、及び検証部127の少なくとも1つが行う処理により生成されるデータを、設計支援装置100の外部に出力する機能を有する。出力部103は、ネットワーク31を介して、情報端末20にデータを出力できる。また、出力部103は、ネットワーク30を介して、情報処理装置40にデータを出力できる。出力部103は、例えばレイアウトデータを情報端末20に出力できる。また、出力部103は、プロンプトデータを情報処理装置40に出力できる。
The
出力部103が情報端末20にデータを出力する場合、出力部103は、例えば情報端末20の表示画面に当該データが表す情報を表示すること、及びtxt形式、docx形式、xml形式、pdf形式、csv形式等のファイルを情報端末20に出力することの一方又は両方を行うことができる。
When the
記憶部110は、受付部101が受け付けたデータを記憶する機能を有する。例えば、レイアウトデータ、及び制約条件データを記憶できる。また、記憶部110は、座標データ生成部121が実行するプログラム、プロンプトデータ生成部123が実行するプログラム、レイアウトデータ生成部125が実行するプログラム、及び検証部127が実行するプログラムを記憶する機能を有する。また、記憶部110は、プロンプトの指示文を示す指示文データを記憶する機能を有する。さらに、記憶部110は、座標データ生成部121、プロンプトデータ生成部123、レイアウトデータ生成部125、及び検証部127の少なくとも1つが生成するデータ(演算結果、解析結果、推論結果等)を記憶する機能を有してもよい。
The
記憶部110は、データベースとしての機能を有してもよい。この場合、情報端末20のユーザが、記憶部110に記憶されているデータを指定し、指定したデータを受付部101が受け付けることができる。例えば、記憶部110にレイアウトデータが記憶されている場合、情報端末20のユーザが当該レイアウトデータを指定することにより、指定されたレイアウトデータを受付部101が受け付けることができる。データの指定は、例えばデータに付与されている番号、データを作成又は登録した日付、データの分類、データの作成者、データの説明文、及びデータに含まれる文言の少なくとも1つを、情報端末20のユーザが指定することにより行うことができる。
The
なお、データベースは、設計支援装置100の外部に設けてもよいし、設計支援システム10の外部に設けてもよい。又は、データベースを、設計支援装置100の内部、設計支援装置100の外部且つ設計支援システム10の内部、及び設計支援システム10の外部のうち2つ以上に分散させて設けてもよい。
The database may be provided outside the
記憶部110は、揮発性メモリ及び不揮発性メモリのうち少なくとも一方を有する。揮発性メモリとしては、DRAM(Dynamic Random Access Memory)、及びSRAM(Static Random Access Memory)等が挙げられる。不揮発性メモリとしては、ReRAM(Resistive Random Access Memory、抵抗変化型メモリともいう)、PRAM(Phase change Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory、磁気抵抗型メモリともいう)、及びフラッシュメモリ等が挙げられる。また、記憶部110は、NOSRAM(登録商標)及びDOSRAM(登録商標)のうち少なくとも一方を有してもよい。また、記憶部110は、記録メディアドライブを有してもよい。記録メディアドライブとしては、ハードディスクドライブ(Hard Disk Drive:HDD)、及びソリッドステートドライブ(Solid State Drive:SSD)等が挙げられる。
The
NOSRAMとは、「Nonvolatile Oxide Semiconductor Random Access Memory(RAM)」の略称である。NOSRAMは、メモリセルが2トランジスタ型(2T)、又は3トランジスタ型(3T)ゲインセルであり、トランジスタが、金属酸化物をチャネル形成領域に用いたトランジスタ(OSトランジスタともいう)であるメモリのことをいう。OSトランジスタはオフ状態でソースとドレインとの間を流れる電流、つまりリーク電流が極めて小さい。NOSRAMは、リーク電流が極めて小さい特性を用いてデータに応じた電荷をメモリセル内に保持することで、不揮発性メモリとして用いることができる。特にNOSRAMは保持しているデータを破壊することなく読み出しすること(非破壊読み出し)が可能なため、データ読み出し動作のみを大量に繰り返す、演算処理に適している。NOSRAMは、積層して設けることでデータ容量を大きくできるため、大規模なキャッシュメモリ、メインメモリ、ストレージメモリとして用いることで半導体装置の高性能化を図ることができる。 NOSRAM is an abbreviation for "Nonvolatile Oxide Semiconductor Random Access Memory (RAM)". NOSRAM is a memory in which the memory cell is a two-transistor (2T) or three-transistor (3T) gain cell, and the transistor is a transistor (also called an OS transistor) that uses metal oxide in the channel formation region. The current that flows between the source and drain in the off state, that is, the leakage current, is extremely small. NOSRAM can be used as a nonvolatile memory by retaining a charge according to data in the memory cell using the characteristic of extremely small leakage current. In particular, NOSRAM can read the retained data without destroying it (nondestructive read), so it is suitable for arithmetic processing in which only data read operations are repeated in large quantities. Since NOSRAM can increase the data capacity by stacking, it can be used as a large-scale cache memory, main memory, or storage memory to improve the performance of semiconductor devices.
DOSRAMとは、「Dynamic Oxide Semiconductor RAM」の略称であり、1T(トランジスタ)1C(容量)型のメモリセルを有するRAMを指す。DOSRAMは、OSトランジスタを用いて形成されたDRAMであり、DOSRAMは、外部から送られてくる情報を一時的に格納するメモリである。DOSRAMは、OSトランジスタのオフ電流が小さいことを利用したメモリである。 DOSRAM is an abbreviation for "Dynamic Oxide Semiconductor RAM" and refers to a RAM that has 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 the outside. DOSRAM is a memory that takes advantage of the small off-current of OS transistors.
本明細書等において、金属酸化物(metal oxide)とは、広い意味での金属の酸化物である。金属酸化物は、酸化物絶縁体、酸化物導電体(透明酸化物導電体を含む)、酸化物半導体(Oxide Semiconductor又は単にOSともいう)等に分類される。例えば、トランジスタの半導体層に金属酸化物を用いた場合、当該金属酸化物を酸化物半導体と呼称する場合がある。 In this specification, metal oxide is a metal oxide in a broad sense. Metal oxides are classified into oxide insulators, oxide conductors (including transparent oxide conductors), oxide semiconductors (also called oxide semiconductors or simply OS), and the like. For example, when a metal oxide is used in the semiconductor layer of a transistor, the metal oxide may be called an oxide semiconductor.
チャネル形成領域が有する金属酸化物はインジウム(In)を含むことが好ましい。チャネル形成領域が有する金属酸化物がインジウムを含む金属酸化物の場合、OSトランジスタのキャリア移動度(電子移動度)が高くなる。また、チャネル形成領域が有する金属酸化物は、元素Mを含む酸化物半導体であると好ましい。元素Mは、アルミニウム(Al)、ガリウム(Ga)及びスズ(Sn)の少なくとも1つであることが好ましい。元素Mに適用可能なその他の元素としては、ホウ素(B)、シリコン(Si)、チタン(Ti)、鉄(Fe)、ニッケル(Ni)、ゲルマニウム(Ge)、イットリウム(Y)、ジルコニウム(Zr)、モリブデン(Mo)、ランタン(La)、セリウム(Ce)、ネオジム(Nd)、ハフニウム(Hf)、タンタル(Ta)、及び、タングステン(W)等が挙げられる。ただし、元素Mとして、前述の元素を複数組み合わせても構わない場合がある。元素Mは、例えば、酸素との結合エネルギーが高い元素である。例えば、酸素との結合エネルギーがインジウムよりも高い元素である。また、チャネル形成領域が有する金属酸化物は、亜鉛(Zn)を含む金属酸化物であると好ましい。亜鉛を含む金属酸化物は結晶化しやすくなる場合がある。 The metal oxide in the channel formation region preferably contains indium (In). When the metal oxide in the channel formation region contains indium, the carrier mobility (electron mobility) of the OS transistor is increased. In addition, the metal oxide 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 that can be used for 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, as element M, a combination of multiple elements described above may be used. The element M is, for example, an element that has a high binding energy with oxygen. For example, it is an element that has a higher bond energy with oxygen than indium. In addition, it is preferable that the metal oxide in the channel formation region is a metal oxide that contains zinc (Zn). Metal oxides that contain zinc may be more likely to crystallize.
チャネル形成領域が有する金属酸化物は、インジウムを含む金属酸化物に限定されない。チャネル形成領域が有する金属酸化物は、例えば、亜鉛スズ酸化物、ガリウムスズ酸化物等の、インジウムを含まず、亜鉛を含む金属酸化物、ガリウムを含む金属酸化物、スズを含む金属酸化物等であっても構わない。 The metal oxide of the channel formation region is not limited to a metal oxide containing indium. The metal oxide of the channel formation region may be, for example, a metal oxide containing zinc, a metal oxide containing gallium, or a metal oxide containing tin, which does not contain indium, such as zinc tin oxide or gallium tin oxide.
座標データ生成部121は、受付部101が受け付けたレイアウトデータに基づき、3次元座標データを生成する機能を有する。座標データ生成部121は、当該レイアウトデータが有する2次元座標データを3次元座標データに変換する機能を有する。2次元座標データは、ブロックがレイアウトされる領域であるレイアウト領域を示すデータである。3次元座標データは、2次元座標データに、高さ方向を示す座標(z座標)を追加した座標を示すデータである。3次元座標データは、レイアウト領域の他、例えばトランジスタ等の半導体素子の積層数を示すことができる。
The coordinate
プロンプトデータ生成部123は、指示文データと、複数の3次元座標データと、配置領域データと、制約条件データと、を有するプロンプトデータを生成する機能を有する。プロンプトデータ生成部123は、プロンプトデータ生成のスクリプト又はプログラムによってプロンプトデータを生成できる。プロンプトデータは、指示文データ、複数の3次元座標データ、配置領域データ、及び制約条件データを基に生成されたデータであり、自然言語で記載された文章による指示書を示すデータである。
The prompt
指示文データは、言語モデル、具体的には情報処理装置40の言語モデルに、上述の3次元座標データが示す各ブロックの配置位置の案を提示させるための指示文を示すデータである。当該配置位置の案は、制約条件データが示す制約条件を満たすように、配置領域データが示す配置領域へ各ブロックを配置する案とすることができる。配置領域データは、配置領域を3次元座標によって示すデータである。情報処理装置40は、プロンプトデータ生成部123が生成するプロンプトデータを用いて、各ブロックの配置位置の案を示す応答データを生成できる。
The instruction data is data indicating an instruction for causing a language model, specifically the language model of the
レイアウトデータ生成部125は、応答データに基づき、レイアウトデータを生成する機能を有する。レイアウトデータ生成部125は、具体的には、応答データが示す配置位置の案に基づき、各ブロックが配置されたレイアウトを示すレイアウトデータを生成する機能を有する。よって、当該レイアウトデータは、上述の各ブロックのレイアウトを含む。当該レイアウトデータは、2次元座標データを有し、当該2次元座標データが示すレイアウト領域のレイアウトを示す。ここで、座標データ生成部121が2次元座標データを3次元座標データに変換した後に各ブロックを配置することにより、2つ以上のブロックを積層して配置できる。
The layout
検証部127は、上述のレイアウトデータが示すレイアウトの検証を行い、当該レイアウトデータの修正の要否を判断する機能を有する。検証部127は、具体的には、各ブロックを再配置する必要があるか否かの検証を行う機能を有する。検証として、例えば物理検証を行うことができる。
The
検証の結果、検証部127が、レイアウトデータを修正する必要があると判断した場合は、例えば制約条件の修正を、情報端末20のユーザに促す。ユーザが例えば制約条件を修正した場合は、受付部101が、修正された制約条件を示す制約条件データを受け付ける。その後、プロンプトデータ生成部123によるプロンプトデータの生成、情報処理装置40による応答データの生成、レイアウトデータ生成部125によるレイアウトデータの生成、及び検証部127によるレイアウトの検証を再度行う。プロンプトデータ生成部123、情報処理装置40、レイアウトデータ生成部125、及び検証部127による上述の処理は、検証部127が、レイアウトが要件を満たしており、レイアウトデータの修正は不要と判断するまで行われる。
If the verification results in the determination that the layout data needs to be modified, the
座標データ生成部121、プロンプトデータ生成部123、レイアウトデータ生成部125、及び検証部127は、例えば、中央演算装置(CPU:Central Processing Unit)を用いた演算を行うことができる。また、座標データ生成部121、プロンプトデータ生成部123、レイアウトデータ生成部125、及び検証部127は、GPU(Graphics Processing Unit)を用いた演算を行うことができる。
The coordinate
伝送部130は、データを伝達する機能を有する。受付部101、出力部103、記憶部110、座標データ生成部121、プロンプトデータ生成部123、レイアウトデータ生成部125、及び検証部127の間のデータの送受信は、伝送部130を介して行うことができる。
The
以上のように、情報端末20と、設計支援装置100と、情報処理装置40と、を有する設計支援システム10は、複数のブロックの配置を、言語モデルを用いて行うことができる。これにより、設計支援システム10のユーザ、具体的には情報端末20のユーザは、例えばブロック配置の制約条件を、自然言語で入力できる。よって、例えばEDAツールに熟練していなくても、ブロックの配置を行うことができる。したがって、設計支援システム10により、設計業務の経験が浅い者でも回路設計を行うことができる。また、設計支援装置100は、設計業務の経験が浅い者でも利用できる。以上により、設計支援システム10、及び設計支援装置100は、利便性、有用性、又は信頼性に優れた設計支援システム、及び設計支援装置とすることができる。
As described above, the
<設計支援方法の一例>
以下では、本発明の一態様の設計支援方法の一例を示す。具体的には、図2に示す設計支援システム10を用いた設計支援方法の一例を示す。
<An example of a design support method>
An example of a design support method according to an aspect of the present invention will be described below. Specifically, the design support method uses a
図3は、設計支援方法の一例を示すフローチャートである。図3に示す設計支援方法は、ステップS1乃至ステップS9を有する。 Figure 3 is a flowchart showing an example of a design support method. The design support method shown in Figure 3 has steps S1 to S9.
[ステップS1]
ステップS1において、受付部101は、レイアウトデータLTD1と制約条件データRSTDを受け付ける。図4Aは、ステップS1を模式的に示すブロック図である。図4Aでは、データの移動を点線矢印で示している。図4Aに示すように、例えば複数のレイアウトデータLTD1と、1つの制約条件データRSTDと、が情報端末20から受付部101に送信され、記憶部110に記憶される。なお、以降に示すブロック図においても、データの移動を点線矢印で示す。
[Step S1]
In step S1, the receiving
なお、記憶部110がデータベースとしての機能を有し、記憶部110にレイアウトデータLTD1があらかじめ記憶されていてもよい。この場合、情報端末20のユーザが、記憶部110に記憶されているレイアウトデータLTD1を指定し、指定したレイアウトデータLTD1を受付部101が受け付けることができる。レイアウトデータLTD1の指定は、例えばレイアウトデータLTD1に付与されている番号、レイアウトデータLTD1を作成又は登録した日付、レイアウトデータLTD1が示すレイアウト、レイアウトデータLTD1が示すレイアウトの設計を行った者、レイアウトデータLTD1が示すレイアウトの説明文、及びレイアウトデータLTD1に含まれる文言の少なくとも1つを、情報端末20のユーザが指定することにより行うことができる。同様に、記憶部110に制約条件データRSTDがあらかじめ記憶されていてもよい。この場合、情報端末20のユーザが、記憶部110に記憶されている制約条件データRSTDを指定し、指定した制約条件データRSTDを受付部101が受け付けることができる。
The
図4Aでは、図2に示す情報処理装置40を示していない。以降に示すブロック図でも、情報処理装置40を示さない場合がある。また、以降に示すブロック図において、情報端末20を示さない場合がある。
In FIG. 4A, the
レイアウトデータLTD1は、半導体素子を1つ以上有するブロックのレイアウトを示すデータであり、ブロックごとに異なるレイアウトデータとすることができる。制約条件データRSTDは、後の工程でブロックを配置する際に用いられるデータであり、ブロック配置の制約条件が自然言語で記載されたデータである。 The layout data LTD1 is data that indicates the layout of a block having one or more semiconductor elements, and can be different layout data for each block. The constraint data RSTD is data that is used when placing blocks in a later process, and is data in which the constraints for block placement are written in natural language.
前述のように、半導体素子として、例えばトランジスタ、及びダイオードが挙げられる。また、ブロックは、回路ブロックということができる場合がある。例えば、ブロックが、半導体素子を2つ以上有し、これらの半導体素子の少なくとも2つが互いに接続されている場合、当該ブロックは回路ブロックということができる。回路ブロックは、特定の機能を有してもよいし、有さなくてもよい。 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 the 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.
図4Aでは、3つのレイアウトデータLTD1が記憶部110に記憶される例を示している。図4Bは、当該3つのレイアウトデータLTD1である、レイアウトデータLTD1_A、レイアウトデータLTD1_B、及びレイアウトデータLTD1_Cについて示す模式図である。図4Bに示すように、レイアウトデータLTD1_Aは、ブロックBK_Aのレイアウトを示すデータである。また、レイアウトデータLTD1_Bは、ブロックBK_Bのレイアウトを示すデータである。さらに、レイアウトデータLTD1_Cは、ブロックBK_Cのレイアウトを示すデータである。なお、ブロックBK_A、ブロックBK_B、及びブロックBK_CをまとめてブロックBKと記載する場合がある。
FIG. 4A shows an example in which three pieces of layout data LTD1 are stored in the
図5A、図5B、及び図5Cは、それぞれレイアウトデータLTD1_A、レイアウトデータLTD1_B、及びレイアウトデータLTD1_Cのデータ構造の一例を示す模式図である。レイアウトデータLTD1_Aは、2次元座標データ2DCD1_A、及びレイヤデータLYD1_Aを有する。レイアウトデータLTD1_Bは、2次元座標データ2DCD1_B、及びレイヤデータLYD1_Bを有する。レイアウトデータLTD1_Cは、2次元座標データ2DCD1_C、及びレイヤデータLYD1_Cを有する。なお、2次元座標データ2DCD1_A、2次元座標データ2DCD1_B、及び2次元座標データ2DCD1_Cをまとめて2次元座標データ2DCD1と記載する場合がある。また、レイヤデータLYD1_A、レイヤデータLYD1_B、及びレイヤデータLYD1_CをまとめてレイヤデータLYD1と記載する場合がある。 Figures 5A, 5B, and 5C are schematic diagrams showing an example of the data structure 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. Note that 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. Also, the layer data LYD1_A, layer data LYD1_B, and layer data LYD1_C may be collectively referred to as layer data LYD1.
2次元座標データ2DCD1は、x座標、及びy座標を有する。2次元座標データ2DCD1は、ブロックBKがレイアウトされる領域であるレイアウト領域を2次元座標で示すデータである。 The two-dimensional coordinate data 2DCD1 has an x coordinate and a y coordinate. The two-dimensional coordinate data 2DCD1 is data that indicates, in two-dimensional coordinates, the layout area in which the block BK is laid out.
レイヤデータLYD1は、2次元座標データ2DCD1で示されるレイアウト領域のレイアウトを、レイヤごとに示すデータである。ここで、レイヤデータLYD1_Aが有するレイヤを、レイヤ201Aとする。また、レイヤデータLYD1_Bが有するレイヤを、レイヤ201Bとする。さらに、レイヤデータLYD1_Cが有するレイヤを、レイヤ201Cとする。なお、レイヤ201A、レイヤ201B、及びレイヤ201Cをまとめてレイヤ201と記載する場合がある。レイヤデータLYD1は、1つ又は複数のレイヤ201を有することができる。
The layer data LYD1 is data that indicates the layout of the layout area indicated by the two-dimensional coordinate data 2DCD1 for each layer. Here, the layer that the layer data LYD1_A has is referred to as
レイヤ201には、名称が付与される。図5Aでは、レイヤデータLYD1_Aが、名称が“LYA1”のレイヤ201Aと、名称が“LYA2”のレイヤ201Aと、を有する例を示している。図5Bでは、レイヤデータLYD1_Bが、名称が“LYA1”のレイヤ201Bと、名称が“LYA2”のレイヤ201Bと、を有する例を示している。図5Cでは、レイヤデータLYD1_Cが、名称が“LYA1”のレイヤ201Cと、名称が“LYA2”のレイヤ201Cと、名称が“LYB1”のレイヤ201Cと、名称が“LYB2”のレイヤ201Cと、を有する例を示している。
Layer 201 is given a name. FIG. 5A shows an example where layer data LYD1_A has
図5A、図5B、及び図5Cでは、名称が“LYA1”のレイヤのレイアウトの一例を、レイアウト211として示している。また、名称が“LYA2”のレイヤのレイアウトの一例を、レイアウト212として示している。図5Cでは、名称が“LYB1”のレイヤのレイアウトの一例を、レイアウト221として示している。また、図5Cでは、名称が“LYB2”のレイヤのレイアウトの一例を、レイアウト222として示している。以上はレイヤごとのレイアウトの一例を示す以降の図面でも同様である。
In Figures 5A, 5B, and 5C, an example of the layout of a layer named "LYA1" is shown as
一般に、半導体装置の回路設計が完了し、レイアウトデータが完成すると、レイアウトデータが示すレイアウトを反映させたマスク、例えばフォトマスクが製造される。ここで、マスクは、レイヤごとに製造される。よって、1つのレイアウトデータがn(nは1以上の整数)のレイヤを有する場合、当該レイアウトデータが示すレイアウトを反映させたマスクはn種類製造される。当該レイアウトを有する回路を製造する場合、製造工程において、n種類のマスクを所定の順番で使用する。 Generally, when the circuit design of a semiconductor device is completed and the layout data is finalized, a mask, for example 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 are manufactured that reflect the layout indicated by the layout data. When manufacturing a circuit having that layout, n types of masks are used in a predetermined order in the manufacturing process.
図6A、図6B、及び図6Cは、それぞれ2次元座標データ2DCD1_A、2次元座標データ2DCD1_B、及び2次元座標データ2DCD1_Cについて説明するための模式図である。図6A、図6B、及び図6Cには、説明のため、それぞれブロックBK_A、ブロックBK_B、及びブロックBK_Cを示している。図6A、図6B、及び図6Cには、具体的には、ブロックBK_Aのレイアウト領域、ブロックBK_Bのレイアウト領域、及びブロックBK_Cのレイアウト領域を示している。 Figures 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 respectively show blocks BK_A, BK_B, and BK_C. Specifically, Figures 6A, 6B, and 6C show the layout area of block BK_A, the layout area of block BK_B, and the layout area of block BK_C.
図6A、図6B、及び図6Cでは、x座標が示す方向(x方向ともいう)、及びy座標が示す方向(y方向ともいう)を、座標軸で示している。2次元座標データについて説明する以降の図面においても、x方向及びy方向を座標軸で示す。 In Figures 6A, 6B, and 6C, the direction indicated by the x coordinate (also called the x direction) and the direction indicated by the y coordinate (also called the y direction) are shown by coordinate axes. In subsequent figures that explain two-dimensional coordinate data, the x direction and y direction are also shown by coordinate axes.
2次元座標データ2DCD1は、例えばブロックBKのレイアウト領域の頂点を示す2次元座標を有することができる。例えば、ブロックBKのレイアウト領域が四角形である場合、2次元座標データ2DCD1は、4つの2次元座標を有することができる。なお、2次元座標データ2DCD1が、レイアウト領域の頂点を示す2次元座標を有する場合、1つの頂点の座標を(0,0)とすることができる。この場合、他の頂点の座標は、座標が(0,0)である頂点を基準とした相対的な位置を示すことができる。なお、ブロックBKのレイアウト領域が長方形又は正方形である場合、2次元座標データ2DCD1が有する2次元座標が2つであってもよい。この場合、2次元座標データ2DCD1は、例えばブロックBKのレイアウト領域が長方形又は正方形である旨を示すデータと、対角線上に設けられる2つの頂点を示す2次元座標と、を有することができる。 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 a rectangle, 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 a rectangle or a 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 a rectangle or a square, and two-dimensional coordinates indicating two vertices located on a diagonal line.
図6A、図6B、及び図6Cでは、それぞれブロックBK_Aのレイアウト領域、ブロックBK_Bのレイアウト領域、及びブロックBK_Cのレイアウト領域が、四角形である例を示している。図6Aでは、ブロックBK_Aのレイアウト領域の4つの頂点が、それぞれ(0,0)、(0,5)、(5,5)、及び(5,0)である例を示している。図6Bでは、ブロックBK_Bのレイアウト領域の4つの頂点が、それぞれ(0,0)、(0,5)、(5,5)、及び(5,0)である例を示している。図6Cでは、ブロックBK_Cのレイアウト領域の4つの頂点が、それぞれ(0,0)、(0,4)、(7,4)、及び(7,0)である例を示している。以上より、ブロックBK_Aのレイアウト領域、及びブロックBK_Bのレイアウト領域は正方形であり、ブロックBK_Cのレイアウト領域は長方形である。なお、図6A、図6B、及び図6Cでは、x座標、及びy座標がいずれも0以上の整数である例を示しているが、x座標、及びy座標は負の整数であってもよいし、正又は負の小数としてもよいし、所定の式で示される数としてもよい。以降に示す3次元座標が有するz座標も同様である。 Figures 6A, 6B, and 6C show examples in which the layout regions of blocks BK_A, BK_B, and BK_C are rectangular. Figure 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. Figure 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. Figure 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 specific formula. The same applies to the z coordinates of the three-dimensional coordinates shown below.
[ステップS2]
ステップS2において、座標データ生成部121は、レイアウトデータLTD1に基づき、3次元座標データ3DCD1を生成する。ステップS2において、座標データ生成部121は、レイアウトデータLTD1が有する2次元座標データ2DCD1を、3次元座標データ3DCD1に変換する。図7は、ステップS2を模式的に示すブロック図である。図7に示すように、例えば記憶部110に記憶されているレイアウトデータLTD1が、座標データ生成部121に送信される。ここで、1つのレイアウトデータLTD1から1つの3次元座標データ3DCD1が生成される。図7に示す例では、記憶部110に3つのレイアウトデータLTD1が記憶されていることから、座標データ生成部121は3つの3次元座標データ3DCD1を生成する。なお、座標データ生成部121は、3次元座標データ3DCD1を記憶部110に記憶させてもよい。
[Step S2]
In step S2, the coordinate
図8A、図8B、及び図8Cは、それぞれ2次元座標データ2DCD1_A、2次元座標データ2DCD1_B、及び2次元座標データ2DCD1_Cに基づく、3次元座標データ3DCD1_A、3次元座標データ3DCD1_B、及び3次元座標データ3DCD1_Cの生成について説明する模式図である。図8Aでは、2次元座標データ2DCD1_Aが示す図形、及び3次元座標データ3DCD1_Aが示す図形を、ブロックBK_Aの図形として示している。また、図8Bでは、2次元座標データ2DCD1_Bが示す図形、及び3次元座標データ3DCD1_Bが示す図形を、ブロックBK_Bの図形として示している。さらに、図8Cでは、2次元座標データ2DCD1_Cが示す図形、及び3次元座標データ3DCD1_Cが示す図形を、ブロックBK_Cの図形として示している。なお、3次元座標データ3DCD1_A、3次元座標データ3DCD1_B、及び3次元座標データ3DCD1_Cをまとめて3次元座標データ3DCD1と記載する場合がある。 Figures 8A, 8B, and 8C are schematic diagrams explaining the generation of three-dimensional coordinate data 3DCD1_A, three-dimensional coordinate data 3DCD1_B, and three-dimensional coordinate data 3DCD1_C based on two-dimensional coordinate data 2DCD1_A, two-dimensional coordinate data 2DCD1_B, and two-dimensional coordinate data 2DCD1_C, respectively. In Figure 8A, the figure indicated by the two-dimensional coordinate data 2DCD1_A and the figure indicated by the three-dimensional coordinate data 3DCD1_A are shown as figures in block BK_A. In addition, in Figure 8B, the figure indicated by the two-dimensional coordinate data 2DCD1_B and the figure indicated by the three-dimensional coordinate data 3DCD1_B are shown as figures in block BK_B. Furthermore, in Figure 8C, the figure indicated by the two-dimensional coordinate data 2DCD1_C and the figure indicated by the three-dimensional coordinate data 3DCD1_C are shown as figures in block BK_C. Note that 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 the three-dimensional coordinate data 3DCD1.
図8A、図8B、及び図8Cに示すように、3次元座標データ3DCD1は、2次元座標データ2DCD1が有するx座標、及びy座標に、z座標を追加した3次元座標を有する。例えば、ブロックBKのレイアウト領域が四角形である場合、3次元座標データ3DCD1は、六面体の頂点の位置を示す8つの3次元座標を有することができる。具体的には、ブロックBKのレイアウト領域が長方形又は正方形である場合、3次元座標データ3DCD1は、直方体又は立方体の頂点の位置を示す8つの3次元座標を有することができる。3次元座標データ3DCD1が有する8つの3次元座標のうち、例えば直方体又は立方体の下面の頂点の位置を示す4つの3次元座標では、z座標を“0”とする。また、上面の頂点の位置を示す4つの3次元座標では、z座標を、トランジスタ等の半導体素子の積層数とすることができる。例えば、トランジスタが2層積層されているブロックBKでは、上面の頂点の位置を示す4つの3次元座標において、z座標を“2”とする。ここで、トランジスタが積層されておらず、全てのトランジスタが同一平面上に設けられるブロックBKでは、上面の頂点の位置を示す4つの3次元座標において、z座標を“1”とする。なお、図8A、図8B、及び図8Cでは、それぞれ3次元座標データ3DCD1_Aが示す図形、3次元座標データ3DCD1_Bが示す図形、及び3次元座標データ3DCD1_Cが示す図形が直方体である例を示している。 8A, 8B, and 8C, the three-dimensional coordinate data 3DCD1 has three-dimensional coordinates obtained by adding a z-coordinate to the x-coordinate and y-coordinate of the two-dimensional coordinate data 2DCD1. For example, if the layout area of the block BK is a rectangle, the three-dimensional coordinate data 3DCD1 can have eight three-dimensional coordinates indicating the positions of the vertices of a hexahedron. Specifically, if the layout area of the block BK is a rectangle or a square, the three-dimensional coordinate data 3DCD1 can have eight three-dimensional coordinates indicating the positions of the vertices of a rectangular parallelepiped or cube. Of the eight three-dimensional coordinates of the three-dimensional coordinate data 3DCD1, for example, the z-coordinate is set to "0" in four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of a rectangular parallelepiped or cube. In addition, the z-coordinate can be set to the number of stacked semiconductor elements such as transistors in four three-dimensional coordinates indicating the positions of the vertices of the top surface in a block BK in which transistors are stacked in two layers. For example, the z-coordinate is set to "2" in four three-dimensional coordinates indicating the positions of the vertices of the top surface. 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 is set to "1" in the four three-dimensional coordinates indicating the positions of the vertices of the upper surface. Note that Figures 8A, 8B, and 8C each show an example 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.
図8A、図8B、及び図8Cでは、3次元座標データについて、x方向、y方向、及びz座標が示す方向(z方向ともいう)を座標軸で示している。3次元座標データについて説明する以降の図面においても、x方向、y方向、及びz方向を座標軸で示す。 In Figures 8A, 8B, and 8C, the x direction, y direction, and direction indicated by the z coordinate (also called the z direction) for the three-dimensional coordinate data are shown as coordinate axes. In subsequent drawings that explain the three-dimensional coordinate data, the x direction, y direction, and z direction are also shown as coordinate axes.
図8Aでは、ブロックBK_Aに、トランジスタTrが積層されずに設けられる例を示している。図8Aでは、3次元座標データ3DCD1_Aが有する8つの3次元座標が、それぞれ(0,0,0)、(0,5,0)、(5,5,0)、(5,0,0)、(0,0,1)、(0,5,1)、(5,5,1)、及び(5,0,1)である例を示している。すなわち、直方体の下面の頂点の位置を示す4つの3次元座標ではz座標を“0”とし、上面の頂点の位置を示す4つの3次元座標ではz座標を“1”としている。 Figure 8A shows an example in which a transistor Tr is provided in block BK_A without being stacked. Figure 8A shows an example in which 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). That is, the z coordinate is set to "0" in the four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped, and the z coordinate is set to "1" in the four three-dimensional coordinates indicating the positions of the vertices of the top surface.
図8Bでは、ブロックBK_Bに、ブロックBK_Aと同様にトランジスタTrが積層されずに設けられる例を示している。図8Bでは、3次元座標データ3DCD1_Bが有する8つの3次元座標が、それぞれ(0,0,0)、(0,5,0)、(5,5,0)、(5,0,0)、(0,0,1)、(0,5,1)、(5,5,1)、及び(5,0,1)である例を示している。すなわち、ブロックBK_Aと同様に、直方体の下面の頂点の位置を示す4つの3次元座標ではz座標を“0”とし、上面の頂点の位置を示す4つの3次元座標ではz座標を“1”としている。 Figure 8B shows an example in which a transistor Tr is provided in block BK_B without being stacked, similar to block BK_A. Figure 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). That is, similar to block BK_A, the z coordinate is "0" in the four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped, and the z coordinate is "1" in the four three-dimensional coordinates indicating the positions of the vertices of the top surface.
図8Cでは、ブロックBK_Cに、トランジスタTrが2層積層して設けられる例を示している。図8Cでは、3次元座標データ3DCD1_Cが有する8つの3次元座標が、それぞれ(0,0,0)、(0,4,0)、(7,4,0)、(7,0,0)、(0,0,2)、(0,4,2)、(7,4,2)、及び(7,0,2)である例を示している。すなわち、直方体の下面の頂点の位置を示す4つの3次元座標ではz座標を“0”とし、上面の頂点の位置を示す4つの3次元座標ではz座標を“2”としている。 Figure 8C shows an example in which transistors Tr are stacked in two layers in block BK_C. Figure 8C shows an example in which 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 coordinate of the four three-dimensional coordinates indicating the positions of the vertices of the bottom surface of the rectangular parallelepiped is "0", and the z coordinate of the four three-dimensional coordinates indicating the positions of the vertices of the top surface is "2".
なお、図8A、図8B、及び図8Cでは、3次元座標データ3DCD1が有する8つの3次元座標のうち、直方体の下面の頂点の位置を示す4つの3次元座標において、z座標を“0”とする例を示しているが、当該z座標を“0”としなくてもよい。この場合、例えば直方体の上面の頂点のz座標と、下面の頂点のz座標と、の差がトランジスタTrの積層数となるようにz座標を設定できる。例えば、直方体の下面の頂点のz座標を“−1”とする場合、図8A及び図8Bに示す例では直方体の上面の頂点のz座標を“0”とし、図8Cに示す例では直方体の上面の頂点のz座標を“1”とすることができる。なお、例えば直方体の上面の頂点のz座標と、下面の頂点のz座標と、の差が、トランジスタTrの積層数と等しくなくてもよい。この場合であっても、例えば直方体の上面の頂点のz座標と、下面の頂点のz座標と、の差は、トランジスタTrの積層数と比例することが好ましい。 8A, 8B, and 8C show an example in which the z coordinate is set to "0" in four three-dimensional coordinates indicating the positions of the vertices of the lower surface of the rectangular parallelepiped among the eight three-dimensional coordinates contained in the three-dimensional coordinate data 3DCD1, but the z coordinate does not have to be set to "0". In this case, for example, the z coordinate can be set so that the difference between the z coordinate of the vertex of the upper surface of the rectangular parallelepiped and the z coordinate of the vertex of the lower surface is the number of stacked layers of the transistor Tr. For example, when the z coordinate of the vertex of the lower surface of the rectangular parallelepiped is set to "-1", the z coordinate of the vertex of the upper surface of the rectangular parallelepiped can be set to "0" in the example shown in FIG. 8A and FIG. 8B, and the z coordinate of the vertex of the upper surface of the rectangular parallelepiped can be set to "1" in the example shown in FIG. For example, the difference between the z coordinate of the vertex of the upper surface of the rectangular parallelepiped and the z coordinate of the vertex of the lower surface does not have to be equal to the number of stacked layers of the transistor Tr. Even in this case, it is preferable that the difference between the z coordinate of the vertex of the upper surface of the rectangular parallelepiped and the z coordinate of the vertex of the lower surface is proportional to the number of stacked transistors Tr.
[ステップS3]
ステップS3において、プロンプトデータ生成部123は、プロンプトデータPPTDを生成する。図9Aは、ステップS3を模式的に示すブロック図である。図9Aに示すように、例えば記憶部110に記憶されている制約条件データRSTDと、ステップS2で座標データ生成部121が生成した3次元座標データ3DCD1と、がプロンプトデータ生成部123に送信される。プロンプトデータ生成部123は、3次元座標データ3DCD1、及び制約条件データRSTDに基づいてプロンプトデータPPTDを生成する。
[Step S3]
In step S3, the prompt
図9Bは、プロンプトデータPPTDのデータ構造の一例を示す模式図である。プロンプトデータPPTDは、指示文データDSDと、配置領域データARDと、3次元座標データ3DCD1と、制約条件データRSTDと、を有する。図9Bでは、プロンプトデータPPTDが、3次元座標データ3DCD1として、図8Aに示す3次元座標データ3DCD1_A、図8Bに示す3次元座標データ3DCD1_B、及び図8Cに示す3次元座標データ3DCD1_Cを有する例を示している。プロンプトデータPPTDは、自然言語で記載された文章による指示書を示すデータである。 Figure 9B is a schematic diagram showing an example of the data structure of prompt data PPTD. Prompt data PPTD has instruction data DSD, placement area data ARD, three-dimensional coordinate data 3DCD1, and constraint condition data RSTD. Figure 9B shows an example in which prompt data PPTD has, as three-dimensional coordinate data 3DCD1, three-dimensional coordinate data 3DCD1_A shown in Figure 8A, three-dimensional coordinate data 3DCD1_B shown in Figure 8B, and three-dimensional coordinate data 3DCD1_C shown in Figure 8C. Prompt data PPTD is data showing instructions written in a sentence in natural language.
配置領域データARDは、ブロックBKが配置可能な領域である配置領域を示すデータである。配置領域は、例えば3次元座標によって示すことができる。図9Bでは、配置領域を直方体とする例を示しており、配置領域データARDが8つの3次元座標を有する例を示している。また、図9Bでは、配置領域データARDが有する8つの3次元座標が、それぞれ(0,0,0)、(0,12,0)、(12,12,0)、(12,0,0)、(0,0,2)、(0,12,2)、(12,12,2)、及び(12,0,2)である例を示している。 The placement area data ARD is data that indicates a placement area, which is an area in which blocks BK can be placed. The placement area can be indicated 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).
配置領域は、例えばステップS1において情報端末20のユーザが指定できる。この場合、配置領域データARDは、情報端末20から受付部101を介してプロンプトデータ生成部123に送信される。又は、配置領域データARDをあらかじめ記憶部110に記憶させておいてもよい。この場合、例えばステップS1において、情報端末20のユーザが、記憶部110に記憶されている配置領域データARDを指定し、指定した配置領域データARDを受付部101が受け付けることができる。なお、情報端末20のユーザが配置領域データARDを指定せず、プロンプトデータ生成部123が配置領域データARDを指定してもよい。また、座標データ生成部121が、例えば3次元座標データ3DCD1に基づいて配置領域データARDを生成してもよい。
The placement area can be specified by the user of the
制約条件データRSTDは、ブロックBKの配置の制約条件が自然言語で記載されたデータである。図9Bに示す例では、制約条件データRSTDは、ブロックBK_A、ブロックBK_B、及びブロックBK_Cの配置において満たすべき制約条件を示している。制約条件の一例として、「配置領域内に配置する」、「ブロックBK_A、ブロックBK_B、及びブロックBK_Cは回転しない」、「ブロックBK_BはブロックBK_A上に重ねる」等が挙げられる。なお、後の工程で言語モデルが生成する応答データに関する事項を、制約条件として示してもよい。例えば、ブロックBK_A、ブロックBK_B、及びブロックBK_Cの配置位置の案の記載形式を、制約条件として示してもよい。例えば、「ブロックBK_A、ブロックBK_B、及びブロックBK_Cの頂点座標を(x,y,z)の形式で記載する」、「x,y,zはそれぞれ0以上の整数とする」等の条件を、制約条件として記載してもよい。 The constraint data RSTD is data in which constraints on the placement of the blocks BK are written in natural language. In the example shown in FIG. 9B, the constraint data RSTD indicates constraints that must be satisfied in the placement of the blocks BK_A, BK_B, and BK_C. Examples of constraints include "place within the placement area," "do not rotate the blocks BK_A, BK_B, and BK_C," and "place the block BK_B on the block BK_A." Note that items related to the response data generated by the language model in a later process may be indicated as constraints. For example, the description format of the proposed placement positions of the blocks BK_A, BK_B, and BK_C may be indicated as constraints. For example, conditions such as "describe the vertex coordinates of the blocks BK_A, BK_B, and BK_C in the (x, y, z) format," and "x, y, and z are integers equal to or greater than 0" may be indicated as constraints.
指示文データDSDは、言語モデル、具体的には情報処理装置40の言語モデルに、ブロックBKの配置位置の案を提示させるための指示文を示すデータである。指示文データDSDは、例えば図9Bに示すブロックBK_A、ブロックBK_B、及びブロックBK_Cの配置位置の案を提示させるための指示文を示す。当該配置位置の案は、制約条件データRSTDが示す制約条件を満たすように、配置領域データARDが示す配置領域へブロックBK_A、ブロックBK_B、及びブロックBK_Cを配置する案とすることができる。指示文は、例えば「以下の頂点座標で示した配置領域の中にブロックBK_A、ブロックBK_B、及びブロックBK_Cを配置したい。制約条件を参考に配置してください。」とすることができる。
The instruction data DSD is data indicating an instruction for causing a language model, specifically the language model of the
指示文データDSDは、あらかじめ記憶部110に記憶させることができる。この場合、ステップS3において、指示文データDSDが記憶部110からプロンプトデータ生成部123に送信される。
The instruction sentence data DSD can be stored in advance in the
図9Bは、プロンプトデータPPTDが、欄として「#指示文」、「#配置領域X」、「#ブロックBK_A,BK_B,BK_C」、及び「#制約条件」を有する例を示している。図9Bに示す例では、「#指示文」欄には、指示文データDSDが示す指示文が記載される。「#配置領域X」欄には、配置領域データARDが示す3次元座標が、“X=[ ]”の“[ ]”の中に記載される。「#ブロックBK_A,BK_B,BK_C」欄には、3次元座標データ3DCD1_Aが示す3次元座標、3次元座標データ3DCD1_Bが示す3次元座標、及び3次元座標データ3DCD1_Cが示す3次元座標が、それぞれ“A=[ ]”、“B=[ ]”、及び“C=[ ]”の“[ ]”の中に記載される。「#制約条件」欄には、制約条件データRSTDが示す制約条件が記載される。 Figure 9B shows an example where prompt data PPTD has the columns "#instruction", "#placement area X", "#blocks BK_A, BK_B, BK_C", and "#constraint". In the example shown in Figure 9B, the "#instruction" column lists the instruction indicated by the instruction data DSD. In the "#placement area X" column, the three-dimensional coordinate indicated by the placement area data ARD is listed in the "[ ]" of "X = [ ]". In the "#blocks BK_A, BK_B, BK_C" column, 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 are listed in the "[ ]" of "A = [ ]", "B = [ ]", and "C = [ ]", respectively. The "#Constraint" column lists the constraints indicated by the constraint data RSTD.
[ステップS4]
ステップS4において、プロンプトデータ生成部123は、プロンプトデータPPTDを情報処理装置40に送信する。これにより、情報処理装置40は、プロンプトデータPPTDに基づき、言語モデルを用いて応答データRPDを生成する。応答データRPDは、例えばプロンプトデータPPTDに基づき言語モデルが提示した、ブロックBKの配置位置の案を有する。応答データRPDは、例えばブロックBK_A、ブロックBK_B、及びブロックBK_Cの配置位置の案を有する。
[Step S4]
In step S4, the
図10Aは、ステップS4を模式的に示すブロック図である。図10Aに示すように、ステップS3においてプロンプトデータ生成部123が生成したプロンプトデータPPTDは、出力部103を介して情報処理装置40に出力される。情報処理装置40が言語モデルを用いて生成した応答データRPDは、設計支援装置100の受付部101が受け付ける。受付部101は、応答データRPDをレイアウトデータ生成部125に送信する。以上により、設計支援装置100、具体的にはレイアウトデータ生成部125が、応答データRPDを取得する。ここで、応答データRPDは、記憶部110に記憶されてもよい。
FIG. 10A is a block diagram showing step S4. As shown in FIG. 10A, the prompt data PPTD generated by the prompt
図10Bは、応答データRPDのデータ構造の一例を示す模式図である。応答データは、3次元座標データ3DCD2を有する。図10Bでは、応答データRPDが、3次元座標データ3DCD2として、3次元座標データ3DCD2_A、3次元座標データ3DCD2_B、及び3次元座標データ3DCD2_Cを有する例を示している。 Figure 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. Figure 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.
3次元座標データ3DCD2は、ブロックBKが配置される位置を3次元座標で示すデータである。具体的には、3次元座標データ3DCD2_A、3次元座標データ3DCD2_B、及び3次元座標データ3DCD2_Cは、それぞれブロックBK_A、ブロックBK_B、及びブロックBK_Cが配置される位置を3次元座標で示すデータである。ブロックBKの配置位置の案は、3次元座標データ3DCD2により示される。具体的には、ブロックBK_A、ブロックBK_B、及びブロックBK_Cの配置位置の案は、それぞれ3次元座標データ3DCD2_A、3次元座標データ3DCD2_B、及び3次元座標データ3DCD2_Cにより示される。 The three-dimensional coordinate data 3DCD2 is data that indicates the position where the block BK is to be placed in three-dimensional coordinates. Specifically, the three-dimensional coordinate data 3DCD2_A, the three-dimensional coordinate data 3DCD2_B, and the three-dimensional coordinate data 3DCD2_C are data that indicate the positions where the blocks BK_A, BK_B, and BK_C are to be placed, respectively, in three-dimensional coordinates. The proposed placement position of the block BK is indicated by the three-dimensional coordinate data 3DCD2. Specifically, the proposed placement positions of the blocks BK_A, BK_B, and BK_C are indicated by the three-dimensional coordinate data 3DCD2_A, the three-dimensional coordinate data 3DCD2_B, and the three-dimensional coordinate data 3DCD2_C, respectively.
図10Bでは、3次元座標データ3DCD2が、8つの3次元座標を有する例を示している。そして、3次元座標データ3DCD2_Aが有する8つの3次元座標が、それぞれ(0,0,0)、(0,5,0)、(5,5,0)、(5,0,0)、(0,0,1)、(0,5,1)、(5,5,1)、及び(5,0,1)である例を示している。また、3次元座標データ3DCD2_Bが有する8つの3次元座標が、それぞれ(0,0,1)、(0,5,1)、(5,5,1)、(5,0,1)、(0,0,2)、(0,5,2)、(5,5,2)、及び(5,0,2)である例を示している。さらに、3次元座標データ3DCD2_Cが有する8つの3次元座標が、それぞれ(5,0,0)、(5,4,0)、(12,4,0)、(12,0,0)、(5,0,2)、(5,4,2)、(12,4,2)、及び(12,0,2)である例を示している。なお、図10Bでは、3次元座標データ3DCD2_Aが示す3次元座標、3次元座標データ3DCD2_Bが示す3次元座標、及び3次元座標データ3DCD2_Cが示す3次元座標が、それぞれ“A=[ ]”、“B=[ ]”、及び“C=[ ]”の“[ ]”の中に記載される例を示している。 Figure 10B shows an example in which the three-dimensional coordinate data 3DCD2 has eight three-dimensional coordinates. The example shows an example in which 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). The example shows an example in which 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). Furthermore, an example is shown 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). 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 in the brackets "[ ]" of "A=[ ]", "B=[ ]", and "C=[ ]", respectively.
図10Cは、情報処理装置40の言語モデルが提示する、ブロックBKの配置位置の案の一例を示す模式図である。図10Cでは、具体的には、ブロックBK_A、ブロックBK_B、及びブロックBK_Cが、それぞれ図10Bに示す3次元座標データ3DCD2_A、3次元座標データ3DCD2_B、及び3次元座標データ3DCD2_Cにより示される位置に配置される例を示している。
Figure 10C is a schematic diagram showing an example of a proposed arrangement position of block BK presented by the language model of
図10Cでは、ブロックBK_Bが、ブロックBK_A上に配置される例を示している。また、図10Cでは、ブロックBK_A、ブロックBK_B、及びブロックBK_Cが互いに接する領域を有する例を示している。すなわち、すなわちブロックBK_A、ブロックBK_B、及びブロックBK_Cが、いずれも他のブロックBKと離れない例を示している。また、図10Cでは、ブロックBK_A、ブロックBK_B、及びブロックBK_Cがいずれも直方体として示される例を示している。そして、ブロックBK_Aの下面とブロックBK_Cの下面が同一平面上に設けられ、ブロックBK_Bの上面とブロックBK_Cの上面が同一平面上に設けられる例を示している。 Figure 10C shows an example where block BK_B is placed on block BK_A. Also, Figure 10C shows an example where block BK_A, block BK_B, and block BK_C have areas where they are in contact with each other. In other words, an example where block BK_A, block BK_B, and block BK_C are not separated from the other blocks BK. Also, Figure 10C shows an example where block BK_A, block BK_B, and block BK_C are all shown as rectangular parallelepipeds. And, an example where the bottom surface of block BK_A and the bottom surface of block BK_C are arranged on the same plane, and the top surface of block BK_B and the top surface of block BK_C are arranged on the same plane.
以上のように、本発明の一態様の情報処理方法では、ステップS2において座標データ生成部121が2次元座標データ2DCD1を3次元座標データ3DCD1に変換した後に、ステップS4において情報処理装置40の言語モデルがブロックBKの配置位置の案を提示する。これにより、言語モデルは、図10Cに示すように、2つ以上のブロックBKを積層する案を提示できる。なお、本発明の一態様の情報処理方法では、2次元座標データ2DCD1の3次元座標データ3DCD1への変換を行わなくてもよい。すなわち、ステップS2を省略してもよい。この場合、図9Bに示すプロンプトデータPPTDが有する配置領域データARDは、2次元座標、例えば4つの2次元座標を有することができる。また、3次元座標データ3DCD1の代わりに、2次元座標データ2DCD1をプロンプトデータPPTDに含めることができる。さらに、図10Bに示す応答データRPDが有する座標データは、3次元座標データ3DCD2ではなく2次元座標データとすることができる。なお、2次元座標データ2DCD1の3次元座標データ3DCD1への変換を行わない場合、設計支援装置100は座標データ生成部121を有さなくてもよい。
As described above, in the information processing method according to one aspect of the present invention, after the coordinate
[ステップS5]
ステップS5において、レイアウトデータ生成部125は、応答データRPDに基づきレイアウトデータLTD2を生成する。レイアウトデータ生成部125は、具体的には、応答データRPDが有する、ブロックBKの配置位置の案に基づき、レイアウトデータLTD2を生成する。レイアウトデータLTD2は、ブロックBKが配置されたレイアウトを示す。
[Step S5]
In step S5, the layout
図11Aは、ステップS5を模式的に示すブロック図である。図11Aに示すように、ステップS5においてレイアウトデータ生成部125が生成したレイアウトデータLTD2は、記憶部110に記憶される。
FIG. 11A is a block diagram showing step S5. As shown in FIG. 11A, the layout data LTD2 generated by the layout
図11Bは、レイアウトデータLTD2のデータ構造の一例を示す模式図である。レイアウトデータLTD2は、2次元座標データ2DCD2、及びレイヤデータLYD2を有する。 FIG. 11B is a schematic diagram showing an example of the data structure of layout data LTD2. The layout data LTD2 has two-dimensional coordinate data 2DCD2 and layer data LYD2.
2次元座標データ2DCD2は、図10Bに示す応答データRPDが有する3次元座標データ3DCD2に基づき生成される。2次元座標データ2DCD2は、x座標、及びy座標を有し、z座標を有さない。2次元座標データ2DCD2は、応答データRPDが有する配置位置の案において、いずれかのブロックBKが配置される領域を示すデータである。2次元座標データ2DCD2は、配置位置の案においてブロックBKが配置された領域の平面視における図形を示すことができる。2次元座標データ2DCD2は、具体的には、当該図形の各頂点の位置を示す2次元座標を有することができる。ここで、2つ以上の3次元座標データ3DCD2が有する3次元座標に基づき生成された2次元座標、例えば当該3次元座標のx座標、及びy座標からなる2次元座標は、2次元座標データ2DCD2に含めなくてよい。 The two-dimensional coordinate data 2DCD2 is generated based on the three-dimensional coordinate data 3DCD2 contained 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 any block BK is placed in the proposed placement position contained in the response data RPD. The two-dimensional coordinate data 2DCD2 can indicate a figure in a planar view of the area in which the block BK is placed in the proposed placement position. Specifically, the two-dimensional coordinate data 2DCD2 can have two-dimensional coordinates indicating the positions of each vertex of the figure. Here, two-dimensional coordinates generated based on three-dimensional coordinates contained 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.
図10B、図10C、及び図11Bに示す例では、ブロックBK_A、及びブロックBK_Bは、平面視において、2次元座標(0,0)、(0,5)、(5,5)、及び(5,0)で示される領域、具体的にはこれら4点を頂点とした第1の四角形内に配置される。また、ブロックBK_Cは、平面視において、2次元座標(5,0)、(5,4)、(12,4)、及び(12,0)で示される領域、具体的にはこれら4点を頂点とした第2の四角形内に配置される。そして、2次元座標データ2DCD2は、第1の四角形と、第2の四角形と、を合わせた図形の頂点を示す2次元座標である(0,0)、(0,5)、(5,5)、(5,4)、(12,4)、及び(12,0)を有する。 In the examples shown in Figures 10B, 10C, and 11B, blocks BK_A and BK_B are arranged in a region indicated by two-dimensional coordinates (0,0), (0,5), (5,5), and (5,0) in plan view, specifically within a first rectangle with these four points as vertices. Block BK_C is arranged in a region indicated by two-dimensional coordinates (5,0), (5,4), (12,4), and (12,0) in plan view, specifically within a second rectangle with these four points as 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 that combines the first rectangle and the second rectangle.
ここで、3次元座標(5,0,0)は、3次元座標データ3DCD2_A及び3次元座標データ3DCD2_Cが有する。また、3次元座標(5,0,2)は、3次元座標データ3DCD2_B及び3次元座標データ3DCD2_Cが有する。前述のように、2つ以上の3次元座標データ3DCD2が有する3次元座標に基づき生成された2次元座標は、2次元座標データ2DCD2に含めなくてよい。以上より、2次元座標(5,0)は、2次元座標データ2DCD2には含まれない。なお、2次元座標(5,0)を2次元座標データ2DCD2に含めてもよい。例えば、図10Bに示す3次元座標3DCD2に含まれる3次元座標からz座標を省略した2次元座標を、全て2次元座標データ2DCD2に含めてもよい。 Here, the three-dimensional coordinate (5,0,0) is included in the three-dimensional coordinate data 3DCD2_A and the three-dimensional coordinate data 3DCD2_C. The three-dimensional coordinate (5,0,2) is included in the three-dimensional coordinate data 3DCD2_B and the 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. For the above, the two-dimensional coordinate (5,0) is not included in the two-dimensional coordinate data 2DCD2. Note that 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.
2次元座標データ2DCD2は、レイアウトデータLTD2が示すレイアウトが形成される領域を示す。よって、2次元座標データ2DCD2は、レイアウト領域を示すということができる。レイアウトデータLTD2は、上述の配置位置の案に基づいてブロックBKが配置されたレイアウトを示す。レイアウトデータLTD2は、例えば、3次元座標データ3DCD2_A、3次元座標データ3DCD2_B、及び3次元座標データ3DCD2_Cが有するx座標、及びy座標が示す領域に、ブロックBK_A、ブロックBK_B、及びブロックBK_Cが配置されたレイアウトを示す。 The two-dimensional coordinate data 2DCD2 indicates the area in which the layout indicated by the layout data LTD2 is formed. Therefore, it can be said that the two-dimensional coordinate data 2DCD2 indicates the layout area. The layout data LTD2 indicates a layout in which the blocks BK are arranged based on the above-mentioned arrangement position proposal. The layout data LTD2 indicates, for example, a layout in which the blocks BK_A, BK_B, and BK_C are arranged in the area indicated by the x coordinate and y coordinate of the three-dimensional coordinate data 3DCD2_A, the three-dimensional coordinate data 3DCD2_B, and the three-dimensional coordinate data 3DCD2_C.
レイヤデータLYD2は、2次元座標データ2DCD2で示されるレイアウト領域のレイアウトを、レイヤごとに示すデータである。レイヤデータLYD2は、レイヤ202を有する。レイヤデータLYD2は、1つ又は複数のレイヤ202を有することができる。
The layer data LYD2 is data that indicates the layout of the layout area indicated by the two-dimensional coordinate data 2DCD2 for each layer. The layer data LYD2 has a
レイヤ202には、名称が付与される。図11Bでは、レイヤデータLYD2が、名称が“LYA1”のレイヤ202と、名称が“LYA2”のレイヤ202と、名称が“LYB1”のレイヤ202と、名称が“LYB2”のレイヤ202と、を有する例を示している。
名称が“LYA1”のレイヤ202、及び名称が“LYA2”のレイヤ202には、ブロックBK_Aのレイヤごとのレイアウト、及びブロックBK_Cのレイヤごとのレイアウトが含まれる。すなわち、レイアウトデータLTD2が示すレイアウト211、及びレイアウト212には、ブロックBK_Aのレイヤごとのレイアウト、及びブロックBK_Cのレイヤごとのレイアウトが含まれる。また、名称が“LYB1”のレイヤ202、及び名称が“LYB2”のレイヤ202には、ブロックBK_Bのレイヤごとのレイアウト、及びブロックBK_Cのレイヤごとのレイアウトが含まれる。すなわち、レイアウトデータLTD2が示すレイアウト221、及びレイアウト222には、ブロックBK_Bのレイヤごとのレイアウト、及びブロックBK_Cのレイヤごとのレイアウトが含まれる。
The
以上より、名称が“LYA1”のレイヤ202、及び名称が“LYA2”のレイヤ202では、1つのレイアウトにブロックBK_Aのレイヤごとのレイアウト、及びブロックBK_Cのレイヤごとのレイアウトが含まれる。また、名称が“LYB1”のレイヤ202、及び名称が“LYB2”のレイヤ202では、1つのレイアウトにブロックBK_Bのレイヤごとのレイアウト、及びブロックBK_Cのレイヤごとのレイアウトが含まれる。
As a result, in the
図11Bに示す例では、名称が“LYA1”のレイヤ202は、図5Aに示す名称が“LYA1”のレイヤ201Aのレイアウト、及び図5Cに示す名称が“LYA1”のレイヤ201Cのレイアウトを含む。また、名称が“LYA2”のレイヤ202は、名称が“LYA2”のレイヤ201Aのレイアウト、及び名称が“LYA2”のレイヤ201Cのレイアウトを含む。また、名称が“LYB1”のレイヤ202は、図5Bに示す名称が“LYA1”のレイヤ201Bのレイアウト、及び図5Cに示す名称が“LYB1”のレイヤ201Cのレイアウトを含む。さらに、名称が“LYB2”のレイヤ202は、名称が“LYA2”のレイヤ201Bのレイアウト、及び名称が“LYB2”のレイヤ201Cのレイアウトを含む。以上より、図11Bに示す例では、レイヤデータLYD2に含まれるレイヤ202は、それぞれ、レイヤ201Aのレイアウト、レイヤ201Bのレイアウト、及びレイヤ201Cのレイアウトの少なくとも1つを含む。
In the example shown in FIG. 11B,
図11Bに示すレイヤ202の名称は、レイヤ201に基づき付与できる。レイヤ202の名称は、具体的には、レイヤ201の名称のいずれかとすることができる。例えば、図11Bに示すレイヤ202の名称は、レイヤ201A、レイヤ201B、及びレイヤ201Cの少なくとも1つと同一の名称とすることができる。
The name of
ここで、図10Cに示すように、ブロックBK_AとブロックBK_Bは積層して配置される。よって、ブロックBK_Aが有するレイヤと、ブロックBK_Bが有するレイヤと、は異なるレイヤ202とする。しかしながら、図4B、図5A、及び図5Bに示す例では、ブロックBK_Bが有するレイヤ201Bのレイヤ名が、ブロックBK_Aが有するレイヤ201Aのレイヤ名と同一である。よって、図11Bに示す例において、ブロックBK_Bのレイアウトを含むレイヤ202の名称として、レイヤ201Bの名称をそのまま用いると、ブロックBK_Bのレイアウトを含むレイヤ202の名称が、ブロックBK_Aのレイアウトを含むレイヤ202の名称と同一となる。この場合、ブロックBK_Aのレイアウトを含むレイヤ202と、ブロックBK_Bのレイアウトを含むレイヤ202と、が同一のレイヤであるとみなされる場合がある。例えば、レイアウト211とレイアウト212が同一のレイヤのレイアウトとみなされ、レイアウト221とレイアウト222が同一のレイヤのレイアウトとみなされる場合がある。
Here, as shown in FIG. 10C, blocks BK_A and BK_B are arranged in a stacked manner. Therefore, the layer that block BK_A has and the layer that block BK_B has are
そこで、本発明の一態様の設計支援方法では、例えばブロックBK_Bのレイアウトを含むレイヤ202のうち、少なくとも一部のレイヤ202の名称を、レイヤ201Bの名称と異ならせる。別言すると、例えばレイヤ201Bのレイアウトを含むレイヤ202のうち、少なくとも一部のレイヤ202の名称を、レイヤ201Bの名称と異ならせる。これにより、ブロックBK_Aのレイアウトを含むレイヤ202と、ブロックBK_Bのレイアウトを含むレイヤ202と、が同一のレイヤであるとみなされることを防ぐことができる。なお、図11Bに示す例では、ブロックBK_Bは、図5Cに示すブロックBK_Cが有するレイヤ201Cと同一のレイヤにレイアウトされる。よって、ブロックBK_Bのレイアウトを含むレイヤ202の名称は、レイヤ201Cと同一の名称とする。図11Bに示す例では、ブロックBK_Bのレイアウトを含むレイヤ202の名称として、レイヤ201Cの名称に含まれる“LYB1”、及び“LYB2”を挙げている。なお、ブロックBK_Aのレイアウトを含むレイヤ202の名称も、レイヤ201Cと同一の名称とする。
Therefore, in a design support method according to one aspect of the present invention, for example, among
例えば、レイアウトデータ生成部125が、3次元座標データ3DCD2が示すz座標の最小値が異なるブロックBKを検出する。図10Bに示す例では、3次元座標データ3DCD2_A、及び3次元座標データ3DCD2_Cのz座標の最小値は0である。一方、3次元座標データ3DCD2_Bのz座標の最小値は1である。よって、3次元座標データ3DCD2_Bのz座標の最小値は、3次元座標データ3DCD2_A、及び3次元座標データ3DCD2_Cのz座標の最小値と異なる。よって、レイアウトデータ生成部125は、ブロックBK_Bを検出する。
For example, the layout
レイアウトデータ生成部125は、検出したブロックBKのレイアウトを含むレイヤ202のうち、少なくとも一部のレイヤ202の名称を、当該レイアウトを含むレイヤ201の名称と異ならせることができる。図11Bに示す例では、ブロックBK_Bのレイアウトを含むレイヤ202のうち、少なくとも一部のレイヤ202の名称を、レイヤ201Bの名称と異ならせることができる。別言すると、例えばレイヤ201Bのレイアウトを含むレイヤ202のうち、少なくとも一部のレイヤ202の名称を、レイヤ201Bの名称と異ならせることができる。これにより、例えば異なるレイヤ202のレイアウトが同一のレイヤ202に含まれるとみなされることを防ぐことができる。
The layout
以上により、本発明の一態様の設計支援方法では、レイアウトデータLTD2が有する、レイアウト領域を示す座標を2次元座標とすることができる。すなわち、3次元座標データ3DCD2が有するz座標が示す情報をレイヤデータLYD2に含めることができるため、レイアウト領域を示す座標データは、z座標が省略された2次元座標データとすることができる。図11Bに示す例では、ブロックBK_AとブロックBK_Bが積層して配置されるという情報を、レイヤデータLYD2に含めることができる。よって、レイアウト領域を示す座標データを2次元座標データとしても、ブロックBK_AとブロックBK_Bが同一のレイヤ202に形成されるとみなされることはない。
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 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 two-dimensional coordinate data in which the z coordinate is omitted. In the example shown in FIG. 11B, the information that blocks BK_A and BK_B are arranged in a stacked manner can be included in the layer data LYD2. Therefore, even if the coordinate data indicating the layout area is two-dimensional coordinate data, blocks BK_A and BK_B are not considered to be formed in the
[ステップS6]
ステップS6において、検証部127は、レイアウトデータLTD2が示すレイアウトの検証を行う。図12Aは、ステップS6を模式的に示すブロック図である。図12Aに示すように、例えば記憶部110に記憶されているレイアウトデータLTD2が、検証部127に送信される。検証部127は、検証として、例えば物理検証を行うことができる。物理検証では、例えば設計したレイアウトが設計ルールに違反していないことを確認するためのDRC(Design Rule Check)を行うことができる。例えば、同一のレイヤ202に形成される配線間の距離が所望の大きさになっていること、及び接続されない2つの配線が接していないこと等を検証できる。検証部127が物理検証等の検証を行うことにより、例えばレイアウトデータLTD2が示すレイアウトの形状が設計ルールを満たしていること、及び当該レイアウトが所望の接続関係となっていることを検証できる。
[Step S6]
In step S6, the
[ステップS7]
ステップS7において、検証部127は、検証結果に基づき、レイアウトデータLTD2の修正の要否を判断する。検証部127は、具体的には、検証結果に基づき、ブロックBKを再配置する必要があるか否かを判断する。
[Step S7]
In step S7, the
[ステップS8]
レイアウトデータLTD2を修正する、具体的にはブロックBKを再配置する場合、検証部127は、ステップS8に示す処理を行う。ステップS8において、検証部127は、例えば制約条件の修正を、情報端末20のユーザに促す。例えば、検証結果を示すデータ、レイアウトデータLTD2、及び制約条件データRSTDを、出力部103を介して情報端末20に出力することにより、制約条件の修正を情報端末20のユーザに促す。
[Step S8]
When the layout data LTD2 is modified, specifically when the block BK is rearranged, the
ユーザが例えば制約条件を修正した場合は、受付部101が、修正された制約条件を示す制約条件データRSTDを受け付ける。その後、ステップS3乃至ステップS6、及びステップS7が再度行われる。ステップS3乃至ステップS6、及びステップS7は、検証部127が、レイアウトデータLTD2が示すレイアウトが要件を満たしており、レイアウトデータLTD2の修正は不要と判断するまで行われる。なお、制約条件データRSTDの修正を、例えば検証部127が行ってもよい。この場合、情報端末20のユーザは、制約条件を修正しなくてもよい。
If the user modifies, for example, the constraint conditions, the receiving
なお、ステップS4において、情報処理装置40の言語モデルが、例えば制約条件データRSTDが示す制約条件を満たすようなブロックBKの配置位置の案を提示できない場合に、設計支援装置100はステップS8を行ってもよい。例えば、ステップS4において、情報処理装置40の言語モデルが、制約条件データRSTDが示す制約条件を満たすようなブロックBKの配置位置の案を提示できない場合、図10Bに示す応答データRPDは、ブロックBKを配置できない旨を示すデータを含めることができる。そして、例えばレイアウトデータ生成部125が、ブロックBKを配置できない旨を示すデータが応答データRPDに含まれることを検出した場合に、レイアウトデータ生成部125がステップS8を行うことができる。この場合、レイアウトデータ生成部125は、レイアウトデータLTD2の生成を行わず、例えば制約条件データRSTDが示す制約条件の修正を情報端末20のユーザに促す。
Note that in step S4, if the language model of the
ここで、ブロックBKを配置できない理由を情報端末20のユーザに提示すると、ユーザが制約条件を適切に修正しやすくなり好ましい。例えば、ステップS3において、図9Bに示す指示文データDSDに、ブロックBKを配置できない場合はその理由を提示させるための指示文を含める。これにより、当該理由を応答データRPDに含めることができる。例えば、指示文を「以下の頂点座標で示した配置領域の中にブロックBK_A、ブロックBK_B、及びブロックBK_Cを配置したい。制約条件を参考に配置してください。制約条件を満たすように配置できない場合は、配置できない理由を示してください。」とすることにより、ブロックBKを配置できない場合、その理由を応答データRPDに含めることができる。なお、制約条件データRSTDが示す制約条件だけでなく、例えば図9Bに示す配置領域データARDの修正を、情報端末20のユーザに促してもよい。
Here, it is preferable to present the reason why the block BK cannot be placed to the user of the
[ステップS9]
レイアウトデータLTD2を修正しない場合は、例えば検証部127が、レイアウトデータLTD2を設計支援装置100の外部に出力する。図12Bは、ステップS9を模式的に示すブロック図である。図12Bに示すように、記憶部110に記憶されているレイアウトデータLTD2が、出力部103を介して情報端末20に出力される。これにより、情報端末20のユーザが、レイアウトデータLTD2が示すレイアウトを確認できる。
[Step S9]
When the layout data LTD2 is not to be modified, for example, the
また、ステップS9では、レイアウトデータLTD2をデータベースに登録する。なお、設計支援装置100の外部にデータベースが設けられる場合、出力部103から出力されたレイアウトデータLTD2が、データベースに登録される。
Furthermore, in step S9, the layout data LTD2 is registered in a database. Note that, if a database is provided outside the
以上が本発明の一態様の設計支援方法の一例である。本発明の一態様の設計支援方法では、複数のブロックBKの配置を、言語モデルを用いて行うことができる。これにより、情報端末20のユーザは、例えばブロックBKの配置の制約条件を、自然言語で入力できる。よって、例えばEDAツールに熟練していなくても、ブロックBKの配置を行うことができる。したがって、本発明の一態様の設計支援方法により、設計業務の経験が浅い者でも回路設計を行うことができる。よって、本発明の一態様の設計支援方法は、利便性、有用性、又は信頼性に優れた設計支援方法とすることができる。
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
本実施の形態の中に示される複数の構成例は、適宜組み合わせることが可能である。 The multiple configuration examples shown in this embodiment can be combined as appropriate.
ARD:配置領域データ、BK:ブロック、BK_A:ブロック、BK_B:ブロック、BK_C:ブロック、DSD:指示文データ、PPTD:プロンプトデータ、RPD:応答データ、RSTD:制約条件データ、Tr:トランジスタ、10:設計支援システム、20:情報端末、20a:情報端末、20b:情報端末、20c:情報端末、20d:情報端末、30:ネットワーク、31:ネットワーク、40:情報処理装置、100:設計支援装置、101:受付部、103:出力部、110:記憶部、121:座標データ生成部、123:プロンプトデータ生成部、125:レイアウトデータ生成部、127:検証部、130:伝送部、201:レイヤ、201A:レイヤ、201B:レイヤ、201C:レイヤ、202:レイヤ、211:レイアウト、212:レイアウト、221:レイアウト、222:レイアウト ARD: placement area data, BK: block, BK_A: block, BK_B: block, BK_C: block, DSD: instruction 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 (10)
前記受付部は、第1のブロックのレイアウトを示す第1のレイアウトデータと、第2のブロックのレイアウトを示す第2のレイアウトデータと、制約条件データと、を受け付ける機能を有し、
前記第1のレイアウトデータは、前記第1のブロックがレイアウトされる第1の領域を示す、第1の2次元座標データを有し、
前記第2のレイアウトデータは、前記第2のブロックがレイアウトされる第2の領域を示す、第2の2次元座標データを有し、
前記座標データ生成部は、前記第1の2次元座標データを第1の3次元座標データに変換する機能、及び前記第2の2次元座標データを第2の3次元座標データに変換する機能を有し、
前記プロンプトデータ生成部は、指示文データと、前記第1の3次元座標データと、前記第2の3次元座標データと、配置領域データと、前記制約条件データと、を有するプロンプトデータを生成する機能を有し、
前記配置領域データは、配置領域を3次元座標によって示すデータであり、
前記指示文データは、言語モデルに、前記制約条件データが示す制約条件を満たす、前記第1のブロック、及び前記第2のブロックの前記配置領域への配置位置の案を提示させるための指示文を示すデータであり、
前記レイアウトデータ生成部は、前記配置位置の案に基づき、第3の領域のレイアウトを示す第3のレイアウトデータを、前記第1のブロックのレイアウトと、前記第2のブロックのレイアウトと、を含むように生成する機能を有し、
前記出力部は、前記第3のレイアウトデータを出力する機能を有する、設計支援装置。 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.
検証部を有し、
前記検証部は、前記第3のレイアウトデータが示すレイアウトの検証を行い、前記第3のレイアウトデータの修正の要否を判断する機能を有し、
前記受付部は、前記第3のレイアウトデータを修正する場合に、修正された制約条件データを受け付ける機能を有する、設計支援装置。 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 receiving unit has a function of receiving modified constraint condition data when the third layout data is modified.
前記検証は、物理検証である、設計支援装置。 In claim 2,
The design support apparatus, wherein the verification is physical verification.
前記第1のレイアウトデータは、1つ又は複数の第1のレイヤを有し、
前記第2のレイアウトデータは、1つ又は複数の第2のレイヤを有し、
前記第3のレイアウトデータは、1つ又は複数の第3のレイヤを有し、
前記第1のレイアウトデータは、前記第1の領域のレイアウトを、前記第1のレイヤごとに示し、
前記第2のレイアウトデータは、前記第2の領域のレイアウトを、前記第2のレイヤごとに示し、
前記第3のレイアウトデータは、前記第3の領域のレイアウトを、前記第3のレイヤごとに示し、
前記第3のレイヤは、前記第1のレイヤのレイアウト、及び前記第2のレイヤのレイアウトの少なくとも一方を含み、
前記第1のレイヤ、及び前記第2のレイヤのそれぞれには、名称が付与され、
前記レイアウトデータ生成部は、前記第1のレイヤの名称、及び前記第2のレイヤの名称に基づき、前記第3のレイヤに名称を付与する機能を有する、設計支援装置。 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.
前記配置位置の案は、前記第1のブロックの配置位置を示す第3の3次元座標データ、及び前記第2のブロックの配置位置を示す第4の3次元座標データを含み、
前記レイアウトデータ生成部は、前記第3の3次元座標データが示す高さ方向の座標の最小値が、前記第4の3次元座標データが示す高さ方向の座標の最小値と異なる場合に、前記第2のレイヤのレイアウトを含む前記第3のレイヤのうち、少なくとも一部の前記第3のレイヤの名称を、前記第2のレイヤの名称と異ならせる機能を有する、設計支援装置。 In claim 4,
the proposal of the arrangement position includes third three-dimensional coordinate data indicating the arrangement position of the first block and fourth three-dimensional coordinate data indicating the arrangement 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.
前記第1のレイアウトデータは、前記第1のブロックがレイアウトされる第1の領域を示す、第1の2次元座標データを有し、
前記第2のレイアウトデータは、前記第2のブロックがレイアウトされる第2の領域を示す、第2の2次元座標データを有し、
第2のステップにおいて、前記第1の2次元座標データを第1の3次元座標データに、前記第2の2次元座標データを第2の3次元座標データにそれぞれ変換し、
第3のステップにおいて、指示文データと、前記第1の3次元座標データと、前記第2の3次元座標データと、配置領域データと、前記制約条件データと、を有するプロンプトデータを生成し、
前記配置領域データは、配置領域を3次元座標によって示すデータであり、
前記指示文データは、言語モデルに、前記制約条件データが示す制約条件を満たす、前記第1のブロック、及び前記第2のブロックの前記配置領域への配置位置の案を提示させるための指示文を示すデータであり、
第4のステップにおいて、前記配置位置の案に基づき、第3の領域のレイアウトを示す第3のレイアウトデータを、前記第1のブロックのレイアウトと、前記第2のブロックのレイアウトと、を含むように生成し、
第5のステップにおいて、前記第3のレイアウトデータを出力する、設計支援方法。 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.
第6のステップにおいて、前記第3のレイアウトデータが示すレイアウトの検証を行い、前記第3のレイアウトデータの修正の要否を判断し、
前記第3のレイアウトデータを修正する場合は、第7のステップにおいて、修正された制約条件データを受け付けた後、前記第3のステップ、前記第4のステップ、及び前記第6のステップが再度行われる、設計支援方法。 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.
前記第1のレイアウトデータは、1つ又は複数の第1のレイヤを有し、
前記第2のレイアウトデータは、1つ又は複数の第2のレイヤを有し、
前記第3のレイアウトデータは、1つ又は複数の第3のレイヤを有し、
前記第1のレイアウトデータは、前記第1の領域のレイアウトを、前記第1のレイヤごとに示し、
前記第2のレイアウトデータは、前記第2の領域のレイアウトを、前記第2のレイヤごとに示し、
前記第3のレイアウトデータは、前記第3の領域のレイアウトを、前記第3のレイヤごとに示し、
前記第3のレイヤは、前記第1のレイヤのレイアウト、及び前記第2のレイヤのレイアウトの少なくとも一方を含み、
前記第1のレイヤ、及び前記第2のレイヤのそれぞれには、名称が付与され、
前記第4のステップにおいて、前記第1のレイヤの名称、及び前記第2のレイヤの名称に基づき、前記第3のレイヤに名称を付与する、設計支援方法。 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.
前記配置位置の案は、前記第1のブロックの配置位置を示す第3の3次元座標データ、及び前記第2のブロックの配置位置を示す第4の3次元座標データを含み、
前記第4のステップにおいて、前記第3の3次元座標データが示す高さ方向の座標の最小値が、前記第4の3次元座標データが示す高さ方向の座標の最小値と異なる場合に、前記第2のレイヤのレイアウトを含む前記第3のレイヤのうち、少なくとも一部の前記第3のレイヤの名称を、前記第2のレイヤの名称と異ならせる、設計支援方法。 In claim 9,
the proposal of the arrangement position includes third three-dimensional coordinate data indicating the arrangement position of the first block and fourth three-dimensional coordinate data indicating the arrangement 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.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023216218 | 2023-12-21 | ||
| JP2023-216218 | 2023-12-21 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025133868A1 true WO2025133868A1 (en) | 2025-06-26 |
Family
ID=96136510
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2024/062680 Pending WO2025133868A1 (en) | 2023-12-21 | 2024-12-16 | Design assistance device and design assistance method |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025133868A1 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000293552A (en) * | 1999-04-01 | 2000-10-20 | Nec Corp | Hardware design management device |
| JP2008084207A (en) * | 2006-09-28 | 2008-04-10 | Fujitsu Ltd | Placement model creation device, placement model creation method, placement model creation program, and device manufacturing method |
| JP2008217651A (en) * | 2007-03-07 | 2008-09-18 | Fujitsu Ltd | Design support apparatus, design support method, and program |
| US9613020B1 (en) * | 2014-09-15 | 2017-04-04 | Benko, LLC | Natural language user interface for computer-aided design systems |
-
2024
- 2024-12-16 WO PCT/IB2024/062680 patent/WO2025133868A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000293552A (en) * | 1999-04-01 | 2000-10-20 | Nec Corp | Hardware design management device |
| JP2008084207A (en) * | 2006-09-28 | 2008-04-10 | Fujitsu Ltd | Placement model creation device, placement model creation method, placement model creation program, and device manufacturing method |
| JP2008217651A (en) * | 2007-03-07 | 2008-09-18 | Fujitsu Ltd | Design support apparatus, design support method, and program |
| US9613020B1 (en) * | 2014-09-15 | 2017-04-04 | Benko, LLC | Natural language user interface for computer-aided design systems |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10037401B2 (en) | Methods of designing a layout of a semiconductor device including field effect transistor and methods of manufacturing a semiconductor device using the same | |
| USRE49780E1 (en) | Methods of designing a layout of a semiconductor device including field effect transistor and methods of manufacturing a semiconductor device using the same | |
| CN113826119B (en) | Computer vision of pure attention | |
| US9047437B2 (en) | Method, system and software for accessing design rules and library of design features while designing semiconductor device layout | |
| US9377680B2 (en) | Method and apparatus for integrated circuit layout | |
| US11392749B2 (en) | Integrated circuit layout generation method and system | |
| US12278181B2 (en) | Integrated circuits including via array and methods of manufacturing the same | |
| JP2010521035A (en) | Incremental analysis of layout design data | |
| CN115983166A (en) | Method for predicting characteristics of semiconductor device and computing device for performing the method | |
| TW202238429A (en) | Method of fabricating an analog integrated circuit | |
| US12086526B2 (en) | Methods and devices of correcting layout for semiconductor processes using machine learning | |
| CN118627434A (en) | Method, computer device and storage medium for optimizing digital logic circuit layout | |
| US20120204135A1 (en) | Method for fabricating a semiconductor device using a modeling algorithm to model the proximity effect from the sub-layer | |
| WO2025133868A1 (en) | Design assistance device and design assistance method | |
| US20060271903A1 (en) | Method and apparatus for generating layout pattern | |
| US7331026B2 (en) | Method and system for generating an initial layout of an integrated circuit | |
| US12222386B2 (en) | Method of generating device model and computing device performing the same | |
| Grzesiak-Kopec et al. | Computer-aided 3D ICs layout design | |
| US11387144B2 (en) | Semiconductor device and method of manufacturing the same | |
| US11449658B2 (en) | Methods of generating integrated circuit (IC) layout synthetic patterns and related computer program products | |
| CN116187253A (en) | Layout Versus Schematic (LVS) device extraction using pattern matching | |
| CN114662167A (en) | A layout method, device and equipment for node relationship penetration | |
| US20170083638A1 (en) | Method and apparatus for providing rule patterns on grids | |
| JP2025060442A (en) | Information processing system and information processing method | |
| WO2025088439A1 (en) | Information processing system and information processing method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24906680 Country of ref document: EP Kind code of ref document: A1 |