Standby unit resource configuration method and apparatus
Patent Information
- Application Number
- CN202611150093.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-31
- Publication Date
- 2026-10-27
- Estimated Expiration
- 2046-07-31
AI Technical Summary
如此,由于使用的占比较小,很大概率会出现ECO发生位置缺少备用单元的情况
[0009]本申请实施例提供的备用单元资源配置方法、装置、电子设备及可读存储介质,首先,针对目标芯片的各硬模块的各子模块,计算得到各子模块的风险信息,该风险信息中包括风险倍率;接着,将风险倍率大于预设风险倍率的子模块,作为目标子模块,该预设风险倍率大于1;然后,针对各目标子模块,根据该目标子模块的风险信息及各硬模块的基线配置信息,得到该目标子模块的第一目标配置信息,其中,所述基线配置信息指示基于所属硬模块对应的基础占比确定的备用单元配置情况,所述第一目标配置信息指示配置的备用单元中不包括所述基线配置信息指示配置的备用单元;最后,根据所述基线配置信息及第一目标配置信息,通过汇总,得到所述目标芯片的总配置信息。如此,在各硬模块设置了作为基线的备用单元的基础上,针对高风险的子模块再额外设置备用单元,如此可使得为高风险区域的子模块的备用单元密度大幅上升、低风险区域保持基线水平,从而减少ECO发生位置缺少备用单元的情况。
Smart Images

Figure CN122655688B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of chip design technology, and more specifically, to a method and apparatus for configuring spare unit resources. Background Technology
[0002] After the chip design is completed, it will be "tape-out". If a bug is found after tape-out and a minor modification is desired, the cheapest way is to reserve a batch of "spare cells / redundant cells" in various parts of the chip layout beforehand. These cells can be called spare cells. If a bug is found after tape-out, these spare parts are used to connect new logic to bypass the bug—this repair process is called Function ECO (functional engineering change).
[0003] The current main approach is to adopt a hierarchical strategy based on hard modules—the physical implementation itself is layered: the entire chip is divided into several hard modules (module units that have completed placement and routing, such as CPU IP, Ethernet IP, peripheral IP, etc.), and all hard modules are configured with spare units at a default ratio of 1-2% according to "conventional design"; spare units are evenly distributed within each hard module according to this ratio. That is, the ratio of the number of spare units configured in each hard module to the number of non-spare units in that hard module is the same, and the density of spare units is consistent throughout the entire hard module. Thus, due to the relatively small percentage used, there is a high probability that a lack of spare units will occur at the location where an ECO event occurs. Summary of the Invention
[0004] This application provides a method, apparatus, electronic device, and readable storage medium for configuring backup unit resources. Based on the backup units set as a baseline in each hard module, additional backup units are set for high-risk sub-modules. This can significantly increase the backup unit density of sub-modules in high-risk areas while maintaining the baseline level in low-risk areas, thereby reducing the situation where there are no backup units at the location of ECO.
[0005] The embodiments of this application can be implemented as follows: In a first aspect, embodiments of this application provide a method for configuring backup unit resources, the method comprising: For each sub-module of each hardware module of the target chip, risk information for each sub-module is calculated, wherein the risk information includes a risk multiplier. Submodules with a risk multiplier greater than a preset risk multiplier are designated as target submodules, wherein the preset risk multiplier is not less than 1. For each target submodule, based on the risk information of the target submodule and the baseline configuration information of each hardware module, the first target configuration information of the target submodule is obtained. The baseline configuration information indicates the configuration of the backup unit determined based on the basic proportion corresponding to the hardware module. The backup unit configured by the first target configuration information does not include the backup unit configured by the baseline configuration information. Based on the baseline configuration information and the first target configuration information, the total configuration information of the target chip is obtained by summarizing.
[0006] Secondly, embodiments of this application provide a backup unit resource configuration device, the device comprising: The risk assessment module is used to calculate the risk information of each sub-module of each hardware module of the target chip, wherein the risk information includes a risk multiplier. The risk assessment module is further configured to designate sub-modules with a risk multiplier greater than a preset risk multiplier as target sub-modules, wherein the preset risk multiplier is not less than 1. The configuration module is used to obtain the first target configuration information of each target submodule based on the risk information of the target submodule and the baseline configuration information of each hardware module. The baseline configuration information indicates the configuration of the backup unit determined based on the basic proportion corresponding to the hardware module. The backup unit configured by the first target configuration information does not include the backup unit configured by the baseline configuration information. The information acquisition module is used to obtain the total configuration information of the target chip by summarizing the baseline configuration information and the first target configuration information.
[0007] Thirdly, embodiments of this application provide an electronic device, including a processor and a memory, wherein the memory stores machine-executable instructions that can be executed by the processor, and the processor can execute the machine-executable instructions to implement the backup unit resource configuration method described in the foregoing embodiments.
[0008] Fourthly, embodiments of this application provide a readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the backup unit resource configuration method as described in the foregoing embodiments.
[0009] The backup unit resource configuration method, apparatus, electronic device, and readable storage medium provided in this application firstly calculate the risk information of each sub-module of each hard module of the target chip, including a risk multiplier. Next, sub-modules with risk multipliers greater than a preset risk multiplier (greater than 1) are designated as target sub-modules. Then, for each target sub-module, based on its risk information and the baseline configuration information of each hard module, a first target configuration information is obtained. The baseline configuration information indicates the backup unit configuration based on the basic proportion corresponding to its hard module, and the first target configuration information does not include the backup units indicated by the baseline configuration information. Finally, based on the baseline configuration information and the first target configuration information, the total configuration information of the target chip is obtained by summarizing. Thus, by setting backup units as a baseline for each hard module and additionally setting backup units for high-risk sub-modules, the backup unit density of sub-modules in high-risk areas can be significantly increased while maintaining the baseline level in low-risk areas, thereby reducing the lack of backup units at ECO occurrence locations. Attached Figure Description
[0010] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of this application and should not be regarded as a limitation of the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0011] Figure 1 A block diagram illustrating an electronic device provided in an embodiment of this application; Figure 2 One of the flowcharts illustrating the spare unit resource configuration method provided in the embodiments of this application; Figure 3 for Figure 2 A flowchart illustrating the sub-steps included in step S100; Figure 4 for Figure 3 One of the flowcharts illustrating the sub-steps included in the neutron step S110; Figure 5 for Figure 3 The second flowchart of the sub-steps included in the neutron step S110; Figure 6 for Figure 3 The third flowchart of the sub-steps included in the neutron step S110; Figure 7 for Figure 3The fourth flowchart of the sub-steps included in the neutron step S110; Figure 8 for Figure 3 A flowchart illustrating the sub-steps included in the neutron step S120; Figure 9 for Figure 2 A flowchart illustrating the sub-steps included in step S300; Figure 10 for Figure 9 A flowchart illustrating the sub-steps included in the neutron step S320; Figure 11 for Figure 9 A flowchart illustrating the sub-steps included in the neutron step S340; Figure 12 A second flowchart illustrating the backup unit resource configuration method provided in this application embodiment; Figure 13 for Figure 12 A flowchart illustrating the sub-steps included in step S500; Figure 14 for Figure 12 One of the flowcharts illustrating the sub-steps included in step S600; Figure 15 for Figure 12 The second flowchart of the sub-steps included in step S600; Figure 16 for Figure 15 A flowchart illustrating the sub-steps included in the neutron step S670; Figure 17 This is a schematic diagram illustrating the execution process of the spare unit resource configuration method provided in the embodiments of this application; Figure 18 This is a comparison chart of experiments using the uniform chip sprinkling method and the method described in this paper; Figure 19 A block diagram illustrating the configuration of spare unit resources provided in an embodiment of this application.
[0012] Icons: 100 - Electronic device; 110 - Memory; 120 - Processor; 130 - Communication unit; 200 - Backup unit resource configuration device; 210 - Risk assessment module; 220 - Configuration module; 230 - Information acquisition module. Detailed Implementation
[0013] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. The components of the embodiments of this application described and shown in the accompanying drawings can generally be arranged and designed in various different configurations.
[0014] Therefore, the following detailed description of the embodiments of this application provided in the accompanying drawings is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of the application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.
[0015] It should be noted that relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0016] The current spare unit configuration method is as follows: using a "hierarchical classification strategy based on hard modules", the entire chip is divided into several hard modules (module units that have completed placement and routing and are fixed, such as CPU IP, Ethernet IP, peripheral IP, etc.). All hard modules are configured with spare units according to the "conventional design" ratio of 1-2% by default. That is, using the baseline of the entire chip, the ratio of the number of spare units in a hard module to the number of non-spare units in that hard module is 1-2%. The spare units are evenly distributed within the hard module: after each hard module obtains the proportion of spare units it needs to distribute, the spare units are evenly distributed within the hard module according to this proportion - from the upper left corner to the lower right corner of the hard module, the density of spare units is consistent throughout the entire hard module.
[0017] The inventors of this application have discovered through research that the reference processes provided by various EDA tool manufacturers have different details in the application method (such as Poisson-disk distance distribution and fixed grid distribution), but the grading granularity always remains at the level of "hard module as a whole" - the hard module is still uniformly applied and does not distinguish the risks of sub-modules.
[0018] While the aforementioned industry practices offer a coarse-grained classification at the "hard module level," the granularity of this classification only extends to the entire hard module—the risk within a single hard module remains uniform. This coarse-grained classification method suffers from the following structural flaw: a "one-size-fits-all" approach within hard modules—the coarse-grained method fails to identify the risk differences among sub-modules.
[0019] Industry-level classification only reaches the "whole hardware module" level, but real ECO repair needs are concentrated in a few sub-modules within the hardware module, rather than being evenly distributed throughout the entire hardware module. Taking a typical CPU hardware module as an example, it may simultaneously contain: high-risk sub-modules such as the CPU controller (including a complex state machine), L / S unit (including a cross-clock domain synchronizer), and CSR register (including exception handling logic); medium-risk sub-modules such as the ALU (including some control logic) and decoder (instruction decoding); and low-risk sub-modules such as the register file (pure storage), adder array, and multiplier array (pure computation). Industry practice involves distributing spare units across the entire CPU hardware module at a uniform ratio—resulting in the spare unit density around the CPU controller being the same as around the adder array. However, real ECO repairs are more likely to be concentrated in high-risk sub-modules like the controller, while the adder array almost never triggers an ECO. When the percentage is set high, most of the spare units are placed in locations where ECO will not occur—even in hard modules identified as "high-risk," internal waste still exists; when the percentage is set low (e.g., 1-2% as mentioned above), there may be a lack of spare units in locations where ECO occurs.
[0020] The same issue applies to common ECO-prone areas, some of which are listed below: Cross-clock domain paths (CDC signals): No dedicated density has been added around the CDC paths within the hard module; Protocol bridge / bus adapter: No dedicated density has been added to the bridge logic within the hard module; State machine control core: No dedicated density has been added around the FSM within the hard module; Reset / clock generation and gating logic: The reset logic within the hard module is not specifically encrypted.
[0021] In response to the above situation, embodiments of this application provide a method, apparatus, electronic device, and readable storage medium for configuring backup unit resources. Based on the backup units set as a baseline in each hard module, additional backup units are set for high-risk sub-modules. This can significantly increase the backup unit density of sub-modules in high-risk areas while maintaining the baseline level in low-risk areas, thereby reducing the situation where there is a lack of backup units at the location of ECO.
[0022] The following detailed description of some embodiments of this application is provided in conjunction with the accompanying drawings. Unless otherwise specified, the following embodiments and features can be combined with each other.
[0023] Please refer to Figure 1 , Figure 1 This is a block diagram of an electronic device 100 provided in an embodiment of this application. The electronic device 100 may be, but is not limited to, a computer, a server, etc. The electronic device 100 may include a memory 110, a processor 120, and a communication unit 130. The memory 110, processor 120, and communication unit 130 are electrically connected to each other directly or indirectly to achieve data transmission or interaction. For example, these components can be electrically connected to each other through one or more communication buses or signal lines.
[0024] The memory 110 is used to store programs or data. The memory 110 can be, but is not limited to, Random Access Memory (RAM), Read Only Memory (ROM), etc. The processor 120 is used to read / write the data or programs stored in the memory 110 and execute corresponding functions. For example, the memory 110 stores a backup unit resource configuration device 200, which includes at least one software function module that can be stored in the memory 110 in the form of software or firmware. The processor 120 implements the backup unit resource configuration method in this embodiment by running the backup unit resource configuration device 200 stored in the memory 110. The communication unit 130 is used to establish a communication connection between the electronic device 100 and other communication terminals through a network, and to send and receive data through the network.
[0025] It should be understood that, Figure 1 The structure shown is only a schematic diagram of the electronic device 100. The electronic device 100 may also include components that are larger than... Figure 1 The more or fewer components shown, or having the same Figure 1 The different configurations shown. Figure 1 The components shown can be implemented using hardware, software, or a combination thereof.
[0026] Please refer to Figure 2 , Figure 2 This is one of the flowcharts illustrating a backup unit resource configuration method provided in an embodiment of this application. The method can be applied to the aforementioned electronic device. The specific flow of the backup unit resource configuration method is described in detail below. In this embodiment, the method may include steps S100-S300 and step S700.
[0027] Step S100: For each sub-module of each hardware module of the target chip, calculate the risk information of each sub-module.
[0028] In this embodiment, the target chip is a chip that requires a spare unit. Optionally, the target chip is a single power domain. The hardware modules of the target chip are pre-laid-out and wired module units, such as CPU IP, Ethernet IP, peripheral IP, etc. The sub-modules of the hardware modules can be obtained by splitting the hardware modules according to their functions.
[0029] Optionally, when designing the target chip, RTL (Registry Transfer Level) code can be used. In RTL, there's a concept called a module. A hard module instantiates many modules, and each instantiated module further instantiates many modules. The submodule in this solution is the concept of a module in RTL—a basic functional module. Submodules are designed by the chip design front-end engineer when writing RTL code. Highly reusable, internally closed functionalities are instantiated as modules. Therefore, the submodules in this solution can also be called RTL submodules.
[0030] In this embodiment, the granularity is sub-module. Risk information for each sub-module within each hardware module of the target chip can be calculated using any method. The risk information of a sub-module describes the potential magnitude of subsequent ECO modifications required for that sub-module, and the specific amount can be determined based on actual needs.
[0031] The risk information includes a risk multiplier. The risk multiplier of a submodule represents the ratio of the expected number of spare units for that submodule to the baseline number of spare units determined based on the corresponding baseline percentage. The baseline percentage corresponding to a submodule is the baseline percentage corresponding to the hardware module to which that submodule belongs. Within the target chip, the baseline percentages corresponding to different hardware modules can be preset according to actual needs. For example, different hardware modules may have the same baseline percentage, such as 1%-2% as mentioned above. Alternatively, different hardware modules may have different baseline percentages, for example, the baseline percentages are determined based on the risk status of the hardware module. A high-risk hardware module has a high baseline percentage, and a low-risk hardware module has a low baseline percentage. For example, the baseline percentage of a regular hardware module is 1%-2%, while a hardware module identified as high-risk (such as those containing cross-clock domains, bridge modules, or complex state machines) will have its baseline percentage increased to 3%-5%. High-risk hardware modules can be determined by engineers based on their experience. The aforementioned baseline percentages can be preset. The proportion of various spare units corresponding to a hard module as a baseline is preset, and the proportion of various spare units corresponding to different hard modules as baselines can be the same.
[0032] Step S200: Select the sub-modules with a risk multiplier greater than the preset risk multiplier as target sub-modules.
[0033] For each submodule, its risk multiplier is compared with a preset risk multiplier. The preset risk multiplier is not less than 1, and its specific value can be determined based on actual needs; for example, setting the preset risk multiplier to 1. If the risk multiplier of a submodule is less than or equal to the preset risk multiplier, then that submodule is not considered a target submodule. If the risk multiplier of a submodule is greater than the preset risk multiplier, then that submodule is considered a target submodule. Target submodules are those that require additional backup units configured on top of the baseline backup unit configuration. Target submodules are high-risk areas.
[0034] Step S300: For each target submodule, the first target configuration information of the target submodule is obtained based on the risk information of the target submodule and the baseline configuration information of each hardware module.
[0035] In this embodiment, step S100 of this scheme can be executed after the hard modules of the target chip are set up and the spare units as baselines are configured. When configuring the baseline, spare units can be evenly inserted into each hard module based on the baseline proportion corresponding to that hard module, thereby obtaining the baseline configuration information for each hard module. That is, the baseline configuration information indicates the spare unit configuration determined based on the baseline proportion corresponding to the hard module. This baseline configuration information may include: the baseline proportion corresponding to the hard module, the position of each spare unit inserted as a baseline for that hard module, etc.
[0036] Once a target submodule is identified, a spare unit insertion analysis can be performed on each target submodule based on its risk information and the baseline configuration information of each hardware module. The first target configuration information for that target submodule is then obtained based on the determined insertion details. Here, the insertion details refer to the actual spare units deployed on the target chip based on the risk information. Optionally, spare units can be deployed using EDA tools, also known as spare unit insertion. The first target configuration information indicates that the configured spare units do not include those configured based on the baseline configuration information; that is, the first target configuration information indicates the additional spare units configured based on the risk information. The first target configuration information may include the locations of each spare unit configured based on the risk information.
[0037] Step S700: Based on the baseline configuration information and the first target configuration information, the total configuration information of the target chip is obtained by summarizing.
[0038] In this embodiment, after obtaining the target configuration information of each target submodule, the baseline configuration information of the corresponding baseline and the first target configuration information of the corresponding risk information can be summarized to obtain the total configuration information of the target chip. This total configuration information may include the locations of each backup unit configured for the target chip, etc.
[0039] In this way, with backup units set as the baseline for each hard module, additional backup units are set for high-risk submodules. This can significantly increase the backup unit density of submodules in high-risk areas while maintaining the baseline level in low-risk areas, thereby reducing the situation where there are no backup units at the location of ECO.
[0040] In this embodiment, the risk information further includes a risk parameter information set. This risk parameter information set includes at least one of state machine complexity, boundary pin density, cross-domain sensitivity, and integration requirement strength. Each item in the risk parameter information set represents a risk parameter; that is, state machine complexity, boundary pin density, cross-domain sensitivity, and integration requirement strength can each be a risk parameter. This can be achieved through... Figure 3The risk information is obtained as shown. Please refer to... Figure 3 , Figure 3 for Figure 2 A flowchart illustrating the sub-steps included in step S100. In this embodiment, step S100 may include sub-steps S110 to S120.
[0041] Sub-step S110: For each sub-module, obtain the risk parameter information set of that sub-module based on the report and annotation information corresponding to the target chip.
[0042] In this embodiment, the reports and annotation information corresponding to the target chip may include reports and / or annotation tables for obtaining the aforementioned risk parameters. The specific content can be determined based on actual needs. The reports in the report and annotation information set may include reports generated by EDA tools. Optionally, state machine complexity can be obtained based on state machine identification reports, boundary pin density can be obtained based on hierarchical structure reports, cross-domain sensitivity values can be obtained based on cross-domain reports, and integration requirement intensity can be obtained based on module connection relationship annotation tables. The specific acquisition method can be determined based on actual needs. Correspondingly, the reports and annotation information may include reports or annotation tables corresponding to the respective risk parameters that need to be obtained.
[0043] As one possible implementation, the risk information set includes state machine complexity, which can be achieved through... Figure 4 The state machine complexity is obtained as shown. Please refer to [the provided text]. Figure 4 , Figure 4 for Figure 3 One of the flowcharts illustrating the sub-steps included in neutron step S110. In this embodiment, sub-step S110 may include sub-steps S1111 to S1114.
[0044] Sub-step S1111: When the risk parameter information set includes state machine complexity, determine each state machine corresponding to the sub-module based on the state machine identification report in the report and annotation information.
[0045] Sub-step S1112: For each state machine corresponding to the sub-module, calculate the risk value of the state machine based on the total number of states of the state machine and the coding risk factor.
[0046] Sub-step S1113: Calculate the total risk value of the state machine based on the risk values of each state machine in this sub-module.
[0047] Sub-step S1114: Based on the total risk value of the state machine, the state machine complexity of the sub-module is calculated through normalization.
[0048] In this embodiment, state machine complexity (fsm_fragility) is used to represent the complexity of the "state machine" in a submodule. A "state machine" is a circuit that organizes behavior according to "states". For example, the power management system (FSM) has 5 states: sleep, wake-up, working, standby, and power off; the CPU controller may have 10 states: fetch, decode, execute, write back, etc. A submodule may contain multiple state machines. The more state machines there are, the more states a single state machine has, and the more fragile the state encoding method, the deeper the bugs are hidden.
[0049] Synthesis tools (such as Synopsys Design Compiler) automatically identify state machines in RTL submodules during the synthesis process and output a state machine identification report (command report_fsm). This report can be the FSM report from Synopsys Design Compiler, providing information on the number and complexity of state machines in the hardware module. The state machine identification report includes at least the following information for each identified state machine: total number of states: how many different "states" the state machine has; state encoding method: what binary string is used internally by the state machine to represent each state.
[0050] State encoding methods can use common encoding methods, such as the following: binary: the most compact, 3 states use 2 bits, but a single bit error will jump to a completely unrelated state; gray code: adjacent states differ by only 1 bit, with strong resistance to single bit interference; Hamming 2 encoding: any two states differ by ≥ 2 bits, and a 2-bit misalignment is required for a state jump; one-hot encoding: each state is represented by an independent 1 bit, 5 states use 5 bits, the most dispersed but occupies the most space.
[0051] Based on the state machine identification report corresponding to the target chip, the state machines included in the submodule can be determined. Then, for each state machine in the submodule, the risk value of that state machine is calculated through multiplication, based on the total number of states and the encoding risk factor corresponding to the state encoding method. Next, the total risk value of the submodule's state machines is obtained by summing the risk values of each state machine. Finally, the total risk value is normalized to obtain the state machine complexity of the submodule.
[0052] The coding risk factor represents the correction coefficient for the corresponding state coding method. The coding risk factors for different state coding methods can be preset by engineers based on experience. Optionally, the coding risk factor of a state machine is proportional to the dispersion of the coding used for the states of that state machine. That is, the basic principle for setting the coding risk factor is: the more dispersed the coding, the higher the error cost, and the larger the factor. Based on this principle, the coding risk factors for different state coding methods can be set as follows: binary (compact but prone to jumping between states) → 1.0, the coding risk factor for binary state coding is 1; gray (adjacent states differ by only 1 bit) → 1.2; hamming2 (jumping between states only after a 2-bit misalignment) → 1.3; one_hot (each state has an independent bit) → 1.5.
[0053] When normalizing the total risk value of the state machine, the total risk value of the state machine is divided by the total risk value of the target state machine, and the result is used as the state machine complexity. The target total risk value can be a pre-set large value, or it can be the maximum value among the total risk values of the state machines of all submodules of the target chip.
[0054] The state machine complexity obtained above can be expressed by the following formula. First, sum all the state machines identified within this submodule m as follows: Total state machine risk value (m) = Σ_each state machine (total number of states for that state machine × encoding risk factor for that state machine); then, normalize the obtained total state machine risk value, i.e., linear normalize it. The normalization process uses the maximum value among the total state machine risk values of all submodules of the target chip (i.e., the maximum total state machine risk value of all submodules of the target chip): In this way, the complexity of the state machine can be limited to between 0 and 1.
[0055] As one possible implementation, the risk information set includes boundary pin density, which can be achieved through... Figure 5 The boundary pin density is obtained as shown. Please refer to... Figure 5 , Figure 5 for Figure 3 The second flowchart illustrates the sub-steps included in neutron step S110. In this embodiment, sub-step S110 may include sub-steps S1121 to S1122.
[0056] Sub-step S1121: When the risk parameter information set includes the boundary pin density, the number of ports and leaf units of the sub-module are obtained according to the hierarchical structure report in the report and annotation information, and the original density of the boundary pins is calculated based on the number of ports and leaf units.
[0057] Sub-step S1122: Based on the original density of the boundary pins, the boundary pin density of the sub-module is calculated through normalization processing.
[0058] In this embodiment, boundary pin density is used to represent the complexity of the interfaces exposed by the submodule. If a submodule has a large number of ports (i.e., the number of signals that the module connects to the outside world), but a small number of leaf units (i.e., the total number of the lowest-level standard units inside the submodule—reflecting the logic scale of the module), it indicates that this submodule has intensive external interactions but little internal logic—this is a typical characteristic of a "bridge module / protocol adapter," which may easily lead to bugs during integration.
[0059] The hierarchy report (command `report_hierarchy`, or hierarchy report) from the Synopsys Design Compiler contains the number of ports and leaf units for each hierarchical module. First, based on the hierarchy report corresponding to the target chip, the number of ports and leaf units for that sub-module can be obtained. Then, the quotient of the square root of the number of ports and leaf units is used as the original boundary pin density. Finally, this original boundary pin density is normalized to obtain the boundary pin density of the sub-module.
[0060] From a chip layout geometry perspective, the area occupied by a submodule ≈ the number of leaf units; the perimeter of a submodule ≈ the square root of the number of leaf units (area). The geometric relationship of the perimeter is scaled proportionally to the square root. Therefore, "number of ports ÷ square root (number of leaf units)" reflects "how many pins are on each unit of perimeter" - this is a normalized indicator in an engineering sense, and it is linearly related to the "interface congestion" of the submodule on the chip.
[0061] Specifically, when normalizing the original boundary pin density, the original boundary pin density is divided by the target original boundary pin density, and the result is used as the boundary pin density. The target original boundary pin density can be a pre-set large value, or it can be the maximum value among the original boundary pin densities of all submodules of the target chip.
[0062] When the original boundary pin density of the target is the maximum value among the original boundary pin densities of all sub-modules of the target chip (i.e., the maximum original boundary pin density of all sub-modules of the target chip), the above boundary pin density can be obtained by the following formula:
[0063] In this way, the boundary pin density can be limited to between 0 and 1.
[0064] As one possible implementation, the risk information set includes cross-domain sensitive values, which can be accessed through... Figure 6 The cross-domain sensitivity value is obtained as shown. Please refer to [the example provided]. Figure 6 , Figure 6 for Figure 3 The third flowchart illustrates the sub-steps included in neutron step S110. In this embodiment, sub-step S110 may include sub-steps S1131 to S1132.
[0065] Sub-step S1131: When the risk parameter information set includes cross-domain sensitive values, obtain the number of cross-domain paths whose endpoints are located in the sub-module based on the cross-domain reports in the reports and annotation information.
[0066] Sub-step S1132: Based on the number of paths, the cross-domain sensitivity value of the sub-module is obtained through normalization processing.
[0067] In this embodiment, the cross-domain sensitivity value (cdc_rdc_sensitive) is used to represent the density of "cross-clock domain / cross-reset domain" paths in the submodule. The more cross-domain paths there are, the more likely there are bugs in the synchronizer design, reset sequence, etc., and the higher the incidence of ECO.
[0068] Cross-domain sensitivity values can be obtained based on cross-domain reports from formal verification tools (such as Synopsys VC Static). Cross-domain reports can be CDC / RDC reports from Synopsys VC Static, a chip RTL formal verification EDA tool. These reports provide detailed information about cross-clock and cross-reset domains within the chip. Each entry in the cross-domain report can include: the starting object path (industry terminology: SrcObject, the start of the cross-domain path): the RTL path of the signal source cell; and the ending object path (industry terminology: DestObject, the end of the cross-domain path): the RTL path of the target cell to which the signal reaches.
[0069] Cross-domain paths can be classified into the submodule with the deepest matching in the risk specification list by performing longest prefix matching based on the "destination object path". For example, the path destination u_ethmac / wishbone / RxDataLatched1 / Q → is classified into the u_ethmac / wishbone submodule. Cross-domain ECO remediation typically involves adding a synchronizer on the destination side, and spare unit resources should be concentrated near the destination. Therefore, the cross-domain paths are divided according to the submodule to which the destination of the cross-domain path belongs, as described above. In this way, the number of cross-domain paths whose destination is located in that submodule can be obtained, and then the number of paths can be normalized to obtain the cross-domain sensitivity value of that submodule.
[0070] When normalizing the number of paths, a cross-domain sensitivity value can be obtained based on the total number of paths and the target number of paths. The target number of paths can be a pre-set large value or the maximum number of paths among all submodules of the target chip. Optionally, the quotient of the total number of paths and the target number of paths can be used as the cross-domain sensitivity value, or the cross-domain sensitivity value can be obtained based on the total number of paths, the target number of paths, and other processing.
[0071] As one possible implementation, the cross-domain sensitivity value can be obtained using logarithmic compression rather than nonlinear normalization; that is, the cross-domain sensitivity value is calculated through logarithmic processing. In this approach, when the target path count is the maximum value among the path counts of all submodules of the target chip (i.e., the maximum path count of the target chip), the cross-domain sensitivity value can be obtained using the following formula: Thus, cross-domain sensitivity values can be limited to the range of 0-1 through logarithmic compression.
[0072] The inventors of this application used an experimental module (i.e., a hard module) for testing. They found that 92% of the sub-modules had zero cross-domain CDC paths, while the remaining nine sub-modules had CDC paths ranging from 5 to 762, spanning three orders of magnitude. If linear normalization were used as before, this value for most sub-modules would be flattened below 0.01 and indistinguishable. Logarithmic compression, using the log function (mathematically transforming an exponential relationship into a linear one), widens the gradients for 5 → 0.27, 132 → 0.74, and 762 → 1.0—this aligns with the engineering intuition of "non-linear growth of cross-domain risk": five CDC paths already indicate a CDC risk in the structure; adding ten more simply repeats the same problem, with the marginal risk decreasing.
[0073] As one possible implementation, the risk parameter information set includes integrated demand intensity, which can be achieved through... Figure 7 The integration requirement intensity is obtained as shown. Please refer to [the provided text]. Figure 7 , Figure 7 for Figure 3 The fourth flowchart illustrates the sub-steps included in neutron step S110. In this embodiment, sub-step S110 may include sub-steps S1141 to S1142.
[0074] Sub-step S1141: When the risk parameter information set includes integration demand intensity, determine the integration boundary type to which the sub-module belongs based on the module connection relationship labeling table in the report and labeling information.
[0075] Sub-step S1142: Calculate the integration requirement intensity based on the type weight corresponding to each integration boundary type and the integration boundary type to which the sub-module belongs.
[0076] In this embodiment, integration demand strength is used to represent the risk of a submodule at the "integration boundary"—whether it is a bridge module, interface adapter, bus arbiter, cross-subsystem glue logic, debug interface, etc. The aforementioned bridge modules, interface adapters, etc., are natural points of risk concentration.
[0077] The module connection relationship labeling table can be manually maintained by senior engineers in the project and can be in JSON format. This table can indicate the locations of high-risk modules such as bridging modules and arbitrators within the entire chip. The table also indicates the integration boundary type to which each submodule belongs.
[0078] Optionally, the aforementioned natural risk clusters can be categorized into five integration boundary types: bridge modules / interface adapters, bus arbiters, cross-clock domain signal groups, isolated glue logic, and debug / test interfaces. The module connection relationship labeling table can enumerate which integration boundary type each submodule belongs to. For example, bridge modules / interface adapters include AHB-to-Wishbone bridges and APB-to-AHB adapters; bus arbiters include round-robin / priority arbitration logic for multi-master buses; cross-clock domain signal groups include start / end leaf unit paths; isolated glue logic includes top-level power management state machines and reset sequence generators; and debug / test interfaces include JTAG TAPs and SoC scan chain access points.
[0079] One submodule may be listed in multiple integration boundary types at the same time. For example, the Wishbone Bridge belongs to both "bridge module" and "cross-clock domain signal group".
[0080] The integration boundary type of the submodule can be determined based on the module connection relationship labeling table above. Type weights for different integration boundary types can be pre-set. The type weight of an integration boundary type is a coefficient representing its relative importance. Important integration boundary types (such as cross-domain signal groups) have higher weights (i.e., higher type weights), while less important integration boundary types (such as debug interfaces) have lower weights. The specific weights can be determined based on actual conditions. Optionally, the type weights for different integration boundary types are as follows: Isolated glue logic → 0.25 (i.e., the type weight corresponding to isolated glue logic is 0.25); Cross-clock domain signal groups → 0.30; Bridge modules / interface adapters → 0.20; Bus arbiters → 0.20; Debug / test interfaces → 0.05.
[0081] Next, based on the integration boundary type to which the submodule belongs and the type weight corresponding to each integration boundary type, the integration requirement intensity of the submodule is obtained by weighted summation.
[0082] The above method of obtaining integration demand intensity can be expressed by the following formula: integration_demand(m) = Σ_integration boundary type (type weight of the integration boundary type × number of times submodule m is listed in the integration boundary type), where the number of times submodule m is listed in an integration boundary type is 0 or 1, and the integration demand intensity is limited to between 0 and 1.
[0083] Understandably, engineers can write automated scripts that parse reports and annotations to automatically calculate the state machine complexity, boundary pin density, cross-domain sensitivity, and integration requirement strength. The specific processing steps for this automated calculation are shown above. The obtained state machine complexity, boundary pin density, cross-domain sensitivity, and integration requirement strength are all between 0 and 1.
[0084] Sub-step S120: Based on the risk parameter information set of the sub-module, obtain the risk multiplier of the sub-module.
[0085] In this embodiment, the risk multiplier of the submodule can be obtained by weighted summation based on the various risk parameters included in the risk parameter information set of the submodule and their corresponding pre-set weights. Alternatively, the risk multiplier of the submodule can also be obtained based on the risk parameter information set in other ways, which can be determined according to actual needs.
[0086] As one possible implementation, the risk parameter information set includes state machine complexity, boundary pin density, cross-domain sensitivity, and integration requirement intensity. In this case, it can be achieved through... Figure 8 The risk multiplier for a submodule is calculated as shown. Please refer to... Figure 8 , Figure 8 for Figure 3 A flowchart illustrating the sub-steps included in neutron step S120. In this embodiment, sub-step S120 may include sub-steps S121 to S123.
[0087] Sub-step S121: Calculate the structural risk based on the state machine complexity, boundary pin density, cross-domain sensitivity value, and their respective first preset weights.
[0088] Sub-step S122: Calculate the initial risk multiplier based on the structural risk, the intensity of integration demand, and their respective second preset weights.
[0089] Sub-step S123: Obtain the risk ratio based on the preset risk ratio range and the initial risk ratio.
[0090] In this embodiment, the sum of the first preset weights corresponding to state machine complexity, boundary pin density, and cross-domain sensitivity value is 1. A weighted summation can be performed based on the state machine complexity, boundary pin density, cross-domain sensitivity value, and their respective first preset weights, and the result is used as the structural risk. The second preset weights corresponding to structural risk and integration requirement intensity can also be 1. The specific values of the first and second preset weights can be determined based on actual needs. A weighted summation can be performed based on the calculated structural risk, integration requirement intensity, and their respective second preset weights, and the sum of the result and 1 is used as the initial risk multiplier. Then, it is determined whether the initial risk multiplier is within the preset risk multiplier range. If it is, the initial risk multiplier is used as the risk multiplier for the submodule; if not, the boundary value of the preset risk multiplier range closest to the initial risk multiplier is used as the risk multiplier for the submodule. Thus, the risk multiplier is within the preset risk multiplier range. The preset risk multiplier range can be set according to actual needs.
[0091] The risk multiplier mentioned above can be obtained using the following formula: risk_multiplier(m) = clamp(1.0 + a × (w_fsm × state machine complexity (m) + w_bound × boundary pin density (m) + w_cdc × cross-domain sensitivity value (m)) + b × integration requirement intensity (m) (described later as being obtained based on connection relationship annotation points), 1.0, 4.0). Where risk_multiplier(m)b represents the risk multiplier of submodule m, w_fsm represents the first preset weight corresponding to state machine complexity, w_bound represents the first preset weight corresponding to boundary pin density, w_cdc represents the first preset weight corresponding to cross-domain sensitivity value, a represents the second preset weight corresponding to structural risk, and b represents the second preset weight corresponding to integration requirement intensity. In the above formula, the preset risk multiplier range is 1.0-4. The three values in clamp() in the formula are truncated with upper and lower thresholds to ensure that the final risk multiplier is between 1.0 and 4.
[0092] The risk multiplier concept is as follows: Multiplier 1.0 = No encryption (i.e., the same as uniform deployment); Multiplier 2.0 = Deploy an additional 100% of the submodule's baseline within the submodule's footprint as spare units; Multiplier 4.0 = Deploy an additional 300%. Here, the baseline of a submodule represents the number of spare units deployed according to the baseline percentage of the hard module to which the submodule belongs, which is the product of the baseline percentage of the hard module to which the submodule belongs and the number of non-spare units in the submodule.
[0093] After obtaining the risk multiplier, submodules with risk multipliers greater than the preset risk multiplier can be designated as target submodules. In this way, based on objective data, it is possible to summarize which submodules on the chip are likely to have higher risks.
[0094] Currently, when uniformly distributing spare units within a hard module, the type of spare unit is not distinguished. The inventors of this application have discovered that this configuration method, which does not distinguish between spare unit types, leads to a mismatch between the distributed spare unit types and the requirements—"distributing the wrong unit type."
[0095] The spare units required for ECO repair are strongly correlated with the nature of the violation. For example, when the ECO type is a cross-clock domain synchronizer repair, the main spare units required are D flip-flops; when the ECO type is a clock-gated logic repair, the main spare units required are clock-gated units; when the ECO type is a logic function adjustment, the main spare units required are combinational logic gates; and when the ECO type is a simple delay adjustment, the main spare units required are buffers / inverters.
[0096] The current uniform allocation scheme distributes spare units in the same proportion for all types (e.g., 12.5% each for Buffer / Inverter, and 7.5% each for the other dozen or so types). That is, spare units are distributed in a uniform proportion across different hardware modules, such as 12.5% each for Buffer / Inverter and 7.5% each for the other dozen or so types. It doesn't add more D flip-flops just because a certain area is a CDC cross-domain hotspot. As a result, ECO often encounters the awkward situation of "nearby areas lacking critical types / having redundant non-critical types."
[0097] To avoid the above situation, the risk information may also include a risk parameter information set, which includes at least one of state machine complexity, boundary pin density, cross-domain sensitivity, and integration requirement intensity. Figure 9 The method shown obtains the first target configuration information for a target submodule. Please refer to... Figure 9 , Figure 9 for Figure 2 A flowchart illustrating the sub-steps included in step S300. In this embodiment, step S300 may include sub-steps S310 to S340.
[0098] Sub-step S310: For each risk parameter in the risk parameter information set of the target sub-module, determine whether the risk parameter meets the corresponding triggering condition.
[0099] In this embodiment, at least one trigger condition and its corresponding type proportion adjustment method can be preset. The type proportion adjustment method corresponding to the trigger condition corresponds to the risk type corresponding to the trigger condition. The type proportion distribution represents the ratio of the number of backup units of each backup unit type set based on risk information. The backup unit type can be each unit in a preset backup unit list, such as a D trigger. Alternatively, each unit in the preset backup unit list can be classified based on a classification table, and the category used in the classification can be used as the backup unit type. For example, DFFHQNx1 is the SEQ time series class, and the SEQ time series class is a type of backup unit. In this case, the backup unit type is an abstract type. The type proportion adjustment method is used to indicate which backup unit types' proportions are increased or decreased, and the increase or decrease value.
[0100] A trigger condition may include a threshold for the corresponding risk parameter, the specific value of which can be determined based on actual needs. For each risk parameter of the target submodule, if the risk parameter is greater than the threshold in the corresponding trigger condition, then the risk parameter is determined to meet the corresponding trigger condition; if the risk parameter is not greater than the threshold in the corresponding trigger condition, then the risk parameter is determined not to meet the corresponding trigger condition.
[0101] If the risk parameter information set of the target submodule satisfies at least one triggering condition, then sub-step S320 is executed.
[0102] Sub-step S320: Based on the type proportion adjustment method corresponding to each triggered condition, the target type proportion distribution is obtained by adjusting the preset initial type proportion distribution.
[0103] An initial type proportion distribution can be preset, which indicates the proportion distribution of multiple preset unit types. For example, the multiple unit types include four types: SEQ timing type, COMB_SIMPLE simple combination, COMB_COMPLEX complex combination, and CLK clock type. The preset initial type proportion distribution is {SEQ: 0.25, COMB_SIMPLE: 0.25, COMB_COMPLEX: 0.25, CLK: 0.25}, that is, each occupies one-quarter.
[0104] If the target submodule satisfies at least one triggering condition, the initial type proportion distribution can be processed according to the type proportion adjustment method corresponding to each satisfied triggering condition to obtain the target type proportion distribution. In this way, the preference ratio of various unit types can be automatically determined based on the risk characteristics of each target submodule. This method can achieve similar effects as follows: If a cross-clock domain region prefers "timing type," then more D flip-flops will be placed in that region; if a bridge module prefers "complex combination type," then more AOI / OAI complex combination gates will be placed in that region.
[0105] Optionally, the risk parameter information set includes state machine complexity, boundary pin density, cross-domain sensitivity, and integration requirement intensity. Multiple unit types are the four types mentioned above: SEQ, COMB_SIMPLE, COMB_COMPLEX, and CLK. In this case, the trigger conditions and type proportion adjustment methods can be set as follows: High state machine complexity (i.e., state machine complexity greater than the corresponding threshold) → +15% SEQ, -20% CLK; High boundary pin density (i.e., boundary pin density greater than the corresponding threshold) → +15% COMB_COMPLEX, -15% CLK; High cross-domain sensitivity (i.e., cross-domain sensitivity greater than the corresponding threshold) → +10% SEQ (cross-clock domain synchronizers require D flip-flops); High integration requirement intensity (i.e., integration requirement intensity greater than the corresponding threshold) → +10% COMB_COMPLEX. Here, "+" indicates an increase, and "-" indicates a decrease. For example, "+15% SEQ" means increasing the proportion of SEQ by 15%, and "-20% CLK" means decreasing the proportion of CLK by 20%.
[0106] Optionally, it can be achieved through Figure 10 The target type percentage is obtained as shown. Please refer to [the provided text]. Figure 10 , Figure 10 for Figure 9 A flowchart illustrating the sub-steps included in neutron step S320. In this embodiment, sub-step S320 may include sub-steps S321 to S323.
[0107] Sub-step S321: Adjust the preset initial type proportion distribution according to the type proportion adjustment method corresponding to each triggered condition to obtain the first type proportion distribution.
[0108] Sub-step S322: Based on the first type proportion distribution and the preset proportion range corresponding to each unit type, obtain the second type proportion distribution.
[0109] Sub-step S323: Normalize the second type proportion distribution to obtain the target type proportion distribution.
[0110] In this embodiment, for the target submodule, the initial type proportion distribution can be adjusted according to the type proportion adjustment method corresponding to each trigger condition satisfied by the target submodule, and the adjusted result is used as the first type proportion distribution. For example, continuing the example above, in the initial type proportion distribution, SEQ, COMB_SIMPLE, COMB_COMPLEX, and CLK are all 0.25. The target submodule satisfies high state machine complexity, and the corresponding type proportion adjustment method is to increase SEQ by 15% and decrease SEQ and CLK by 20%. Then, the first type proportion distribution obtained after adjustment is {SEQ: 0.40, COMB_SIMPLE: 0.25, COMB_COMPLEX: 0.25, CLK: 0.05}.
[0111] A preset percentage range for each unit type can be set in advance to avoid some unit types having excessively high or low percentages. The specific range can be determined based on actual needs. The first type percentage distribution can be adjusted based on the percentage of each unit type and its preset percentage range to obtain a second type percentage distribution. The preset percentage ranges for each unit type can be the same or different; the specific range can be determined based on actual needs. For example, the preset percentage range for each unit type can be 0.05-0.6. Each percentage in the second type percentage distribution falls within its corresponding preset percentage range. Finally, the second type percentage distribution is normalized, and the result is used as the target type percentage distribution.
[0112] Thus, by clamping (i.e. controlling the upper and lower thresholds) and normalization, the distribution of spare unit type preferences for the target submodule is obtained.
[0113] If the risk parameter information set of the target submodule does not meet any triggering condition, then sub-step S330 is executed.
[0114] Sub-step S330: The initial type proportion distribution is used as the target type proportion distribution.
[0115] If the target submodule does not meet any of the triggering conditions, that is, all triggering conditions are not triggered, then the initial type proportion distribution does not need to be adjusted and can be directly used as the target type proportion distribution.
[0116] Optionally, a structured risk specification list file can be generated. This file can be stored in JSON format and named risk_spec.json. The structured risk specification list file may include the risk multiplier for each submodule, the distribution of target types, and various risk parameters. This structured risk specification list file can be consumed by any physical implementation tool.
[0117] Sub-step S340: Based on the baseline configuration information of each hard module and the target type proportion distribution corresponding to the target sub-module, insert a spare unit to obtain the first target configuration information.
[0118] In this embodiment, based on the baseline configuration information of each hard module and the target type proportion distribution corresponding to the target sub-module, a spare unit can be inserted using an EDA tool, and based on the spare unit inserted based on risk information when insertion stops, the first target configuration information of the target sub-module can be obtained.
[0119] Optionally, it can be achieved through Figure 11 The method shown obtains the first target configuration information for a target submodule. Please refer to... Figure 11 , Figure 11 for Figure 9 A flowchart illustrating the sub-steps included in neutron step S340. In this embodiment, sub-step S340 may include sub-steps S341 to S342.
[0120] Sub-step S341: For the target sub-module, obtain the physical footprint of the target sub-module, and calculate the number of units of each unit type corresponding to the target sub-module based on the risk multiplier of the target sub-module, the baseline proportion corresponding to the baseline configuration information of the hardware module to which it belongs, and the target type proportion distribution.
[0121] The number of units does not include the spare units corresponding to the baseline configuration information, and the baseline percentage corresponding to a hard module is determined based on the risk status of that hard module.
[0122] Sub-step S342: Based on the number of units of each unit type, insert spare units in the first target area, and stop inserting spare units for the target sub-module when the first preset stopping condition is met, thereby obtaining the first target configuration information.
[0123] In this embodiment, during the physical implementation stage (after the detailed layout is completed), the physical footprint coordinates (which can be the rectangular coordinates of the submodule) of each target submodule (i.e., the high-risk submodule) can be obtained through the physical implementation tool. In other words, the objects that need to be inserted as backup units based on risk information are high-risk submodules with clear physical footprints.
[0124] Based on the risk multiplier of the target submodule, the baseline proportion corresponding to the baseline configuration information of its associated hard module, and the target type proportion, the number of units of each unit type corresponding to the target submodule can be calculated. In this process, the number of baselines corresponding to the target submodule can first be determined based on the baseline configuration information of the hard module to which the target submodule belongs; that is, the number of spare units serving as baselines in the target submodule. This can be the product of the baseline proportion of its associated hard module and the number of non-spare units in the target submodule. Based on the number of baselines and the risk multiplier corresponding to the target submodule, the total number of spare units that need to be additionally inserted in the target submodule due to risk information can be calculated. This process can be as follows: Then, by combining the target type distribution corresponding to the target sub-module, the number of units for each unit type corresponding to the target sub-module is calculated, which gives the expected number of spare units for each unit type corresponding to the target sub-module.
[0125] Next, for the target submodule, based on the number of units of each unit type corresponding to the target submodule, EDA tools can be used to insert spare units in the first target area corresponding to the target submodule. When inserting spare units for the target submodule based on risk information, it can be determined whether to stop the insertion based on whether a first preset stop condition is met, and based on the spare unit insertion status of the target submodule based on risk information at the time of stopping the insertion, the first target configuration information corresponding to the target submodule can be obtained.
[0126] The first target area may include only the physical footprint of the target submodule, or it may include the physical footprint of the target submodule and a first neighboring region of the physical footprint. The physical footprint is the area indicated by the physical footprint coordinates of the target submodule, i.e., the area occupied by the target submodule. The first neighboring region is the surrounding area of the physical footprint, i.e., an outward buffer zone. The size of the first neighboring region can be determined according to actual needs, for example, by expanding outward by 0.5 times the side length of the occupied area.
[0127] When the first target area includes the physical footprint of the target submodule and its first neighboring area, insertion is first performed within the physical footprint. If the physical footprint's capacity is insufficient (it is already full of the original logic, or full of the original logic and the aforementioned baseline spare units, or full of the original logic, the aforementioned baseline spare units, and some newly added spare units based on risk information), it can overflow to the surrounding neighborhood, i.e., insertion is performed in the first neighboring area of the physical footprint. This process is equivalent to: if workshop A in a factory has a high failure rate, more spare parts boxes are placed in workshop A—if there is not enough space in workshop A, they are placed in the corridor adjacent to workshop A.
[0128] In this embodiment, a first preset stop condition can be set according to actual needs, without specific limitations. As one possible implementation, the first preset stop condition may include: a first preset condition and a second preset condition, or include: a first preset condition, a second preset condition, and a third preset condition.
[0129] The first preset condition is that all spare units determined based on the risk information are inserted into the first target area. That is, when inserting spare units for a target submodule based on risk information, if all spare units determined based on the risk information have been inserted into the first target area corresponding to that target submodule—that is, the number of spare units inserted into the first target area of the target submodule based on risk information equals the number calculated before insertion—then it can be determined that the insertion of spare units for that target submodule is complete, and the insertion of spare units for that target submodule can be stopped.
[0130] The second preset condition is: the backup units determined based on the risk information cannot all be inserted into the first target area due to insufficient capacity. That is, when inserting backup units for a target submodule based on risk information, if there is no space left to insert backup units in the first target area of the target submodule, i.e., the capacity of the first target area is insufficient, the insertion of backup units for that target submodule can be stopped.
[0131] The third preset condition is: the first inserted percentage of spare units in the hard module to which the target submodule belongs is equal to the first preset percentage corresponding to the hard module. The first inserted percentage is determined based on the baseline configuration information and the spare units inserted based on the risk information. The first inserted percentage represents the ratio of the sum of the number of spare units serving as the baseline for the hard module to which the target submodule belongs, and the number of spare units inserted for each target submodule under the hard module to which the target submodule belongs, based on the risk information, to the number of non-spare units in the hard module to which the target submodule belongs. In other words, it represents the ratio of the number of spare units inserted for a hard module (including those serving as the baseline and those inserted based on risk information) to the number of units in the hard module itself. The first preset percentage corresponding to the hard module represents the ratio of the pre-set sum of the number of spare units serving as the baseline for the hard module, and the number of spare units that can be inserted based on risk information, to the number of non-spare units in the hard module. When the insertion of backup units based on risk information is referred to as channel one insertion, the aforementioned first preset percentage represents the upper limit of the insertion percentage corresponding to backup units inserted via channel one and those inserted as the baseline. This value can be determined based on actual needs. For example, based on the risk status of the hard module, if the risk of the hard module is high, the first preset percentage will be large; or, it can be set in combination with other factors. For example, after completing channel one insertion, it is necessary to insert backup units based on other factors. In this case, a second preset percentage can be set for the hard module, and the difference between the second preset percentage and the first preset percentage can be used as the percentage of backup units inserted based on other factors. In this case, the first preset percentage can be determined by combining the approximate number of backup units that need to be inserted based on other factors.
[0132] When the third preset condition is included in the first preset stop condition, during the insertion process, it can be determined in real time whether the third preset condition is met. If it is met, the insertion of the spare unit for the target submodule is stopped.
[0133] Optionally, when processing the target sub-modules to obtain the corresponding first target configuration information, the determined target sub-modules can be executed in parallel or in any order, depending on the actual needs.
[0134] Optionally, to avoid the situation where target submodules with high risk ratios are not configured with backup units based on risk information due to the aforementioned third preset condition, when inserting backup units for each target submodule based on the risk information, the target submodules can be processed sequentially in descending order of risk ratio. It is understood that when processing target submodules sequentially in descending order of risk ratio, for the current target submodule, if it is determined that the first preset stopping condition is met, the first target configuration information for the current target submodule is obtained; then, the next target submodule is processed.
[0135] Optionally, when insertion is stopped due to the second and third preset conditions, this situation can be recorded as capacity truncation, specifically marked as "LOCAL_CAPACITY_LIMIT Local Capacity Limit". Furthermore, if the first target area includes the physical footprint of the target submodule and its first neighboring area, whether there is overflow and the overflow distance can be recorded based on the insertion situation, where overflow indicates insertion occurs in the first neighboring area.
[0136] The inventors of this application have also discovered through research that the current hardware module-based hierarchical uniform distribution scheme has the following drawbacks: cross-domain signals (i.e., cross-clock domain signals) are "dispersed but critical," and the hardware module hierarchy cannot detect them. Cross-domain signals may be signals across hardware modules or signals across sub-modules.
[0137] The core control logic at the chip's top level, such as the power management state machine, cross-subsystem bus arbitration, and cross-hard module control signals, spans multiple hard modules. Their actual circuit instantiations are scattered across different hard modules. For example, the registers of the "power management state machine" may be distributed in the Ethernet hard module, the CPU hard module, and various peripheral hard modules.
[0138] Industry-standard hard module-level hierarchical solutions fail to identify these critical "cross-hard module" signals—the hierarchical granularity remains at the "hard module as a whole" level, while cross-hard module signals span multiple hard module boundaries and are not within the ratio control range of any single hard module. As a result, certain areas at the top level have high actual ECO requirements (power management repair and cross-subsystem bus protocol repair are concentrated here), but the locations of these critical signals crossing hard module boundaries consistently fall into the hierarchical blind spot, meaning no additional backup units are configured for these signal locations.
[0139] To alleviate the above situation, in this embodiment, the starting and ending units of the cross-domain path of the target chip can be analyzed and spare units can be inserted. Please refer to... Figure 12 , Figure 12This is a second flowchart illustrating the backup unit resource configuration method provided in this application embodiment. In this embodiment, after step S300, the method may further include steps S400 to S600.
[0140] Step S400: Obtain the starting unit and ending unit of each cross-domain path of the target chip, and obtain the anchor unit set through deduplication.
[0141] In this embodiment, the starting and ending units of each cross-domain path included in the target chip can be obtained in any way. For example, a register in the power management state machine → a receive register in the Ethernet module.
[0142] Optionally, the instantiation path of the start object and end object (industry name SrcObject / DestObject) of each cross-domain path can be extracted from the cross-domain report corresponding to the target chip, thereby obtaining the start unit (i.e. the start object and SrcObject mentioned above, also known as the start leaf unit) and end unit (i.e. the end object and DestObject mentioned above, also known as the end leaf unit) of each cross-domain path.
[0143] Alternatively, the aforementioned module connection relationship annotation table may include an integration boundary type of cross-clock domain signal groups. Based on the information recorded in the module connection relationship annotation table regarding the paths containing start / endpoint leaf units (i.e., start / endpoint units) within each cross-clock domain signal group, the start and end units of each cross-domain path can be obtained. The specific method for obtaining the cross-clock domain signal group information regarding cross-domain paths in the module connection relationship annotation table can be determined based on actual needs.
[0144] Alternatively, the start and end units of each cross-domain path can be obtained in advance from the cross-domain report corresponding to the target chip, and then grouped according to "source clock domain, target clock domain", that is, all paths between the same clock domain pair are grouped into a cross-clock domain signal group. Engineers can save the above grouping content in the module connection relationship labeling table, and can directly obtain the above grouping content from the module connection relationship labeling table later, thereby obtaining the start and end units of each cross-domain path included in the target chip.
[0145] Alternatively, without using a module connection relationship labeling table, when inserting additional spare units for cross-domain signal analysis after the desired channel is inserted, the starting and ending units of each cross-domain path in the target chip can be obtained based on the cross-domain report. These are then grouped according to "source clock domain, target clock domain," and the resulting cross-clock domain signal groups are saved for later querying. The units in the unit set of a cross-clock domain signal group are the starting and ending units involved in all paths within that group.
[0146] After obtaining the starting and ending units of each cross-domain path of the target chip, deduplication can be performed on all the starting and ending units, and the result can be used as an anchor unit set. The deduplication process includes: summarizing the starting and ending units of each cross-domain path of the target chip into an initial set, and deleting duplicate units from this initial set to obtain a first set. For example, if a unit is both the starting and ending unit of one cross-domain path, it will be recorded twice in the set, and one of those instances can be deleted.
[0147] To avoid duplicate encryption, in this embodiment, the deduplication process may further include deleting units whose corresponding submodules have been inserted into backup units due to corresponding risk information. That is, after obtaining the aforementioned first set, for each unit in the first set, it can be determined whether the submodule to which the unit belongs has been inserted into a backup unit during the aforementioned channel one insertion. If it has been inserted, the unit is deleted from the first set; if it has not been inserted, the unit is retained, thus obtaining the second set. Even if the expected quantity calculated based on the risk information is not completely distributed when insertion stops during channel one insertion due to a second or third preset condition, as long as a submodule has been inserted into a backup unit due to risk information, it is considered that the submodule has been inserted into a backup unit during the aforementioned channel one insertion. The second set can be used as the anchor unit set. The anchor units in the anchor unit set are the obtained starting or ending units.
[0148] Step S500: Based on the physical coordinates of each anchor point unit in the anchor point unit set, process the anchor point unit set to obtain the repair cluster.
[0149] During the physical implementation phase, the physical coordinates of each anchor unit in the anchor unit set can be obtained. Based on the physical coordinates of each anchor unit, the anchor unit set can be processed including clustering to obtain a repair cluster.
[0150] In other words, instead of using a single signal group as the standby unit for deployment, the physical coordinates of all anchor units obtained after deduplication are obtained. For all anchor units, they are re-clustered according to their physical coordinates after layout. That is, if anchor units from different signal groups are close to each other on the layout, they are merged into the same physical cluster; if some anchors belong to the same signal group but are physically far apart, they can be divided into different physical clusters.
[0151] Optionally, the clustering algorithm used to obtain the repair clusters can be determined based on actual needs, such as using a partitioning clustering algorithm (e.g., K-means clustering algorithm) or a density clustering algorithm (e.g., DBSCAN algorithm).
[0152] As one possible implementation, density-based clustering algorithms are used for the aforementioned physical clustering. For example, the DBSCAN algorithm is employed, with a neighborhood radius eps of 50 μm and a minimum cluster size minPts of 5. These parameters indicate that a region is considered a potential ECO remediation hotspot only when a set of anchor points of a certain density is formed within an approximately 50 μm reachable range. Scattered anchor points that do not meet the density conditions (i.e., the conditions expressed by the above two parameters) are not grouped into individual clusters.
[0153] Alternatively, as a possible implementation, the anchor unit set can be clustered once, and each cluster in the processing result can be used as a repair cluster. This facilitates the rapid acquisition of repair clusters.
[0154] Alternatively, as another possible implementation, it can be achieved through... Figure 13 The method shown obtains repair clusters, avoiding the formation of physical clusters with large spans. Please refer to... Figure 13 , Figure 13 for Figure 12 A flowchart illustrating the sub-steps included in step S500. In this embodiment, step S500 may include sub-steps S510 to S530.
[0155] Sub-step S510: Based on the physical coordinates of each anchor unit in the anchor unit set, cluster the anchor unit set to obtain an initial cluster.
[0156] Sub-step S520: For each initial cluster, determine whether the maximum physical diameter of the initial cluster is greater than the preset length.
[0157] In sub-step S530, if the initial cluster is larger than the preset length, it is divided into multiple first sub-clusters with a maximum physical diameter not greater than the preset length, and each of the obtained first sub-clusters is used as a repair cluster; if the initial cluster is not larger than the preset length, it is used as a repair cluster.
[0158] In this embodiment, clustering analysis can be performed based on the physical coordinates of each anchor unit in the anchor unit set, such as using the DBSCAN algorithm in density clustering, and each cluster obtained is used as an initial cluster. Then, for each initial cluster, it is determined whether the maximum physical diameter of the initial cluster is greater than a preset length. The preset length can be set according to actual needs, for example, 150 μm. If the maximum physical diameter of the initial cluster is greater than the preset length, the initial cluster is divided into multiple sub-clusters according to the physical coordinates of each anchor unit in the initial cluster, and these multiple sub-clusters are used as first sub-clusters. The maximum physical diameter of each first sub-cluster is not greater than the preset length, and then each first sub-cluster is used as a repair cluster.
[0159] The method of dividing the initial clusters into those with a maximum physical diameter not exceeding the preset length can be determined based on actual needs. For example, the initial clusters can be divided by clustering. If there are still clusters with a maximum physical diameter greater than the preset length after one clustering, the clustering is repeated until there are no clusters with a maximum physical diameter greater than the preset length.
[0160] If the maximum physical diameter of the initial cluster is not greater than the preset length, the initial cluster can be directly used as a repair cluster.
[0161] In this embodiment, after clustering the anchor point unit set, if there is a cluster with a maximum physical diameter exceeding a preset length, it is further divided into multiple sub-clusters with a maximum physical diameter not exceeding the preset length according to physical coordinates, serving as repair clusters. This avoids the formation of excessively large physical clusters through chain-like adjacency relationships, ensuring that each repair cluster remains within a reasonable service distance of the backup unit during an ECO repair.
[0162] Each physical cluster with a maximum physical diameter not exceeding a preset length, obtained through the above processing, is defined as a "repair cluster". A repair cluster is a shared spare unit deployment unit defined by physical location, similar to a virtual module, but its boundary is determined by the anchor unit coordinates, rather than by the RTL layer or hard module boundary. If the anchors of multiple signal groups fall within the same physical neighborhood, they are merged into the same repair cluster through the above processing and share the same batch of spare units.
[0163] Step S600: For each repair cluster, perform spare unit insertion analysis to obtain the second target configuration information corresponding to the repair cluster.
[0164] In this embodiment, an insertion analysis of spare units can be performed on each repair cluster to obtain the second target configuration information corresponding to that repair cluster. During the insertion analysis, spare units can be inserted using EDA tools. The second target configuration information indicates spare units configured based on cross-domain path analysis. Inserting spare units for a repair cluster can be referred to as channel two insertion.
[0165] As one possible approach, each repair cluster can be directly treated as a high-risk area. The expected insertion situation for each repair cluster (including the number of insertions and the insertion area) can be analyzed and determined. Then, based on the expected insertion situation, the spare unit can be inserted to obtain the second target configuration information.
[0166] As another possible implementation, it can be achieved through... Figure 14 The second target configuration information is obtained as shown. Please refer to... Figure 14 , Figure 14 for Figure 12One of the flowcharts for the sub-steps included in step S600. In this embodiment, step S600 may include sub-steps S610 to S620.
[0167] Sub-step S610: For each repair cluster, determine whether the number of anchor units in the repair cluster is less than the preset number of anchor units.
[0168] In sub-step S620, if the value is less than 1, then no backup unit is set for the repair cluster; if the value is not less than 1, then a backup unit is set for the repair cluster.
[0169] In this embodiment, a preset number of anchor units, A_min, can be set in advance. This value can be set according to actual needs, for example, to 20. After determining each repair cluster, it can be determined whether the number of anchor units in each repair cluster is less than the preset number of anchor units. If the number of anchor units in the repair cluster is less than the preset number of anchor units, the risk of the repair cluster is considered negligible, and the repair cluster is ignored. No spare units are set for the repair cluster, and the second target configuration information corresponding to the repair cluster can be set to empty. In this case, it can be considered that the uniformly sprinkled base color (i.e., baseline) of the first layer is sufficient to cover the base, and this situation can be recorded.
[0170] If the number of anchor units in the repair cluster is not less than the preset number of anchor units, then the expected insertion situation (including the number of insertions and the insertion area, etc.) can be calculated for the repair cluster to insert spare units, and the second target configuration information corresponding to the repair cluster can be obtained based on the actual insertion situation. The specific expected insertion situation can be obtained by combining it with a preset specific expected calculation method.
[0171] As another possible implementation method, it can be achieved through... Figure 15 The second target configuration information is obtained as shown. Please refer to... Figure 15 , Figure 15 for Figure 12 The second flowchart illustrates the sub-steps included in step S600. In this embodiment, step S600 may include sub-steps S640 to S670.
[0172] Sub-step S640: For each target repair cluster determined from the obtained repair clusters, calculate the initial number of groups based on the number of anchor units and the number of units of the target repair cluster.
[0173] In this embodiment, the target repair cluster can be determined from the obtained repair clusters. The target repair cluster is a high-risk area. Optionally, all obtained repair clusters can be directly used as target repair clusters. To avoid wasting resources by setting useless spare units, the above-mentioned method of using repair clusters with more anchor units than the preset number of anchor units as target repair clusters can also be used. In this case, the second target configuration information of repair clusters not used as target repair clusters can be empty.
[0174] For each target repair cluster, the initial number of groups corresponding to that target repair cluster can be calculated based on the number of anchor units and the number of units. The number of units represents the number of anchor units served by a standby unit group, and can be determined based on actual needs, for example, set to 100. A standby unit group is the smallest set of standby units supporting a cross-domain repair event, and its specific composition can be set according to actual needs. Optionally, as a possible implementation, the configuration of a standby unit group (discrete unit version, 5 units / group) is: 1 level 2 SYNCDFF, 2 COMB_SIMPLE, 1 COMB_COMPLEX, and 1 CLK. When the quotient of the number of anchor units and the number of units in the target repair cluster is not an integer, the integer part of the quotient can be used as the initial number of groups, or the quotient can be rounded up, and the result can be used as the initial number of groups.
[0175] Sub-step S650: Based on the initial number of groups and the preset range of group numbers, the target number of groups is obtained.
[0176] In this embodiment, it can be determined whether the initial number of groups is within a preset number of groups. If the initial number of groups is within the preset number of groups, then the initial number of groups is taken as the target number of groups. If the initial number of groups is not within the preset number of groups, then the boundary value of the preset number of groups closest to the initial number of groups is taken as the target number of groups. Therefore, the target number of groups is within the preset number of groups. The preset number of groups corresponding to different target repair clusters can be the same or different, depending on actual needs. This avoids using too few or too many desired groups during insertion.
[0177] The processing of sub-steps S640 to S650 above can be expressed as follows: Where A represents the number of anchor units in the target repair cluster. This indicates the unit quantity, specifically the number of anchor units served by one standby unit group. The preset group number range is 1~ , The specific value can be determined based on actual needs; for example, it can be set to 4.
[0178] Assuming the number of anchor units in a target repair cluster is represented by A, with a unit quantity of 100, and the preset group number range is 1~4, then there are: A=20-100 → 1 spare unit group; A=200 → 2 groups; A=400 → 4 groups; and the maximum is capped at 4 groups.
[0179] In sub-step S660, if the number of target groups is greater than 1, the target repair cluster is divided into multiple second sub-clusters according to the number of target groups, and a spare unit group is set in the second target area corresponding to each second sub-cluster to obtain the initial configuration information corresponding to the target repair cluster; if the number of target groups is 1, a spare unit group is set in the third target area corresponding to the target repair cluster to obtain the initial configuration information corresponding to the target repair cluster.
[0180] Given the target number of groups for the target repair cluster, determine if the target number of groups is greater than 1. If the target number of groups is greater than 1, divide the target repair cluster into multiple sub-clusters as second sub-clusters, where the number of second sub-clusters is equal to the target number of groups. Then, for each second sub-cluster, with the expectation of setting a spare unit group in the second target region corresponding to the second sub-cluster, set the initial configuration information corresponding to the target repair cluster. This initial configuration information indicates that a spare unit group is set in the second target region corresponding to each second sub-cluster of the target repair cluster. The second target region includes a second neighborhood of the center of the second sub-cluster. The specific second neighborhood can be determined according to actual needs, for example, a circular region centered on the center of the second sub-cluster, and the radius of the circle can be set according to actual needs, for example, 15-20 μm.
[0181] The above description can be understood as follows: When the number of target groups K in a target repair cluster is greater than 1, instead of stuffing all K groups of spare units into the central region of the entire target repair cluster, the entire target repair cluster is divided into K blocks, which can be divided into K sub-clusters (i.e., K blocks) according to k-medoids. Then, a group of spare units is placed near the center of each block. Each group of spare units is placed in the neighborhood (e.g., radius 15-20μm) of the medoid point of the sub-cluster (Medoid is the actual data point representing the cluster in the clustering algorithm. It is the center point of the cluster with the smallest sum of distances to other points).
[0182] If the number of target groups is equal to 1, then it is desirable to set up one spare unit group in the third target region corresponding to the target repair cluster. The initial configuration information corresponding to the target repair cluster is set, indicating that a spare unit group is set up in the third target region corresponding to the target repair cluster. The third target region includes the third neighborhood of the center of the target repair cluster. The specific third neighborhood can be determined according to actual needs; for example, it can be a circular region centered on the center of the target repair cluster, and the radius of the circle can be set according to actual needs, such as 15-20 μm.
[0183] Sub-step S670: Insert a spare unit according to the initial configuration information, and obtain the second target configuration information based on the insertion situation.
[0184] After obtaining the initial configuration information corresponding to the target repair cluster, spare units can be deployed to the corresponding target area using EDA tools based on this information. It can be understood that when deploying spare units to the target area based on the initial configuration information, if the number of target groups corresponding to the target repair cluster is greater than 1, the corresponding target area is the second target area corresponding to each sub-cluster of the aforementioned target repair cluster; if the number of target groups is 1, the corresponding target area is the third target area corresponding to the aforementioned target repair cluster. The second target configuration information corresponding to the target repair cluster can be obtained based on the insertion details obtained using EDA tools.
[0185] As one possible implementation method, it can be achieved through Figure 16 The method shown derives the second target configuration information based on the initial configuration information. Please refer to... Figure 16 , Figure 16 for Figure 15 A flowchart illustrating the sub-steps included in neutron step S670. In this embodiment, sub-step S670 may include sub-steps S671 to S672.
[0186] Sub-step S671: Sort the identified target repair clusters according to the density of the repair clusters from high to low, and obtain the sorting result.
[0187] Sub-step S672: For each target repair cluster in the sorting result, insert a spare unit in the corresponding target area according to the initial configuration information of the target repair cluster, and stop inserting spare units for the target repair cluster when the second preset stopping condition is met, so as to obtain the second target configuration information.
[0188] In this embodiment, the target repair clusters are sorted according to their density from high to low to obtain a sorting result. Then, according to the order of the target repair clusters in the sorting result, that is, according to the order of the target repair clusters from high to low density, spare units are inserted into each target repair cluster based on the corresponding initial configuration information. During the process of inserting spare units for the current target repair cluster, it is determined whether the second preset stop condition is met. If the second preset stop condition is met, the insertion of spare units for the target repair cluster is stopped, and based on the spare units already inserted for the target repair cluster based on the corresponding initial configuration information, the second target configuration information of the target repair cluster is obtained, and the next target repair cluster is processed.
[0189] The specific content of the second preset stop condition can be determined according to actual needs and is not specifically limited here. Optionally, the second preset stop condition may include: a fourth preset condition and a fifth preset condition, or include: a fourth preset condition, a fifth preset condition, and a sixth preset condition.
[0190] The fourth preset condition is: all spare units corresponding to the initial configuration information are inserted into the corresponding target area, that is, all spare units required to be inserted by the initial configuration information are inserted into the corresponding target area.
[0191] The fifth preset condition is: the spare units determined based on the initial configuration information cannot all be inserted into the corresponding target areas due to insufficient capacity in those areas. That is, when inserting spare units for a target repair cluster based on the initial configuration information, if there is no space available to insert spare units in the target area corresponding to that target repair cluster (i.e., the capacity of the target area corresponding to the target repair cluster is insufficient), the insertion of spare units for that target repair cluster can be stopped.
[0192] The sixth preset condition is: the second inserted percentage of the spare units of the hard module to which the target repair cluster belongs is equal to the second preset percentage corresponding to the hard module. The second preset percentage represents the ratio of the first quantity to the second quantity. The first quantity is the number of spare units corresponding to the hard module to which the target repair cluster belongs, among the spare units inserted as indicated by the baseline configuration information and the spare units inserted based on the risk information and the anchor unit set. The second quantity is the number of units in the hard module to which the target repair cluster belongs. That is, the first quantity is the number of three types of spare units corresponding to a hard module: the spare unit used as the baseline, the spare unit inserted in channel one, and the currently inserted spare unit in channel two. The second preset percentage is a pre-set upper limit for the total insertion percentage of spare units (i.e., spare units evenly distributed, distributed in channels one and two). The second preset percentage corresponding to different hard modules can be the same or different. Optionally, the second preset percentage corresponding to different hard modules is determined based on the risk status of the hard module; if the risk of the hard module is high, the corresponding second preset percentage is large; if the risk of the hard module is not high, the corresponding second preset percentage is small.
[0193] When the second preset stopping condition includes the aforementioned sixth preset condition, the target repair clusters are processed based on a density order from high to low, which can ensure that high-risk target repair clusters are set up with backup units as much as possible. Optionally, the sorting can be done without density, i.e., sub-step S671 can be skipped and executed in parallel, or based on any arbitrary order, depending on the actual needs.
[0194] Optionally, when insertion is stopped due to the fifth and sixth preset conditions, this situation can be recorded as capacity truncation. The second preset stop condition is similar to the first preset stop condition. For a description of the second preset stop condition, please refer to the description of the first preset stop condition above, and it will not be repeated here.
[0195] The aforementioned insertion of spare units for the target repair cluster is equivalent to: the frequent failures are not in the entire Workshop A, but in three specific machines within Workshop A, with a spare parts box placed next to each of these three machines—channel 1 is encrypted along the entire workshop, while channel 2 is precisely encrypted around the faulty machines.
[0196] The aforementioned Channel 1 and Channel 2 processing is a dual-channel collaborative approach with global budget constraints. Channel 1 encrypts spare units based on the submodule's footprint, while Channel 2 inserts them at anchor point coordinates. This method utilizes complementary Channels 1 and 2 to deploy spare units to high-risk areas. In this approach, Channel 1 runs first (handling module-level risks), and Channel 2 runs later (handling top-level / cross-domain risks). A budget cap (i.e., the second preset percentage mentioned above) is used in the global budget constraint. The budget cap is used as follows: the percentage of spare units across all layers of a hard module (the initially evenly distributed baseline + Channel 1 + Channel 2) is ≤ the budget cap (e.g., 3%, not exceeding the industry's standard cap for high-risk architectures). Channel 1 is pre-set to reserve a portion (e.g., 0.1%) for Channel 2 to prevent Channel 2 from receiving no quota. For example, with a budget cap of 3%, the pre-set percentage of Channel 1 and the baseline is no greater than 2.9%.
[0197] The reserved percentage can be determined based on the empirically determined needs of Channel 2. Alternatively, it can be iteratively adjusted based on the required capacity of Channel 2 in the previous spare unit configuration. That is, if the current plan is executed once, reserving 0.1%; and after one execution, it is found that reserving 0.1% is insufficient, resulting in Channel 1 having too much capacity and Channel 2 having insufficient coverage; then, this 0.1% value is adjusted before the next execution of the same plan. Or, if 0.5% was initially reserved for Channel 2, but Channel 2 ultimately did not trigger any capacity truncation and only occupied 0.15%, while Channel 1, due to the 0.5% reserved for Channel 2, suffered significant capacity truncation, then this value will be adjusted in the next execution.
[0198] Optionally, when the budget cap is triggered, the insertion is truncated and stopped, and the information is recorded so that engineers can reassess whether the baseline, various parameters of channel 1, various parameters of channel 2, and the budget cap are reasonable, whether the parameters need to be modified to prevent the budget cap from being triggered, or whether the truncation status quo should be maintained.
[0199] In the processing based on channels 1 and 2 provided in this embodiment, channel 2 solves the blind spot of channel 1—the top-level signal of the chip does not have an independent physical footprint, and channel 1 cannot identify it; channel 2 uses leaf unit coordinates to bypass the module hierarchy limitation and directly locate cross-domain hotspots.
[0200] Optionally, in the above processing, the initial number of groups can be directly used as the desired number of groups for inserting spare units, thus ensuring processing speed. Optionally, in the above processing, the target repair clusters can also be sorted without regard to density.
[0201] When additional spare units are inserted based on channels one and two, the total configuration information is obtained based on the baseline configuration information, the first target configuration information, and the second target configuration information. Optionally, the baseline configuration information, the first target configuration information, and the second target configuration information can be summarized, and empty information can be deleted to obtain the total configuration information. The total configuration information is used to indicate: the insertion status of spare units as the baseline, the insertion status of spare units inserted in channel one, and the insertion status of spare units inserted in channel two. The insertion status may include position, quantity, etc.
[0202] Please refer to this again. Figure 12 In this embodiment, after step S600, the method may further include step S800.
[0203] Step S800: Generate a feedback report based on the processing procedure for obtaining the total configuration information.
[0204] In this embodiment, the entire process of obtaining the total configuration information can be recorded as a feedback report. The feedback report includes the total configuration information and a description of the processing process.
[0205] For example, for each high-risk submodule (i.e., the target submodule) being processed, at least the following information should be recorded. The feedback report for high-risk submodules should include at least the following: Request Quantity: The expected number of spare cells calculated based on the risk multiplier, recorded separately for each type; Actual Quantity: The actual number deployed, recorded separately for each type; Truncation Reason: Whether capacity truncation was triggered, etc.; Overflow + Overflow Distance: Whether neighborhood overflow was triggered + overflow distance (micrometers); Dominant Limiting Factors: The main factors limiting the deployment of spare cells, such as row height, congestion, pin density, macrocell blocking area, etc. Similar information can be recorded for each target repair cluster being processed.
[0206] For example, it can also record various values in the risk information, as well as the calculation process for each value; and determine the calculation process for the target repair cluster, etc.
[0207] The aforementioned feedback report allows for a precise assessment of the "remediation accessibility" of each high-risk area during the ECO phase, avoiding the blind spot of "spreading out but not enough" afterward. In other words, it enables engineers to pre-determine whether the configured backup units meet the potential ECO requirements; if not, they can modify processing parameters and / or adjust the target chip design.
[0208] Please refer to Figure 17 , Figure 17This diagram illustrates the execution process of the spare unit resource configuration method provided in this application. In this solution, the overall process of the chip design—including the front-end, mid-end, and back-end—is combined to perform more granular spare unit configuration, primarily based on automated risk awareness. For example... Figure 17 As shown, spare units are first evenly distributed across each hard module based on a baseline proportion. Next, the granularity is further refined from the industry-standard "full chip range" and "hard module range" to "RTL sub-modules + cross-domain anchor units." Simultaneously, for high-risk sub-modules, differentiated allocation is performed according to risk type, not only in terms of proportion (corresponding to risk multiplier) but also in the differentiated allocation of spare unit types (corresponding to target type proportion distribution). In other words, the approach is upgraded from "hard module-level spreading" to "sub-module-level + anchor unit-level precise deployment." Specifically, in this embodiment, spare units are distributed in two stages. The first stage follows industry practice, evenly distributing spare units across the entire hard module to ensure a baseline and prevent unpopular areas from lacking spare units. Then, more spare units are selectively distributed based on the "risk" at different locations within the hard module. Finally, the data from the insertion of spare units is organized into structured data, forming a file for use throughout the chip design chain, including the front-end, mid-end, and back-end.
[0209] The spare unit resource allocation method provided in this application is a risk-aware spare unit resource allocation method that achieves more granular ECO risk report generation and application. Currently, spare unit ratios are allocated on a whole-module basis, without consuming any design feature data from the front-end synthesis / formal verification / integration boundaries. This relies primarily on engineers' subjective experience, manually specifying the ratio, resulting in even distribution within the hard module. In this solution, the hierarchical granularity is further refined, and a more objective report is introduced as a data source to generate a relatively objective risk value: standard reports from EDA tools (state machine reports / cross-domain reports / hierarchical reports) are used as the risk feature data source; Channel 1 is refined to the RTL sub-module level; Channel 2 is refined to the cross-domain anchor unit neighborhood level. This solution makes the spare unit deployment strategy data-driven and granularly refined. Under the same total proportion, the location accuracy of spare units in this solution is better than industry-standard hard module-level solutions.
[0210] The backup unit resource configuration method provided in this application calculates the risk multiplier of each sub-module based on the risk multiplier formula, and avoids excessive concentration of backup units through clamp upper and lower limit processing. It also employs hierarchical encryption based on the physical footprint of RTL modules (Channel 1); and fixed-point insertion based on the physical coordinates of anchor units (Channel 2). Industry-standard uniform distribution schemes are completely ineffective at targeted insertion of backup units around relatively scattered leaf units. Channel 2 uses leaf unit coordinates to bypass hard module hierarchical restrictions, allowing ECO repair accessibility to cover such risks. Furthermore, by obtaining the target type proportion, backup units are not only "located correctly" but also "type correctly"—achieving double precision.
[0211] Please refer to Figure 18 , Figure 18 This is a comparison chart of experiments using the uniform chip-wide distribution method and the proposed solution. Experimental design: The entire process was run successfully in a typical SoC module experimental scenario, comparing the B1 baseline (industry-standard uniform distribution method) vs. the P0 experimental group (the proposed method), with other configurations identical. Design scale: Includes 396,384 units, 113 RTL submodules + 5 cross-domain signal groups; includes iBEX CPU, Ethernet module, APB bus, multiple cross-clock domains, etc. The comparison is as follows... Figure 18 As shown in the diagram. This solution can achieve the following effects 1-4.
[0212] Effect 1: The density of backup units in high-risk areas is doubled without increasing the area cost.
[0213] The shortcomings of existing technologies for cracking this problem: The industry uses the entire hardware module as the unit of classification (on the order of mm²). Within the same hardware module, the CPU controller (high risk) and the adder array (low risk) are processed with the same ratio, which results in most of the spare units being placed in locations where ECO will not occur.
[0214] This solution conducts a risk assessment: using four types of data sources—state machine identification reports from synthesis tools, hierarchical structure reports, cross-domain reports from formal verification tools, and manually annotated "module connection relationship annotation tables" by engineers—to calculate a separate "risk multiplier" for each RTL submodule within the hard module; the CPU controller submodule might receive a multiplier of 2.0, while the adder submodule would remain at 1.0. Channel 1 processing is then applied: within the physical footprint (on the order of 10-100 μm²) of each high-risk RTL submodule, additional encryption is performed using the formula: Additional spare units = Baseline × (Risk Multiplier - 1).
[0215] The risk multiplier formula allows each RTL submodule to obtain an independent multiplier based on its own state machine, boundary pins, and cross-domain sensitivity characteristics—the independent multiplier naturally distinguishes between high- and low-risk submodules. Channel 1 deploys units using the formula "Additional Deployment = Baseline × (Risk Multiplier - 1)," meaning: submodules with a multiplier of 1.0 receive 0 increments, while submodules with a multiplier of 2.0 receive 100% increments—newly added spare units are automatically concentrated around high-multiplier submodules. Since deployment is limited to the physical footprint of high-risk submodules (10-100 μm² vs. industry standard mm²), the spare unit density per unit area is directly determined by the risk multiplier—density increases significantly in high-risk areas, while low-risk areas maintain the baseline level.
[0216] In actual testing, only 18 out of 113 RTL sub-modules were identified as high-risk and triggered additional encryption. The total number of incremental spare units was much smaller than the total number of the entire chip baseline – the total percentage only increased from 1.78% to 1.81%, which is consistent with the industry standard design range of 1-2%.
[0217] Effect 2: The standby unit type is precisely matched with the risk type of the area.
[0218] The shortcomings of existing technologies for cracking this problem: The industry allocates all regions in a uniform proportion (e.g., 12.5% for buffers / inverters and 7.5% for other types), and will not add more D flip-flops just because a certain region is a CDC cross-domain hotspot, which often leads to "missing critical types / excessive non-critical types" when ECO repair.
[0219] This solution automatically calculates the spare unit type preference based on the risk characteristics of each high-risk submodule (e.g., high cross-domain sensitivity value → +10% SEQ timing type, high boundary pin density → +15% complex combination type), and selects the type according to the type preference weighted (i.e., the target type proportion distribution obtained by normalization processing as mentioned above) – with the same total number of spare units, more D flip-flops are placed in the cross-domain sensitive area, and more complex combination gates are placed around the bridge module.
[0220] The inherent structure of cross-domain synchronizers dictates that repair requires D triggers, bridge module protocol repair requires complex combination gates, and delay adjustment requires buffers / inverters—different risk types correspond to different backup unit requirements. The type preference rules in this solution (such as "high cross-domain sensitivity value → +10% SEQ," i.e., the triggering conditions and type proportion adjustment method mentioned above) encode this engineering intuition into automatic rules—rule triggering is entirely driven by the aforementioned calculated risk characteristic values, requiring no manual intervention. Weighted selection based on the adjusted type preference means that: the proportion of D triggers is automatically increased when selecting in cross-domain sensitive areas, and the proportion of complex combination gates is automatically increased when selecting around bridge modules. Therefore, the probability of "the exact type needed is nearby" during ECO repair is significantly increased—no longer relying on luck to find a suitable type nearby.
[0221] Effect 3: ECO reachability covering critical signals across hard modules (something that is not structurally possible in the industry).
[0222] The shortcomings of existing technologies: Industry-standard hard module-level hierarchical schemes are completely ineffective in handling critical control signals that cross hard modules (such as power management state machine registers that span multiple hard modules and arbitration signals that cross subsystem bus that span multiple hard modules), and the locations of these signals always fall into the hierarchical blind spot.
[0223] In this scheme, channel 2 processing is performed without relying on the boundaries of the hard module hierarchy. The physical coordinates of the cross-domain anchor unit are used for positioning: the "starting object + ending object" path of each cross-domain path is taken from the report of the formal verification tool, and then the anchor unit is determined. The target cluster is repaired and the backup unit is scattered for the purpose of analysis based on the anchor unit.
[0224] The characteristic of cross-hard module signals is that "the starting cell is in hard module A and the ending cell is in hard module B"—industry-level hierarchies do not show the boundary line between A and B. Even if these cross-hard module starting / ending cells are distributed in different hard modules, they still have specific layout coordinates after physical implementation—the coordinates of anchor cells are directly available to physical implementation tools. Channel 2 uses these coordinates to directly locate the target area, bypassing the limitations of the hard module hierarchy—the "hierarchical dependency" of industry-level hard module methods is its fundamental blind spot. This solution fundamentally eliminates this blind spot by "coordinate-driven rather than hierarchy-driven". Therefore, for ECO repair of cross-hard module signals—industry-level methods do not have enough readily available and nearby spare cells, this solution has targeted spare cells around the anchor cells.
[0225] Effect 4: ECO phase restores accessibility and visibility.
[0226] The shortcomings of existing technologies: In addition to the three explicit shortcomings mentioned above, the industry's uniform spraying solutions also have a common implicit problem - no detailed data feedback records are kept for the ECO phase, which leads to ECO engineers only discovering afterward that "it was sprayed but not enough" or "the position is wrong", which is often too late.
[0227] This solution generates feedback reports for the entire process. During the physical implementation phase, it synchronously records the following for each high-risk object being processed: the number of requests (the expected number calculated based on the risk multiplier), the actual number (the number that was actually deployed and successfully validated), and the dominant limiting factors. The physical implementation phase records everything from "where and how many were deployed / how many were intended to be deployed but not for what reason"—this information is data-driven, machine-consumable structured data, not the human-readable but unsearchable scattered text in log files. Based on this data, the entire chip design—front-end, mid-end, and back-end—can provide feedback and iterate on the specific insertion of the backup units during the physical implementation process. Therefore, it's not necessary to wait until the ECO phase to attempt a fix and fail to discover the problem—predictive accessibility assessment becomes possible.
[0228] To perform the corresponding steps in the above embodiments and various possible methods, an implementation of the backup unit resource configuration device 200 is given below. Optionally, the backup unit resource configuration device 200 can adopt the above-described... Figure 1 The device structure of the electronic device 100 shown. Further, please refer to... Figure 19 , Figure 19 This is a block diagram of the backup unit resource configuration device 200 provided in this embodiment. It should be noted that the basic principle and technical effects of the backup unit resource configuration device 200 provided in this embodiment are the same as those in the above embodiments. For the sake of brevity, any parts not mentioned in this embodiment can be referred to the corresponding content in the above embodiments. In this embodiment, the backup unit resource configuration device 200 may include: a risk assessment module 210, a configuration module 220, and an information acquisition module 230.
[0229] The risk assessment module 210 is used to calculate the risk information of each sub-module of each hardware module of the target chip. The risk information includes a risk multiplier.
[0230] The risk assessment module 210 is further configured to designate sub-modules with a risk multiplier greater than a preset risk multiplier as target sub-modules. The preset risk multiplier is not less than 1.
[0231] The configuration module 220 is used to obtain first target configuration information for each target submodule based on the risk information of the target submodule and the baseline configuration information of each hardware module. The baseline configuration information indicates the configuration of backup units determined based on the basic proportion corresponding to the hardware module, and the backup units configured as indicated by the first target configuration information do not include the backup units configured as indicated by the baseline configuration information.
[0232] The information acquisition module 230 is used to obtain the total configuration information of the target chip by summarizing the baseline configuration information and the first target configuration information.
[0233] In this embodiment, after obtaining the first target configuration information of each target submodule, the configuration module 220 is further configured to: obtain the starting unit and ending unit of each cross-domain path of the target chip, and obtain an anchor unit set through deduplication processing, wherein the deduplication processing includes deleting units of the submodule to which the corresponding risk information has been inserted into the backup unit, and the anchor units in the anchor unit set are the obtained starting unit or ending unit; process the anchor unit set according to the physical coordinates of each anchor unit in the anchor unit set to obtain a repair cluster, wherein the processing includes clustering; perform backup unit insertion analysis for each repair cluster to obtain the second target configuration information corresponding to the target repair cluster, wherein the second target configuration information indicates the backup unit configured based on cross-domain path analysis, and the total configuration information is obtained based on the baseline configuration information, the first target configuration information, and the second target configuration information.
[0234] In this embodiment, the information acquisition module 230 is further configured to generate a feedback report based on the processing of obtaining the total configuration information, wherein the feedback report includes the total configuration information and processing process description information.
[0235] Optionally, the above modules can be stored in the form of software or firmware. Figure 1 The memory 110 shown is either stored in or embedded in the operating system (OS) of the electronic device 100, and can be used by... Figure 1 The processor 120 executes the program. Meanwhile, the data and program code required to execute the above modules can be stored in the memory 110.
[0236] This application also provides a readable storage medium storing a computer program thereon, which, when executed by a processor, implements the backup unit resource configuration method.
[0237] In summary, this application provides a method, apparatus, electronic device, and readable storage medium for configuring backup unit resources. First, for each sub-module of each hard module of the target chip, risk information, including a risk multiplier, is calculated. Next, sub-modules with risk multipliers greater than a preset risk multiplier (greater than 1) are designated as target sub-modules. Then, for each target sub-module, based on its risk information and the baseline configuration information of each hard module, first target configuration information is obtained. The baseline configuration information indicates the backup unit configuration based on the basic proportion corresponding to its hard module, and the first target configuration information does not include the backup units indicated by the baseline configuration information. Finally, based on the baseline configuration information and the first target configuration information, the total configuration information of the target chip is obtained by summarizing. Thus, by setting backup units as a baseline for each hard module and additionally setting backup units for high-risk sub-modules, the backup unit density of sub-modules in high-risk areas can be significantly increased, while low-risk areas maintain the baseline level, thereby reducing the occurrence of insufficient backup units at ECO locations.
[0238] The above description is merely an optional embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.
Claims
1. A method for allocating standby unit resources, characterized in that, The method includes: For each sub-module of each hardware module of the target chip, risk information for each sub-module is calculated, wherein the risk information includes a risk multiplier. Submodules with a risk multiplier greater than a preset risk multiplier are designated as target submodules, wherein the preset risk multiplier is not less than 1. For each target submodule, based on the risk information of the target submodule and the baseline configuration information of each hardware module, the first target configuration information of the target submodule is obtained. The baseline configuration information indicates the configuration of the backup unit determined based on the basic proportion corresponding to the hardware module. The backup unit configured by the first target configuration information does not include the backup unit configured by the baseline configuration information. Based on the baseline configuration information and the first target configuration information, the total configuration information of the target chip is obtained by summarizing. The risk information further includes a risk parameter information set, which includes at least one of state machine complexity, boundary pin density, cross-domain sensitivity, and integration requirement intensity. For each target submodule, based on the risk information of that target submodule and the baseline configuration information of each hardware module, the first target configuration information of that target submodule is obtained, including: For each risk parameter in the risk parameter information set of the target sub-module, determine whether the risk parameter meets the corresponding triggering condition. The type proportion adjustment method corresponding to the triggering condition corresponds to the risk type corresponding to the triggering condition. If the risk parameter information set of the target submodule satisfies at least one triggering condition, then according to the type proportion adjustment method corresponding to each triggered condition, the target type proportion distribution is obtained by adjusting the preset initial type proportion distribution. The initial type proportion distribution is used to indicate the proportion distribution of preset multiple unit types. If the risk parameter information set of the target submodule does not meet any triggering condition, then the initial type proportion distribution shall be used as the target type proportion distribution; Based on the baseline configuration information of each hard module and the target type proportion distribution corresponding to the target sub-module, a spare unit is inserted to obtain the first target configuration information.
2. The method according to claim 1, characterized in that, For each sub-module of each hardware module of the target chip, the risk information of each sub-module is calculated, including: For each submodule, a risk parameter information set for that submodule is obtained based on the report and annotation information corresponding to the target chip; Based on the risk parameter information set of this submodule, the risk multiplier of this submodule is obtained.
3. The method according to claim 2, characterized in that, For each sub-module, based on the report and annotation information corresponding to the target chip, a risk parameter information set for that sub-module is obtained, including: When the risk parameter information set includes state machine complexity, the state machines corresponding to the sub-module are determined based on the state machine identification report in the report and annotation information. For each state machine corresponding to the sub-module, the risk value of the state machine is calculated based on the total number of states and the coding risk factor, wherein the coding risk factor is proportional to the dispersion of the coding used by the state machine's states. The total risk value of the state machine is calculated based on the risk values of each state machine in the sub-module. Based on the total risk value of the state machine, the state machine complexity of the sub-module is calculated through normalization. When the risk parameter information set includes boundary pin density, the number of ports and leaf units of the submodule are obtained according to the hierarchical structure report in the report and annotation information, and the original boundary pin density is calculated based on the number of ports and leaf units; based on the original boundary pin density, the boundary pin density of the submodule is calculated through normalization. When the risk parameter information set includes cross-domain sensitivity values, the number of cross-domain paths with endpoints located in the submodule is obtained based on the cross-domain reports in the reports and annotation information; based on the number of paths, the cross-domain sensitivity value of the submodule is obtained through normalization processing, wherein the cross-domain sensitivity value is calculated through logarithmic processing; When the risk parameter information set includes integration demand intensity, the integration boundary type to which the sub-module belongs is determined according to the module connection relationship labeling table in the report and labeling information, wherein the module connection relationship labeling table is used to indicate the integration boundary type to which each sub-module belongs; the integration demand intensity is calculated based on the type weight corresponding to each integration boundary type and the integration boundary type to which the sub-module belongs; and / or, When the risk parameter information set includes state machine complexity, boundary pin density, cross-domain sensitivity value, and integration requirement intensity, obtaining the risk multiplier of the submodule based on the risk parameter information set includes: calculating the structural risk based on the state machine complexity, boundary pin density, cross-domain sensitivity value, and their respective first preset weights; calculating the initial risk multiplier based on the structural risk, integration requirement intensity, and their respective second preset weights; and obtaining the risk multiplier based on a preset risk multiplier range and the initial risk multiplier, wherein the risk multiplier is within the preset risk multiplier range.
4. The method according to claim 1, characterized in that, For each target submodule, based on the baseline configuration information of each hardware module and the target type proportion distribution corresponding to that target submodule, spare units are inserted to obtain the first target configuration information of the target submodule. This includes: for each target submodule, obtaining the physical footprint of the target submodule, and calculating the number of units of each unit type corresponding to the target submodule based on the risk multiplier of the target submodule, the baseline proportion corresponding to the baseline configuration information of the hardware module, and the target type proportion, wherein the number of units does not include the spare units corresponding to the baseline configuration information, and the baseline proportion corresponding to a hardware module is determined based on the risk situation of the hardware module; inserting spare units in the first target area according to the number of units of each unit type, and stopping the insertion of spare units for the target submodule when a first preset stopping condition is met, thereby obtaining the first target configuration information; wherein The first target area includes the physical footprint of the target submodule and its first neighboring area. During insertion, the module is first inserted within the physical footprint and then within the first neighboring area. The first preset stopping condition includes a first preset condition and a second preset condition, or a third preset condition, the first preset condition, and the second preset condition. The first preset condition is that all spare units determined based on the risk information are inserted into the first target area. The second preset condition is that the spare units determined based on the risk information are not all inserted into the first target area due to the capacity of the first target area. The third preset condition is that the first inserted percentage of the spare units of the hard module to which the target submodule belongs is equal to the first preset percentage corresponding to the hard module. The first inserted percentage is determined based on the baseline configuration information and the spare units inserted based on the risk information. And / or, The step of adjusting the type proportion distribution according to the type proportion adjustment method corresponding to each triggered condition to obtain the target type proportion distribution by adjusting the preset initial type proportion distribution includes: adjusting the preset initial type proportion distribution according to the type proportion adjustment method corresponding to each triggered condition to obtain a first type proportion distribution; obtaining a second type proportion distribution according to the first type proportion distribution and the preset proportion range corresponding to each unit type, wherein each proportion in the second type proportion distribution is within the corresponding preset proportion range; and normalizing the second type proportion distribution to obtain the target type proportion distribution.
5. The method according to any one of claims 1-4, characterized in that, After obtaining the first target configuration information for each target submodule, the method further includes: The starting and ending units of each cross-domain path of the target chip are obtained, and a set of anchor units is obtained through deduplication. The deduplication process includes deleting units whose corresponding sub-modules have been inserted into spare units due to corresponding risk information. The anchor units in the set of anchor units are the obtained starting or ending units. Based on the physical coordinates of each anchor unit in the anchor unit set, the anchor unit set is processed to obtain a repair cluster, wherein the processing includes clustering; For each repair cluster, a backup unit insertion analysis is performed to obtain the second target configuration information corresponding to the repair cluster. The second target configuration information indicates the backup unit configured based on cross-domain path analysis. The total configuration information is obtained based on the baseline configuration information, the first target configuration information, and the second target configuration information.
6. The method according to claim 5, characterized in that, The step of processing the anchor unit set according to the physical coordinates of each anchor unit in the anchor unit set to obtain a repair cluster includes: clustering the anchor unit set according to the physical coordinates of each anchor unit in the anchor unit set to obtain an initial cluster; for each initial cluster, determining whether the maximum physical diameter of the initial cluster is greater than a preset length; if it is greater, then dividing the initial cluster into multiple first sub-clusters whose maximum physical diameter is not greater than the preset length, and using each of the obtained first sub-clusters as a repair cluster; if it is not greater, then using the initial cluster as a repair cluster; and / or, The step of performing spare unit insertion analysis for each repair cluster to obtain the second target configuration information corresponding to the repair cluster includes: for each repair cluster, determining whether the number of anchor units in the repair cluster is less than the preset number of anchor units; if it is less, then no spare unit is set for the repair cluster; if it is not less, then a spare unit is set for the repair cluster; and / or, The method further includes: generating a feedback report based on the processing procedure for obtaining the total configuration information, wherein the feedback report includes the total configuration information and a description of the processing procedure.
7. The method according to claim 5, characterized in that, For each repair cluster, obtaining the second target configuration information corresponding to that repair cluster includes: For each target repair cluster identified from the obtained repair clusters, the initial number of groups is calculated based on the number of anchor units and the number of units of the target repair cluster, wherein the number of units is used to represent the number of anchor units served by a spare unit group; Based on the initial number of groups and the preset range of group numbers, the target number of groups is obtained, wherein the target number of groups is within the preset range of group numbers; When the number of target groups is greater than 1, the target repair cluster is divided into multiple second sub-clusters according to the number of target groups, and a spare unit group is set in the second target region corresponding to each second sub-cluster to obtain the initial configuration information corresponding to the target repair cluster. The number of second sub-clusters is equal to the number of target groups, and the second target region includes the second neighborhood of the center of the second sub-cluster. When the number of target groups is 1, a spare unit group is set in the third target region corresponding to the target repair cluster to obtain the initial configuration information corresponding to the target repair cluster. The third target region includes the third neighborhood of the center of the target repair cluster. The backup unit is inserted according to the initial configuration information, and the second target configuration information is obtained based on the insertion situation.
8. The method according to claim 7, characterized in that, When inserting spare units into each target sub-module based on the aforementioned risk information, the target sub-modules are processed sequentially in descending order of risk multiplier. And / or, The step of inserting a spare unit according to the initial configuration information and obtaining the second target configuration information based on the insertion situation includes: The identified target repair clusters are sorted according to their density from high to low to obtain the sorting results. For each target repair cluster in the sorting results, a spare unit is inserted into the corresponding target region according to the initial configuration information of the target repair cluster. The insertion of spare units for the target repair cluster is stopped when a second preset stopping condition is met, and the second target configuration information is obtained. The second preset stopping condition includes a fourth preset condition, a fifth preset condition, or a sixth preset condition, the fourth preset condition, and the fifth preset condition. The fourth preset condition is that all spare units corresponding to the initial configuration information are inserted into the corresponding target regions. The fifth preset condition is that the spare units determined based on the initial configuration information are not all inserted into the corresponding target regions due to the capacity of the corresponding target regions. The sixth preset condition is that the second inserted percentage of the spare units of the hard module to which the target repair cluster belongs is equal to the second preset percentage corresponding to the hard module. The second preset percentage represents the ratio of the first quantity to the second quantity. The first quantity is the number of spare units corresponding to the hard module to which the target repair cluster belongs among the spare units inserted indicated by the baseline configuration information and the spare units inserted based on the risk information and the anchor unit set. The second quantity is the number of units of the hard module to which the target repair cluster belongs. The second preset percentage corresponding to different hard modules is determined based on the risk status of the hard module.
9. A backup unit resource allocation device, characterized in that, The device includes: The risk assessment module is used to calculate the risk information of each sub-module of each hardware module of the target chip, wherein the risk information includes a risk multiplier. The risk assessment module is further configured to designate sub-modules with a risk multiplier greater than a preset risk multiplier as target sub-modules, wherein the preset risk multiplier is not less than 1. The configuration module is used to obtain the first target configuration information of each target submodule based on the risk information of the target submodule and the baseline configuration information of each hardware module. The baseline configuration information indicates the configuration of the backup unit determined based on the basic proportion corresponding to the hardware module. The backup unit configured by the first target configuration information does not include the backup unit configured by the baseline configuration information. The information acquisition module is used to obtain the total configuration information of the target chip by summarizing the baseline configuration information and the first target configuration information. The risk information further includes a risk parameter information set, which includes at least one of state machine complexity, boundary pin density, cross-domain sensitivity value, and integration requirement intensity. The configuration module is specifically used for: For each risk parameter in the risk parameter information set of the target sub-module, determine whether the risk parameter meets the corresponding triggering condition. The type proportion adjustment method corresponding to the triggering condition corresponds to the risk type corresponding to the triggering condition. If the risk parameter information set of the target submodule satisfies at least one triggering condition, then according to the type proportion adjustment method corresponding to each triggered condition, the target type proportion distribution is obtained by adjusting the preset initial type proportion distribution. The initial type proportion distribution is used to indicate the proportion distribution of preset multiple unit types. If the risk parameter information set of the target submodule does not meet any triggering condition, then the initial type proportion distribution shall be used as the target type proportion distribution; Based on the baseline configuration information of each hard module and the target type proportion distribution corresponding to the target sub-module, a spare unit is inserted to obtain the first target configuration information.
Citation Information
Patent Citations
Spare cell insertion based on reachable state analysis
US8661391B1