Method for optimizing scan chain wire length using Q-learning, computer system, computer program (Optimization of scan chain wire length using Q-learning based reinforcement learning)
The Q learning-based reformelement learning technology optimizes the scan chain structure, which solves the problems of insufficient power consumption optimization in the existing technology, and achieves more efficient scan chain reordering and performance improvement.
Patent Information
- Application Number
- JP2021156026
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-09-25
- Filing Date
- 2021-09-24
- Publication Date
- 2025-04-23
- Estimated Expiration
- 2041-09-24
AI Technical Summary
The existing scanning chain optimization methods have shortcomings in reducing the length and power consumption of the scanning chain bus, especially the Q-learning technology is not used to reconnect the scanning network to achieve optimization results.
The Q learning-based reformelement learning technology is used to optimize the scan chain structure through multiple node arrangements, and the total chain line length that is weighted or rewarded from previous searches is used to achieve efficient scan chain reordering.
It effectively reduces the bus length and power consumption of the sweep chain, improves the sweep frequency and design traversal capabilities, and reduces chip area and power consumption.
Smart Images

Figure 0007667622000005 
Figure 0007667622000006 
Figure 0007667622000007
Abstract
Description
[Technical field]
[0001] The present invention relates generally to the field of computing, and more particularly to scan chain optimization using machine learning. [Background technology]
[0002] The use of scan chain techniques can simplify integrated circuit testing by providing controllability and observability at each flip-flop in an integrated circuit based on the set of signals transmitted. Scan chain optimization methodologies include reordering scan chains through a set of flip-flops subject to multiple constraints including total wire length scan. Latches or flip-flops can be distributed among multiple scan chains. Summary of the Invention [Problem to be solved by the invention]
[0003] Embodiments of the present invention disclose a method, computer system, and computer program product for scan chain wire length optimization. Embodiments of the present invention may include obtaining root node details from a root node. 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 at each of the root nodes. Embodiments of the present invention may include determining whether the wire length of the entire tour is shorter or longer than a nearest neighbor. Embodiments of the present invention may include applying or skipping the solution. [Means for solving the problem]
[0004] Embodiments of the present invention have the potential to advance the art of scan chain optimization by using Q-learning based reinforcement learning to optimize scan chain wire length. More specifically, efficient reordered scan chains can be identified by jointly using multiple permutations of nodes in a traditional scan chain. Efficient reordering of scan chains can use guided learning obtained from previous searches, where guidance is weighted or rewarded from each search based on the total chain wire length. [Brief description of the drawings]
[0005] These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings. The various features of the drawings are not drawn to scale, as the illustrations are for clarity to facilitate understanding of the invention by those skilled in the art in combination with the detailed description. Drawings:
[0006] [Figure 1] FIG. 1 illustrates a networked computing environment according to at least one embodiment.
[0007] [Figure 2A] FIG. 2 is a block diagram depicting an example of a multiple root node representation of a cluster according to at least one embodiment. [Figure 2B] FIG. 2 is a block diagram depicting an example of a multiple root node representation of a cluster according to at least one embodiment.
[0008] [Figure 3A] 1 is an operational flowchart illustrating a process for scan chain wire length optimization based reinforcement learning using Q-learning, in accordance with at least one embodiment. [Figure 3B]1 is an operational flowchart illustrating a process for the selection behavior portion of the Q-learning process during optimized root node (OptRootNode) and optimized child node (OptChildChain) connectivity for scan chains as described in at least one embodiment. [Figure 3C] 1 is an operational flowchart illustrating a process for selecting optimal connections between RootNodes in accordance with at least one embodiment.
[0009] [Figure 4] FIG. 2 is a block diagram of internal and external components of the computer and server shown in FIG. 1 in accordance with at least one embodiment.
[0010] [Diagram 5] FIG. 2 is a block diagram of an illustrative cloud computing environment including the computer system shown in FIG. 1 according to an embodiment of the present disclosure.
[0011] [Figure 6] FIG. 6 is a block diagram of functional layers of the illustrative cloud computing environment of FIG. 5 according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] Although detailed embodiments of the structures and methods in the claims are disclosed in the specification, it can be understood that the disclosed embodiments are merely examples of the structures and methods in the claims, which can be embodied in various forms. The present invention, however, can be embodied in many different forms and should not be construed as being limited to the exemplary embodiments described in the specification. Rather, these exemplary embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. In the description, details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the illustrated embodiments.
[0013] As previously described, the use of scan chain techniques can simplify integrated circuit testing by defining the controllability and observability at each flip-flop in an integrated circuit based on the set of signals carried. Scan chain optimization methodologies include reordering scan chains through a set of flip-flops subject to multiple constraints including total wire length scan. Latches or flip-flops can be distributed among multiple scan chains.
[0014] One basic objective of scan chain optimization is to reduce the wire length of the scan chain. Reducing the wire length results in increased scan frequency, improved test time, improved design traversal capability, and reduced chip area and power. Current scan chain optimization solutions may include methods that use a greedy approach, using nearest neighbor nodes and then increasing the nodes by swapping between chains and nodes. Another method includes an exhaustive search with many combinations that make testing infeasible. Some use genetic algorithm type techniques. Current scan chain optimization orderings that reduce wire length do not incorporate Q-learning techniques to reorder scan chains with respect to reduced wire length. Therefore, it would be particularly advantageous to generate an improved scan chain wire length optimization method for reducing total wire length and power by using Q-learning to rewire scan nets.
[0015] Exemplary embodiments described below provide systems, methods, and program products for scan chain optimization. Thus, embodiments of the present invention have the potential to advance the art of scan chain optimization by using Q-learning based reinforcement learning to optimize scan chain wire length. More specifically, efficient reordered scan chains can be identified by jointly using multiple permutations of nodes in a traditional scan chain. Efficient reordering of scan chains can use guided learning obtained from previous searches, where guidance is weighted or rewarded from each search based on the total chain wire length.
[0016] Q-learning is a model-free and off-policy reinforcement learning algorithm. Model-free refers to not needing a model to perform an action. Q-learning may have the ability to operate with probabilistic transitions and rewards and does not require adaptation. Off-policy may refer to the ability to learn an algorithm that finds the best action based on the current state. Q-learning functions may learn based on actions outside of policy, for example, taking random actions. Reinforcement learning refers to the area of machine learning that takes actions based on rewards or accumulating rewards.
[0017] Latches or flip-flops can be distributed among multiple scan chains to minimize the number of latches in each scan chain, which can directly reduce scan time and therefore test time. A basic scan chain structure scans signals in order. A scan chain designed in register transfer level (RTL) can have scan latches assigned to the scan chain in a random order or in a logical order that is unaware of the physical location of the latches.
[0018] Scan chain optimization is performed during physical design optimization of an integrated circuit (IC) after latch locations are determined on the chip. During optimization, the scan output of a first latch is serially connected to the scan input of a second latch to form a chain. The total wire length may be defined as the sum of the distances between all pairs of latches on a scan chain. Scan chain optimization may also limit the latches in each scan chain and reduce test time. Each scan latch may be assigned to one of the scan chains. Each latch may occur once in any one of the scan chains, and all latches may occur on at least one scan chain. Scan optimization refers to the reconnection of scan chains through latches to reduce total wire length and power.
[0019] As described in the embodiment, Q-learning may be used to perform many iterations to obtain an optimal Q-table, or what may be considered a good Q-table. A good Q-table may be a representation of the best action for a given state. The Q-table may be a look-up table that captures the future expected calculated maximum reward for the action in each state. After the initialization of the Q-table, many iterations are performed during reinforcement learning, which includes multiple stages of improving the Q-table. An iteration step may include, for example, selecting an action, performing the action, evaluating the result, quantifying the reward, and then updating the Q-table. The new Q-value for the state and action may be represented by New Q(s,a). The current Q-value may be represented by Q(s,a). The learning rate may be represented by ∝. The reward for taking an action in a given state may be represented by R(s,a). The discount factor may be represented by γ. The expected future maximum reward given a new state s' and all possible actions in the new state may be represented by maxQ'(s',a'). An equation representing an iteration step may be, for example, New Q(s,a)=Q(s,a)+∝[R(s,a)+γmaxQ'(s',a')-Q(s,a)] may include.
[0020] As described in the embodiments, a Q-learning based reinforcement learning algorithm can be used to discover connectivity for scan stitching. An iterative Q-learning method can be used for scan chain reordering, which can include reconnecting scan nets based on the physical locations of latches, reducing overall scan wire length.
[0021] As described in the embodiment, the test requirements can be incorporated as constraints in guiding the Q-learning. The constraints can be the entire latches in any single scan chain and should not exceed the design for testability (DFT) limit. The constraints can also be the latches associated with a given local clock buffer (LCB) cluster that should be grouped together. The constraints can additionally be the scan chain order of certain latches that are marked as not optimizable and need to remain as is. The optimal scan chain connectivity can be split into inter- and intra-cluster search. For example, latch nodes can be split as an inter-cluster (e.g., root node) optimization followed by an intra-cluster (e.g., child node) optimization.
[0022] As described in the embodiment, a recursive application of Q-learning may be used by the root node and the child nodes, and a context-sensitive decision may be made regarding the optimal start point and the optimal end point for the child nodes.
[0023] As described in the embodiments, node folding can be used to reduce the state space to allow for further iterations and further exploration. Enabling node folding can also be used to support certain de-optimizations, such as keeping groups of latches together in local clock buffer (LCB) clusters, and to support design for testability (DFT) constraints.
[0024] As described in the embodiment, a zero discount rate may be defined since all possible actions may be extrapolated from the new state, which is time intensive and exhaustive.
[0025] Referring to FIG. 1, an exemplary networked computing environment 100 according to one embodiment is shown. The networked computing environment 100 may include a computer 102 having a processor 104 and a data storage device 106 that enable execution of a software program 108 and a scan chain optimization program 110a. The networked computing environment 100 may also include a server 112 that enables execution of a scan chain optimization program 110b, which may interact with a database 114 and a communication network 116. The computer 102 may also be recognized as a client computer, and the server 112 may also be recognized as a server computer. The networked computing environment 100 may include multiple computers 102 and servers 112, only one of which is shown. The communication network 116 may include various types of communication networks, such as a wide area network (WAN), a local area network (LAN), a telecommunications network, a wireless network, a public switched network, or a satellite network, or combinations thereof. It should be understood that FIG. 1 is intended to provide an illustration of only one implementation and is not intended to suggest any limitations regarding the environments in which different embodiments may be implemented. Many modifications may be made to the depicted environments based on design and implementation requirements.
[0026] The computer 102 may communicate with the server 112 via a communication network 116. The communication network 116 may include connections such as electrical wires, wireless communication links, or fiber optic cables. As described in connection with FIG. 4, the server 112 may include internal components 902a and external components 904a, respectively, and the computer 102 may include internal components 902b and external components 904b, respectively. The server 112 may 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 (IaaS). The server 112 may also be located in a cloud computing deployment model such as a private cloud, a community cloud, a public cloud, or a hybrid cloud. The computer 102 may be, for example, a mobile device, a phone, a personal digital assistant, a netbook, a laptop computer, a tablet computer, a desktop computer, or any type of computing device capable of executing a program, accessing a network, and accessing the database 114. As described in various implementations of the present embodiment, the scan chain optimization programs 110a, 110b may interact with the database 114, which may be embedded in various storage devices, such as, but not limited to, the computer / mobile device 102, the server 112, or a cloud storage service.
[0027] As described in this embodiment, a user using the client computer 102 or the server computer 112 (respectively) may use the scan chain optimization program 110a, 110b to optimize scan chain wire lengths using Q-learning based reinforcement learning. The scan chain optimization method is described in more detail below with respect to Figures 2A-2B and 3A-3C.
[0028] 2A-2B, block diagrams illustrating examples of multiple root node representations of clusters used by scan chain optimizers 110a, 110b in accordance with at least one embodiment are shown.
[0029] At 202, a representation of the design of one scan chain is shown, including a SCAN_IN port and a SCAN_OUT port. The blocks represent latch clusters in the design. For example, there are seven clusters for latches, with cluster 0 defined as a cluster that cannot be optimized.
[0030] At 204, a representation of the latch clusters that are collapsed into a root node is shown. For example, the four latches identified in cluster 6 of 202 are collapsed into a single root node C6. A directional edge from root node C0 to node C6 indicates the next permissible state for the search from C0 to C6. The weight associated with the edge may include the wire length taken from C0 to C6, which is the wire length w06.
[0031] At 206, the root node generation and weights are shown as Q-learning with weights or rewards updated based on the wire length WL(i) to favor the shortest path. Search 1 (WL1) and Search 2 (WL2) are considered, and the path using Search 2 (WL2) is calculated to be part of the shortest path. The calculated shortest path is used to update the weights in the Q-table.
[0032] At 208, the root node solver after the N searches is denoted as a final predicted path with updated weights based on the N searches. The final path may be the same path as one of the explored paths, or the final path may be different from the explored paths. The final path may include the shortest wire length path.
[0033] Referring now to FIG. 3A, an operational flow diagram illustrating an exemplary scan chain wire length optimization process 200 used by the scan chain optimization programs 110a, 110b in accordance with at least one embodiment is shown.
[0034] At 302, an operation of obtaining root node details is performed. The details obtained from the root node may relate to the connectivity of the root node. One or more root nodes may represent, for example, a group of latches of a local clock buffer (LCB) cluster, a group of latches that are not optimizable, or a standalone node. The root node (RootNode) is a folded representation of a group of latches that need to be constrained together. Reinforcement learning or Q-learning may be used to obtain the appropriate connectivity of the root node.
[0035] At 304, the connectivity of the root node is optimized. The connectivity of the root node is optimized to generate root node data that predicts the root node tour (RootNodeTour). The root node tour (RootNodeTour) is the appropriate connectivity of the root node that reduces the total wire length. An appropriate Q-table will be used to predict the root node tour (RootNodeTour). The root node tour (RootNodeTour) may be predicted for the element matrix of each node. The optimization of the root node may include initializing the Q-table at 304a for an initialization operation and performing many iterations at steps 304b-e. The number of iterations may vary depending on the desired depth of the search. The quality of the Q-table may improve as the number of iterations increases. The number of iterations performed may be sufficient to generate an appropriate Q-table. For example, one instance of selecting a value of N is selecting a value where the previous search did not return a wire length (WL) shorter than the previous NK searches.
[0036] Optimizing the details of the RootNode for a scan chain may involve representing a group of latches into a cluster (i.e., a node) whose coordinates are the average of all the (x,y) latch coordinates in the group.
[0037] At 304a, the Q-table is initialized. The Q-table may be initialized by setting the values in the table or matrix to zero or a uniform value across all positions in the table. The table is represented as states and actions in the states.
[0038] At 304b, an action is selected. The action may be selected based on the weight between the nodes, or the action may be selected randomly. The weight between the nodes may be evaluated by the distance between the points of the cluster (i.e., the node). For example, an input cluster position may be (xi, yi) and another cluster position may be (xo, yo), whose representation is Xi=(xi)∈
number
number
number
number
[0039] The action selected based on the weight may be equal to f(Qcurrent,K / distance), where K is a constant value. Qcurrent is the current value for the state of the Q-table, the set of actions. The action selected based on the weight may include selecting a node with the maximum weight evaluated as f(Qcurrent,K / distance), or randomly selecting a node from a selection of the N closest nodes from the current node. The process for the selection behavior portion of the Q-learning process, 304b, during optimization RootNodes for scan chains is shown in FIG. 3B.
[0040] As described in an alternative embodiment, a group of latches in the root node may be represented by a coordinate that is the average of the midpoints of the scan-in and scan-out pins in the group.
[0041] At 304c, an action is performed. The action may be performed by adding the selected node from step 304b to a RootNodeTour. The sequence of steps 304b and 304c may be repeated until all nodes have been added to the RootNodeTour.
[0042] In 304d, the reward is evaluated. At each end of the search, the reward is evaluated by evaluating the total wire length of the RootNodeTour as a metric for evaluation. For example, the Manhattan distance between nodes can be used as a metric for wire length (WL) evaluation, and the total wire length (WL) is compared with the best wire length (WL) achieved in the previous tour evaluation iteration.
[0043] In 304e, the Q-table is updated. The table is updated based on the circuit wire length. The update of the Q-table or Q-update can be expressed as *Qnext=(1-∝)Qcurrent+∝(CurrentWL / GlobalOptWL+γ*max of next state). Qnext is the next action, or the action in the next state, ∝ is the learning rate, CurrentWL is the current wire length at the Qcurrent node, γ is the discount rate, and max of the next state is the maximum value of Q from all the next states of the current action.
[0044] In the first embodiment, the Q-table is updated based on all iterations expressed as CurrentWL<K*GlobalOptWL. For example, if CurrentWL is less than K*GlobalOptWL, then the Q-table is updated next. If CurrentWL is not less than K*GlobalOptWL, then the Q-table update is skipped next.
[0045] In the second embodiment, the Q-table is updated based on all iterations expressed as CurrentWL<K*GlobalOptWL, and the path has not been updated before. For example, if CurrentWL is less than K*GlobalOptWL, then the scan chain optimization program next determines whether the node has already been rewarded. If the node has already been rewarded, then the Q-table is updated next. If CurrentWL is not less than K*GlobalOptWL, then the Q-table update is skipped next.
[0046] The sequence of steps 304b-304e may be performed N times to continuously improve the Q-table. After N iterations or searches, an optimal RootNodeTour is selected by starting from the first node and selecting an action based on the current Q-table until the last node of the RootNodeTour is reached. The last RootNodeTour may be called or considered as the optimized RootNodeTour.
[0047] At 306, the best start and end nodes are identified. The best start and end nodes are identified for each root node (RootNode) as the optimal connection between the best start and end nodes. For each root node (RootNode), the child nodes are considered as start and end nodes for the optimal child node tour (ChildNodeTour). The process for identifying or selecting the best start and end nodes, or optimal connections, may be seen in FIG. 3C.
[0048] At 308, the child nodes in each root node are optimized. Each node in the RootNodeTour may consist of multiple child nodes. Each node may be optimized to find an optimal tour within its RootNode. The process of optimizing the child nodes may be similar to the process of optimizing the RootNodeTour from steps 304b-304e.
[0049] After optimizing each child node, a full tour is generated by starting from the root node and traversing through the RootNodeTour. At every root node, the optimized ChildNodeTour with respect to that root node is appended to the FullTour before moving to the next node in the RootNodeTour.
[0050] At 308a, the Q-table is initialized. A new Q-table for each root node (RootNode) may be initialized, which may represent the current state and behavior for each child node at that root node (RootNode). For child node traversal (OptChildChain) optimization, the initialization of the Q-table includes setting the values in the table or matrix to zero or a uniform value across all positions in the table. Many iterations of steps 308b-e may be performed to obtain a good quality Q-table. Various child node traversal (OptChildChain) optimizations may be performed in parallel with the run-time connections.
[0051] At 308b, an operation is selected. The operation may be selected based on determining a fixed or optimal start node and a fixed or optimal end node for the node matrix. The operation is selected based on determining a minimum wire length between child nodes in the RootNode. The distance between two child nodes may be calculated based on pin locations on the child nodes. The wire length WL may be calculated as WL=|Xo-Xi|+|Yo-Yi|. The operation selected based on weight may include selecting a node with a maximum weight evaluated as {f(Qcurrent,K / distance) or randomly selecting a node from a selection of the N closest nodes from the current node. The process for the selection behavioral portion of the Q-learning process during optimization RootNodes for scan chains, 308b, is shown in FIG. 3B.
[0052] In 308c, operations are performed similar to those in step 304c.
[0053] In step 308d, the reward is evaluated. The reward is evaluated similarly to step 304d.
[0054] In 308e, the Q-table is updated. The Q-table is updated similarly to step 308e, however, the Q-table is updated for each of the ChildNodeTours. The sequence of steps 308b-308e may be performed N times to complete a FullTour. The sequence of steps 308b-308e may be performed N times to continuously improve the Q-table. After N iterations or searches, an optimal ChildNodeTour is selected by starting from the first node and selecting an action based on the current Q-table until the last node of the ChildNodeTour is reached. The sequence of steps and iterations may result in an optimized child node.
[0055] If the current node is a cluster node, then a child node tour (ChildNodeTour) may be optimized and appended to a full tour (FullTour). The best end node of one cluster and the start node of the next cluster are determined to connect two cluster nodes. For each start-end node option, a Q-learning process may be performed from the start node to the end node. Then, a best cluster optimization chain (OptChildChain) may be identified. The child node tour (ChildNodeTour) appended to the full tour (FullTour) may be represented as appending OptChildChain to FullTour. The start node (OptStartNode) of the next cluster may be identified based on the minimum wire length (WL) connectivity between the optimal end node (OptEndNode) and the next cluster node.
[0056] If the current node is a standalone node, such as a source node, a destination node, or a single node, the standalone node is appended to the FullTour. The next node may be set as the node with the minimum wire length (WL) to the current node.
[0057] If the current node is a non-optimizable node, then the non-optimizable node is appended to the chain to the FullTour. If the current node is equal to the next node's minimum wire length (WL), then the next node may be set by identifying the next node's minimum wire length (WL) from the reconnected end node.
[0058] At 310, the scan chain optimization program 110a, 110b determines whether the complete cyclic wire length is shorter than an existing nearest neighbor solution. The optimized complete cyclic wire length from step 308 is compared to the wire length from the nearest neighbor solution. The nearest neighbor may be, for example, an algorithmic solution used to solve the scan chain optimization problem where the nearest neighbor is selected at every given step.
[0059] If the scan chain optimization program 110a, 110b determines that the full tour wire length is shorter than the nearest neighbor, then a solution is applied in step 312. The solution applied is from a Q-learning based FullTour, e.g., the solution is the full tour wire length compared to the best known full tour wire length, and thus is far removed from all previous searches.
[0060] If the scan chain optimization program 110 a , 110 b determines that the full tour wire length is not shorter than the nearest neighbor, then the current path or solution is skipped at 314 .
[0061] 3B, an operational flow chart is shown illustrating an example selection behavior portion of the Q-learning optimization root node (OptRootNode) and optimization child node (OptChildChain) connectivity process 304b, 308b used by the scan chain optimization programs 110a, 110b according to at least one embodiment. Select an action and indicate the next state, where the next state is represented as action=f(Qcurrent,K / weight), where K is a constant value or action can be selected randomly.
[0062] At 320, the scan chain optimization program 110a, 110b determines whether the selection is random, which may refer to determining whether the selected action was a random operation based on a search factor. The search factor may take any value between 0 and 1, with 1 indicating maximum randomness and 0 indicating no randomness at all.
[0063] The scan chain optimization program 110a, 110b determines that the selection is not random, and then 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 traversal.
[0064] At 324, the probability of success is calculated based on the current Q value and the wire length. The Q value and wire length between nodes is calculated by Q*H, where H is a function of the wire length between the current node and each of the candidate next nodes.
[0065] The node with the greatest probability of success is selected at 326. The node with the greatest probability of success is selected using the result of the calculation of Q*H. For example, the node with the maximum value of Q*H may be calculated to have the greatest probability of success.
[0066] If the scan chain optimization program 110a, 110b determines that the selection is random, then the N nearest neighbors are found at 328. The N nearest neighbors may be found, with N being a number that is defined during run-time.
[0067] At 328, the N nearest neighbors are found. The N nearest neighbors are found or identified based on the distances of the sorted neighbors. For example, the distances of the N nearest neighbors are sorted from smallest to largest distance based on the identified distance from the current node.
[0068] At 330, the scan chain optimization program 110a, 110b determines whether the node has been visited. The determination is made based on whether the node has been visited in the current traversal by checking whether the selected node is already part of the traversal traversal or is identified in the traversal traversal.
[0069] If the scan chain optimization program 110a, 110b determines that the node has been visited in the tour, then a next node is selected at 332. The next node is selected as one of the remaining nodes from the N nearest neighbors. After the next node is selected, the scan chain optimization program 110a, 110b determines whether the node (e.g., the next node) has been visited in the tour in step 330.
[0070] If the scan chain optimizer 110a, 110b determines that the node has not been visited in the traversal, then the closest coefficient is evaluated at 334. For example, a Boltzmann search may be used to find the nearest neighbor coefficient.
[0071] At 336, the scan chain optimization program 110a, 110b determines whether the node is within the constraint. The constraint may be determined based on the depth of search required in the learning process. A smaller constraint may limit the search to the near neighborhood, while a higher constraint may search both the near neighborhood and more distant nodes.
[0072] If the scan chain optimization program 110a, 110b determines that the node is not within the constraints, then the next node is selected at 332. After the next node is selected, the scan chain optimization program 110a, 110b determines whether that node (e.g., the next node) was visited in the traversal at step 330.
[0073] If the scan chain optimization program 110a, 110b determines that the node is within the constraints, then the node is added to a selection list at 338. Determining that the node is within the constraints may include checking whether the closeness factor is less than a predefined or predetermined threshold. The selection list may represent nodes that may be searched during a random search or multiple random searches that are sufficiently close to the current node.
[0074] At 340, the scan chain optimization program 110a, 110b determines whether all of the neighborhoods are complete. All of the neighborhoods are complete if all of the N nearest neighbors from step 328 have been evaluated.
[0075] If the scan chain optimization program 110a, 110b determines that not all of the neighborhood has been completed, then the next node is selected at 332. After the next node is selected, the scan chain optimization program 110a, 110b determines whether that node (e.g., the next node) has been visited in the traversal at step 330.
[0076] If the scan chain optimization program 110a, 110b determines that all of the neighborhoods are complete, then a random node is selected from the selection list. The random node is selected by randomly picking one of the nodes from the selection list.
[0077]
[0033] Referring now to FIG. 3C, an operational flowchart illustrating an exemplary selection of optimal connections between RootNodes processes 306 used by the scan chain optimization programs 110a, 110b in accordance with at least one embodiment is shown.
[0078] The root node tour is retrieved or identified at 350. The root node tour (RootNodeTour) is identified based on the Q-table after the Q-table is updated at step 304e.
[0079] A first node of a RootNodeTour is selected at 352. The selected first node is the first node on the optimal root node tour.
[0080] The next node (eg, the second node) in the RootNodeTour is selected at 354. The second node may be set as the node with the maximum Q value from the first node.
[0081] At 356, the weights of all possible connections between nodes are calculated. The weights of all possible connections are calculated between a child node of a first node in the RootNodeTour and a child node of a second node in the RootNodeTour. The weights may represent the wire length (WL) between the nodes and may be calculated as the distance between the two nodes. As described in step 308b, WL=|Xo-Xi|+|Yo-Yi|.
[0082] At 358, the connection with the best weight is selected. The best weight or optimal weight may be a random selection among k minimum wire lengths (WL) between clusters, where k is a number less than the cluster connectivity nodes. The smaller the value of k, the less likely the search for the best wire length (WL) and the greedy solution for k=1 will be selected.
[0083] At 360, the child node of the first node is set as the end node and the child node of the next node is set as the start node. The child node of the first root node is set as the end node for the first root node and the child node of the next node (e.g., the second node) is set as the start node for the next root node.
[0084] At 362, the scan chain optimizer 110a, 110b determines whether the next node is the last node in the RootNodeTour. Determining that the next node is the last node in the RootNodeTour is verified by checking whether all of the nodes in the tour have already been visited during this search.
[0085] If the scan chain optimization program 110a, 110b determines that the next node is not the last node in the tour, then at 364, the next node is set as the first node. The process of identifying the start and end nodes is repeated for each pair of adjacent nodes in the RootNodeTour. Once the next node is set as the first node, the next adjacent node (e.g., the third node) will be selected in the RootNodeTour. For example, if the next node was the second node in the RootNodeTour, then the next node selected at step 354 may be the third node selected.
[0086] If the scan chain optimization program 110a, 110b determines that the next node is the last node in the tour, then the selection of the best start-end node portion of the RootNodeTour is completed.
[0087] It may be understood that Figures 2A-2B and 3A-3C provide only an illustration of one embodiment and are not intended to imply any limitations as to how different embodiments may be realized. Many modifications to the illustrated embodiment may be made based on design and implementation requirements.
[0088] Figure 4 is a block diagram 900 of the internal and external components of the computer shown in Figure 1 in accordance with an exemplary embodiment of the present invention. It should be understood that Figure 4 is only intended to provide an illustration of one implementation and is not intended to suggest any limitation with respect to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made based on design and implementation requirements.
[0089] The data processing systems 902, 904 represent any electronic device capable of executing machine-readable program instructions. The data processing systems 902, 904 may represent a smartphone, a computer system, a PDA, or other electronic device. Examples of computing systems, environments, or configurations, or combinations thereof, represented by the data processing systems 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, including any of the above systems or devices.
[0090] The computer 102 and the server 112 may include respective sets of internal components 902a,b and external components 904a,b, as shown in FIG. 4. Each of the multiple sets of internal components 902a,b includes one or more processors 906, one or more computer-readable RAMs 908, and one or more computer-readable ROMs 910, one or more operating systems 914, and one or more computer-readable tangible storage devices 916 on one or more buses 912. One or more operating systems 914, software programs 108, and scan chain optimization programs 110a in the client computer 102 and 110b in the network server 112 may be stored on one or more computer-readable tangible storage devices 916 for execution by one or more processors 906 via one or more RAMs 908 (typically including cache memory). In the embodiment shown in FIG. 4, each of the computer-readable tangible storage devices 916 is an internal hard drive magnetic disk storage device. Alternatively, each of the computer-readable tangible storage devices 916 is a semiconductor storage device, such as a ROM 910, an EPROM, a flash memory, or any other computer-readable tangible storage device, capable of storing computer programs and digital information.
[0091] Each set of internal components 902a,b also includes a R / W drive or interface 918 for reading from or writing to one or more computer-readable tangible storage devices 920, such as a CD-ROM, DVD, memory stick, magnetic tape, magnetic disk, optical disk, or semiconductor storage device. Software programs such as software program 108 and scan chain optimization program 110a, 110b may be stored on one or more of the respective portable computer-readable tangible storage devices 920 and may be read via the respective R / W drive or interface 918 and loaded into the respective hard drive 916.
[0092] Each set of internal components 902a,b may also include a network adapter (or switch port card) or interface 922, such as a TCP / IP adapter card, a wireless wi-fi interface card, or a 3G / 4G / 5G wireless interface card, or other wired or wireless communication link. The software program 108 and the scan chain optimization program 110a in the computer 102 and the scan chain optimization program 110b in the network server 112 may be downloaded from an external computer (e.g., a server) via a network (e.g., the Internet, a local area network, or other wide area network) and the respective network adapter or interface 922. The network adapter (or switch port adapter) or interface 922, the software program 108, and the scan chain optimization program 110a in the computer 102 and the scan chain optimization program 110b in the network server computer 112 are loaded into the respective hard drives 916. The network may include copper wire, fiber optic, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof.
[0093] Each of the sets of external components 904a,b may include a computer display monitor 924, a keyboard 926, and a computer mouse 928. The external components 904a,b may also include a touch screen, a visual keyboard, a touch pad, a pointing device, and other human interface devices. Each of the sets of internal components 902a,b also includes a device driver 930 that interfaces to the computer display monitor 924, the keyboard 926, and the computer mouse 928. The device driver 930, the R / W drive or interface 918, and the network adapter or interface 922 include hardware and software (stored in the storage device 916 or ROM 910, or both).
[0094] Although the present disclosure includes embodiments for implementing the invention on cloud computing, it is understood in advance that implementation of the teachings described herein is not limited to a cloud computing environment. Rather, embodiments of the present invention can be implemented in conjunction with any other type of computing environment now known or later developed.
[0095] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processes, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with the service provider. The cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0096] The characteristics are as follows: On-Demand Self-Service: Cloud consumers may unilaterally set up computing capabilities such as server time and network storage automatically when needed without requiring human interaction by the provider of the service. Broad network access capabilities are available over the network and access by standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs). Resource Pooling: The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model with different physical and virtual resources dynamically allocated and reallocated according to demand. Location independence means that consumers generally have no control or knowledge over the exact location of the resources provided, but may be able to specify the location at a higher level of abstraction (e.g., country, state, or data center). Rapid Elasticity: Capabilities may be rapidly and elastically provided, in some cases automatically, to rapidly scale out, and rapidly released to rapidly scale in. To the consumer, the capabilities available for provisioning often appear unlimited and can be purchased at any time and in any quantity. Rated Services: Cloud systems automatically control and optimize resource usage by leveraging measurement capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services utilized.
[0097] The service models are as follows: Software as a Service (SaaS): The functionality offered to the consumer is the use of the provider's applications running on a cloud infrastructure or hybrid cloud infrastructure. The applications are accessible from a variety of client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even the individual application functions, with the possible exception of limited user-specific application configuration settings. Platform as a Service (PaaS): The functionality offered to the consumer is the deployment of applications generated using programming languages and tools supported by the provider on a cloud infrastructure created or acquired by the consumer. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the applications deployed and, in some cases, the application hosting environment configuration. Analytics as a Service (AaaS): The functionality offered to the consumer is the use of a web-based or cloud-based network (i.e., infrastructure) to access an analytics platform. The analytics platform may include access to analytics software resources or may include access to associated databases, corpora, servers, operating systems, or storage. The consumer does not manage or control the underlying web-based or cloud-based infrastructure, including databases, corpora, servers, operating systems, or storage, but does have control over the applications that are deployed and, in some cases, the application hosting environment configuration.Infrastructure as a Service (IaaS): The functionality offered to the consumer is the provision of processing, storage, network, and other underlying computing resources on which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does have control over the operating systems, storage, applications deployed, and in some cases limited control over selection of network components (e.g., host firewalls).
[0098] The deployment models are as follows: Private Cloud: The cloud infrastructure operates solely for an organization. It can be managed by the organization or a third party and can exist on-premise or off-premise. Community Cloud: The cloud infrastructure is shared by several organizations and supports a specific community with shared associations (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist on-premise or off-premise. Public Cloud: The cloud infrastructure is made available to the general public or large industry groups and is owned by an organization that sells cloud services. Hybrid Cloud: The cloud infrastructure is a composite of two or more clouds (private, community, or public) that remain unique entities but are tied together by standardized or proprietary technologies that allow portability of data and applications (e.g., cloud bursting for load balancing between clouds).
[0099] A cloud computing environment is a service oriented approach with statelessness, low coupling, modularity, and semantic interactivity. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0100] Referring now to FIG. 5, an illustrative cloud computing environment 1000 is shown. As shown, the cloud computing environment 1000 includes one or more cloud computing nodes 1050 with which local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or cellular phone 1000A, a desktop computer 1000B, a laptop computer 1000C, or an automobile computer system 1000N, or combinations thereof, may communicate. The cloud computing nodes 1050 may communicate with each other. They may be physically or virtually grouped (not shown) in one or more networks, such as private, community, public, or hybrid clouds, as described herein above, or combinations thereof. This allows the cloud computing environment 1000 to provide infrastructure, platform, or software as a service, or combinations thereof, without the cloud consumer having to maintain resources on the local computing device. It will be understood that the types of computing devices 1000A-N shown in FIG. 5 are intended as examples only, and that the computing nodes 1050 and cloud computing environment 1000 may communicate with any type of computed device via any type of network or network-addressable connection, or combination thereof (e.g., using a web browser).
[0101] 6, there is shown a set of functional abstraction layers 1100 defined by the cloud computing environment 1000. It should be understood up front that the components, layers, and functions shown in FIG. 6 are intended to be illustrative only, and that embodiments of the invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0102] Hardware and software layer 1102 includes hardware and software components. Examples of hardware components include: mainframe 1104, reduced instruction set computer (RISC) architecture based servers 1106, servers 1108, blade servers 1110, storage devices 1112, and networks and network components 1114. In some embodiments, software components include network application server software 1116 and database software 1118.
[0103] The virtualization layer 1120 provides an abstraction layer from which the following examples of virtual entities are provided: virtual servers 1122 , virtual storage 1124 , virtual networks including virtual private networks 1126 , virtual applications and operating systems 1128 , and virtual clients 1130 .
[0104] In one example, the management layer 1132 may provide the functions described below: Resource provisioning 1134 provides dynamic procurement of computing resources and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 1136 provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of those resources. In one example, these resources may have application software licenses. Security provides identity authentication for cloud consumers and tasks, as well as protection for data and other resources. User portal 1138 provides consumers and system administrators access to the cloud computing environment. Service level management 1140 provides cloud computing resource allocation and management so that required service levels are met. Service level agreement (SLA) planning and fulfillment 1142 provides pre-configuration and procurement for cloud computing resources where future demand is predicted according to SLAs.
[0105] The workload layer 1144 provides examples of functionality for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include: mapping and navigation 1146, software development and lifecycle management 1148, virtual classroom education delivery 1150, data analysis process 1152, transaction process 1154, and scan chain optimization 1156. The scan chain optimizers 110a, 110b provide a method for optimizing scan chain wire length using Q-learning based reinforcement learning.
[0106] The present invention may be a system, method, or computer program product, or a combination thereof, at any possible level of integration of technical details. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon that cause a processor to perform aspects of the present invention.
[0107] A computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. An exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memories (RAMs), read-only memories (ROMs), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, punch cards or mechanically encoded devices such as ridge structures in grooves having instructions recorded thereon, and any suitable combination of the above. Computer-readable storage media, as used herein, should not be construed as being, per se, a transitory signal, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., light pulses through a fiber optic cable), or an electrical signal transmitted through an electrical wire.
[0108] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in the computer-readable storage medium within the respective computing / processing device.
[0109] The computer readable program instructions for carrying out the operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-set data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, such as object-oriented programming languages such as Smalltalk, C++, procedural programming languages, the "C" programming language, the python programming language, or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), and the connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to perform aspects of the present invention.
[0110] Aspects of the present invention are described herein with reference to flowchart and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart and / or block diagrams, and combinations of blocks in the flowchart and / or block diagrams, can be implemented by computer readable program instructions.
[0111] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus causing a machine to perform the functions / operations specified in the flowchart and / or block diagram block or blocks, such that the instructions, which execute on the processor of the computer or other programmable data processing apparatus, generate means for implementing the functions / operations specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions may also be stored on a computer readable storage medium that can cause a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer readable storage medium having stored thereon instructions has an article of manufacture including instructions that implement aspects of the functions / operations specified in the flowchart and / or block diagram block or blocks.
[0112] Furthermore, the computer readable program instructions may be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device that results in a computer-implemented process, such that the instructions executing on the computer, other programmable apparatus, or other device implement the function / act identified in the flowchart and / or block diagram block or blocks.
[0113] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of the systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions that includes one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially in parallel, or the blocks may be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, as well as combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that executes the specified functions or acts or executes a combination of dedicated hardware and computer instructions.
[0114] The description of various embodiments of the present invention has been presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terms used in this specification are selected to best explain the principles of the embodiments, practical applications, or technical improvements to the technology found in the market, or to enable other skilled in the art to understand the embodiments disclosed herein. According to this specification, the following items are also disclosed. [Item 1] 1. A method for scan chain wire length optimization using Q-learning, comprising: obtaining root node details from the root node; optimizing the connectivity of the root node; identifying, for each of said root nodes, a best start node and a best end node; optimizing child nodes of each of said root nodes; determining whether the wire length of the entire tour is shorter or longer than that of a nearest neighbor; applying or skipping the solution. [Item 2] Optimizing the connectivity of the root node further comprises: initializing the Q-table by setting values in the Q-table to zero or a uniform value; selecting an action based on a weight between two nodes or randomly selecting an action; performing said operation by adding selected nodes; evaluating a reward by evaluating a total wirelength of a tour of the root node; and updating the Q-table based on a root node circular wire length. The method according to item 1. [Item 3] The step of selecting an action further comprises: determining that the action is selected randomly; finding the N nearest nodes; determining that the N nearest nodes are unvisited; evaluating the coefficients closest to the N nearest nodes; determining that the N nearest neighbor nodes are within a predetermined limit; adding the N nearest nodes to a selection list; selecting a random node from the selection list; The method of claim 2, comprising: [Item 4] The step of selecting an action further comprises: determining that selecting the action is not random; selecting a node that has not been visited in the current search; calculating a probability of success based on a current Q value and the wire length; selecting a node based on the calculated probability of success. The method according to item 2. [Item 5] The optimization of the child nodes at each of the root nodes further comprises: initializing a Q-table for each of the root nodes; selecting an action based on fixed start and end nodes or based on optimal start and end nodes; performing said operation by adding selected nodes; evaluating a reward by evaluating a total wirelength of a tour of the root node; updating the Q-table for each of the child nodes in a child node traversal; 5. The method according to any one of items 1 to 4. [Item 6] For each of the root nodes, identifying the best start node and the best end node further comprises: reading a root node tour; selecting a first node in the traversal of the root node; selecting a second node in the traversal of the root node; calculating weights of all possible connections between said child nodes or between said first node and said second node in said traversal of said root node; selecting a connection with the best weight; setting the first child node as an end node and the second child node as a next start node; determining that the next start node is the last node on the tour of the root node; selecting a best source-destination node portion of the root node tour; 6. The method according to any one of items 1 to 5. [Item 7] 7. The method of any one of items 1 to 6, wherein the root node is a collapsed representation of a group of latches that need to be constrained together. [Item 8] 1. A computer system for scan chain wire length optimization using Q-learning, comprising: having one or more processors, one or more computer readable memories, one or more computer readable tangible storage media, and program instructions stored on at least one of the one or more computer readable tangible 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; The computer system is capable of executing the following method, obtaining root node details from the root node; optimizing the connectivity of the root node; identifying a best start node and a best end node for each of said root nodes; optimizing child nodes of each of said root nodes; determining whether the wire length of the entire tour is shorter or longer than a nearest neighbor; applying or skipping the solution. Computer system. [Item 9] Optimizing the connectivity of the root node further comprises: initializing the Q-table by setting its values to zero or a uniform value; selecting an action based on a weight between two nodes or randomly selecting an action; performing said operation by adding selected nodes; evaluating a reward by evaluating a total wirelength of a tour of the root node; and updating the Q-table based on the root node circular wire length. Item 9. The computer system according to item 8. [Item 10] The step of selecting an action further comprises: determining that selecting the action is random; finding the N nearest nodes; determining that the N nearest nodes are unvisited; evaluating the closest coefficients for the N nearest nodes; determining that the N nearest neighbor nodes are within a predetermined limit; adding the N nearest nodes to a selection list; selecting a random node from the selection list. Item 10. The computer system of item 9. [Item 11] The step of selecting an action further comprises: determining that the selection of actions is not random; selecting a node that has not been visited in the current search; calculating a probability of success based on a current Q value and the wire length; selecting a node based on the calculated probability of success. Item 10. The computer system of item 9. [Item 12] The step of optimizing the child nodes of each of the root nodes further comprises: initializing a Q-table for each of said root nodes; selecting an action based on fixed start and end nodes or based on optimal start and end nodes; performing said operation by adding the selected node; evaluating a reward by evaluating a total wirelength of a route around the root node; updating the Q-table for each of the child nodes in a child node traversal; 12. A computer system according to any one of items 8 to 11. [Item 13] The step of identifying the best source node and the best destination node for each of the root nodes further comprises: reading a root node tour; selecting a first node in said traversal of the root node; selecting a second node in the traversal of the root node; calculating weights of all possible connections between said child nodes or between said first node and said second node in said traversal of said root node; selecting a connection with the best weight; setting the first child node as an end node and the second child node as a next start node; determining that the next start node is the last node on the tour of the root node; selecting a best source-destination node portion of the root node tour; 13. A computer system according to any one of items 8 to 12. [Item 14] 14. The computer system of any one of claims 8 to 13, wherein the root node is a folded representation of a group of latches that need to be constrained together. [Item 15] 1. A computer program for scan chain wire length optimization using Q-learning, comprising: and one or more computer-readable tangible storage media and program instructions stored on at least one of the one or more computer-readable tangible storage media, the program instructions being executable by a processor to cause the processor to perform a method comprising: obtaining root node details from the root node; optimizing the connectivity of the root node; identifying a best start node and a best end node for each of said root nodes; optimizing child nodes of each of said root nodes; determining whether the wire length of the entire tour is shorter or longer than a nearest neighbor; applying or skipping the solution. Computer program. [Item 16] Optimizing the connectivity of the root node further comprises: initializing the Q-table by setting its values to zero or a uniform value; selecting an action based on a weight between two nodes or randomly selecting an action; performing said operation by adding selected nodes; evaluating a reward by evaluating a total wirelength of a tour of the root node; and updating the Q-table based on the root node circular wire length. Item 16. A computer program according to item 15. [Item 17] The step of selecting an action further comprises: determining that selecting the action is random; finding the N nearest nodes; determining that the N nearest nodes are unvisited; evaluating the closest coefficients for the N nearest nodes; determining that the N nearest neighbor nodes are within a predetermined limit; adding the N nearest nodes to a selection list; selecting a random node from the selection list. Item 17. A computer program according to item 16. [Item 18] The step of selecting an action further comprises: determining that the selection of actions is not random; selecting a node that has not been visited in the current search; calculating a probability of success based on a current Q value and the wire length; selecting a node based on the calculated probability of success. Item 17. A computer program according to item 16. [Item 19] The step of optimizing the child nodes of each of the root nodes further comprises: initializing a Q-table for each of said root nodes; selecting an action based on fixed start and end nodes or based on optimal start and end nodes; performing said operation by adding the selected node; evaluating a reward by evaluating a total wirelength of a route around the root node; updating the Q-table for each of the child nodes in a child node traversal; 19. A computer program according to any one of items 15 to 18. [Item 20] The step of identifying the best source node and the best destination node for each of the root nodes further comprises: reading a root node tour; selecting a first node in said traversal of the root node; selecting a second node in the traversal of the root node; calculating weights of all possible connections between said child nodes or between said first node and said second node in said traversal of said root node; selecting a connection with the best weight; setting the first child node as an end node and the second child node as a next start node; determining that the next start node is the last node on the tour of the root node; selecting a best source-destination node portion of the root node tour; 20. A computer program according to any one of items 15 to 19.
Claims
1. A method for scan chain wire length optimization using Q-learning, comprising: obtaining, by a computer, root node details from the root node; said computer optimizing the connectivity of said root node; the computer identifying a best start node and a best end node for each of the root nodes; said computer optimizing child nodes of each of said root nodes; the computer determining whether the wire length of the entire tour is shorter or longer than a nearest neighbor; the computer applying or skipping the solution.
2. Optimizing the connectivity of the root node further comprises: the computer initializing the Q-table by setting values in the Q-table to zero or to a uniform value; the computer selecting an action based on a weight between two nodes or randomly selecting an action; said computer performing said operation by adding selected nodes; said computer evaluating a reward by evaluating a total wirelength of a tour of the root node; and updating the Q-table based on a root node circulating wire length. The method of claim 1.
3. The step of selecting an action further comprises: the computer determining that the action is selected randomly; the computer finding the N nearest nodes; the computer determining that the N nearest nodes are unvisited; said computer evaluating coefficients closest to said N nearest nodes; the computer determining that the N nearest neighbors are within a predetermined limit; the computer adding the N nearest nodes to a selection list; the computer selecting a random node from the selection list; The method of claim 2 comprising:
4. The step of selecting an action further comprises: determining by the computer that selecting the action is not random; the computer selecting a node that has not been visited in the current search; the computer calculating a probability of success based on a current Q value and the wire length; and the computer selecting a node based on the calculated probability of success. The method of claim 2.
5. The optimization of the child nodes at each of the root nodes further comprises: said computer initializing a Q-table for each of said root nodes; the computer selecting an action based on fixed start and end nodes or based on optimal start and end nodes; said computer performing said operation by adding selected nodes; said computer evaluating a reward by evaluating a total wirelength of a tour of the root node; and updating the Q-table for each of the child nodes in a traversal of the child nodes.
5. The method according to any one of claims 1 to 4.
6. For each of the root nodes, identifying the best start node and the best end node further comprises: the computer reading a root node tour; selecting a first node in the traversal of the root node by the computer; selecting a second node in the traversal of the root node by the computer; the computer calculating weights of all possible connections between the child nodes or between the first node and the second node in the traversal of the root node; the computer selecting a connection with the best weight; setting a first child node as an end node and a second child node as a next start node by the computer; determining by the computer that the next start node is the last node on the tour of the root node; and selecting a best source-destination node portion of the root node tour.
6. The method according to any one of claims 1 to 5.
7. The method of claim 1, wherein the computer is configured such that the root node is a folded representation of a group of latches that need to be constrained together.
8. 1. A computer system for scan chain wire length optimization using Q-learning, comprising: having one or more processors, one or more computer readable memories, one or more computer readable tangible storage media, and program instructions stored on at least one of the one or more computer readable tangible 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; The computer system is capable of executing the following method, obtaining root node details from the root node; optimizing the connectivity of the root node; identifying a best start node and a best end node for each of said root nodes; optimizing child nodes of each of said root nodes; determining whether the wire length of the entire tour is shorter or longer than a nearest neighbor; applying or skipping the solution. Computer system.
9. Optimizing the connectivity of the root node further comprises: initializing the Q-table by setting its values to zero or a uniform value; selecting an action based on a weight between two nodes or randomly selecting an action; performing said operation by adding selected nodes; evaluating a reward by evaluating a total wirelength of a tour of the root node; and updating the Q-table based on the root node circulating wire length.
9. The computer system of claim 8.
10. The step of selecting an action further comprises: determining that selecting the action is random; Finding the N nearest nodes; determining that the N nearest nodes are unvisited; evaluating the closest coefficients for the N nearest nodes; determining that the N nearest neighbor nodes are within a predetermined limit; adding the N nearest nodes to a selection list; selecting a random node from the selection list.
10. The computer system of claim 9.
11. The step of selecting an action further comprises: determining that the selection of actions is not random; selecting a node that has not been visited in the current search; calculating a probability of success based on a current Q value and the wire length; selecting a node based on the calculated probability of success.
10. The computer system of claim 9.
12. The step of optimizing the child nodes of each of the root nodes further comprises: initializing a Q-table for each of said root nodes; selecting an action based on fixed start and end nodes or based on optimal start and end nodes; performing said operation by adding the selected node; evaluating a reward by evaluating a total wirelength of a route around the root node; updating the Q-table for each of the child nodes in a child node traversal; A computer system according to any one of claims 8 to 11.
13. The step of identifying the best source node and the best destination node for each of the root nodes further comprises: reading a root node tour; selecting a first node in the traversal of the root node; selecting a second node in the traversal of the root node; calculating weights of all possible connections between said child nodes or between said first node and said second node in said traversal of said root node; selecting a connection with the best weight; setting the first child node as an end node and the second child node as a next start node; determining that the next start node is the last node on the tour of the root node; selecting a best source-destination node portion of the root node tour; A computer system according to any one of claims 8 to 12.
14. 14. The computer system of claim 8, wherein the root node is a folded representation of a group of latches that need to be constrained together.
15. 1. A computer program for scan chain wire length optimization using Q-learning, comprising: and one or more computer-readable tangible storage media and program instructions stored on at least one of the one or more computer-readable tangible storage media, the program instructions being executable by a processor to cause the processor to perform a method comprising: obtaining root node details from the root node; optimizing the connectivity of the root node; identifying a best start node and a best end node for each of said root nodes; optimizing child nodes of each of said root nodes; determining whether the wire length of the entire tour is shorter or longer than a nearest neighbor; applying or skipping the solution. Computer program.
16. Optimizing the connectivity of the root node further comprises: initializing the Q-table by setting its values to zero or a uniform value; selecting an action based on a weight between two nodes or randomly selecting an action; performing said operation by adding selected nodes; evaluating a reward by evaluating a total wirelength of a tour of the root node; and updating the Q-table based on the root node circulating wire length.
16. A computer program according to claim 15.
17. The step of selecting an action further comprises: determining that selecting the action is random; Finding the N nearest nodes; determining that the N nearest nodes are unvisited; evaluating the closest coefficients for the N nearest nodes; determining that the N nearest neighbor nodes are within a predetermined limit; adding the N nearest nodes to a selection list; selecting a random node from the selection list.
17. A computer program product as claimed in claim 16.
18. The step of selecting an action further comprises: determining that the selection of actions is not random; selecting a node that has not been visited in the current search; calculating a probability of success based on a current Q value and the wire length; selecting a node based on the calculated probability of success.
17. A computer program product as claimed in claim 16.
19. The step of optimizing the child nodes of each of the root nodes further comprises: initializing a Q-table for each of said root nodes; selecting an action based on fixed start and end nodes or based on optimal start and end nodes; performing said operation by adding the selected node; evaluating a reward by evaluating a total wirelength of a route around the root node; updating the Q-table for each of the child nodes in a child node traversal; 19. A computer program according to any one of claims 15 to 18.
20. The step of identifying the best source node and the best destination node for each of the root nodes further comprises: reading a root node tour; selecting a first node in the traversal of the root node; selecting a second node in the traversal of the root node; calculating weights of all possible connections between said child nodes or between said first node and said second node in said traversal of said root node; selecting a connection with the best weight; setting the first child node as an end node and the second child node as a next start node; determining that the next start node is the last node on the tour of the root node; selecting a best source-destination node portion of the root node tour; 20. A computer program according to any one of claims 15 to 19.
Citation Information
Patent Citations
Layout design method and design device in test facilitating semiconductor integrated circuit
JP1997305642A
Scan chain connection method of semiconductor integrated circuit
JP2005223171A
Machine-learning based scan design enablement platform
US20200004913A1