Monitoring propagation delay
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- SIEMENS INDUSTRY SOFTWARE INC
- Filing Date
- 2023-10-06
- Publication Date
- 2026-06-10
Smart Images

Figure US2023076233_10042025_PF_FP_ABST
Abstract
Description
MONITORING PROPAGATION DELAYTECHNICAL FIELD
[0001] The present disclosure relates to monitoring propagation delays through an integrated circuit.BACKGROUND
[0002] Integrated circuits (IC) include chains of interconnected logic cells forming paths for performing logical functions on signals propagating between input and output pins of the IC. Signals propagating along paths through an IC incur some delay, which is effectively the time difference between the input signal being applied to the input pin and the output pin level changing. The expected propagation delay of paths is accounted for by the IC circuit designer, for example, in selecting a sufficiently long clock cycle to accommodate the delay. The propagation delays of constituent logical cells are however susceptible to variation in use, for example, due to different operating conditions, such as process, voltage, and temperature conditions, and also due to silicon degradation due to ageing. Excessive propagation delays can cause data processing errors, for example, due to the propagation delay delaying the signal beyond an IC clock cycle.SUMMARY
[0003] An object of aspects of the present disclosure is to provide a method for determining appropriate placements of monitors in an integrated circuit to monitor propagation delays along paths of the integrated circuit. By inserting such monitors into an IC, propagation delays through paths of the IC may be monitored, and paths exhibiting excessive propagation delays may be identified, allowing corrective actions to be taken.
[0004] However, an integrated circuit may define a very large number of paths, and correspondingly a very large number of monitors would be required to monitor every path, creating a large area overhead. Whereas aspects of this disclosure provide a method for determining a subset of the paths for monitoring that are relatively representative of propagation delays along all of the paths. In particular, aspects of this disclosure aim to determine suitable placements of monitors to monitor paths that are most prone to delay faults, and such that the monitors cover a relatively great proportion of the logical cells in the circuit.
[0005] A first aspect of the present disclosure therefore provides a computer- implemented method for determining placement of monitors for monitoring propagation delays in paths through an integrated circuit, the method comprising: determining one or more paths through an integrated circuit which terminate at a same flip flop of the integrated circuit; determining logical cells in the one or more paths terminating at that flip flop; determining a measure of the number of those logical cells that are also in one or more alternative paths terminating at one or more alternative flip flops monitored by one or more monitors; determining whether the measure of the number of those logical cells that are also in the alternative paths satisfies a threshold condition; and determining, based on a determination that the number of logical cells that are also in the alternative paths does satisfy the threshold condition, placement of a monitor to monitor an input to the flip flop.
[0006] The method identifies paths terminating at a common flip flop, identifies the constituent cells of those coterminous paths, and computes how many of those cells are also in other paths that are already monitored by way of another monitor. The method then determines whether those shared cells are sufficiently numerous as to justify insertion of a new monitor to monitor the flip flop under consideration, by comparing the number of shared cells to a threshold condition. The monitor can be said to monitor the flip flop in that it monitors an input signal to the flip flop.
[0007] The measure of the number of shared cells, and the threshold condition could, for example, be quantities expressed as percentages, or ratios. In this case, the threshold condition could be predefined such that a relatively low proportion of shared cells, indicating a high proportion of cells that are not monitored by other monitors, satisfies the threshold, thereby resulting in placement of a monitor to monitor the flip flop under consideration. Alternatively, where it is determined that the paths terminating in the flip flop under consideration contain a relatively large proportion of cells that are in other paths that are already monitored by other monitors, the determination may be that placement of a monitor to monitor the flip flop would not be justified. By this method therefore, a quota of monitors, which may for example be practically limited by an available area constraint, may be efficiently utilized to monitor a greatest number of logical cells of the IC.
[0008] Accordingly, monitoring of propagation delays in the IC may be improved.
[0009] In implementations, the determining one or more paths through an integrated circuit which terminate at a same flip flop of the integrated circuit comprises: determining aplurality of paths through the integrated circuit; determining propagation delays along the paths; and for each path of the plurality of paths, in order of decreasing propagation delay: determining a flip flop at which the respective path terminates; determining other of the paths terminating at that flip flop; and performing the determining logical cells in the one or more paths terminating at that flip flop, the determining a measure of the number of those logical cells that are also in one or more alternative paths terminating at one or more alternative flip flops monitored by one or more monitors satisfies a threshold condition, and the determining, based on a determination that the number of those logical cells that are also in the alternative paths does satisfy the threshold condition, placement of a monitor to monitor the flip flop.
[0010] In implementations, the determining of whether the measure of the number of those logical cells that are also in the alternative paths satisfies a threshold condition comprises determining a ratio of the number of those logical cells that are also in the alternative paths to the total number to the total number of logical cells in the one or more paths terminating at that flip flop.
[0011] In implementations, the method comprises, based on determining placement of a monitor to monitor a flip flop: creating a machine-readable record recording the flip flop as a monitored flip flop; and / or creating a machine-readable record recording the one or more paths terminating at the flip flop as monitored paths; and / or creating a machine-readable record recording the logical cells in the one or more paths terminating at the flip flop as monitored cells.
[0012] In implementations, the determining of a measure of the number of those logical cells that are also in one or more alternative paths terminating at one or more alternative flip flops monitored by one or more monitors comprises inspecting at least one of the machine- readable records, and determining based on the at least one machine-readable record a measure of the number of logical cells in the one or more paths that are also in: a path terminating in a flip flop recorded as a monitored flip flop; and / or a path recorded as a monitored path; and / or the record of monitored cells.
[0013] In implementations, the method comprises repeating the method for a further flip flop.
[0014] In implementations, the method comprises determining a quota of monitors for monitoring propagation delays in paths through the integrated circuit, determining, based on the determining placement of a monitor to monitor the flip flop, whether the full quota ofmonitors have been determined for placement, wherein the repeating the method for a further flip flop is performed based on a determination that the full quota of monitors have not been determined for placement.
[0015] In implementations, the method comprises modifying the threshold condition for each repetition of the method, such that the measure of the number of those logical cells that are also in the alternative paths is required to be lesser to satisfy the threshold condition.
[0016] In implementations, the determining of a plurality of paths comprises determining a plurality of paths through the integrated circuit having relatively long propagation delays compared to other paths through the integrated circuit having relatively short propagation delays.
[0017] In implementations, the determining of a plurality of paths comprises determining a plurality of paths through the integrated circuit having longest propagation delays for respective different operating and environmental conditions.
[0018] In implementations, the determining of a plurality of paths through the integrated circuit having longest propagation delays for respective different operating and environmental conditions comprises determining a plurality of paths through the integrated circuit having longest propagation delays for respective different process, voltage, temperature, and ageing conditions of the integrated circuit.
[0019] A second aspect of the present disclosure provides a computer system comprising: at least one processor; and at least one memory including machine-readable instructions, wherein the at least one memory and the machine-readable instructions are configured to, with the at least one processor, cause the computer system to determining placement of monitors for monitoring propagation delays in paths through an integrated circuit by the method of any one of the preceding statements.
[0020] A third aspect of the present disclosure provides a computer program comprising instructions, which, when executed by a computer, cause the computer to carry out the method of any one of the preceding statements.
[0021] A fourth aspect of the present disclosure provides a data storage apparatus having stored thereon the computer program of the preceding statement.
[0022] These and other aspects of the disclosure are apparent from the embodiment(s) described below.BRIEF DESCRIPTION OF THE DRAWINGS
[0023] In order that the present disclosure may be more readily understood, embodiments are described, by way of example, with reference to the accompanying drawings, in which:
[0024] Figure 1 shows schematically an example of an integrated circuit within which aspects of the present disclosure may be utilized;
[0025] Figure 2 shows schematically an example of a timeline of a signal passing along a path of the integrated circuit;
[0026] Figure 3 shows schematically an example of a delay monitor device for monitoring propagation delays along paths of the integrated circuit;
[0027] Figure 4 shows schematically an example of a delay monitor device deployed in the integrated circuit for monitoring propagation delays along paths of the integrated circuit;
[0028] Figure 5 shows schematically an example of a delay monitor device deployed in the integrated circuit for monitoring propagation delays along paths of the integrated circuit;
[0029] Figure 6 shows an example of a computer system for determining placements of the delay monitor devices in the integrated circuit;
[0030] Figure 7 shows an example of processes involved in a method for determining placement of delay monitor devices for monitoring propagation delays in paths through an integrated circuit;
[0031] Figure 8 shows schematically an example of components of the delay monitor device;
[0032] Figure 9 shows schematically an example of a programmable delay unit of the delay monitor device;
[0033] Figure 10 shows schematically an example of a detection window unit of the delay monitor device;
[0034] Figure 11 shows schematically an example of a system for monitoring propagation delays including a plurality of the delay monitor devices; and
[0035] Figure 12 shows schematically an example of a timing diagram.DETAILED DESCRIPTION
[0036] Example embodiments are described below in sufficient detail to enable those of ordinary skill in the art to embody and implement the systems and processes herein described. It is important to understand that embodiments can be provided in many alternate forms and should not be construed as limited to the examples set forth herein.
[0037] Accordingly, while embodiments can be modified in various ways and take on various alternative forms, specific embodiments thereof are shown in the drawings and described in detail below as examples. There is no intent to limit to the particular forms disclosed. On the contrary, all modifications, equivalents, and alternatives falling within the scope of the appended claims should be included. Elements of the example embodiments are consistently denoted by the same reference numerals throughout the drawings and detailed description where appropriate.
[0038] The terminology used herein to describe embodiments is not intended to limit the scope. The articles “a,” “an,” and “the” are singular in that they have a single referent, however the use of the singular form in the present document should not preclude the presence of more than one referent. In other words, elements referred to in the singular can number one or more, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and / or “including,” when used herein, specify the presence of stated features, items, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, items, steps, operations, elements, components, and / or groups thereof.
[0039] Referring to Figure 1, an integrated circuit 101 in which aspects of the present disclosure may be utilized comprises a plurality of flip flops 102 for receiving input signals via input pins D, a plurality of flip flops 103 for outputting output signals via output pins Q, and chains of interconnected logical cells 104 forming a plurality of paths for performing logical functions on signals propagating between the inputs and the outputs. Whilst the example depicts only a single path formed by the chain of logical cells 104, a single input flip flop 102, and a single output flip flop 103, it should be appreciated that in practice such an integrated circuit may comprise many thousands of input and output flip flops, and the logical cells may correspondingly provide many thousands of paths between inputs and outputs, and indeed the logical paths may be interconnected.
[0040] Signals propagating along the paths through the integrated circuit incur some delay, which is effectively the time difference between a signal being applied to the input and a signal at an acceptable level arising at the output. The expected propagation delay of paths is accounted for by the IC circuit designer, for example, in selecting a sufficiently long clock cycle to accommodate the delay.
[0041] Referring to Figure 2 however, the propagation delays of constituent logical cells are susceptible to variation in use, for example, due to different operating conditions, such as process, voltage, and temperature (PVT) corners, and also due to silicon degradation due to ageing. The PVT corners and ageing effect that affect the timing of library cells are referred to herein as PVTA combinations. The PVTA combinations that affect individual cell delays in turn contribute to changing the path delays. This may cause a short path in one PVTA combination to be a long path in another PVTA combination, and vice versa. As depicted in Figure 2, when the delay of a path exceeds the clock period because of these effects, a wrong value may be latched into a flip flop, causing a delay fault. Since the longest paths that are prone to delay faults may vary under different PVTA combinations, the faults may escape detection if the effects of the PVTA combination are not taken into consideration. Such delay faults may also be the root cause of silent data errors (SDEs) in data centers.
[0042] It is therefore appropriate to monitor the changes in the path delays, including under different PVTA combinations, in order that paths exhibiting excessive propagation delays may be identified, allowing corrective actions to be taken. However, since voltage and temperature are continuous variables, the number of different PVTA combinations for an IC with many thousands of paths is very large, such that monitoring each path, under the different PVTA combinations, may incur an excessively large overhead.
[0043] In examples therefore, aspects of the present disclosure involve identifying and monitoring paths through an integrated circuit with the longest propagation delay times. Methods for identifying longest paths through an integrated circuit under different operating conditions are known in the technical field, for example, from “B. Seshadri, I. Pomeranz, S. Reddy, and S. Kundu, “Path-oriented transition fault test generation considering operating conditions,” in European Test Symposium (ETS’05), 2005, pp. 54-59”, and as disclosed in Applicant’s co-pending international patent application PCT / US2023 / 031744.
[0044] However, again, for an IC with many thousands of paths, and a large number of different PVTA combinations, even monitoring the longest paths identified by the methods disclosed in the above-cited references may require an infeasibly large number of monitors, incurring an excessively large area overhead. Aspects of the present disclosure to be described in detail herein therefore relate to selecting a subset of the longest paths. A method for selecting a subset of paths to monitor will be described in further detail with reference to Figures 4 to 7.
[0045] Referring next to Figure 3, aspects of the present disclosure relate to insertion of propagation delay monitors, such as monitor 301, into an integrated circuit to monitor propagation delays along paths, such as path 104, of the integrated circuit 101. As will be known by the skilled person, integrated circuits may be arranged such that multiple paths terminate at a same flip flop. In examples of the present disclosure therefore, the propagation delay monitor is placed in parallel with the terminating flip flop, such as flip flop 103. Consequently, a single monitor may monitor the propagation delay, and propagation delay changes, of all the paths that end at that flip flop. This arrangement has the advantage that the number of monitors required to monitor a given number of paths may be reduced, or conversely, for a given number of monitors in a quota defined by practical constraints, e.g., available area, a greater number of paths may be monitored. The propagation delay monitor 301 will be described in further detail with reference to Figures 8 to 10.
[0046] Referring next to Figures 4 and 5 collectively, advantages of the present method for selecting a subset of paths for monitoring propagation delays can be appreciated in the context of the integrated circuit 401 which comprises paths p, q, and r. Each of the paths p, q, and r is formed by a chain of logical cells, for processing a respective signal passing between the input and the output.
[0047] Path p begins at flip flop 402, includes logical cells 403, 404 and 405, and terminates at flip flop 406. Path q begins at flip flop 407, includes logical cells 408, 409 and 405, and terminates at flip flop 406. It can be observed that paths p and q include a relatively high proportion of unique logical cells, inasmuch that they include only a single common logical cell, logical cell 405. Insertion of the monitor 301 in parallel with the flip flop 406 allows monitoring of propagation delays along both path p and path q using a single monitor. Moreover, because the paths p and q include a relatively high number of unique logical cells, and have very little overlap of logical cells, monitor 301 is exposed to propagation delays resulting from a relatively high number of logical cells, and may thus be used to detect propagation delay failures of a relatively high number of logical cells.
[0048] In comparison, referring to Figure 5, path r starts at flip flop 402, the same flip flop at which path p starts, ends at flip flop 501, and includes logical cells 502. It can thus be observed that path r include a relatively high proportion of logical cells in common with path / ?; specifically logical cells 403 and 404 are common with path p. Whereas, path r includes only a single unique logical cell, logical cell 502, that is not also in path p. An additionalpropagation delay monitor inserted in parallel with flip flop 501 to monitor the propagation delay along path r would thus only be uniquely exposed to propagation delay from one logical cell, logical cell 502, because propagation delays arising from logical cells 403 and 404 may already be monitored by monitor 301 placed in parallel with flip flop 406. The benefit in terms of additional information on propagation delays of logical cells that would result from placement of an additional monitor in parallel with flip flop 501 may thus be considered to be relatively slight, and it may be desirable in such circumstances to avoid the area overhead burden associated with insertion of the additional monitor.
[0049] In view of the above, it can thus be appreciated that it is desirable to be able to identify flip flops at which paths having relatively high numbers of unique logical cells terminate, such that a monitor placed in parallel with the flip flop may be exposed to propagation delays arising from a relatively high number of logical cells. This may desirably allow improved detection of logical cells having excessively long propagation delays that may result in a data error, such as depicted in the scenario of Figure 2.
[0050] Referring next to Figure 6, the present disclosure provides a computer system 601 for determining locations for placement of the propagation delay monitors 301 with the object of allocating monitors of a monitor quota in such a way that monitoring of logical cells of the integrated circuit is maximized. In examples, the computer system 601 comprises a processor 602, memory 603, input / output device 604, and system bus 605.
[0051] Processor 602 is configured for execution of instructions of the computer program for determining locations in an integrated circuit for placement of propagation delay monitors. Memory 603 is configured for non-volatile storage of the computer program, defining machine-readable instructions, for execution by the processor, and for serving as read / write memory for storage of operational data associated with computer programs executed by the processor 602. Input / output interface 604 is configured for connection of the computer system 601 to external systems. For example, input / output interface 604 may communicate with an integrated circuit design system and may receive data describing an integrated circuit design in which the monitors are to be placed. Input / output interface 604 may additionally or alternatively communicate with an external system responsible for identifying longest paths through the integrated circuit design. The components 602 to 604 of the computer system 601 are in communication via system bus 605.
[0052] Referring next to Figure 7, in examples the computer program for determining placements of the propagation delay monitors 301 implemented by the computer system 601 comprises seven operations 701 to 707.
[0053] At operation 701, the computer program causes the processor 602 of the computer system 60 Ito determine paths, / ?, through the integrated circuit for evaluation. Operation could, for example, involve the computer system 601 receiving data describing paths through the integrated circuit for evaluation. The data may describe the paths in terms of starting flip flop, terminating flip flop, logical cells traversed, and propagation delay along the path. In some examples, this may involve the computer system receiving data describing longest paths through the integrated circuit under different PVTA combinations generated by an external system using one of the methods referenced in earlier in this disclosure. In other examples, rather than receiving data describing paths for evaluation, e.g., a describing longest paths, operation 701 could involve the computer system 601 receiving data describing an integrated circuit design and cell library characterizations, and the computer system 601 may itself at stage 701 determine paths through the integrated circuit to be evaluated, for example, by identifying longest paths under different PVTA combinations using the received data and the referenced methods.
[0054] At operation 702, the computer program causes the processor 602 of the computer system 601 to create a data structure forming a list, Path List, of all of the paths determined by operation 701. The Path List may record each path in terms of starting flip flop, terminating flip flop, logical cells traversed, and propagation delay along the path.
[0055] At operation 703, the computer program causes the processor 602 of the computer system 601 to order the paths in the Path List by decreasing order of propagation delay.
[0056] At operation 704, the computer program causes the processor 602 of the computer system 601 to create a number of data structures, referred to herein as ‘lists.’ A list Select FF is created to record flip flops of the integrated circuit that are determined for monitoring by the method. A list Covered Paths is created to record paths that terminate in flip flops that are recorded in Select FF. A list Covered Cells is created to record logical cells of the paths that are recorded in Covered Paths. A list Non Covered Paths is created to record paths that are determined by the method as not to be monitored. Initially all of these lists are empty, and the lists are populated during the later operations of the method, as described below.
[0057] At operation 705, the computer program causes the processor 602 of the computer system 601 to determine a quota of monitors available for insertion into the integrated circuit design to monitor the path delays. Operation 705 could, for example, involve the computer system receiving data from an external system describing an available area for placement of monitors, and the computer system may then determine a maximum number of monitors that may permissibly be inserted based on the available area.
[0058] Operations 706 and 707 are performed by the processor 602 of the computer system 601 repeatedly whilst the specified conditions hold true.
[0059] At operation 706, the computer program causes the processor 602 of the computer system 601 to identify a path p at a top of the Path List, that is a path for evaluation that has a longest propagation delay.
[0060] The processor 602 then determines a flip flop ffp at which the path p terminates. The processor 602 then determines a set of other of the paths in the Path List, denoted Px E Path List, that also terminate at the same flip flop ffp.
[0061] The processor 602 then determines for each path pt in the set of paths / A the set Spt of logical cells in each path, and thus the set of logical cells Sx in the set of path Px, given by Sx=UfSpi . 'pi EPx}.
[0062] The processor 602 then computes a measure of the overlap between the set of cells Sx and the cells contained in the list Covered Cells. The overlap is defined as the ratio of the number of common cells that occur in both the lists to the total number of cells in Sx, expressed as a percentage, overlap = |& A Covered ' _Cells\ / \Sx\ * 100.
[0063] The processor 602 then determines whether the overlap is greater than a predetermined threshold, thresholdi, that is to say, the processor 602 determines the number of the logical cells Sx in set of paths Px that are in the list Covered Cells, and thus also lie in other paths already determined to be monitored by another monitor. It will be recognized in this regard that during a first iteration of the method, the list Covered Cells will be empty, and thus the percentage of common cells will be zero percent.
[0064] If the overlap is less than the pre-determined threshold thresholdi, indicating that a small proportion of the logical cells Sx are already in paths monitored by other monitors, then the flip flop ffPadded to the list Select FF. If the flip flop ffp is added to Select FF, the set of cells Sx = U{SPi: pi EPx} is added to the list Covered Cells, and the paths in Px are added to the list Covered Paths. This is the scenario depicted in Figure 4.
[0065] Otherwise, if the processor 602 determined that the overlap between 57 and Covered Cells is larger than the threshold, threshold], the processor 602 may infer that the added value of monitoring the paths in Pxis small, since a large proportion of the cells are already monitored through other paths. This is the scenario depicted in Figure 5. In this case, the paths in Px are added to the list Non Covered Paths.
[0066] In both of the above cases, the paths Px are then deleted from Path List to avoid considering the paths again later in the processes of operation 706.
[0067] The processor 602 then determines, by reference to the list Select FF, whether the number of flip flops that have been determined for monitoring is greater than or equal to the quota of monitors determined at operation 706. In other words, the processor 602 determines whether all of the budgeted monitors have already been allocated to flip flops. If this determination is in the affirmative, the method ends. Else, the method steps of operation 706 are repeated for every path p EPath List. Following consideration of every p EPath List, if the determination at \Select_FF\ >D Mis negative, indicating that there are fewer flip flops determined for monitoring in the list Select FF than there are monitors in the quota D , or stated more generally that there are spare monitors remaining in the quota D M, the processor 602 proceeds to operation 707.
[0068] Following operation 706, when all of the paths p EPath List have been evaluated by reference to the initial threshold threshold!, the processor 602 determines whether the list Non Covered Paths is empty. If the list Non Covered Paths is not empty, at operation 707, the method steps of operation 706 performed on the Path List are repeated for each of the paths in the list Non Covered Paths, but on this iteration using an increased threshold, thresholds.
[0069] Recalling that the list Non Covered Paths was populated during operation 706 by the paths rejected for monitoring by reference to the initial, lower, threshold, operation 707 effectively reconsiders the rejected paths by reference to the higher threshold, in order to fully allocate the available quota of monitors D M. Thus, during operation 707, the overlap between the cells 67 and the list Covered Cells is permitted to be relatively greater than during operation 706, for the respective flip flop to qualify for monitoring by a monitor 301.
[0070] Accordingly, the method of operations 701 to 707 has the object of allocating a constrained quota of monitors to paths of an integrated circuit in order to monitor the paths of the integrated circuit that are most prone to delay faults, and such that as many as possible ofthe logical cells are monitored. The method may thereby provide improved detection of propagation delays in paths and logical cells of an integrated circuit.
[0071] Referring next to Figure 8, in examples, each of the propagation delay monitors 301 comprises a programmable delay unit 801, a detection window unit 802, a XOR gate 803, an AND gate 804, and a D flip flop 805.
[0072] The programmable delay unit 801 introduces a delay in the output signal sg of the path being monitored, to produce the delayed signal d sg. The detection window unit 802 facilitates the monitoring of changes in the path output close to the positive edge of the clock. The XOR gate 803 compares the path output signal sg and the delayed signal d sg. The AND gate 804 combines the XOR gate output 803 and the detection window unit signal w. The flip flop 805 captures the data through the set pin and raises an alarm.
[0073] The programmable delay unit 801 is shown in further detail in Figure 9. The delay unit 801 induces delays of two, three or four gates using a multiplexer depending on the user specification through the select line sei. The delay value determines how early an alarm is raised before a fault actually happens on the signal line sg.
[0074] The detection window unit 802 is shown in further detail in Figure 10. The width of the detection window is denoted by d. The goal is to check whether the delay of the path being monitored is within d gate delays of the positive edge of the clock. The clock is denoted by elk. Its period is denoted by Tclk. In the example, the clock has a 25% duty cycle. To generate the detection window signal w, the clock elk is delayed by the on-time of elk to produce a delayed clock denoted by d elk. The original clock elk and the delayed clock d elk are ORed to generate a new clock denoted by or _clk with 50% duty cycle. The newly generated clock or elk is delayed by Tclk 2 d to produce d or elk. The or elk and d or elk are NORed to generate the detection window signal w.
[0075] The set input S of the flip flop is connected to the output of the AND gate. The reset input R is connected to the reset signal of the delay monitor. When the set input S is high, the flip flop raises the alarm signal. During functional operation, when a path being monitored is close to failure, the path output signal sg, and the delayed signal d ' sg will have different values during the detection window d. In such a case, the output of the XOR gate is set to 1. The AND gate output becomes 1 when the mismatch happens during the detection window d. The flip flop captures this data and raises the alarm. The reset signal reset of theflip flop is low throughout this time. The timing diagram for these signals is shown in Figure 12.
[0076] Referring next to Figure 11, the present disclosure also provides a controller 1101 for controlling the operation of the delay monitors 301 via a communication system 1102.
[0077] The controller 1101 is communicatively coupled to the select line sei and the reset line reset of each of the plurality of delay monitors 301 via the communication system 1102. The controller 1101 is functional to generate a delay set signal, which may be utilized to control the programmable delay unit 801 of each of the delay monitors 301 to set the magnitude of the delay introduced to the delayed signal d sg. The controller 1101 is further functional to interrogate the flip flop 805 of each delay monitor 301, to read the data stored. The controller 1101 may thereby identify propagation delay faults on paths through the IC. The controller 1101 may further be communicatively coupled by the communication system 1102 to the alarm line of each delay monitor 301, to receive the alarm signals generated by the respective flip flop 805.
[0078] The controller 1101 may, for example, include the same components as computer system 601, and may thus include a processor, memory, and an input / output interface. In some examples, the controller 1101 may be integrated with the computer system 601, such that the computer system 601 performs the functions of both determining placement of the delay monitors and also controlling the delay monitors.
[0079] Once a specific number of delay monitors 301 are inserted into the design, the select signal sei of the programmable delay unit s and the reset signal reset, in all the delay monitors can be controlled globally by the controller 1101 using a single select line, and a single reset line that are routed to all the monitors. Sets of delay monitors 301 can also be grouped together to maintain more granularity with their own select lines and reset lines.
[0080] The delay monitors 301 can be operated during both the functional mode and the test mode. To offload the alarm data raised by various monitors to the controller 1101, the alarm signals of all the monitors can be ORed together. This generates a single signal that indicates when some of the paths in the design are close to failure. Instead, the flip flops of various delay monitors 301 can be connected to the IJTAG network of the design. The contents of the delay monitors 301 can be off-loaded by scanning out the contents of the IJTAG network in a periodic manner by placing the design in test mode.
[0081] An alternative approach is to combine the data from the delay monitors 301 in a manner such that the contents can be transported via the functional interfaces of a design (such as PCIe, PCB, etc.). This needs that the delay monitors 301 are properly isolated from the rest of the design. The clock driving the D flip flops of the delay monitors 301 when scanning out the data is either the IJTAG-clock in test mode or a slow functional clock in functional mode. Once the alarm data is off loaded, if a significant number of delay monitors 301 have raised an alarm signal, correcting procedures such as dynamic voltage scaling and body biasing can be performed to provide safe functioning of the circuit.
[0082] Referring finally to the timing diagram of Figure 12, it can be observed that even the delayed signal d_sg would have latched the correct value into the data flip flop if the setup time of the flip flop was satisfied. However, the delay monitor proposed in this report, detects that the outputs signal sg of the monitored path, CP, is close to d gate delays from the positive edge of the clock, and raises the alarm. Thus, degradation of the path, in a way that has resulted in increased propagation delay, may be detected even before a data error occurs.
[0083] The system and apparatus described above may use dedicated processor systems, micro controllers, programmable logic devices, microprocessors, or any combination thereof, to perform some or all of the operations described herein. Some of the operations described above may be implemented in software and other operations may be implemented in hardware. Any of the operations, processes, and / or methods described herein may be performed by an apparatus, a device, and / or a system substantially similar to those as described herein and with reference to the illustrated figures.
[0084] The processor may execute instructions or "code" stored in memory. The memory may store data as well. The processing device may include, but may not be limited to, an analog processor, a digital processor, a microprocessor, a multi-core processor, a processor array, a network processor, or the like. The processing device may be part of an integrated control system or system manager or may be provided as a portable electronic device configured to interface with a networked system either locally or remotely via wireless transmission.
[0085] The memory may be integrated together with the processing device, for example RAM or FLASH memory disposed within an integrated circuit microprocessor or the like. In other examples, the memory may comprise an independent device, such as an external disk drive, a storage array, a portable FLASH key fob, or the like. The memory and processingdevice may be operatively coupled together, or in communication with each other, for example by an I / O port, a network connection, or the like, and the processing device may read a file stored on the memory. Associated memory may be "read only" by design (ROM) by virtue of permission settings, or not. Other examples of memory may include, but may not be limited to, WORM, EPROM, EEPROM, FLASH, or the like, which may be implemented in solid state semiconductor devices. Other memories may comprise moving parts, such as a known rotating disk drive. All such memories may be "machine-readable" and may be readable by a processing device.
[0086] Operating instructions or commands may be implemented or embodied in tangible forms of stored computer software (also known as "computer program" or "code"). Programs, or code, may be stored in a digital memory and may be read by the processing device. “Computer-readable storage medium" (or alternatively, "machine-readable storage medium") may include all of the foregoing types of memory, as well as new technologies of the future, as long as the memory may be capable of storing digital information in the nature of a computer program or other data, at least temporarily, and as long at the stored information may be "read" by an appropriate processing device. The term "computer-readable" may not be limited to the historical usage of "computer" to imply a complete mainframe, minicomputer, desktop or even laptop computer. Rather, "computer-readable" may comprise storage medium that may be readable by a processor, a processing device, or any computing system. Such media may be any available media that may be locally and / or remotely accessible by a computer or a processor, and may include volatile and non-volatile media, and removable and non-removable media, or any combination thereof.
[0087] A program stored in a computer-readable storage medium may comprise a computer program product. For example, a storage medium may be used to store or transport a computer program. For the sake of convenience, the operations may be described as various interconnected or coupled functional blocks or diagrams. However, there may be cases where these functional blocks or diagrams may be equivalently aggregated into a single logic device, program, or operation with unclear boundaries.
[0088] While the application describes specific examples of carrying out embodiments, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and techniques that fall within the spirit and scope of the disclosure as set forth in the appended claims. For example, while specific terminology hasbeen employed above to refer to electronic design automation processes, it should be appreciated that various examples of the disclosure may be implemented using any desired combination of electronic design automation processes.
[0089] One of skill in the art will also recognize that the concepts taught herein can be tailored to a particular application in many other ways. In particular, those skilled in the art will recognize that the illustrated examples are but one of many alternative implementations that will become apparent upon reading this disclosure.
[0090] Although the specification may refer to “an,” “one,” “another,” or “some” example(s) in several locations, this does not necessarily mean that each such reference is to the same example(s), or that the feature only applies to a single example.
Claims
CLAIMS1. A computer-implemented method for determining placement of monitors for monitoring propagation delays in paths through an integrated circuit, the method comprising: determining one or more paths through the integrated circuit that terminate at a same flip flop of the integrated circuit; determining logical cells in the one or more paths terminating at the flip flop; determining a measure of a number of the logical cells that are also in one or more alternative paths terminating at one or more alternative flip flops monitored by one or more monitors; determining whether the measure of the number of the logical cells that are also in the alternative paths satisfies a threshold condition; and determining, based on a determining that the number of the logical cells that are also in the alternative paths does satisfy the threshold condition, placement of a monitor to monitor the flip flop.
2. The computer-implemented method of claim 1, wherein determining the one or more paths through the integrated circuit that terminate at the same flip flop of the integrated circuit comprises: determining a plurality of paths through the integrated circuit; determining propagation delays along the plurality of paths; and for each path of the plurality of paths, in order of decreasing propagation delay: determining a flip flop at which the respective path terminates; determining other of the paths terminating at the flip flop at which the respective path terminates; and performing the determining of the logical cells in the one or more paths terminating at the flip flop at which the respective path terminates, the determining of a measure of the number of the logical cells that are also in one or more alternative paths terminating at one or more alternative flip flops monitored by one or more monitors and whether the measure of the number of the logical cells satisfies a threshold condition, and the determining, based on a determining that the number of the logical cells that are also in the alternative paths doessatisfy the threshold condition, placement of a monitor to monitor the flip flop at which the respective path terminates.
3. The computer-implemented method of claim 1, wherein the determining whether the measure of the number of the logical cells that are also in the alternative paths satisfies the threshold condition comprises determining a ratio of the number of the logical cells that are also in the alternative paths to a total number to a total number of logical cells in the one or more paths terminating at the flip flop.
4. The computer-implemented method of claim 1, further comprising, based on determining the placement of the monitor to monitor the flip flop: creating a machine-readable record recording the flip flop as a monitored flip flop; creating a machine-readable record recording the one or more paths terminating at the flip flop as monitored paths; creating a machine-readable record recording the logical cells in the one or more paths terminating at the flip flop as monitored cells; or any combination thereof.
5. The computer-implemented method of claim 4, wherein the determining of the measure of the number of the logical cells that are also in one or more alternative paths terminating at one or more alternative flip flops monitored by one or more monitors comprises inspecting at least one of the machine-readable records, and determining, based on the at least one machine- readable record, a measure of the number of logical cells in the one or more paths that are also in: a path terminating in a flip flop recorded as a monitored flip flop; a path recorded as a monitored path; a record of monitored cells; or a combination thereof.
6. The computer-implemented method of claim 1, further comprising repeating the computer-implemented method for a further flip flop.
7. The computer-implemented method of claim 6, further comprising: determining a quota of monitors for monitoring propagation delays in paths through the integrated circuit; and determining, in response to the determining of the placement of the monitor to monitor the flip flop, whether the quota of monitors have been determined for placement, wherein the repeating of the method for the further flip flop is performed based on a determination that the quota of monitors have not been determined for placement.
8. The computer-implemented method of claim 6, further comprising modifying the threshold condition for each repetition of the method, such that the measure of the number of the logical cells that are also in the alternative paths is required to be lesser to satisfy the threshold condition.
9. The computer-implemented method of claim 2, wherein the determining of the plurality of paths comprises determining a plurality of paths through the integrated circuit having relatively long propagation delays compared to other paths through the integrated circuit having relatively short propagation delays.
10. The computer-implemented method of claim 2, wherein the determining of the plurality of paths comprises determining a plurality of paths through the integrated circuit having longest propagation delays for respective different operating and environmental conditions.
11. The computer-implemented method of claim 10, wherein the determining of the plurality of paths through the integrated circuit having longest propagation delays for respective different operating and environmental conditions comprises determining a plurality of paths through the integrated circuit having longest propagation delays for respective different process, voltage, temperature, and ageing conditions of the integrated circuit.
12. A computer system comprising: at least one processor, and at least one memory including machine-readable instructions,wherein the at least one memory and the machine-readable instructions are configured to, with the at least one processor, cause the computer system to determine placement of monitors for monitoring propagation delays in paths through an integrated circuit by the method of claim 1.
13. A computer program comprising instructions, which, when executed by a computer, cause the computer to carry out the method of claim 1.
14. A data storage apparatus having stored thereon the computer program of claim 13.