OPTIMIZATION OF SCANKETT SIGNAL CABLE LENGTHS USING Q-LEARNING-BASED REINFORCEMENT LEARNING

Q-learning-based reinforcement learning optimizes scan chain signal line length by reconnecting networks, addressing inefficiencies in current methods and achieving reduced trace length and power consumption.

DE102021122558B4Active Publication Date: 2026-05-21INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
INTERNATIONAL BUSINESS MACHINE CORPORATION
Filing Date
2021-08-31
Publication Date
2026-05-21

AI Technical Summary

Technical Problem

Current scan chain optimization methods fail to efficiently reduce signal trace length and power consumption, often relying on greedy approaches or extensive searches that are impractical, and do not utilize Q-learning for reordering scan chains.

Method used

Employ Q-learning-based reinforcement learning to optimize scan chain signal line length by reconnecting scan networks, using a Q-table to guide the reordering process and ensure reduced signal trace length and power consumption.

Benefits of technology

The method effectively reduces scan chain signal trace length, improving test time and design connectability, leading to lower chip area and power consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A computer-executable method for optimizing a scan chain signal line length in the design of a digital circuit using Q-learning, wherein the method comprises: Obtain (302) stem node details from the stem nodes, Optimizing (304) a connectivity of the stem nodes, Identifying (306) a best starting node and a best ending node for each of the stem nodes, Optimizing (308) child nodes in each of the parent nodes, having: Initializing (308a) a Q-table for each of the root nodes, Selecting (308b) an action based on a fixed start and end node or on the basis of an optimal start and end node, Performing (308c) the action by adding a selected node, Measuring (308d) a reward by measuring a total signal line length of a stem node tour, and Update (308e) the Q-table for each of the child nodes of a child node tour, Determine (310) that a signal line length of a full tour is less or greater than that of a nearest neighbor, Apply (312) or skip (314) a solution.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] The present invention relates generally to the field of data processing and, in particular, to the optimization of scan chains by machine learning. The use of a scan chain method can simplify the testing of integrated circuits, since each flip-flop in the integrated circuit can be controlled and observed based on a set of transmitted signals. Scan chain optimization methods include reordering the scan chain through the set of flip-flops, taking into account several constraints, including scanning the total signal line length. Latches or flip-flops can be distributed across multiple scan chains.

[0002] US 2020 / 0 004 913 A1 discloses a method of electronic design automation in which scan flip-flops are statistically grouped into scan chains based on similar properties and intelligently arranged within the scan chains to optimize power consumption, performance and area requirements of the electronic circuit.

[0003] CN 106 874 601A discloses a method for weighting and sequencing scan chains, in which registers are ordered based on clock tree delays and scan chains are restructured to reduce the number of buffer insertions, the area requirement, the routing volume and the power consumption while adhering to time constraints, without adversely affecting test time or test coverage.

[0004] US 6 199 183 B1 discloses a method for forming a scan path network in which clock delays, distances and skews between scan flip-flops are calculated and the scan flip-flops are connected based on a minimized sum value between scan input and scan output nodes.

[0005] LIAO, Haiguang, et al.: A deep reinforcement learning approach for global routing. In: Journal of Mechanical Design, June 2020, preprint 2019, Vol. 142, No. 6, pp. 1-16. discloses an approach for solving global routing problems using deep reinforcement learning, which achieves improved routing solutions compared to heuristic methods and additionally provides a parameterizable generator for routing problem sets for training and evaluation purposes. SUMMARY

[0006] Embodiments of the present invention disclose a method, a computer system, and a computer program product for optimizing the signal line length of scan chains. Embodiments of the present invention may include obtaining root node details from the root nodes. Embodiments of the present invention may include optimizing the connectivity of the root nodes. Embodiments of the present invention may include identifying a best start node and a best end node for each of the root nodes.Embodiments of the present invention may include optimizing child nodes in each of the parent nodes, wherein the optimization comprises initializing a Q-table for each of the parent nodes, selecting an action based on a fixed start and end node or based on an optimal start and end node, performing the action by adding a selected node, measuring a reward by measuring a total signal line length of a parent node tour, and updating the Q-table for each of the child nodes of a child node tour. Embodiments of the present invention may include determining whether a signal line length of a complete tour is less than or greater than that of a nearest neighbor. Embodiments of the present invention may include applying or skipping a solution. BRIEF DESCRIPTION OF THE DRAWINGS

[0007] These and other tasks, features, and advantages of the present invention will become apparent from the detailed description below of illustrative embodiments, which should be read in conjunction with the accompanying drawings. The various features of the drawings are not to scale, as the illustrations serve for clarity and to facilitate the understanding of the invention by those skilled in the art in conjunction with the detailed description. They show: Fig. 1 a networked computer environment according to at least one embodiment; Fig. 2A and Fig. 2B Block diagrams showing examples of the representation of multiple root nodes of clusters according to at least one embodiment; Fig. 3A an operational flow diagram illustrating a process for optimizing scan chain signal line lengths using Q-learning-based reinforcement learning according to at least one embodiment; Fig. 3B an operational flowchart illustrating a process for the action selection part of the Q-Learning process during the optimization of the root node (OptRootNode) and child node (OptChildChain) connectivity for a scan chain according to at least one embodiment; Fig. 3C an operational flow diagram illustrating a process for selecting an optimal connection between root nodes according to at least one embodiment; Fig. 4. A block diagram of internal and external components of the in Fig. 1 computer and server shown according to at least one embodiment; Fig. 5 A block diagram of an illustrative cloud computing environment, which is shown in Fig. 1 computer system shown comprises, according to one embodiment of the present disclosure; and Fig. 6. A block diagram of functional layers of the illustrative cloud computing environment. Fig. 5 according to one embodiment of the present disclosure. DETAILED DESCRIPTION

[0008] Detailed embodiments of the claimed structures and methods are disclosed herein; however, it is understood that the disclosed embodiments serve only to illustrate the claimed structures and methods, which can be implemented in various forms. The invention can, however, be implemented in many different forms and should not be considered limited to the exemplary embodiments presented here. Rather, these exemplary embodiments are given to ensure that this disclosure is thorough and complete and fully conveys the scope of the invention to those skilled in the art. Details of known features and methods may be omitted from the description in order to highlight the presented embodiments more clearly.

[0009] As described above, using a scanchain method can simplify the testing of integrated circuits because each flip-flop in the integrated circuit is controllable and observable based on a set of transmitted signals. Scanchain optimization methods include reordering the scanchain through the set of flip-flops, taking into account several constraints, including scanning the total signal line length. Cells, or flip-flops, can be distributed across multiple scanchains.

[0010] A primary goal of scanchain optimization is to reduce the scanchain signal trace length. Reduced signal trace length increases the scan frequency, improves test time and design connectability, leading to a reduction in chip area and power consumption. Current scanchain optimization solutions may include methods that use a greedy approach with the nearest neighbor node and then augment nodes with swaps between chains or nodes. Another approach involves extensive searches with many combinations, making testing impractical. In some cases, genetic algorithms are used. Currently, optimizing scanchain ordering to reduce signal trace length does not include a Q-learning approach for reordering the scanchain for a reduced signal trace length.Therefore, it may be advantageous, among other things, to develop an improved method for optimizing the signal line length of scan chains in order to reduce the total signal line length and power consumption by using Q-learning to reconnect scan networks.

[0011] The exemplary embodiments described below provide a system, a method, and a software product for scan chain optimization. Embodiments of the present invention are capable of improving the technical field of scan chain optimization by employing reinforcement learning based on Q-learning to optimize the scan chain signal line length. More precisely, an efficient and reordered scan chain can be identified by integrating and utilizing multiple permutations of nodes located in the existing scan chain. With an efficient reordering of the scan chain, guidance knowledge gained from previous explorations can be utilized, with guidance weighted or rewarded based on the total chain signal line length from each exploration.

[0012] Q-learning is a reinforcement learning algorithm that is model-free and policy-independent. Model-free means that no model is required to perform an action. Q-learning can be able to operate with stochastic transitions and rewards without requiring adjustments. Policy-independent can refer to the ability to learn an algorithm that finds the best course of action based on a given state. Q-learning functions can learn based on actions that are outside of a policy, such as random actions. Reinforcement learning can refer to a branch of machine learning that performs actions based on a reward or cumulative reward.

[0013] Cells or flip-flops can be distributed across multiple scan chains to minimize the number of cells in each scan chain, which can directly reduce scan time and therefore test time. With a simple scan chain structure, signals can be scanned sequentially. A scan chain designed at the register transfer level (RTL) can have scan cells assigned to a scan chain in a random order or in a logical sequence that does not know the physical position of the cells.

[0014] Scan chain optimization can be performed during the physical design optimization of an integrated circuit (IC) after the cell positions on the chip have been determined. During optimization, the scan output of a first cell is connected in series with the scan input of a second cell, creating a chain. The total signal trace length can be defined as the sum of the distances between each cell pair in the scan chain. Scan chain optimization can also limit the number of cells in each scan chain to reduce testing time. Each scan cell can be assigned to one of the scan chains. Each cell can appear once in each scan chain, and each cell can appear in at least one scan chain. Scan optimization can involve reconnecting the scan chain through the cells to reduce the total signal trace length and power consumption.

[0015] According to one embodiment, Q-learning can be used to perform many iterations to obtain an optimal Q-table or one that can be considered a good Q-table. A good Q-table can be a representation of the best action for a given state. A Q-table can be a test table that records the calculated maximum expected future rewards for an action for each state. After initializing a Q-table, many iterations can be performed during reinforcement learning, each involving several steps to improve the Q-table. The iteration steps might include, for example, selecting an action, performing the action, measuring the outcome, quantifying the reward, and then updating the Q-table. A new Q-value for a state and action can be represented by `New Q(s,a)`. The current Q-value can be represented by `Q(s,a)`.The learning rate can be represented by ∝. The reward for performing an action in a given state can be represented by R(s,a). The depreciation rate can be represented by y. The maximum expected future reward for a new state s' and all possible actions in the new state can be represented by maxQ'(s',a'). An equation representing the iteration steps might include, for example: New Q(s, a) = Q(s, a) + ∝ [R(s, a) + γ maxQ'(s', a') - Q(s, a)].

[0016] In one embodiment, a reinforcement learning algorithm based on Q-learning can be used to find connectivity for scan stitching. An iterative Q-learning procedure can be used to reorder the scan chain. Scan chain reordering can include reconnecting the scan networks based on the physical position of the cells to reduce the overall scan signal line length.

[0017] According to one embodiment, test requirements can be included as constraints in the Q-Learning guide. The constraints can consist of the total number of cells in a single scan chain and should not exceed a design for testability (DFT) limit. The constraints can also be cells connected to a specific local clock buffer (LCB) cluster that should be grouped together. Alternatively, the constraints can be a scan chain sequence for certain cells that are marked as non-optimizable and must remain unchanged. Optimal scan chain connectivity can be divided into inter- and intra-cluster explorations. For example, cell nodes can be divided into inter-cluster (e.g., root node) optimization, followed by intra-cluster (e.g.,Child node optimization.

[0018] In one embodiment, a recursive application of Q-learning with root nodes and child nodes can be used. The optimal starting point and the optimal endpoint for the child nodes can be determined contextually.

[0019] According to one embodiment, node collapsing can be used to reduce the state space, allowing for more iterations and exploration. Enabling node collapsing can also be used to maintain certain non-optimizations and to uphold test justice (DFT) constraints, keeping groups of cells together in a local clock buffer (LCB) cluster.

[0020] In one embodiment, a zero discount can be provided, since it may be necessary to estimate all possible actions based on the new state, which can be time-consuming and exhaustive.

[0021] In Fig. Figure 1 shows an exemplary networked computer environment 100 according to one embodiment. The networked computer environment 100 can include a computer 102 with a processor 104 and a data storage unit 106, which are capable of executing a software program 108 and a scan chain optimization program 110a. The networked computer environment 100 can also include a server 112, which is capable of executing a scan chain optimization program 110b that can interact with a database 114 and a data transmission network 116. The computer 102 can also be referred to as a client computer and the server 112 as a server computer. The networked computer environment 100 can comprise a plurality of computers 102 and servers 112, of which only one is shown.The data transmission network 116 can encompass various types of data transmission networks, such as a wide area network (WAN), a local area network (LAN), a telecommunications network, a wireless network, a public dial-up network, and / or a satellite network. It should be noted that... Fig. Figure 1 illustrates only one implementation and does not imply any limitations regarding the environments in which different implementations may be implemented. The environments shown can be modified in many ways depending on design and implementation requirements.

[0022] Computer 102 can exchange data with server 112 via data transmission network 116. Communication network 116 can include connections such as wired or wireless communication links or fiber optic cables. As referenced in Fig. As discussed in section 4, the server 112 can contain internal components 902a or external components 904a, and the computer 102 can contain internal components 902b or external components 904b. The server 112 can also operate in a cloud computing service model, such as Software as a Service (SaaS), Analytics as a Service (AaaS), Blockchain as a Service (BaaS), Platform as a Service (PaaS), or Infrastructure as a Service (laaS). The server 112 can also be located in a cloud computing deployment model, such as a private cloud, community cloud, public cloud, or hybrid cloud. The computer 102 can be, for example, a mobile device, a telephone, a personal digital assistant, a netbook, a laptop computer, a tablet computer, a desktop computer, or any type of data processing unit capable of running a program, accessing a network, and accessing a database 114.According to various implementations of the present embodiment, the scan chain optimization program 110a, 110b can interact with a database 114 which may be embedded in various storage units, for example, but not limited to, a computer / mobile unit 102, a server 112 or a cloud storage service.

[0023] According to the present embodiment, a user employing a client computer 102 or a server computer 112 can use the scan chain optimization program 110a, (or) 110b, to optimize a scan chain signal line length using reinforcement learning based on Q-learning. The scan chain optimization method is described below with respect to Fig. 2A-B and 3A-C are explained in more detail.

[0024] In Fig. Figures 2A-B are block diagrams showing examples of several stem node representations of clusters used by the scan chain optimization program 110a, 110b according to at least one embodiment.

[0025] Figure 202 shows a diagram of a design with a scan chain, including a SCAN_IN port and a SCAN_OUT port. The blocks represent cell clusters in the design. For example, there are 7 cell clusters, where cluster0 is defined as a non-optimizable cluster.

[0026] Figure 204 shows a representation of the cell clusters reduced to root nodes. For example, the four cells identified in cluster 6 in Figure 202 are reduced to a single root node, c6. A directed edge from root node c0 to node c6 indicates a nearest feasible state for exploring from c0 to c6. The associated weight of the edge may include the signal line length for the path from c0 to c6, i.e., the signal line length w06.

[0027] In section 206, the creation of the root nodes and the weights are displayed as Q-learning updated weights or rewards based on the signal line length WL(i) to favor the shortest path. Exploration 1 (WL1) and Exploration 2 (WL2) were considered, and the path via Exploration 2 (WL2) was calculated as part of the shortest path. The calculated shortest path is used to update the weights in the Q-table.

[0028] At 208, the stem node solution after N explorations is displayed as the final predicted path, with the weights updated based on the N explorations. The final path may be the same as one of the explored paths, or it may be different from the explored paths. The final path may include the path with the shortest signal line length.

[0029] In Fig. Figure 3A shows an operational flow diagram illustrating the exemplary scan chain signal line length optimization process 200 used by the scan chain optimization program 110a, 110b according to at least one embodiment.

[0030] At 302, the "Get Root Node Details" operation is performed. The details retrieved from the root nodes can relate to their connectivity. For example, one or more root nodes can represent a group of cells in a Local Clock Buffer (LCB) cluster, a group of non-optimizable cells, or standalone nodes. A root node is a simplified representation of a group of cells that need to be kept together. Reinforcement learning, or Q-learning, can be used to obtain the optimal connectivity of the root nodes.

[0031] In step 304, the connectivity of the root nodes is optimized. This optimization aims to generate root node data that predicts a root node tour. A root node tour is the optimal connectivity of root nodes that reduces the total signal line length. The optimal Q-table is used to predict the root node tour. One root node tour can be predicted for each node element matrix. Optimizing root nodes may involve initializing a Q-table in step 304a for the first operation and then performing many iterations of steps 304b-e. The number of iterations can vary depending on the desired depth of exploration. The quality of the Q-table can improve with an increasing number of iterations. The number of iterations performed may be sufficient to generate an optimal Q-table.An example of choosing the value of N is selecting the value when previous surveys have not yielded a shorter signal line length (WL) than previous NK surveys.

[0032] Optimizing the root node details for a scan chain can involve representing the group of cells in a cluster (i.e., a node) with a coordinate that is an average value of all (x,y) cell coordinates in the group.

[0033] In step 304a, the Q-table is initialized. The Q-table can be initialized by setting the values ​​in the table or matrix to zero or to a uniform value for all positions in the table. The table is represented as a state and an action in that state.

[0034] In 304b, an action is selected. The action can be selected based on a weighting between the nodes, or it can be selected randomly. The weighting between nodes can be measured by the distance between points of the cluster (i.e., the nodes). For example, one input cluster position could be (xi,yi) and another cluster position (xo,yo), where the representations Xi = (xi) ∈ ℝ 1xn , Yi = (yi) ∈ ℝ 1xn , Xo = (xo) ∈ ℝ 1xn and Yo = (yo) ∈ ℝ 1xn The signal line length (WL) can be calculated as WL = |Xo-Xi| + |Yo-Yi|.

[0035] An action selected based on weights can be equal to f(Qcurrent, K / distance), where K is a constant value. Qcurrent is the current value for the state-action pair in the Q-table. The action selected based on weights can include selecting a node with the highest weighted value as f(Qcurrent, K / distance) or randomly selecting a node from a selection of the N nodes closest to the current node. The process for action selection part 304b of the Q-learning process during the optimization of the root nodes for a scan chain is described in Fig. 3B shown.

[0036] According to an alternative embodiment, a group of cells within a root node can be represented by a coordinate which is an average value of the midpoint of the scan-in and scan-out pins in that group.

[0037] Step 304c performs an action. This action can be performed by adding the node selected in step 304b to the RootNodeTour. The sequence of steps 304b and 304c can be repeated until all nodes have been added to the RootNodeTour.

[0038] At 304d, a reward is measured. At the end of each exploration, the reward is measured by using the total signal line length of the root node tour as a metric. For example, the Manhattan distance between nodes can be used as a metric for measuring signal line length (WL), and the total signal line length (WL) is compared to the best signal line length (WL) achieved in previous tour evaluation iterations.

[0039] In 304e, the Q-table is updated. The table is updated based on the tour signal line length. The Q-table, or Q-update, can be represented as follows: *Qnext = (1-∝) Qcurrent + ∝(CurrentWL / GlobalOptWL + y * Max of the next state). Qnext is the next action or the action in the next state, ∝ is the learning rate, CurrentWL is the current signal line length at node Qcurrent, y is the deduction rate, and Max of the next state is the maximum value of Q from all next states for the current action.

[0040] In a first embodiment, the Q-table is updated at each iteration represented as CurrentWL < K*GlobalOptWL. For example, if CurrentWL is less than K*GlobalOptWL, the Q-table is updated. If CurrentWL is not less than K*GlobalOptWL, the Q-table is not updated.

[0041] In a second embodiment, the Q-table is updated on each iteration represented as CurrentWL < K*GlobalOptWL, and the path has never been updated before. For example, if CurrentWL is less than K*GlobalOptWL, the scan chain optimization program determines whether the node has already been rewarded. If the node has already been rewarded, the Q-table is updated. If CurrentWL is not less than K*GlobalOptWL, the Q-table update is skipped.

[0042] The sequence of steps 304b to 304e can be performed N times to continuously improve the Q-table. After N iterations or explorations, the optimal root node tour is selected by choosing an action based on the current Q-table, starting from the first node, until the last node of the root node tour is reached. The last root node tour can be referred to or considered as the optimized root node tour.

[0043] In section 306, the best start and end nodes are identified. The best start and end nodes are identified for each root node as the optimal connection between the best start and end nodes. For each root node, the child nodes are considered as start and end nodes for an optimal child node tour. The process for identifying or selecting the best start and end nodes or the optimal connection can be found in Fig. 3C will be displayed.

[0044] In step 308, the child nodes of each root node are optimized. Each node of the root node tour can consist of multiple child nodes. Each node can be optimized to find the optimal tour (OptChildChain) within that root node. The process of optimizing child nodes can be similar to the optimization of the root node tour in steps 304b to 304e.

[0045] After each child node optimization, the full tour is created by traversing the root node tour (RootNodeTour) starting from the start node. At each root node, the optimized child node tour (ChildNodeTour) for that root node is appended to the full tour (FullTour) before proceeding to the next node of the root node tour (RootNodeTour).

[0046] Step 308a initializes the Q-table. A new Q-table can be initialized for each root node, representing the current state and action for each child node within that root node. For child node tour optimization (OptChildChain), initializing the Q-table involves setting the values ​​in the table or matrix to zero or a uniform value for all positions in the table. Many iterations of steps 308b-e can be performed to obtain a high-quality Q-table. Optimizing the various child node tours (OptChildChain) can be done in parallel to save runtime.

[0047] In step 308b, an action is selected. The action can be selected based on determining the fixed or optimal start node and the fixed or optimal end node for the node matrix. Alternatively, the action can be selected based on determining the shortest signal path length between child nodes within the root node. The distance between two child nodes can be calculated based on the pin positions on the child nodes. The signal path length WL can be calculated as WL = |Xo - Xi| + |Yo - Yi|. The action selected based on weights can include selecting a node with the highest weighted value as f(Qcurrent, K / distance) or randomly selecting a node from a selection of the N nodes closest to the current node. The process for action selection part 308b of the Q-learning process during the optimization of the root nodes for a scan chain is described in Fig. 3B shown.

[0048] An action is performed at step 308c. The action is performed as in step 304c.

[0049] A reward is measured at step 308d. The reward is measured as in step 304d.

[0050] In step 308e, the Q-table is updated. The Q-table is updated similarly to step 308e, except that it is updated for each of the child node tours. The sequence of steps 308b to 308e can be performed N times to complete the full tour. The sequence of steps 308b to 308e can also be performed N times to continuously improve the Q-table. After N iterations or explorations, the optimal child node tour is selected by choosing the action based on the current Q-table, starting from the first node, until the last node of the child node tour is reached. This sequence of steps and iterations can lead to an optimized child node.

[0051] If the current node is a cluster node, the child node tour (ChildNodeTour) can be optimized and appended to the full tour (FullTour). To connect two cluster nodes, the best end node of one cluster and the start node of the next cluster are determined. For each start-end node option, a Q-learning process can be performed from the start node to the end node. Subsequently, a best cluster-optimized chain (OptChildChain) can be identified. The child node tour (ChildNodeTour) appended to the full tour (FullTour) can be represented as "Append OptChildChain to FullTour". The start node of the next cluster (OptStartNode) can be determined based on the connectivity with the shortest signal path (WL) between the optimal end node (OptEndNode) and the next cluster node.

[0052] If the current node is a single node, such as a start node, an end node, or an isolated node, it is appended to the full tour. The next node can be defined as the node with the shortest signal line length (WL) to the current node.

[0053] If the current node is a non-optimizable node, it is appended to the full tour in a chain. The next node can be determined by identifying the shortest signal path (WL) of the next node, starting from the newly connected end node, if the current node has the shortest signal path (WL) of the next node.

[0054] In step 310, the scan-chain optimization program 110a, 110b determines whether the signal line length of the full tour is shorter than that of the nearest existing neighbor solution. The signal line length of the full tour, optimized in step 308, is compared with the signal line length of the nearest neighbor solution. The nearest neighbor could, for example, be an algorithm used to solve a scan-chain optimization problem where the nearest neighbor is selected in each step.

[0055] If the scan chain optimization program 110a, 110b determines that the signal path length of the full tour is shorter than that of the nearest neighbor, the solution is applied in step 312. The applied solution is derived from the Q-learning-based full tour (FullTour). For example, the solution is the signal path length of the full tour compared to the best known full tour signal path length obtained from all previous explorations.

[0056] If the scan chain optimization program 110a, 110b determines that the signal line length of the full tour is not less than that of the nearest neighbor, the current path or solution at 314 is skipped.

[0057] In Fig. Figure 3B shows an operational flowchart illustrating the exemplary action selection part of the Q-Learning process 304b, 308b for optimizing root node (OptRootNode) and child node (OptChildChain) connectivity, which is used by the scan chain optimization program 110a, 110b according to at least one embodiment. The selection of an action and the next state is shown, where the next state can be represented as action = f(Qcurrent, K / weight), where K is a constant value, or the action can be chosen randomly.

[0058] At 320, the scan chain optimization program 110a, 110b determines whether the selection is random. The selection can refer to determining, based on a reconnaissance coefficient, whether the selected action was random. The reconnaissance coefficient can be any value from 0 to 1, where 1 represents maximum randomness and 0 represents non-randomness.

[0059] If the scan chain optimization program (110a, 110b) determines that the selection was not random, the nodes to be visited are selected at 322. The nodes to be visited include all nodes that have not yet been visited in the current exploration.

[0060] In 324, the probability of success is calculated based on a current Q-value and the signal line length. The Q-value and the signal line length between nodes are calculated using Q*H, where H is a function of the signal line length between the current node and each of the possible next nodes.

[0061] At 326, a node with the highest probability of success is selected. This node is chosen based on the result of the Q*H calculation. For example, the node with the highest Q*H value can be calculated as having the highest probability of success.

[0062] If the scan chain optimization program 110a, 110b determines that the selection was random, the N nearest neighbors are found at 328. The N nearest neighbors can be found using the number N defined during the run.

[0063] At 328, the N nearest neighbors are found. The N nearest neighbors are found or identified based on a sorted distance between them. For example, the distances of the N nearest neighbors are sorted from smallest to largest based on the determined distances to the current node.

[0064] At point 330, the scan chain optimization program 110a, 110b determines whether the node has already been visited. It determines whether the node was visited in the current exploration by checking if the selected node is already part of the tour exploration or has been identified within it.

[0065] If the scan chain optimization program 110a, 110b determines that the node in the tour has already been visited, the next node is selected at step 332. The next node is chosen as one of the remaining nodes from the N nearest neighbors. After the next node has been selected, the scan chain optimization program 110a, 110b determines in step 330 whether the node (e.g., the next node) on the tour has already been visited.

[0066] If the scan chain optimization program 110a, 110b determines that the node in the tour has not yet been visited, the nearest coefficient is calculated at 334. For example, a Boltzmann survey can be used to find the nearest neighbor coefficients.

[0067] At 336, the scan chain optimization program 110a, 110b determines whether the node lies within the threshold. The threshold can be determined based on the exploration depth required for the learning process. A smaller threshold can restrict the exploration to nearby neighbors, and a higher threshold can explore both nearby neighbors and more distant nodes.

[0068] If the scan chain optimization program 110a, 110b determines that the node is not within the limit, the next node is selected at step 332. After the next node has been selected, the scan chain optimization program 110a, 110b determines in step 330 whether the node (e.g., the next node) has already been visited on the tour.

[0069] If the scan chain optimization program (110a, 110b) determines that the node is within the limit, the node at 338 is added to the selection list. Determining that the node is within the limit may involve checking whether the proximity coefficient is less than a predefined or specified threshold. The selection list may represent the nodes that can be explored during one or more random explorations that are sufficiently close to the current node.

[0070] At step 340, the scan chain optimization program 110a, 110b determines whether all neighbors have been completed. All neighbors are considered completed if all N nearest neighbors from step 328 have been evaluated.

[0071] If the scan chain optimization program 110a, 110b determines that not all neighbors are complete, the next node is selected at step 332. After the next node has been selected, the scan chain optimization program 110a, 110b determines in step 330 whether the node (e.g., the next node) has already been visited on the tour.

[0072] When the scan chain optimization program 110a, 110b determines that all neighbors are closed, a random node is selected from the selection list. A random node is selected by randomly choosing one of the nodes from the selection list.

[0073] Fig. Figure 3C shows an operational flow diagram illustrating the exemplary process 306 for selecting an optimal connection between root nodes, which is used by the scan chain optimization program 110a, 110b according to at least one embodiment.

[0074] At step 350, the root node tour is read or identified. The root node tour is identified based on the Q-table after the Q-table has been updated in step 304e.

[0075] At 352, the first node of the root node tour is selected. The first node selected is the first node on the optimal root node tour.

[0076] At 354, the next node (e.g., a second node) of the root node tour is selected. The second node can be defined as the node with the highest Q-value from the first node.

[0077] In step 356, the weights of all possible connections between the nodes are calculated. The weights of all possible connections are calculated between the child nodes of the first node of the root node tour (RootNodeTour) and the second node of the root node tour (RootNodeTour). The weight can represent the signal line length (WL) between the nodes and can be calculated as the distance between two nodes. As stated in step 308b, WL = |Xo -Xi| + |Yo - Yi|.

[0078] At 358, the connection with the best weight is selected. The best weight, or optimal weight, can be a random choice among the k shortest signal line lengths (WL) between the clusters, where k is a number smaller than the cluster connectivity nodes. The smaller the value of k, the lower the probability that exploring the shortest signal line lengths (WL) and the greedy solution will be chosen for k = 1.

[0079] In a 360 configuration, a child node of the first node is designated as the end node, and the child node of the next node is designated as the start node. Conversely, the child node of the first parent node is designated as the end node for the first parent node, and the child node of the next node (e.g., the second node) is designated as the start node for the next parent node.

[0080] At point 362, the scan chain optimization program 110a, 110b determines whether the next node is the last node of the root node tour. To determine whether the next node is the last node of the root node tour, it is checked whether all nodes of the tour have already been visited during this exploration.

[0081] If the scan chain optimization program 110a, 110b determines that the next node is not the last node of the tour, the next node is designated as the first node at step 364. The process of identifying the start and end nodes is repeated for each pair of adjacent nodes of the root node tour. Once the next node is designated as the first node, the next adjacent node (e.g., a third node) of the root node tour is selected. For example, if the next node was the second node of the root node tour, then the next node selected in step 354 could be a third selected node.

[0082] If the scan chain optimization program 110a, 110b determines that the next node is the last node of the tour, the selection part of the best start-end nodes of the root node tour (RootNodeTour) ends.

[0083] It is pointed out that Fig. Figures 2A-B and 3A-C merely illustrate one embodiment and do not imply any limitations regarding the implementation of other embodiments. The depicted embodiment(s) can be modified in many ways depending on the design and implementation requirements.

[0084] Fig. 4 is a block diagram 900 showing internal and external components of the in Fig. 1 computer shown according to an illustrative embodiment of the present invention. It should be noted that Fig. Figure 4 illustrates only one implementation and implies no limitations regarding the environments in which different implementations can be implemented. The environments shown can be modified in many ways depending on design and implementation requirements.

[0085] The Data Processing System 902, 904 refers to any electronic device capable of executing machine-readable program instructions. Data Processing System 902, 904 can refer to a smartphone, a computer system, a PDA, or other electronic devices. Examples of data processing systems, environments, and / or configurations that can be represented by Data Processing System 902, 904 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, network PCs, minicomputer systems, and distributed cloud computing environments, which may include any of the aforementioned systems or devices.

[0086] The computer 102 and the server 112 can each comprise a set of internal components 902 a, b and external components 904 a, b, as shown in Fig. Figure 4 illustrates each of the sets of internal components 902 a, b, comprising one or more processors 906, one or more computer-readable RAMs 908, and one or more computer-readable ROMs 910 on one or more buses 912, as well as one or more operating systems 914 and one or more computer-readable physical storage units 916. The one or more operating systems 914, the software program 108, and the scan-chain optimization program 110a in the client computer 102, and the scan-chain optimization program 110b in the network server 112, can be stored on one or more computer-readable physical storage units 916 for execution by one or more processors 906 via one or more RAMs 908 (which typically contain cache memory). In the Fig. In the embodiment shown in Figure 4, each of the computer-readable physical storage units 916 is a magnetic disk storage unit of an internal hard disk drive. Alternatively, each of the computer-readable physical storage units 916 can be a semiconductor storage unit such as ROM 910, EPROM, flash memory, or any other computer-readable physical storage unit capable of storing a computer program and digital information.

[0087] Each set of internal components 902 a, b also includes a read / write drive or an interface 918 for reading and writing one or more portable, computer-readable physical storage units 920, such as CD-ROM, DVD, memory stick, magnetic tape, magnetic disk, optical disk, or semiconductor storage unit. A software program, such as the software program 108 and the scan chain optimization program 110a, 110b, can be stored on one or more of the respective portable, computer-readable physical storage units 920, read via the respective R / W drive or interface 918, and loaded into the respective hard disk drive 916.

[0088] Each set of internal components 902 a, b can also include network adapters (or switchport cards) or interfaces 922 such as TCP / IP adapter cards, cellular Wi-Fi interface cards, or 3G / 4G / 5G cellular interface cards, or other wired or wireless data transmission links. The software program 108 and the scan chain optimization program 110a in the computer 102 and the scan chain optimization program 110b in a network server 112 can be downloaded from an external computer (e.g., a server) via a network (e.g., the Internet, a local network, or another extended network) and appropriate network adapters or interfaces 922. The software program 108 and the scan chain optimization program 110a are loaded onto the respective hard disk 916 from the network adapters (or switch port adapters) or interfaces 922 in computer 102 and the scan chain optimization program 110b in network server computer 112.The network may include copper wires, fiber optic cables, wireless transmission, routing computers, firewalls, switching units, gateway computers and / or edge servers.

[0089] Each of the sets of external components 904 a, b can include a computer screen 924, a keyboard 926, and a computer mouse 928. The external components 904 a, b can also include touch-sensitive displays, virtual keyboards, touchpads, pointing devices, and other interface units for human users. Each of the sets of internal components 902 a, b also includes device drivers 930 for connection to the computer screen 924, the keyboard 926, and the computer mouse 928. The device drivers 930, the read / write drive or interface 918, and the network adapter or interface 922 comprise hardware and software (stored in the memory unit 916 and / or the ROM 910).

[0090] It should be noted beforehand that, although this disclosure contains a detailed description of cloud computing, implementations of the teaching set forth herein are not limited to a cloud computing environment. Instead, embodiments of the present invention can be implemented together with any type of data processing environment, now known or hereafter invented.

[0091] Cloud computing is a service delivery model that enables seamless, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing power, main memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management overhead or interaction with a service provider. This cloud model can include at least five properties, at least three service models, and at least four implementation models.

[0092] The properties are as follows: On-Demand Self-Service: A cloud user can unilaterally and automatically provide data processing functions such as server time and network storage as needed, without requiring human interaction with the service provider. Broad Network Access: Functions are available over a network, accessed through standard mechanisms that support use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs). Resource pooling: The provider's data processing resources are pooled to serve multiple users using a multi-tenant model, with various physical and virtual resources being dynamically allocated and reassigned as needed. There is a perceived location independence, as the user generally has no control over or knowledge of the exact location of the provided resources, but may be able to define a location at a higher level of abstraction (e.g., country, state, or data center). Rapid Elasticity: Features can be deployed quickly and elastically for rapid horizontal scaling (scale out), in some cases automatically, and released quickly for rapid scale-in. To the user, the available features often appear unlimited and can be purchased in any quantity at any time. Measured Service: Cloud systems automatically control and optimize resource usage by employing a measurement function at a certain level of abstraction appropriate for the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource utilization can be monitored, controlled, and reported, thereby creating transparency for both the provider and the user of the service.

[0093] The service models are as follows: Software as a Service (SaaS): The functionality provided to the user is to utilize the provider's applications running in a cloud or hybrid cloud infrastructure. These applications are accessible from various client devices via a thin-client interface, such as a web browser (e.g., web-based email). The user does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functions, with the possible exception of limited user-specific application configuration settings. Platform as a Service (PaaS): The function provided to the user is to deploy applications created or obtained by the user, using programming languages ​​and tools supported by the provider, within the cloud infrastructure. The user does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but has control over the deployed applications and potentially over configurations of the application hosting environment. Analytics as a Service (AaaS): The functionality provided to the user is to access an analytics platform via web- or cloud-based networks (i.e., via the infrastructure). Analytics platforms may include access to analytics software resources or access to relevant databases, data repositories, servers, operating systems, or storage. The user does not manage or control the underlying web or cloud infrastructure, including databases, corpora, servers, operating systems, or storage, but has control over the applications used and potentially over configurations of the application hosting environment. Infrastructure as a Service (IaaS): The functionality provided to the user consists of supplying processing, storage, networking, and other basic data processing resources, enabling the user to deploy and run any software, including operating systems and applications. The user does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and potentially limited control over selected network components (e.g., host firewalls).

[0094] The following are the deployment models: Private Cloud: The cloud infrastructure is operated solely for one organization. It can be managed by the organization or a third party and can be located on the organization's own premises or on external premises. Community Cloud: This cloud infrastructure is shared by multiple organizations and supports a specific user community with shared concerns (e.g., mission, security requirements, policies, and regulatory compliance considerations). It can be managed by the organizations themselves or a third party and can be located on-premises or external premises. Public Cloud: The cloud infrastructure is made available to the general public or a large industry group and is owned by an organization that sells cloud services. Hybrid Cloud: The cloud infrastructure is a composition of two or more clouds (private, community or public) that remain separate entities but are connected by a standardized or proprietary technology that enables data and application portability (e.g. cloud audience distribution for load balancing between clouds).

[0095] A cloud computing environment is service-oriented, focusing on state independence, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that comprises a network of interconnected nodes.

[0096] In Fig. Figure 5 illustrates a Cloud Computing Environment 1000. As shown, the Cloud Computing Environment 1000 has one or more Cloud Computing Nodes 1050, with which local data processing units used by cloud users, such as the electronic assistant (PDA, personal digital assistant) or mobile phone 1000A, the desktop computer 1000B, the laptop computer 1000C, and / or the automotive computer system 1000N, can exchange data. The Cloud Computing Nodes 1050 can exchange data with each other. They can be grouped physically or virtually into one or more networks, such as private, community, public, or hybrid clouds (not shown), as described above, or into a combination thereof.This allows the cloud computing environment to offer infrastructure, platforms, and / or software as services, for which a cloud user does not need to maintain resources on a local data processing unit. It should be noted that the types of in . Fig. The 5 data processing units 1000A-N shown are for illustrative purposes only, and the data processing nodes 1050 and the cloud computing environment 1000 can exchange data with any type of computer unit via any type of network and / or any type of network-accessible connection (e.g., using a web browser).

[0097] In Fig. Figure 6 shows a set of functional abstraction layers 1100 provided by the cloud computing environment 1000. It should be clear beforehand that the in Fig.The components, layers, and functions shown in the diagram are for illustrative purposes only, and embodiments of the invention are not limited to them. As shown, the following layers and corresponding functions are provided:

[0098] A hardware and software layer 1102 contains hardware and software components. Examples of hardware components include: mainframe computers 1104; servers based on the RISC (Reduced Instruction Set Computer) architecture 1106; servers 1108; blade servers 1110; storage units 1112; and networks and network components 1114. In some embodiments, software components include network application server software 1116 and database software 1118.

[0099] The virtualization layer 1120 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 1122, virtual storage 1124, virtual networks 1126, including virtual private networks, virtual applications and operating systems 1128; and virtual clients 1130.

[0100] In one example, an administration layer 1132 can provide the functions described below. A resource provisioning layer 1134 provides the dynamic procurement of data processing resources and other resources used to perform tasks within the cloud computing environment. A metering and pricing layer 1136 provides cost tracking when using resources within the cloud computing environment and billing for the use of these resources. In one example, these resources might include application software licenses. Security provides identity verification for cloud customers and tasks, as well as protection for data and other resources. A user portal 1138 provides users and system administrators with access to the cloud computing environment.Service Level Agreement (SLA) management (1140) provides the allocation and management of cloud computing resources to ensure that required service objectives are met. Service Level Agreement (SLA) planning and fulfillment (1142) provides the advance planning and procurement of cloud computing resources for which a future requirement is anticipated, in accordance with an SLA.

[0101] A workload layer 1144 provides examples of the functionality for which the cloud computing environment can be used. Examples of workloads and functions that can be provided by this layer include: mapping and navigation 1146; software development and lifecycle management 1148; delivery of training in virtual classrooms 1150; data analytics processing 1152; transaction processing 1154; and scan chain optimization 1156. A scan chain optimization program 110a, 110b provides a way to optimize a scan chain signal line length using reinforcement learning based on Q-learning.

[0102] The present invention may be a system, a method, and / or a computer program product of any possible level of technical detail of integration. The computer program product may comprise a computer-readable storage medium (or media) on which computer-readable program instructions are stored to induce a processor to execute aspects of the present invention.

[0103] A computer-readable storage medium can be a physical unit capable of retaining and storing instructions for use by a unit to execute instructions. For example, a computer-readable storage medium can be an electronic storage unit, a magnetic storage unit, an optical storage unit, an electromagnetic storage unit, a semiconductor storage unit, or any suitable combination thereof, without limitation. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, random-access memory (RAM), read-only memory (ROM), and erasable programmable read-only memory (EPROM).Flash memory), static random-access memory (SRAM), portable compact storage disk-read-only memory (CD-ROM), DVD (digital versatile disc), USB flash drive, floppy disk, a mechanically coded unit such as punched cards or raised structures in a groove on which instructions are stored, and any suitable combination thereof. A computer-readable storage medium shall not, in its use herein, be understood as volatile signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses traveling through an optical fiber cable), or electrical signals transmitted by a conductor.

[0104] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to individual data processing units or, via a network such as the internet, a local area network, a wide area network, and / or a wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission lines, wireless transmission, routing computers, firewalls, switching units, gateway computers, and / or edge servers. A network adapter card or network interface in each data processing unit receives computer-readable program instructions from the network and forwards them for storage on a computer-readable storage medium within the respective data processing unit.

[0105] Computer-readable program instructions for executing work steps of the present invention may be assembly instructions, ISA (Instruction Set Architecture) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, etc., as well as conventional procedural programming languages ​​such as the C programming language, the Python programming language, or similar programming languages.The computer-readable program instructions can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter case, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be established with an external computer (for example, via the internet using an internet service provider).In some embodiments, electronic circuits, including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), can execute computer-readable program instructions by using state information from the computer-readable program instructions to personalize the electronic circuits to implement aspects of the present invention.

[0106] Aspects of the present invention are described herein with reference to flowcharts and / or block diagrams or diagrams of methods, devices (systems), and computer program products according to embodiments of the invention. It is pointed out that each block of the flowcharts and / or block diagrams, as well as combinations of blocks in the flowcharts and / or block diagrams, can be executed by means of computer-readable program instructions.

[0107] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or another programmable data processing device to create a machine, such that the instructions executed via the processor of the computer or other programmable data processing device will generate a means of implementing the functions / steps specified in the block(s) of the flowcharts and / or block diagrams.These computer-readable program instructions may also be stored on a computer-readable storage medium capable of controlling a computer, programmable data processing device and / or other units to function in a particular manner, such that the computer-readable storage medium on which instructions are stored has a manufactured product, including instructions that implement aspects of the function / step specified in the block(s) of the flowchart and / or block diagrams.

[0108] The computer-readable program instructions can also be loaded onto a computer, other programmable data processing device, or other unit to cause the execution of a series of process steps on the computer or other programmable device or other unit in order to generate a process executed on a computer, such that the instructions executed on the computer, other programmable device, or other unit implement the functions / steps specified in the block(s) of the flowcharts and / or block diagrams or charts.

[0109] The flowcharts and block diagrams or charts in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this context, each block in the flowcharts or block diagrams or charts can represent a module, segment, or part of instructions that includes one or more executable instructions for performing the specific logical function(s). In some alternative embodiments, the functions specified in the blocks may occur in a different order than shown in the figures. For example, two blocks shown consecutively may in reality be executed essentially simultaneously, or the blocks may sometimes be executed in reverse order depending on the corresponding functionality.It should also be noted that each block of the block diagrams and / or flowcharts, as well as combinations of blocks in the block diagrams and / or flowcharts, can be implemented by special hardware-based systems that perform the specified functions or steps, or execute combinations of special hardware and computer instructions.

[0110] The descriptions of the various embodiments of the present invention are provided for illustrative purposes only and are not intended to be exhaustive or limited to the embodiments described. Many modifications and variations are apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been chosen to best explain the basic concepts of the embodiments, their practical application, or technical improvements compared to technologies available on the market, or to enable those skilled in the art to understand the embodiments disclosed herein.

Claims

A computer-executable method for optimizing a scan chain signal line length in the design of a digital circuit using Q-learning, comprising: obtaining (302) root node details from the root nodes, optimizing (304) a connectivity of the root nodes, identifying (306) a best start node and a best end node for each of the root nodes, optimizing (308) child nodes in each of the root nodes, comprising: initializing (308a) a Q-table for each of the root nodes, selecting (308b) an action based on a fixed start and end node or based on an optimal start and end node, performing (308c) the action by adding a selected node, measuring (308d) a reward by measuring a total signal line length of a root node tour, and updating (308e) the Q-table for each of the child nodes of a child node tour, determining (310),that a signal line length of a full tour is less or greater than a nearest neighbor, Apply (312) or skip (314) a solution. The method of claim 1, wherein optimizing (304) the connectivity of the stem nodes further comprises: initializing (304a) a Q-table by setting values ​​in the Q-table to zero or to a uniform value, selecting (304b) an action based on a weighting between two nodes or selecting at random, performing (304c) the action by adding a selected node, measuring (304d) a reward by measuring a total signal line length of a stem node tour, and updating (304e) the Q-table based on a stem node tour signal line length. The method of claim 2, wherein the selection of the action further comprises: determining that the selection of the action is random, finding an N nearest neighbor node, determining that the N nearest neighbor node has not yet been visited, measuring a nearest coefficient for the N nearest neighbor node, determining that the N nearest neighbor node is within a predetermined limit, adding the N nearest neighbor node to a selection list, and selecting a random node from the selection list. The method of claim 2, wherein the selection of the action further comprises: determining that the selection of the action is not random, selecting a node that has not yet been visited in a current exploration, calculating a probability of success based on a current Q-value and the signal line length, and selecting a node based on the calculated probability of success. The method of claim 1, wherein identifying the best start node and the best end node for each of the root nodes further comprises: reading a root node tour, selecting a first node of the root node tour, selecting a second node of the root node tour, calculating weights of all possible connections between the child nodes or the first node and the second node of the root node tour, selecting a connection with a best weight, designating a first child node as the end node and a second child node as the next start node, determining that the next start node is a last node of the root node tour, and selecting a best start-end node segment of the root node tour. Method according to claim 1, wherein the stem nodes are a reduced representation of a group of cells that need to be held together. A computer system for optimizing scan chain signal line lengths in the design of a digital circuit using Q-learning, comprising: one or more processors, one or more computer-readable memories, one or more computer-readable physical storage media, and program instructions stored on at least one of the one or more computer-readable physical storage media for execution by at least one of the one or more processors via at least one of the one or more computer-readable memories, wherein the computer system is capable of performing a procedure comprising: obtaining (302) root node details from the root nodes, optimizing (304) a connectivity of the root nodes, and identifying (306) a best start node and a best end node for each of the root nodes.Optimizing (308) child nodes in each of the parent nodes, comprising: initializing (308a) a Q-table for each of the parent nodes, selecting (308b) an action based on a fixed start and end node or based on an optimal start and end node, performing (308c) the action by adding a selected node, measuring (308d) a reward by measuring a signal line total length of a parent node tour, and updating (308e) the Q-table for each of the child nodes of a child node tour, determining (310) that a signal line length of a full tour is less than or greater than that of a nearest neighbor, applying (312) or skipping (314) a solution. A computer program product for optimizing scan chain signal line lengths in the design of a digital circuit using Q-learning, comprising: one or more computer-readable physical storage media and program instructions stored on at least one of the one or more computer-readable physical storage media, wherein the program instructions are executable by a processor to cause the processor to perform a procedure comprising: obtaining (302) root node details from the root nodes, optimizing (304) a connectivity of the root nodes, identifying (306) a best start node and a best end node for each of the root nodes, optimizing (308) child nodes in each of the root nodes, comprising: initializing (308a) a Q-table for each of the root nodes,Selecting (308b) an action based on a fixed start and end node or based on an optimal start and end node, performing (308c) the action by adding a selected node, measuring (308d) a reward by measuring a total signal line length of a root node tour, and updating (308e) the Q-table for each of the child nodes of a child node tour, determining (310) that a signal line length of a full tour is less than or greater than that of a nearest neighbor, applying (312) or skipping (314) a solution.

Citation Information

Patent Citations

  • Scan chain re-sequencing method

    CN106874601A

  • Machine-learning based scan design enablement platform

    US20200004913A1

  • Method of forming a scan path network

    US6199183B1

  • CN000106874601A