An integrated circuit design method and device, an electronic device, and a storage medium

By determining the position constraint rules of the target element according to the distribution of the target communication port in high-speed IC design and setting the placement range, the problem of cross-module path timing violations is solved, and the effect of reducing timing violations and improving design efficiency is achieved.

CN114676663BActive Publication Date: 2025-07-01HYGON INFORMATION TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202210254710.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-03-15
Publication Date
2025-07-01
Estimated Expiration
2042-03-15

AI Technical Summary

Technical Problem

In high-speed IC design, violations of cross-module path timing often occur due to unreasonable position of circuit components, resulting in violations of signal transmission timing.

Method used

By determining the position constraint rules of the target element according to the distribution of the target communication port reserved for the target element in the first circuit module at the edge of the first circuit module, and setting a corresponding placement range for the target element is ensured that the target element is within the placement range in the circuit design adjustment.

Benefits of technology

It effectively reduces timing violations of signal transmission between circuit modules, improves circuit design efficiency, and avoids the need for manual intervention by engineers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114676663B_ABST
    Figure CN114676663B_ABST
Patent Text Reader

Abstract

Embodiments of the present invention disclose an integrated circuit design method, device, electronic device, and computer-readable storage medium, which relate to the field of electronic design automation and can effectively reduce the timing violation situation in signal transmission between circuit modules. The method includes: determining a position constraint rule for a target component according to the distribution of target communication ports reserved for the target component at the edge of a first circuit module; wherein the target component is connected to at least one second circuit module through the target communication port, and the second circuit module is different from the first circuit module; setting a corresponding placement range for the target component according to the position constraint rule, so that the target component is located within the placement range during circuit design adjustment. The present invention is applicable to integrated circuit design.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of electronic design automation, and particularly to an integrated circuit design method and apparatus, an electronic device, and a storage medium. Background Art

[0002] In high-speed IC (Integrated Circuit) design, due to very tight timing, cross-module path timing violations often occur, and these violations are usually caused by unreasonable placement positions of circuit components. For example, as Figure 1 shown, an EDA (Electronic Design Automation) tool may optimize the port register Rio1 of circuit module 1 and other related registers R3, R4, R5, R6 inside the circuit module together, and optimize the port register Rio2 of circuit module 2 and other related registers R7, R8, R9, R10 inside the circuit module together, resulting in the two registers Rio1 and Rio2 for cross-module communication through the ports being too far apart, thus causing a timing violation. Summary of the Invention

[0003] In view of this, embodiments of the present invention provide an integrated circuit design method and apparatus, an electronic device, and a computer-readable storage medium, which can effectively reduce the timing violation situation of signal transmission between circuit modules.

[0004] In a first aspect, an embodiment of the present invention provides an integrated circuit design method, including: determining a position constraint rule for a target component according to a distribution of target communication ports reserved for the target component at an edge of a first circuit module; where the target component is connected to at least one second circuit module through the target communication port, and the second circuit module is different from the first circuit module; setting a corresponding placement range for the target component according to the position constraint rule, so that the target component is located within the placement range during circuit design adjustment.

[0005] Optionally, determining the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component in the first circuit module includes at least one of the following: If the target communication ports include a target input port and a target output port, and the target input port and the target output port are respectively located at two different module edges of the first circuit module, or the target input port and the target output port are located at the same module edge of the first circuit module, then determine the position constraint rule as: Constraining the position of the target component according to the positions of the target input port and the target output port; If the number of the target communication ports is one, and the target communication port has no association relationship with other communication ports on the first circuit module, then determine the position constraint rule as: Constraining the position of the target component according to the position of the target communication port; If the target communication ports include a port group, at least two port members are set in the port group, and each port member corresponds to one target component, then determine the position constraint rule as: Constraining the position of the component group composed of the target components corresponding to at least a part of the port members in the port group according to the positions of at least a part of the port members in the port group.

[0006] Optionally, the position constraint rule is: Constraining the position of the target component according to the positions of the target input port and the target output port; Setting the corresponding placement range for the target component according to the position constraint rule includes: Obtaining the coordinates of the target input port in the first circuit module to obtain input coordinates, and obtaining the coordinates of the target output port in the first circuit module to obtain output coordinates; If the extension direction of the module edge where the target input port is located is parallel or the same as the extension direction of the module edge where the target output port is located, then using the midpoint coordinates of the input coordinates and the output coordinates as the center point coordinates of the placement range; Using the center point coordinates as the first condition and a preset length as the second condition to set the placement range of the target component; If the extension direction of the module edge where the target input port is located is perpendicular to the extension direction of the module edge where the target output port is located, then using the abscissa of the input coordinates as the abscissa of the center point of the placement range and the ordinate of the output coordinates as the ordinate of the center point of the placement range, or using the ordinate of the input coordinates as the ordinate of the center point of the placement range and the abscissa of the output coordinates as the abscissa of the center point of the placement range; Using the abscissa and ordinate of the center point as the first condition and a preset length as the second condition to set the placement range of the target component.

[0007] Optionally, the position constraint rule is: constraining the position of the target component according to the position of the target communication port; setting a corresponding placement range for the target component according to the position constraint rule includes: using the coordinates of the target communication port as the center point coordinates of the placement range; using the center point coordinates as the first condition and a preset length as the second condition to set the placement range of the target component.

[0008] Optionally, the position constraint rule is: constraining the position of a component group composed of each target component corresponding to at least a part of the port members in the port group according to the positions of at least a part of the port members in the port group; setting a corresponding placement range for the target component according to the position constraint rule includes: determining the predicted port type of each port member in the port group according to a preset algorithm; detecting whether the predicted port type of each port member is consistent with the actual port type of the port group; forming a first set of the port members in the port group with consistent detection results, and forming a second set of the port members with inconsistent detection results; setting the placement range of a first component group according to the positions of the port members in the first set in the first circuit module, where the first component group is a component group composed of each target component corresponding to each port member in the first set.

[0009] Optionally, setting the placement range of the first component group according to the positions of the port members in the first set in the first circuit module includes: obtaining the coordinates of the port member ranked first and the coordinates of the port member ranked last according to the arrangement order of the port members in the first set at the edge of the first circuit module; setting the placement range of the first component group according to the coordinates of the port member ranked first and the coordinates of the port member ranked last.

[0010] Optionally, after forming the second set of the port members with inconsistent detection results, the method further includes: determining whether the number of port members in the second set is greater than a preset number threshold; in the case where the number of port members in the second set is greater than the preset number threshold, using the second set as a new port group, jumping to the step of determining the predicted port type of each port member in the port group according to the preset algorithm, and continuing to execute this step for the new port group until the number of port members in the second set is less than or equal to the preset number threshold.

[0011] Optionally, before setting the placement range of the first component group according to the positions of the port members in the first set in the first circuit module, the method further includes: determining whether the port distances between the first port member in the first set and the other port members in the first set are all greater than a first distance threshold; in response to the port distances all being greater than the first distance threshold, excluding the first port member from the first set to obtain a first optimized set; the setting the placement range of the first component group according to the positions of the port members in the first set in the first circuit module includes: setting the placement range of the first component group according to the positions of the port members in the first optimized set in the first circuit module.

[0012] Optionally, the position constraint rule is: constraining the position of the component group formed by each target component corresponding to at least a part of the port members in the port group according to the positions of at least a part of the port members in the port group; the setting the corresponding placement range for the target component according to the position constraint rule includes: dividing each of the port members into at least two port member sets according to the relationship between the interval distance between the port members adjacent in position within the port group and a second distance threshold; wherein, the second distance threshold is equal to a preset multiple of the distance between the two port members with the shortest distance in the port group, and the preset multiple is a real number greater than 1; setting the placement range of the component group corresponding to the port member set according to the positions of the port members in the port member set in the first circuit module, wherein the component group corresponding to the port member set is the component group formed by each target component corresponding to each port member in the port member set.

[0013] Optionally, non-target communication ports are further provided between the port members adjacent in position within the port group; before determining the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component at the edge of the first circuit module, the method further includes: identifying the target communication port and the non-target communication port according to the identifiers of the communication ports in the first circuit module.

[0014] Second aspect, an embodiment of the present invention further provides an integrated circuit design device, including: a determination unit, configured to determine a position constraint rule for a target component according to a distribution of target communication ports reserved for the target component in a first circuit module at an edge of the first circuit module; wherein the target component is connected to at least one second circuit module through the target communication port, and the second circuit module is different from the first circuit module; a setting unit, configured to set a corresponding placement range for the target component according to the position constraint rule determined by the determination unit, so that the target component is located within the placement range during circuit design adjustment.

[0015] Optionally, the determination unit includes at least one of the following: a first determination module, configured to determine the position constraint rule as: constraining the position of the target component according to the positions of the target input port and the target output port if the target communication port includes a target input port and a target output port, and the target input port and the target output port are respectively located at two different module edges of the first circuit module, or the target input port and the target output port are located at the same module edge of the first circuit module; a second determination module, configured to determine the position constraint rule as: constraining the position of the target component according to the position of the target communication port if the number of the target communication ports is one and the target communication port has no association relationship with other communication ports on the first circuit module; a third determination module, configured to determine the position constraint rule as: constraining the position of a component group formed by target components corresponding to at least a part of port members in the port group according to positions of at least a part of port members in the port group if the target communication port includes a port group, and at least two port members are provided in the port group, and each port member corresponds to one target component.

[0016] Optionally, the determining unit includes the first determining module; the setting unit includes: an obtaining module, configured to obtain the coordinates of the target input port in the first circuit module to obtain input coordinates, and obtain the coordinates of the target output port in the first circuit module to obtain output coordinates; a first setting module, configured to, if the extending direction of the module edge where the target input port is located is parallel or the same as the extending direction of the module edge where the target output port is located, use the midpoint coordinates of the input coordinates and the output coordinates as the center point coordinates of the placement range; use the center point coordinates as the first condition and a preset length as the second condition to set the placement range of the target component; a second setting module, configured to, if the extending direction of the module edge where the target input port is located is perpendicular to the extending direction of the module edge where the target output port is located, use the abscissa of the input coordinates as the abscissa of the center point of the placement range and the ordinate of the output coordinates as the ordinate of the center point of the placement range, or use the ordinate of the input coordinates as the ordinate of the center point of the placement range and the abscissa of the output coordinates as the abscissa of the center point of the placement range; use the abscissa and ordinate of the center point as the first condition and a preset length as the second condition to set the placement range of the target component.

[0017] Optionally, the determining unit includes the second determining module; the setting unit is specifically configured to use the coordinates of the target communication port as the center point coordinates of the placement range; use the center point coordinates as the first condition and a preset length as the second condition to set the placement range of the target component.

[0018] Optionally, the determining unit includes the third determining module; the setting unit includes: a fourth determining module, configured to determine the predicted port type of each port member in the port group according to a preset algorithm; a detection module, configured to detect whether the predicted port type of each port member is consistent with the actual port type of the port group; a set composition module, configured to form a first set of port members with consistent detection results in the port group and form a second set of port members with inconsistent detection results; a third setting module, configured to set the placement range of the first component group according to the positions of the port members in the first set in the first circuit module, where the first component group is a component group composed of the target components corresponding to the respective port members in the first set.

[0019] Optionally, the third setting module is specifically configured to: obtain the coordinates of the port member arranged at the first position and the coordinates of the port member arranged at the last position according to the arrangement order of the port members in the first set at the edge of the first circuit module; set the placement range of the first component group according to the coordinates of the port member arranged at the first position and the coordinates of the port member arranged at the last position.

[0020] Optionally, the setting unit further includes: a fifth determination module, configured to determine whether the number of port members in the second set is greater than a preset number threshold after forming the second set of port members with inconsistent detection results; an iteration module, configured to trigger the fourth determination module with the second set as a new port group when the number of port members in the second set is greater than the preset number threshold; the fourth determination module is specifically configured to determine the predicted port type of each port member in the new port group, and continue to directly or indirectly trigger the detection module, the set forming module, the third setting module, and the fifth determination module until the fifth determination module determines that the number of port members in the second set is less than or equal to the preset number threshold.

[0021] Optionally, the setting unit further includes: a distance determination module, configured to determine whether the port distances between the first port member in the first set and other port members in the first set are all greater than a first distance threshold before setting the placement range of the first component group according to the positions of the port members in the first set; an exclusion module, configured to exclude the first port member from the first set in response to the port distances all being greater than the first distance threshold to obtain a first optimized set; the third setting module is specifically configured to set the placement range of the first component group according to the positions of the port members in the first optimized set in the first circuit module.

[0022] Optionally, the determination unit includes the third determination module; the setting unit includes: a division module, configured to divide each of the port members into at least two port member sets according to the relationship between the interval distance between adjacent port members in the port group and a second distance threshold; where the second distance threshold is equal to a preset multiple of the distance between the two port members with the shortest distance in the port group, and the preset multiple is a real number greater than 1; a fourth setting module, configured to set the placement range of the component group corresponding to the port member set according to the positions of the port members in each port member set in the first circuit module, where the component group corresponding to the port member set is a component group composed of the target components corresponding to the port members in the port member set.

[0023] Optionally, non-target communication ports are further provided between port members adjacent to each other in position within the port group; the apparatus further includes: an identification unit, configured to identify the target communication ports and the non-target communication ports according to the identifiers of the communication ports in the first circuit module, before determining the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component at the edge of the first circuit module.

[0024] In a third aspect, an embodiment of the present invention further provides an electronic device, including: a housing, at least one processor, a memory, a circuit board, and a power supply circuit, wherein the circuit board is disposed inside the space enclosed by the housing, and the processor and the memory are disposed on the circuit board; the power supply circuit is configured to supply power to each circuit or device of the above-mentioned electronic device; the memory is used to store executable program codes; the at least one processor runs a program corresponding to the executable program codes by reading the executable program codes stored in the memory, and is configured to execute any one of the integrated circuit design methods provided by the embodiments of the present invention.

[0025] In a fourth aspect, an embodiment of the present invention further provides a computer-readable storage medium, where the computer-readable storage medium stores one or more programs, and the one or more programs can be executed by one or more processors to implement any one of the integrated circuit design methods provided by the embodiments of the present invention.

[0026] The integrated circuit design method, apparatus, electronic device, and computer-readable storage medium provided by the embodiments of the present invention can determine the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component at the edge of the first circuit module, and set a corresponding placement range for the target component according to the position constraint rule, so that the target component is within the placement range during the circuit design adjustment. In this way, even if the correspondence between the target component and the target communication port may be diverse, a suitable placement range can be set for the target component for these correspondences, and even if the circuit design is adjusted later, the target component can still be within the placement range, so that the target component will not cause signal transmission timing violations across circuit modules due to being too far away from the target communication port, and thus the timing violation situation of signal transmission between circuit modules can be effectively reduced. BRIEF DESCRIPTION OF THE DRAWINGS

[0027] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for the description of the embodiments or the prior art. Obviously, the drawings in the following description are only some embodiments of the present invention, and those of ordinary skill in the art can also obtain other drawings without creative efforts based on these drawings.

[0028] Figure 1 A schematic structural diagram of an integrated circuit port where a timing violation occurs in the prior art;

[0029] Figure 2 A flowchart of an integrated circuit design method provided by an embodiment of the present invention;

[0030] Figure 3 A schematic structural diagram of the port distribution of an integrated circuit in an embodiment of the present invention;

[0031] Figure 4 Another schematic structural diagram of the port distribution of an integrated circuit in an embodiment of the present invention;

[0032] Figure 5 Yet another schematic structural diagram of the port distribution of an integrated circuit in an embodiment of the present invention;

[0033] Figure 6 Still another schematic structural diagram of the port distribution of an integrated circuit in an embodiment of the present invention;

[0034] Figure 7 Still yet another schematic structural diagram of the port distribution of an integrated circuit in an embodiment of the present invention;

[0035] Figure 8 Still yet another schematic structural diagram of the port distribution of an integrated circuit in an embodiment of the present invention;

[0036] Figure 9 A schematic structural diagram of an integrated circuit design device provided by an embodiment of the present invention;

[0037] Figure 10 A schematic structural diagram of an electronic device provided by an embodiment of the present invention. Detailed implementation manners

[0038] The embodiments of the present invention will be described in detail below with reference to the accompanying drawings.

[0039] It should be clear that the described embodiments are only a part of the embodiments of the present invention, rather than all of the embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative efforts belong to the scope of protection of the present invention.

[0040] As described in the background art, in high-speed IC design, due to very tight timing, timing violations of cross-module paths often occur, and these violations are usually caused by unreasonable placement. For example, the EDA tool may optimize the port registers of a module and other related registers inside the module together, resulting in two registers for cross-module communication through the port being too far apart, thus causing a timing violation. Therefore, when performing electronic design automation, it is often necessary for engineers to intervene manually to individually adjust the positions of each register, resulting in low circuit design efficiency.

[0041] To solve the above problems, the inventors found in their research that through a sophisticated circuit design method, certain position constraints can be imposed on circuit components such as registers related to ports, so that without the need for manual intervention by engineers, the timing violations of signal transmission between circuit modules can be effectively reduced.

[0042] To enable those skilled in the art to better understand the technical concept, implementation scheme, and beneficial technical effects of the embodiments of the present invention, the following will be described in detail through specific embodiments.

[0043] In a first aspect, an embodiment of the present invention provides an integrated circuit design method that can effectively reduce the timing violations of signal transmission between circuit modules.

[0044] As Figure 2 shown, the integrated circuit design method provided by the embodiment of the present invention may include:

[0045] S11. Determine the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component on the edge of the first circuit module; wherein, the target component is connected to at least one second circuit module through the target communication port, and the second circuit module is different from the first circuit module;

[0046] An integrated circuit may include multiple circuit modules with relatively independent functions that are circuit-connected to each other. The first circuit module may be any one of such circuit modules, such as a comparator, an oscillator, an adder, etc. The second circuit module may be one or more circuit modules electrically connected to the first circuit module. Specifically, the connection relationship between the first circuit module and the second circuit module is reflected by the connection relationship between the circuit components in the first circuit module and the circuit components in the second circuit module. The signal lines of the circuit components can extend out of the circuit module through the communication ports provided on the edge of the circuit module and enter another circuit module through the communication ports on the edge of another circuit module.

[0047] To achieve communication across circuit modules, each circuit module reserves communication ports for each internal circuit component that needs to communicate across circuit modules. These communication ports are usually located at the edge of the circuit module. For example, the first circuit module reserves a target communication port for a target component inside it, and the target component corresponds to the target communication port. One target component can correspond to one or more target communication ports. Optionally, the target component can be any component capable of transmitting electrical signals across modules. For example, the target component can be a register.

[0048] The distribution of the target communication ports on the first circuit module can be diverse. For example, the target communication ports can be located on any edge of the first circuit module, and can be adjacent to or at a relatively large distance from other communication ports, etc. In this step, the position constraint rule of the corresponding target component can be determined according to the distribution of the target communication ports on the edge of the first circuit module. The so-called position constraint rule can specifically be how to determine the constrained position of the target component. Since the distribution of the target communication ports on the first circuit module is diverse, the corresponding position constraint rules of the target component are also different.

[0049] S12. According to the position constraint rule, set a corresponding placement range for the target component so that the target component is within the placement range during circuit design adjustment.

[0050] After determining the position constraint rule of the target component, in this step, according to this position constraint rule, the placement range of the target component can be set on the first circuit module. After setting the placement range, even if the circuit will be automatically optimized and adjusted subsequently, the target component can only move within a small range within this placement range and cannot be moved outside this placement range. Specifically, the above setting can be achieved through commands in a variety of electronic design automation programs. For example, the create_bound command in the synopsys dc / icc2 tool can be used to set the above placement range.

[0051] The integrated circuit design method provided by the embodiments of the present invention can determine the position constraint rules of the target component according to the distribution of the target communication ports reserved for the target component in the first circuit module at the edge of the first circuit module. According to the position constraint rules, a corresponding placement range is set for the target component, so that the target component is within the placement range during the circuit design adjustment. In this way, even if the corresponding relationship between the target component and the target communication port may be diverse, a suitable placement range can be set for the target component for these corresponding relationships. Even if the circuit design is adjusted later, the target component can still be within the placement range, so that the target component will not cause signal transmission timing violations across circuit modules due to being too far away from the target communication port. Therefore, the timing violation situation of signal transmission between circuit modules can be effectively reduced.

[0052] Specifically, in step S11, determining the position constraint rules of the target component according to the distribution of the target communication ports reserved for the target component in the first circuit module at the edge of the first circuit module may include one or more of the following:

[0053] If the target communication ports include a target input port and a target output port, and the target input port and the target output port are respectively located at two different module edges of the first circuit module, or the target input port and the target output port are located at the same module edge of the first circuit module, then determine the position constraint rule as: Constraining the position of the target component according to the positions of the target input port and the target output port;

[0054] If the number of the target communication ports is one, and the target communication port has no association relationship with other communication ports on the first circuit module, then determine the position constraint rule as: Constraining the position of the target component according to the position of the target communication port;

[0055] If the target communication ports include a port group, at least two port members are set in the port group, and each port member corresponds to one target component, then determine the position constraint rule as: Constraining the position of the component group composed of the target components corresponding to at least a part of the port members in the port group according to the positions of at least a part of the port members in the port group.

[0056] The determination methods of the above three position constraint rules are described separately below.

[0057] Optionally, as Figures 3 - 5As shown, in an embodiment of the present invention, if the target component can both receive the signal input to the first circuit module and output a signal outside the first circuit module, the target communication ports corresponding to the target component include a target input port and a target output port. Optionally, the target input port and the target output port can be respectively located at two different module edges of the first circuit module, or the target input port and the target output port can also be located at the same module edge of the first circuit module. In this case, since both ends adjacent to the target component are module ports, the target component is sensitive to both input and output (for example, for a feedthrough type target component, in the previous clock, it enters the first circuit module and the target component through port1, and in the next clock, it outputs from port2 of the first circuit module and the target component). Therefore, the position constraint rule of the target component can be determined as: constraining the position of the target component according to the position of the target input port and the position of the target output port.

[0058] Based on this, in step S12, setting the corresponding placement range for the target component according to the position constraint rule may specifically include:

[0059] Obtaining the coordinates of the target input port in the first circuit module to obtain input coordinates, and obtaining the coordinates of the target output port in the first circuit module to obtain output coordinates;

[0060] If the extension direction of the module edge where the target input port is located is parallel or the same as the extension direction of the module edge where the target output port is located, the midpoint coordinates of the input coordinates and the output coordinates are used as the center point coordinates of the placement range; using the center point coordinates as the first condition and a preset length as the second condition, the placement range of the target component is set;

[0061] If the extension direction of the module edge where the target input port is located is perpendicular to the extension direction of the module edge where the target output port is located, the abscissa of the input coordinates is used as the abscissa of the center point of the placement range, and the ordinate of the output coordinates is used as the ordinate of the center point of the placement range, or the ordinate of the input coordinates is used as the ordinate of the center point of the placement range, and the abscissa of the output coordinates is used as the abscissa of the center point of the placement range; using the abscissa and ordinate of the center point as the first condition and a preset length as the second condition, the placement range of the target component is set.

[0062] For example, please refer to again Figure 3, the target input port port1 of the target component A1 is located on the module edge a1, and the target output port port2 of the target component A1 is located on the module edge b1. Among them, a1 is parallel to b1. The coordinates of port1 are obtained as (x1, y1), and the coordinates of port2 are (x2, y2). Then, the center point coordinates of the placement range of the target component A1 can be P1((x1 + x2) / 2, (y1 + y2) / 2). Further, the placement range of the target component can be determined with point P1 as the first condition and a preset length length as the second condition. Among them, the first condition can determine the specific position of the placement range, and the second condition can determine the size, shape, etc. of the placement range. For example, a square with P1 as the center and a preset length length as the side length can be used as the placement range, or there can be two preset lengths length1 and length2, and a rectangle with P1 as the center, length1 as the length, and length2 as the width can be used as the placement range. Among them, the preset lengths length, length1, length2, etc. can be set and adjusted according to circuit design and process parameters. For example, the preset length can be the length of 20 to 30 tracks. Of course, according to needs, the placement range can also be other shapes, and the embodiments of the present invention do not limit this.

[0063] Please refer to again Figure 4 , the target input port port3 and the target output port port4 of the target component A2 are both located on the module edge a2. The coordinates of port3 are obtained as (x3, y3), and the coordinates of port4 are (x4, y4). Then, the center point coordinates of the placement range of the target component A2 can be P2((x3 + x4) / 2, (y3 + y4) / 2). Further, the placement range of the target component can be determined with point P2 as the first condition and a preset length length as the second condition. The specific method for determining the placement range according to the first condition and the second condition is similar to the foregoing embodiments and will not be elaborated here.

[0064] Please refer to again Figure 5, the target input port port5 of the target component A3 is located on the module edge a3, and the target output port port6 of the target component A3 is located on the module edge b3, where a3 is perpendicular to b3. Obtaining the coordinates of port5 as (x5, y5) and the coordinates of port6 as (x6, y6), then the center point coordinates of the placement range of the target component A2 can be P3(x5, y6) or P4(x6, y5). Specifically, it can be further examined which of the points P3 and P4 is within the first circuit module and which point is on the module edge of the first circuit module, and the point within the first circuit module is selected as the center point of the placement range. Further, taking the point P3 or P4 as the first condition and the preset length length as the second condition, the placement range of the target component A3 can be determined. The specific method for determining the placement range according to the first condition and the second condition is similar to the foregoing embodiments and will not be elaborated here.

[0065] Optionally, in another embodiment of the present invention, the number of target communication ports is one, and the target communication port has no association relationship with other communication ports on the first circuit module. Then, when constraining the position of the target component corresponding to the target communication port, the position of the target component can be constrained according to the position of the target communication port. Based on this, specifically including in step S12 setting the corresponding placement range for the target component according to the position constraint rule: taking the coordinates of the target communication port as the center point coordinates of the placement range; taking the center point coordinates as the first condition and the preset length as the second condition to set the placement range of the target component. For example, as Figure 6 shown, the coordinates of the target communication port port13 are (x7, y7), then taking (x7, y7) as the first condition and the preset length length as the second condition, the placement range of the target component A4 corresponding to port13 can be determined. The specific method for determining the placement range according to the first condition and the second condition is similar to the foregoing embodiments and will not be elaborated here.

[0066] Optionally, in an embodiment of the present invention, the target communication port includes a port group (for example, each port of a group of buses bus forms a port group), and at least two port members are provided in the port group, and each port member corresponds to a target component. In order to improve the position constraint efficiency of the multiple target components corresponding to each port member, the positions of the multiple target components corresponding to each port member of this port group can be limited together. For example, as Figure 7 shown, there are a total of 8 port members bus3[0]-bus3[7] in the port group bus3, and each port member corresponds to a target component R0-R7. Then, these 8 target components can be used as a component group to constrain the position of the component group.

[0067] However, as mentioned above, the distribution of target communication ports on the first circuit module may be diverse, and the density or sparsity of the port arrangement may also vary greatly, even for port members belonging to the same port group. In order to appropriately constrain the position of the component group under different circuit modules and various port distributions, in an embodiment of the present invention, the position constraint rule of the target component may be: according to the positions of at least some port members in the port group, constrain the position of the component group composed of each target component corresponding to the at least some port members. That is to say, the port members in the port group can be screened, and the port members corresponding to the target components that are not convenient for position constraint in the form of a component group are excluded, and the target components corresponding to the remaining port members are grouped together for position constraint.

[0068] Specifically, there may be multiple types of ports provided in the first circuit module, such as ports for enable signals, write valid signals, address signals, and so on. Among them, the address signals can form a port group. For example, addr0-23 form a port group, and addr0, addr1... are port members respectively. The types of each port can be distinguished by the identifier of the port. In terms of port distribution, for port members belonging to the same port group, they may be concentrated together, or scattered among other types of ports, or scattered at the edges of different modules. For example, as Figure 8 shown, in an embodiment of the present invention, among the 8 port members of the port group bus4, bus4[0]-bus4[5] are set on the module edge d2, bus4[6]-bus4[7] are set on the module edge d3, and another communication port port17 is inserted between bus4[1] and bus4[2]. Then, if the 8 target components corresponding to bus4 are grouped together for position constraint, it may be difficult to find a suitable placement range for the component combination. Therefore, when grouping the target components corresponding to the port members into a component group, the target components corresponding to port6-7 can be ignored.

[0069] In specific implementation, in order to accurately identify which target components corresponding to port members can be ignored and which target components corresponding to port members are suitable for position constraint in the form of a component group, in an embodiment of the present invention, setting a corresponding placement range for the target components according to the position constraint rule in step S12 may specifically include: determining the predicted port type of each port member in the port group according to a preset algorithm; detecting whether the predicted port type of each port member is consistent with the actual port type of the port group; forming a first set of port members with consistent detection results in the port group and forming a second set of port members with inconsistent detection results; setting the placement range of a first component group according to the positions of the port members in the first set in the first circuit module, where the first component group is a component group composed of the target components corresponding to the port members in the first set.

[0070] Specifically, before determining the predicted port type of each port member in the port group according to a preset algorithm, each port member in the port group can be first found in the first circuit module. For example, each port member in the port group can be found according to the identifiers of the communication ports in the first circuit module to identify the target communication port.

[0071] Optionally, in an embodiment of the present invention, the target communication ports in the first circuit module include a port group, and non-target communication ports are also provided between port members adjacent in position within the port group. Then, before determining the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component at the edge of the first circuit module in the first circuit module, the target communication ports and non-target communication ports can be first identified according to the identifiers of the communication ports in the first circuit module. Here, being adjacent in position within the group means that for each port member within the port group, the two port members are adjacent in position, regardless of whether there are other ports outside the port group between the two port members.

[0072] Specifically, different ports may have different identifiers, and the identifiers of the port members in the same port group may have a certain relationship. For example, the identifiers of the port members in the same port group addr can be different array elements addr[0], addr[1], addr[2]... of an array. Therefore, it is possible to determine whether each port in the first circuit module is a port member of a port group according to the identifier of the port. In this way, even if non-target communication ports are provided between port members adjacent in position within the port group, the non-target communication ports will not be misidentified as port members of the port group. For example, referring again to Figure 7, the 8 port members bus4[0]-bus4[7] of port group bus4 are target communication ports. However, another communication port port17 is inserted between two adjacent port members bus4[1] and bus4[2] in the port group. Although port17 is set between bus4[1] and bus4[2], it will not be misidentified as a port member of port group bus4.

[0073] Optionally, in this embodiment, the preset algorithm for determining the predicted port type of a port member can be various algorithms that can predict the current port type based on the port types of other ports around the current port. For example, the preset algorithm can be the KNN (K-Nearest Neighbor) algorithm. According to the KNN algorithm, the port types of the K nearest other ports around the current port can be viewed. If the number of ports with port type TYPEA among these K other ports exceeds 50%, it is considered that the port type of the current port is also TYPEA. In this way, for the current port member in the port group, its predicted port type is determined based on the port types of other ports around the current port member. If the port types of other ports are mostly inconsistent with the actual port type of the port group where the current port member is located, then it can be determined that most of the ports around the current port member are other types of ports rather than the ports of this port group. That is to say, there are many ports or a relatively long distance between the current port member and other members of this port group. Therefore, the target component corresponding to the current port member is not suitable to form a component group with the target components corresponding to other members of this port group for position constraint.

[0074] Still taking Figure 8 the situation shown as an example, according to the KNN algorithm, if K = 3, that is, the predicted port type of the current port is determined based on the types of the 3 ports closest to the current port, then the predicted port types of port0-port5 are bus4, the port type of port6 is X, and the port type of port7 is Y. Then the predicted port types of port0-5 are consistent with the actual port type of the port group, and the predicted port types of port6-7 are inconsistent with the actual port type of the port group. Therefore, port0-5 can form a first set, the target components corresponding to port0-5 can form a component group, and the placement range of this component group can be determined according to the distribution of the port members port0-5 in the first set. In this way, when determining the placement position of the component group, there is no need to consider the positions of port6-7, thereby effectively improving the efficiency and effect of determining the placement range of the component group.

[0075] In specific implementation, setting the placement range of the first component group according to the positions of the port members in the first set in the first circuit module may include: obtaining the coordinates of the port member arranged at the first position and the coordinates of the port member arranged at the last position according to the arrangement order of the port members at the edge of the first circuit module in the first set; setting the placement range of the first component group according to the coordinates of the port member arranged at the first position and the coordinates of the port member arranged at the last position. For example, the coordinates of port0 and port5 can be obtained, and a rectangle is constructed with the distance between port0 and port5 plus a first preset length (such as 20 - 40 tracks) as the length and the width of port0 plus a second preset length as the width, and this rectangle is used as the placement range of the first component group.

[0076] In the foregoing embodiment, after determining the predicted port type of the port member according to the preset algorithm, the port members with the predicted port type consistent with the actual port type of the port group are classified into the first set, and the port members with the predicted port type inconsistent with the actual port type of the port group are classified into the second set. When imposing position constraints on the first component group, the placement range of the first component group is determined according to the distribution of the port members in the first set, without considering the distribution of the port members in the second set, but the embodiments of the present invention are not limited thereto. In other embodiments of the present invention, if the number of port members in the second set is large, the target component corresponding to the port members in the second set can be further formed into another component group (such as the second component group), and the placement position of this component group is uniformly defined, thereby further improving the position constraint efficiency of the target component.

[0077] Specifically, in an embodiment of the present invention, after forming a second set of port members with inconsistent detection results, the integrated circuit design method provided by the embodiment of the present invention may further include: determining whether the number of port members in the second set is greater than a preset number threshold; in the case where the number of port members in the second set is greater than the preset number threshold, using the second set as a new port group, jumping to the step of determining the predicted port type of each port member in the port group according to the preset algorithm, and continuing to execute this step for the new port group until the number of port members in the second set is less than or equal to the preset number threshold. For example, if there are 16 port members in port group P0, and 10 port members are included in the first set, the target components corresponding to these 10 port members can form a component group. 6 port members are included in the second set. If the preset number threshold is 5, that is, the number 6 of port members in the second set is greater than the preset number threshold 5, then it can be further detected whether the target components corresponding to these 6 port members can form a component group. If the preset number threshold is 7, that is, the number 6 of port members in the second set is less than the preset number threshold 7, then it is not necessary to determine whether the target components corresponding to the port members in the second set can form a component group.

[0078] After dividing the port members into a first set and a second set according to whether the predicted port type of each port member is consistent with the actual port type of the port group, in order to prevent a certain port member or some port members in the first set from being too far away from other port members, which is not conducive to the position constraint of the corresponding component group. In an embodiment of the present invention, before setting the placement range of the first component group according to the positions of the port members in the first set in the first circuit module, the integrated circuit design method provided by the embodiment of the present invention may further include: determining whether the port distances between the first port member in the first set and other port members in the first set are all greater than a first distance threshold; in response to the port distances all being greater than the first distance threshold, excluding the first port member from the first set to obtain a first optimized set. Based on this, step S12 of setting the placement range of the first component group according to the positions of the port members in the first set in the first circuit module may specifically include: setting the placement range of the first component group according to the positions of the port members in the first optimized set in the first circuit module. Wherein, the first port member may be any port member in the first set, and the first distance threshold may be, for example, the average port distance or several times of this average distance. That is to say, if the port distances between the first port member and other port members in the first set are all greater than the first distance threshold, it means that the first port member is far away from other port members in the first set, and it is not convenient to form a component group with the target component corresponding to the first port member and the target components corresponding to other port members. Therefore, the first port member can be excluded from the first set to obtain a first optimized set, and the target components corresponding to the port members in the first optimized set are used to form a component group, and the position constraint of this component group is performed.

[0079] Optionally, in addition to dividing the port members into a first set and a second set according to whether the predicted port type of each port member is consistent with the actual port type of the port group, and then forming a component group with the target components corresponding to the port members in the first set, in an embodiment of the present invention, different target components may also be formed into corresponding component groups according to other methods, and the placement range corresponding to the component group is set.

[0080] For example, in an embodiment of the present invention, setting a corresponding placement range for the target component according to the position constraint rule may include: dividing each of the port members into at least two port member sets according to the relationship between the interval distance between adjacent port members within the port group and a second distance threshold; wherein, the second distance threshold is equal to a preset multiple of the distance between the two port members with the shortest distance in the port group, and the preset multiple is a real number greater than 1; setting the placement range of the component group corresponding to the port member set according to the positions of the port members in each port member set in the first circuit module, wherein the component group corresponding to the port member set is a component group composed of the target components corresponding to the respective port members in the port member set.

[0081] That is to say, by comparing the interval distance between adjacent port members within the port group with the second distance threshold, the port members in the same port group can be divided into different sets, and the port members with too large interval distances are assigned to different sets, so as to form a component group with the target components corresponding to the port members in each set, and each set corresponds to a component group.

[0082] In this embodiment, considering that the port settings in different circuit modules may vary. For example, some ports may be relatively dense, and some ports may be relatively sparse. In order to enable the second distance threshold to adapt to the specific conditions of various circuit modules and ports, the second distance threshold is not set as a fixed value, but is set as a preset multiple of the distance between the two port members with the shortest distance in the port group, so that the second distance threshold can be flexibly set according to the characteristics of the port distances in different circuit modules, effectively improving the adaptability and accuracy of the division of the port member sets.

[0083] Correspondingly, in a second aspect, an embodiment of the present invention further provides an integrated circuit design device, which can effectively reduce the timing violation situation of signal transmission between circuit modules.

[0084] As Figure 9 shown, the integrated circuit design device provided by the embodiment of the present invention may include:

[0085] A determination unit 31, configured to determine the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component at the edge of the first circuit module; wherein, the target component is connected to at least one second circuit module through the target communication port, and the second circuit module is different from the first circuit module;

[0086] A setting unit 32 is configured to set a corresponding placement range for the target component according to the position constraint rule determined by the determination unit, so that the target component is within the placement range during the circuit design adjustment.

[0087] The integrated circuit design device provided by the embodiment of the present invention can determine the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component in the first circuit module at the edge of the first circuit module, and set a corresponding placement range for the target component according to the position constraint rule, so that the target component is within the placement range during the circuit design adjustment. In this way, even if the correspondence between the target component and the target communication port may be diverse, a suitable placement range can be set for the target component for these correspondences. Even if the circuit design is adjusted later, the target component can still be within the placement range, so that the target component will not cause signal transmission timing violations across circuit modules due to being too far from the target communication port. Therefore, the timing violation situation of signal transmission between circuit modules can be effectively reduced.

[0088] Optionally, the determination unit 31 may include at least one of the following:

[0089] A first determination module is configured to, if the target communication port includes a target input port and a target output port, and the target input port and the target output port are respectively located at two different module edges of the first circuit module, or the target input port and the target output port are located at the same module edge of the first circuit module, determine the position constraint rule as: constraining the position of the target component according to the positions of the target input port and the target output port;

[0090] A second determination module is configured to, if the number of the target communication ports is one and the target communication port has no association relationship with other communication ports on the first circuit module, determine the position constraint rule as: constraining the position of the target component according to the position of the target communication port;

[0091] A third determination module is configured to, if the target communication port includes a port group, at least two port members are set in the port group, and each port member corresponds to one target component, determine the position constraint rule as: constraining the position of the component group formed by the target components corresponding to at least a part of the port members in the port group according to the positions of at least a part of the port members in the port group.

[0092] Optionally, the determination unit 31 includes a first determination module;

[0093] The setting unit 32 may include:

[0094] An acquisition module, configured to acquire the coordinates of the target input port in the first circuit module to obtain input coordinates, and acquire the coordinates of the target output port in the first circuit module to obtain output coordinates;

[0095] A first setting module, configured to, if the extending direction of the module edge where the target input port is located is parallel or the same as the extending direction of the module edge where the target output port is located, use the midpoint coordinates of the input coordinates and the output coordinates as the center point coordinates of the placement range; use the center point coordinates as the first condition and a preset length as the second condition to set the placement range of the target component;

[0096] A second setting module, configured to, if the extending direction of the module edge where the target input port is located is perpendicular to the extending direction of the module edge where the target output port is located, use the abscissa of the input coordinates as the abscissa of the center point of the placement range and the ordinate of the output coordinates as the ordinate of the center point of the placement range, or use the ordinate of the input coordinates as the ordinate of the center point of the placement range and the abscissa of the output coordinates as the abscissa of the center point of the placement range; use the abscissa and ordinate of the center point as the first condition and a preset length as the second condition to set the placement range of the target component.

[0097] Optionally, the determination unit 31 includes a second determination module; the setting unit 32 is specifically configured to use the coordinates of the target communication port as the center point coordinates of the placement range; use the center point coordinates as the first condition and a preset length as the second condition to set the placement range of the target component.

[0098] Optionally, the determination unit 31 includes a third determination module;

[0099] The setting unit 32 may include:

[0100] A fourth determination module, configured to determine the predicted port type of each port member in the port group according to a preset algorithm;

[0101] A detection module, configured to detect whether the predicted port type of each port member is consistent with the actual port type of the port group;

[0102] A set composition module, configured to form a first set of port members with consistent detection results and a second set of port members with inconsistent detection results in the port group;

[0103] A third setting module, configured to set the placement range of the first component group according to the positions of the port members in the first set in the first circuit module, where the first component group is a component group composed of the target components corresponding to the port members in the first set.

[0104] Optionally, the third setting module may specifically be configured to:

[0105] Obtain the coordinates of the port member arranged at the first position and the coordinates of the port member arranged at the last position according to the arrangement order of the port members in the first set at the edge of the first circuit module;

[0106] Set the placement range of the first component group according to the coordinates of the port member arranged at the first position and the coordinates of the port member arranged at the last position.

[0107] Optionally, the setting unit 32 may further include:

[0108] A fifth determination module, configured to determine whether the number of port members in the second set is greater than a preset number threshold after forming the second set of port members with inconsistent detection results;

[0109] An iteration module, configured to trigger the fourth determination module with the second set as a new port group in the case where the number of port members in the second set is greater than the preset number threshold;

[0110] The fourth determination module is specifically configured to determine the predicted port type of each port member in the new port group, and continue to directly or indirectly trigger the detection module, the set composition module, the third setting module, and the fifth determination module until the fifth determination module determines that the number of port members in the second set is less than or equal to the preset number threshold.

[0111] Optionally, the setting unit 32 may further include:

[0112] A distance determination module, configured to determine whether the port distances between the first port member in the first set and other port members in the first set are all greater than a first distance threshold before setting the placement range of the first component group according to the positions of the port members in the first set in the first circuit module;

[0113] An exclusion module, configured to exclude the first port member from the first set in response to the port distances all being greater than the first distance threshold, to obtain a first optimized set;

[0114] The third setting module is specifically configured to set the placement range of the first component group according to the positions of the port members in the first optimized set in the first circuit module.

[0115] Optionally, the determination unit 31 may include a third determination module;

[0116] The setting unit 32 may include:

[0117] A partitioning module, configured to partition each of the port members into at least two port member sets according to the relationship between the distance between adjacent port members within the port group and a second distance threshold; wherein, the second distance threshold is equal to a preset multiple of the distance between the two port members with the shortest distance in the port group, and the preset multiple is a real number greater than 1;

[0118] A fourth setting module, configured to set the placement range of the component group corresponding to the port member set according to the positions of the port members in each port member set in the first circuit module, wherein the component group corresponding to the port member set is a component group composed of the target components corresponding to the respective port members in the port member set.

[0119] Optionally, non-target communication ports are further provided between adjacent port members within the port group; the apparatus may further include: an identification unit, configured to identify the target communication ports and the non-target communication ports according to the identifiers of the communication ports in the first circuit module before determining the position constraint rule of the target components according to the distribution of the target communication ports reserved for the target components at the edge of the first circuit module.

[0120] In a third aspect, as Figure 10 shown, an embodiment of the present invention further provides an electronic device, including: a housing 100, at least one processor 110, a memory 120, a circuit board 130, and a power supply circuit 140, wherein the circuit board 130 is disposed inside the space enclosed by the housing 100, and the processor 110 and the memory 120 are disposed on the circuit board 130; the power supply circuit 140 is configured to supply power to each circuit or device of the foregoing electronic device; the memory 120 is used to store executable program codes; the processor 110 runs a program corresponding to the executable program codes by reading the executable program codes stored in the memory 120, and is configured to execute any one of the integrated circuit design methods provided in the foregoing embodiments. The specific execution process of the foregoing steps by the processor 110 and the further steps executed by the processor 110 by running the executable program codes may refer to the descriptions in the foregoing embodiments, and will not be elaborated herein.

[0121] In a fourth aspect, an embodiment of the present invention further provides a computer-readable storage medium, where the computer-readable storage medium stores one or more programs, and the one or more programs can be executed by one or more processors to implement any one of the integrated circuit design methods provided in the foregoing embodiments. The specific execution process of the foregoing steps by the processor and the further steps executed by the processor by running the executable program codes may refer to the descriptions in the foregoing embodiments, and will not be elaborated herein.

[0122] It should be noted that in this text, relational terms such as first and second are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variant thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device comprising a series of elements not only includes those elements, but also includes other elements not expressly listed, or also includes elements inherent to such process, method, article or device. Without further limitation, an element defined by the statement "comprising a..." does not exclude the existence of additional identical elements in the process, method, article or device comprising the said element.

[0123] Each embodiment in this specification is described in a related manner. For the same or similar parts among the embodiments, reference can be made to each other, and the key point of each embodiment is to illustrate the differences from other embodiments.

[0124] In particular, for the device embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and reference can be made to the corresponding parts of the method embodiments for the relevant content.

[0125] For the convenience of description, the above-mentioned device is described by dividing it into various units / modules according to functions. Of course, when implementing the present invention, the functions of each unit / module can be realized in the same or multiple software and / or hardware.

[0126] Those of ordinary skill in the art can understand that all or part of the processes of the methods in the above embodiments can be completed by instructing relevant hardware through a computer program, and the said program can be stored in a computer-readable storage medium. When the program is executed, it can include the processes of the embodiments of the above methods. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only memory (ROM) or a random access memory (RAM), etc.

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

Claims

1. An integrated circuit design method, characterized in that, Including: Determine the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component in the first circuit module at the edge of the first circuit module; wherein, the target component is connected to at least one second circuit module through the target communication port, and the second circuit module is different from the first circuit module; Set a corresponding placement range for the target component according to the position constraint rule, so that the target component is within the placement range during circuit design adjustment; Wherein, determining the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component in the first circuit module at the edge of the first circuit module includes at least one of the following: If the target communication port includes a target input port and a target output port, and the target input port and the target output port are respectively located at two different module edges of the first circuit module, or the target input port and the target output port are located at the same module edge of the first circuit module, then determine the position constraint rule as: constrain the position of the target component according to the position of the target input port and the position of the target output port; If the number of the target communication ports is one, and the target communication port has no association relationship with other communication ports on the first circuit module, then determine the position constraint rule as: constrain the position of the target component according to the position of the target communication port; If the target communication port includes a port group, at least two port members are set in the port group, and each port member corresponds to one target component, then determine the position constraint rule as: constrain the position of the component group composed of the target components corresponding to at least a part of the port members according to the positions of at least a part of the port members in the port group.

2. The method according to claim 1, wherein The position constraint rule is: constrain the position of the target component according to the position of the target input port and the position of the target output port; Setting a corresponding placement range for the target component according to the position constraint rule includes: Obtain the coordinates of the target input port in the first circuit module to get the input coordinates, and obtain the coordinates of the target output port in the first circuit module to get the output coordinates; If the extension direction of the module edge where the target input port is located is parallel or the same as the extension direction of the module edge where the target output port is located, then use the midpoint coordinates of the input coordinates and the output coordinates as the center point coordinates of the placement range; use the center point coordinates as the first condition and a preset length as the second condition to set the placement range of the target component; If the extension direction of the module edge where the target input port is located is perpendicular to the extension direction of the module edge where the target output port is located, then use the abscissa of the input coordinate as the abscissa of the center point of the placement range, and use the ordinate of the output coordinate as the ordinate of the center point of the placement range, or use the ordinate of the input coordinate as the ordinate of the center point of the placement range, and use the abscissa of the output coordinate as the abscissa of the center point of the placement range; use the abscissa and ordinate of the center point as the first condition, and use the preset length as the second condition to set the placement range of the target component.

3. The method according to claim 1, wherein The position constraint rule is: constrain the position of the target component according to the position of the target communication port; The setting of the corresponding placement range for the target component according to the position constraint rule includes: Use the coordinate of the target communication port as the center point coordinate of the placement range; use the center point coordinate as the first condition and the preset length as the second condition to set the placement range of the target component.

4. The method according to claim 1, wherein The position constraint rule is: constrain the position of the component group composed of each target component corresponding to at least a part of the port members in the port group according to the positions of at least a part of the port members in the port group; The setting of the corresponding placement range for the target component according to the position constraint rule includes: Determine the predicted port type of each port member in the port group according to a preset algorithm; Detect whether the predicted port type of each port member is consistent with the actual port type of the port group; Form a first set with the port members in the port group whose detection results are consistent, and form a second set with the port members whose detection results are inconsistent; Set the placement range of the first component group according to the positions of the port members in the first set in the first circuit module, where the first component group is the component group composed of each target component corresponding to each port member in the first set.

5. The method according to claim 4, characterized in that The setting of the placement range of the first component group according to the positions of the port members in the first set in the first circuit module includes: According to the arrangement order of each port member in the first set on the edge of the first circuit module, obtain the coordinate of the port member arranged at the first place and the coordinate of the port member arranged at the last place; Set the placement range of the first component group according to the coordinate of the port member arranged at the first place and the coordinate of the port member arranged at the last place.

6. The method according to claim 4, characterized in that, After forming the second set with the port members whose detection results are inconsistent, the method further includes: Determine whether the number of port members in the second set is greater than a preset number threshold; In the case where the number of port members in the second set is greater than the preset number threshold, use the second set as a new port group, jump to the step of determining the predicted port type of each port member in the port group according to the preset algorithm, and continue to execute this step for the new port group until the number of port members in the second set is less than or equal to the preset number threshold.

7. The method according to any one of claims 4 to 6, characterized in that, Before setting the placement range of the first component group according to the positions of the port members in the first set in the first circuit module, the method further includes: Determining whether the port distances between the first port member in the first set and the other port members in the first set are all greater than a first distance threshold; In response to the port distances all being greater than the first distance threshold, excluding the first port member from the first set to obtain a first optimized set; The setting of the placement range of the first component group according to the positions of the port members in the first set in the first circuit module includes: Setting the placement range of the first component group according to the positions of the port members in the first optimized set in the first circuit module.

8. The method according to claim 1, wherein The position constraint rule is: According to the positions of at least some of the port members in the port group, constraining the positions of the component groups formed by the respective target components corresponding to the at least some port members; The setting of the corresponding placement range for the target component according to the position constraint rule includes: Dividing the respective port members into at least two port member sets according to the relationship between the interval distances between the port members adjacent in position within the port group and a second distance threshold; wherein, the second distance threshold is equal to a preset multiple of the distance between the two port members with the shortest distance in the port group, and the preset multiple is a real number greater than 1; Setting the placement range of the component group corresponding to the port member set according to the positions of the port members in each port member set in the first circuit module, wherein the component group corresponding to the port member set is the component group formed by the respective target components corresponding to the port members in the port member set.

9. The method according to claim 1, wherein Non-target communication ports are also provided between the port members adjacent in position within the port group; Before determining the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component on the edge of the first circuit module in the first circuit module, the method further includes: Identifying the target communication port and the non-target communication port according to the identifiers of the respective communication ports in the first circuit module.

10. An integrated circuit design device, characterized in that, Including: A determination unit configured to determine the position constraint rule of the target component according to the distribution of the target communication ports reserved for the target component on the edge of the first circuit module in the first circuit module; wherein, the target component is connected to at least one second circuit module through the target communication port, and the second circuit module is different from the first circuit module; A setting unit configured to set a corresponding placement range for the target component according to the position constraint rule determined by the determination unit, so that the target component is located within the placement range during circuit design adjustment; Wherein, the determination unit includes at least one of the following: A first determination module, configured to determine the position constraint rule as follows if the target communication port includes a target input port and a target output port, the target input port and the target output port are respectively located at two different module edges of the first circuit module, or the target input port and the target output port are located at the same module edge of the first circuit module: Constraining the position of the target component according to the positions of the target input port and the target output port; A second determination module, configured to determine the position constraint rule as follows if the number of the target communication ports is one and there is no association relationship between the target communication port and other communication ports on the first circuit module: Constraining the position of the target component according to the position of the target communication port; A third determination module, configured to determine the position constraint rule as follows if the target communication port includes a port group, at least two port members are provided in the port group, and each port member corresponds to one target component: Constraining the position of a component group formed by the target components corresponding to at least a part of the port members in the port group according to the positions of at least a part of the port members in the port group.

11. The device according to claim 10, characterized in that, The determination unit includes the first determination module; The setting unit includes: An acquisition module, configured to acquire the coordinates of the target input port in the first circuit module to obtain input coordinates, and acquire the coordinates of the target output port in the first circuit module to obtain output coordinates; A first setting module, configured to, if the extending direction of the module edge where the target input port is located is parallel to or the same as the extending direction of the module edge where the target output port is located, use the midpoint coordinates of the input coordinates and the output coordinates as the center point coordinates of the placement range; using the center point coordinates as the first condition and a preset length as the second condition, setting the placement range of the target component; A second setting module, configured to, if the extending direction of the module edge where the target input port is located is perpendicular to the extending direction of the module edge where the target output port is located, use the abscissa of the input coordinates as the abscissa of the center point of the placement range and the ordinate of the output coordinates as the ordinate of the center point of the placement range, or use the ordinate of the input coordinates as the ordinate of the center point of the placement range and the abscissa of the output coordinates as the abscissa of the center point of the placement range; using the abscissa and ordinate of the center point as the first condition and a preset length as the second condition, setting the placement range of the target component.

12. The device according to claim 10, characterized in that, The determination unit includes the second determination module; The setting unit is specifically configured to use the coordinates of the target communication port as the center point coordinates of the placement range; using the center point coordinates as the first condition and a preset length as the second condition, setting the placement range of the target component.

13. The device according to claim 10, characterized in that, The determination unit includes the third determination module; The setting unit includes: A fourth determination module, configured to determine the predicted port type of each port member in the port group according to a preset algorithm; A detection module, configured to detect whether the predicted port type of each of the port members is consistent with the actual port type of the port group; A set composition module, configured to form a first set of port members with consistent detection results and a second set of port members with inconsistent detection results in the port group; A third setting module, configured to set the placement range of a first component group according to the positions of the port members in the first set in the first circuit module, where the first component group is a component group composed of the respective target components corresponding to the port members in the first set; 14. The device according to claim 13, characterized in that, The third setting module is specifically configured to: Obtain the coordinates of the port member arranged at the head and the coordinates of the port member arranged at the tail according to the arrangement order of the port members in the first set at the edge of the first circuit module; Set the placement range of the first component group according to the coordinates of the port member arranged at the head and the coordinates of the port member arranged at the tail; 15. The device according to claim 13, characterized in that, The setting unit further includes: A fifth determination module, configured to determine whether the number of port members in the second set is greater than a preset number threshold after forming the second set of port members with inconsistent detection results; An iteration module, configured to trigger the fourth determination module with the second set as a new port group when the number of port members in the second set is greater than the preset number threshold; The fourth determination module is specifically configured to determine the predicted port type of each port member in the new port group, and continue to directly or indirectly trigger the detection module, the set composition module, the third setting module, and the fifth determination module until the fifth determination module determines that the number of port members in the second set is less than or equal to the preset number threshold; 16. The device according to any one of claims 13 to 15, characterized in that The setting unit further includes: A distance determination module, configured to determine whether the port distances between a first port member in the first set and other port members in the first set are all greater than a first distance threshold before setting the placement range of the first component group according to the positions of the port members in the first set in the first circuit module; An exclusion module, configured to exclude the first port member from the first set to obtain a first optimized set in response to the port distances all being greater than the first distance threshold; The third setting module is specifically configured to set the placement range of the first component group according to the positions of the port members in the first optimized set in the first circuit module; 17. The device according to claim 10, wherein The determination unit includes the third determination module; The setting unit includes: A division module, configured to divide each of the port members into at least two port member sets according to the relationship between the interval distance between adjacent port members in the group in the port group and a second distance threshold; where the second distance threshold is equal to a preset multiple of the distance between the two port members with the shortest distance in the port group, and the preset multiple is a real number greater than 1; A fourth setting module, configured to set a placement range of an element group corresponding to each of the port member sets according to positions of port members in each of the port member sets in the first circuit module, where the element group corresponding to the port member set is an element group composed of target elements corresponding to the respective port members in the port member set.

18. The device according to claim 10, characterized in that, Non-target communication ports are further provided between port members adjacent in the group within the port group. The apparatus further includes: an identification unit, configured to identify the target communication ports and the non-target communication ports according to identifiers of communication ports in the first circuit module before determining a position constraint rule of the target elements according to a distribution of target communication ports reserved for the target elements at an edge of the first circuit module.

19. An electronic device, characterized in that, Comprising: A housing, at least one processor, a memory, a circuit board, and a power supply circuit, where the circuit board is disposed inside a space surrounded by the housing, the processor and the memory are disposed on the circuit board; the power supply circuit is configured to supply power to each circuit or device of the foregoing electronic device; the memory is configured to store executable program codes; the at least one processor runs a program corresponding to the executable program codes by reading the executable program codes stored in the memory, and is configured to execute the method according to any one of the foregoing claims 1-9.

20. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores one or more programs, and the one or more programs can be executed by one or more processors to implement the method according to any one of the foregoing claims 1-9.

Citation Information

Patent Citations

  • Procedure and system for placement optimization of cells within circuit blocks by optimizing placement of input / output ports within an integrated circuit design

    US5757658A