US20260025143A1
2026-01-22
19/277,323
2025-07-22
Smart Summary: A critical path tracking system helps monitor the performance of an integrated circuit (IC). It has two paths: a real path that processes data and a replica path that mimics the real one. Special components called capture flip-flops (CFFs) collect outputs from both paths at different times. The system can adjust delays in the replica path and choose which output to use for comparison. By analyzing these outputs, the system can identify issues and make real-time adjustments to improve performance. 🚀 TL;DR
A critical path tracking system for an integrated circuit (IC) is described. The system may include a real critical path with a first set of combinatorial logic receiving data and clock inputs, generating a first output. The system may include a replica critical path with a second set of combinatorial logic replicating the first set, generating a second output. Capture flip-flops (CFFs) may be coupled to paths, capturing the first and second outputs at different points. A programmable delay element may introduce adjustable delays to the second output. A multiplexer may select between the first and delayed outputs for the CFFs, and a comparator may generate a path_failure_signature by comparing the outputs. A control circuit may dynamically adjust the delay settings and the IC's supply voltage based on the path failure signature. A software loop may read the signature, analyze timing margins, and control the circuit.
Get notified when new applications in this technology area are published.
H03L7/0997 » CPC main
Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop; Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator comprising a ring oscillator Controlling the number of delay elements connected in series in the ring oscillator
H02M7/5395 » CPC further
Conversion of ac power input into dc power output; Conversion of dc power input into ac power output; Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode using devices of a triode or transistor type requiring continuous application of a control signal using semiconductor devices only, e.g. single switched pulse inverters with automatic control of output wave form or frequency by pulse-width modulation
H03L7/0814 » CPC further
Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop; Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the phase shifting device being digitally controlled
H03L7/099 IPC
Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop; Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
H03L7/081 IPC
Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop; Details of the phase-locked loop provided with an additional controlled phase shifter
This application claims the benefit of U.S. Provisional Application No. 63/674,269, filed Jul. 22, 2024, the disclosure of which is incorporated herein by reference in its entirety.
The examples discussed in the present disclosure are related to critical path tracking.
Unless otherwise indicated herein, the materials described herein are not prior art to the claims in the present application and are not admitted to be prior art by inclusion in this section.
In the field of integrated circuit (IC) design, ensuring optimal performance of critical paths in the IC while minimizing power consumption is a persistent challenge. The critical paths are the longest signal paths through the IC, which determine the maximum speed at which the circuit can operate. Some methods for achieving such balance often involve the use of ring oscillators or other benchmark circuits to measure the speed of a device and adjust the supply voltage accordingly. However, such methods present several significant limitations that prevent achieving optimal results.
The subject matter claimed in the present disclosure is not limited to examples that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one example technology area where some examples described in the present disclosure may be practiced.
Accordingly, some examples described herein include a critical path tracking system for an integrated circuit (IC). The system includes a data input and clock input feeding a real critical path comprising a first set of combinatorial logic receiving the data input and clock input, and generating a first output. The system includes a replica critical path comprising a second set of combinatorial logic receiving the data input and clock input, and generating a second output, wherein the second set of combinatorial logic mimics the first set of combinatorial logic. In some examples, a plurality of capture flip-flops, individually coupled to the real critical path and the replica critical path, capture the first output and the second output at different points along the critical paths.
In some examples, a programmable delay element coupled to the replica critical path is introduces adjustable delays to the second output. In some examples, a multiplexer selects between the first output and the delayed second output for the capture flip-flops. In some examples, a comparator configured to compare the outputs of the capture flip-flops and generates a path failure signature. The system includes a control circuit for dynamically adjusting the delay settings of the programmable delay element and adjusts a supply voltage of the IC based on the path failure signature. In some examples, a software loop reads the path failure signature, analyzes timing margins, and controls the control circuit to maintain optimal performance and power consumption of the IC.
The objects and advantages of the examples will be realized and achieved at least by the elements, features, and combinations particularly pointed out in the claims.
Both the foregoing general description and the following detailed description are given as examples and are explanatory and are not restrictive of the invention, as claimed.
So that the manner in which the above recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to examples, some of which are illustrated in the appended drawings. It is noted, however, that the appended drawings illustrate only some aspects of this disclosure and the disclosure may admit to other equally effective examples.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements and features of one example may be beneficially incorporated in other examples without further recitation.
FIG. 1A illustrates a schematic of an exemplary critical path tracking system, in accordance with some examples;
FIG. 1B illustrates a schematic of an exemplary critical path tracking system, in accordance with some examples;
FIGS. 2A-2B illustrate a timing diagram for an operation of the exemplary critical path tracking system shown in FIGS. 1A-1B, in accordance with some examples; and
FIG. 3 illustrates a schematic of an exemplary calibration method for the exemplary critical path tracking system shown in in FIGS. 1A-1B, in accordance with some examples.
The present disclosure will now be described in detail with reference to the drawings, which are provided as illustrative examples of the disclosure so as to enable those skilled in the art to practice the disclosure. Notably, the figures and examples below are not meant to limit the scope of the present disclosure to a single example, but other examples are possible by way of interchange of some or all of the described or illustrated elements. Moreover, where certain elements of the present disclosure can be partially or fully implemented using known components, only those portions of such known components that are necessary for an understanding of the present disclosure will be described, and detailed descriptions of other portions of such known components will be omitted so as not to obscure the disclosure.
As used herein, the singular form of “a”, “an”, and “the” include plural references unless the context clearly dictates otherwise. As used herein, the statement that two or more parts or components are “coupled” shall mean that the parts are joined or operate together either directly or indirectly (i.e., through one or more intermediate parts or components, so long as a link occurs). As used herein, “directly coupled” means that two elements are directly in contact with each other. As used herein, “fixedly coupled” or “fixed” means that two components are coupled so as to move as one while maintaining a constant orientation relative to each other. As used herein, “operatively coupled” means that two elements are coupled in such a way that the two elements function together. It is to be understood that two elements “operatively coupled” does not require a direct connection or a permanent connection between them. As utilized herein, “substantially” means that any difference is negligible, or that such differences are within an operating tolerance that are known to persons of ordinary skill in the art and provide for the desired performance and outcomes as described in one or more examples herein. Descriptions of numerical ranges are endpoints inclusive.
As used herein, the word “unitary” means a component is created as a single piece or unit. That is, a component that includes pieces that are created separately and then coupled together as a unit is not a “unitary” component or body. As employed herein, the statement that two or more parts or components “engage” one another shall mean that the parts exert a force against one another either directly or through one or more intermediate parts or components. As employed herein, the term “number” shall mean one or an integer greater than one (i.e., a plurality). Directional phrases used herein, such as, for example and without limitation, top, bottom, left, right, upper, lower, front, back, and derivatives thereof, relate to the orientation of the elements shown in the drawings and are not limiting upon the claims unless expressly recited therein.
Examples described as being implemented in hardware should not be limited thereto, but can include examples implemented in software, or combinations of software and hardware, and vice-versa, as will be apparent to those skilled in the art, unless otherwise specified herein. In the examples described herein, an example showing a singular component should not be considered limiting; rather, the invention is intended to encompass other examples including a plurality of the same component, and vice-versa, unless explicitly stated otherwise herein. Moreover, applicants do not intend for any term in the specification or claims to be ascribed an uncommon or special meaning unless explicitly set forth as such. Further, the present invention encompasses present and future known equivalents to the known components referred to herein by way of illustration.
A ring oscillator may be used to measure the speed of a device and adjust the supply voltage accordingly. A ring oscillator may include an odd number of inverters connected in a loop, with the frequency of oscillation providing an indication of the IC's operational speed. This method does not accurately represent the real critical paths within an application specific integrated circuit (ASIC). Therefore, adjustments based on ring oscillators may not reflect operational limits, leading to suboptimal performance and unnecessary power consumption.
Many solutions lack flexibility and adaptability to changes in process, voltage, and temperature (PVT) conditions. The static nature of these hardware-centric methods prevents dynamic responses to varying operational conditions. Additionally, the one-size-fits-all approach does not account for the variability in individual ICs, as chips may exhibit different characteristics due to manufacturing variations. Such uniform approach may fail to result in optimal power consumption, which is increasingly useful in modern electronics.
The examples described herein may provide a robust and adaptable solution for optimizing IC performance and power consumption via a critical path tracking and dynamic voltage scaling circuit. By accurately monitoring and adjusting critical paths in an ASIC system on chip (SoC), the examples herein may ensure that the IC operates within safe margins while minimizing power usage. Accordingly, the examples herein may provide a system, method, and apparatus for real-time monitoring of critical timing paths in ASICs and dynamically adjusting the supply voltage to optimize performance and power consumption.
While many solutions implement a “one-size-fits-all” approach, such solutions do not account for the variability in individual ICs. For example, ASICs may exhibit different characteristics due to manufacturing variations, which makes a uniform approach less effective. Moreover, many solutions provide inadequate margin monitoring. Effective monitoring of timing margins may prevent timing violations that may lead to errant behavior and functional failures. Many approaches do not provide a precise and continuous measurement of the remaining timing margin, which may facilitate reliable operation. Accordingly, the examples herein set forth a critical path circuit that provides real-time monitoring and adjustment of critical timing paths within an ASIC.
Some examples described below include a circuit that may monitor actual critical paths and simulated (i.e., replicated) critical paths. Such dual capability may allow for testing and validation of the system under various conditions. Some examples include multiple capture flops that may record delayed versions of the signal captured by no-delay flops. By comparing these delayed captures with the no-delay capture, the system may accurately measure the remaining timing margin. In some examples, based on the measured margin, the system, apparatus, and/or method may dynamically adjust the supply voltage for optimal performance. Such dynamic adjustment may be made in real-time, allowing the system to respond to changes in PVT conditions and operational requests.
Unlike hardware-centric solutions, some examples may use a software loop to analyze the captured data and make voltage adjustments. Such an approach may offer greater flexibility, allowing for dynamic changes in monitoring parameters and more precise control over the IC's operation. Some examples may provide in-situ monitoring capabilities, which may allow for real-time observation of the critical path's performance. Such a feature may provide that the adjustments made are based on accurate and current operational data, enhancing the reliability and efficiency of the system.
FIGS. 1A-1B illustrate an exemplary critical path tracking system-on-chip 100 (“system 100”). In some examples, system 100, may include two circuits 101, 103 (FIG. 1A, FIG. 1B, respectively), which may have distinct and complementary functions. Circuit 101 may monitor the critical timing paths and capture relevant data, while circuit 103 may process this data, may generate path failure signatures, and may facilitate synchronization across system 100. Circuits 101, 103 may provide real-time monitoring and dynamic adjustment of an integrated circuit's performance.
As shown in FIG. 1A, in some examples, circuit 101 may include multiplexer (MUX) 102, real critical path 104, capture flip-flop 106, multiplexer 108, programmable delay element 110, input generator 112, replica critical path 114, capture flip-flop (CFF) 116, CFF (Q0) 118, CFF (Q1) 120, CFF (Q2) 122, CFF (Qn−2) 124, CFF (Qn−1) 126, NAND gate 128, and/or clock divider 130. Circuit 101 may capture data from critical timing paths and introduce delays to measure timing margins. Such operation may include monitoring real and replica paths and generating detailed timing data.
In some examples, system 100's tracking circuit may include multiplexer 108 that may select between real critical path 104 and replica critical path 114. In some examples, real critical path 104 is monitored by CFF 106, which may record the output data (Q_real) and the timing signal (D_real). Multiplexer 108 may route different signals to the programmable delay element 110. Programmable delay element 110 may introduce controlled timing shifts, allowing system 100 to simulate various timing conditions.
In some examples, input generator 112 may feed signals into replica critical path 114, so that replica critical path 114 may mimic the real critical path 104 accurately, which may be used for calibration. In some examples, replica critical path 114 may direct a signal to a CFF 116 that may capture the most significant bit (MSB) of the delayed signal (e.g., Q_fake). To facilitate calibration, NAND gate 128 may combine the calibration enable signal (calib_en) with other control signals, and clock divider 130 may generate a divided clock signal (e.g., rosc_clock) used for delay calibration. In some examples, clock divider 130 may include one or more ring oscillators, phase-lock-loops, and/or digital crystals.
In some examples, CFFs 118, 120, 122, 124, 126 may be used to record progressively delayed versions of the signal, shown in FIG. 1 as Q0, Q1, Q2, Qn-2, and Qn-1, respectively. CFFs 118, 120, 122, 124, 126 may provide a view of how delays affect the critical path performance, which may provide precise measurement of timing margins so that the IC may operate within optimal parameters.
Input Data (DATA) and Clock (CLK) inputs may provide data and clock signals used for the operation of the critical path circuit. The data and clock inputs may synchronize the timing paths within the IC. Multiplexer MUX 102 may select between the real critical path 104 and the replica critical path 114 based on the operational mode for monitoring and calibration purposes. Output Data (FUNC DATA OUTPUT) may be the output for the critical path circuit 101 and may be the functional data adjusted for optimal timing.
Real critical path 104 may be the longest signal path through the exemplary IC, which may determine the maximum operational speed of the circuit. Monitoring the real critical path 104 may allow the IC to meet its timing limits. In some examples, capture flip-flop 106 may be positioned at the end of the real critical path 104 to capture the output data (Q_real) and the timing signal (D_real). Capture flip-flop 106 may assess the timing margins by comparing the captured data with delayed data.
In some examples, replica critical path 114 may mimic the real critical path 104 for calibration and testing purposes. Replica critical path 114 may allow system 100 to simulate real critical path 104 conditions without affecting the actual signal path, providing a safe way to measure and adjust timing margins. Input generator 112 may generate the input signals for the replica critical path. The input generator signal may be one or more of a deterministic signal or a random signal based on the replica critical path 114. For example, when the real critical path 104 includes a digital finite impulse response (FIR) filter, the replica critical path 114 may include a pseudo filter and the input generator may generate a random signal to the filter. The random signal may be a random sequence, such as a pseudo-random binary sequence (PRBS). Input generator 112 provides that the replica path may operate under similar conditions as the real critical path, facilitating accurate calibration.
In some examples, CFF 116 may capture the MSB of the delayed signal (Q_fake) from the replica critical path 114 to determine the timing accuracy of the replica critical path 114 compared to the real critical path 104.
Multiplexer 108 may select between different inputs (e.g., 1×, 00, 01) for the subsequent flip-flops. Multiplexer 108 may allow the circuit to route different signals based on current calibration or monitoring. In some examples, programmable delay element 110 may introduce controlled timing shifts in the signal path, allowing system 100 to create precise timing margins. Programmable delay element 110 may simulate different timing conditions and assess system 100's performance under various delays.
In some examples, NAND gate 128 may combine the calibration enable signal (calib_en) with the other control signals, facilitating the switching to different modes. In some examples, system 100 may operate in three distinct mode. Such modes include programmable delay calibration mode, real critical path tracking mode, and replica critical path tracking mode.
In programmable delay calibration mode, the programmable delay element 110 may have a ring-oscillator setup to measure and calibrate the delay accurately. Calibration mode may be used for initial calibration of the programmable delay in the system 100 to provide precise timing adjustments. In the real critical path tracking mode, system 100 may monitor the timing failure points in a real critical path 104. Based on the observed data, the supply voltage may be increased or decreased to maintain optimal performance and reliability, for example, via dynamic voltage scaling (DVS).
For example, real critical path tracking mode may include, in some examples, initializing the control signals by setting path_enable=0, path_sel=0, and configuring the delay (delay[6:0]=<desired_value>). System 100 may enable the path by setting path_enable=1 and observing the path_failure_signature for the failure signature position. When a supply adjustment is made, system 100 may disable the path (path_enable=0) and may reprogram the supply change using pulse width modulation (PWM) or inter-integrated circuit power management integrated circuit (I2C-PMIC). System 100 may repeat the process by adjusting the delay (delay[6:0]) according to the tracking algorithm.
System 100 may include a replica critical path tracking mode, which may be similar to the real critical path tracking mode but operate on a fake or replica critical path 114. Replica critical path tracking mode may be useful for scenarios in which the real critical path 104 may not be monitored directly, allowing safe and accurate measurements without interfering with the actual operation. For example, replica critical path tracking mode may initialize the control signals by setting path_enable=0, path_sel=1, and configuring the delay (delay[6:0]=<desired_value>). Enabling the path by setting path_enable=1 and observing the path_failure_signature for the desired failure signature position. When a supply adjustment is made, PWM or I2C-PMIC may be used to disable the path (path_enable=0) and/or reprogram the supply change. The process may be repeated by adjusting the delay (delay[6:0]) according to the tracking algorithm.
In some examples, NAND gate 128 may activate the delay calibration. For example, clock divider 130 (DIV-4 Clock) may generate a divided clock signal (rosc_clock) used for delay calibration. By dividing the clock frequency, clock divider 130 may provide a timing reference for calibrating programmable delay element 110. CFFs 118, 120, 122, 124, 126 (Q0 to Qn−1, respectively) may capture the delayed versions of the signal at different stages. Individual flip-flops may record a progressively delayed signal, allowing system 100 to measure the timing margin by comparing the outputs. The sequence of captured signals may provide a view of how the delay affects real critical path 104 performance.
As shown in FIG. 1B, circuit 103 adds synchronization, replication, and/or failure detection functionalities. Circuit 103 may process captured data to generate path failure signatures and allow synchronization across different parts of the circuit 103. Circuit 103 combines, selects, and/or stores signals to provide a comprehensive status of the timing paths, which may be used by the software loop for dynamic adjustments.
Reset sync 144 and clock domain crossing (CDC) sync 146 components allow initialization and clearing of the circuit. XOR gate 132 and D flip-flop 137 may generate and store the path failure signature, indicating timing defects in real critical path 104. The CDC handshake 138 may facilitate reliable communication across different clock domains, while the Replicate N Times 140 and multiplexer 142 components may manage the replication and routing of signals for comprehensive monitoring. These components may enhance the circuit's ability to monitor and adjust the timing paths within an IC, ensuring optimal performance and reliability.
In some examples, reset sync 144 may synchronize the reset signal (path_enable) with the system clock. Reset sync 144 may generate an active low asynchronous reset signal (rst_n) that may initialize or reset system 100. CDC sync 146 may synchronize the path_clear signal with the system clock, generating an active high synchronous reset signal (clear), which may be used for clearing the status registers or counters in the circuit.
In some examples, XOR gate 132 may combine the outputs of the CFFs (e.g., Q0, Q1, Q2 . . . , Qn−1) to generate a combined signal indicating the overall status of the captured data. In some examples, XOR gate 132 may identify when the flip-flops have captured the expected data correctly. The signal from the XOR gate 132 may be directed to the OR gate 134. The OR gate 134 may receive the output of the D flip flop 136. By directing the signal from the XOR gate 132 and the output of the D flip flop 136 to the OR gate 134, the stability of the signal from XOR gate 132 may be enhanced to prevent signal jitter.
In some examples, multiplexer 135 may select between the combined signal from gate D flip flop 136 and the output of the D flip-flop 137. The selection may be based on the state of the sync_enable signal, which may determine whether the circuit is in synchronization mode. D Flip-Flop 137 may store the selected signal from multiplexer 135 and provide a stable output (path_failure_signature). The output represents the sticky status of the path failure signature, indicating any timing failures in real critical path 104.
CDC handshake 138 may manage the communication between different clock domains, ensuring reliable data transfer. CDC handshake 138 may generate synchronization signals (e.g., sync_en, path_req, and path_ack) to coordinate the timing and status updates across the circuit. In some examples, replicate N Times 140 may replicate the input signal (Q_exp) N times to generate a set of replicated signals (Q_exp, Q_exp . . . , Q_exp). Such replication may create multiple instances of the signal for monitoring and analysis.
In some examples, multiplexer 142 may select between the replicated signals generated by the Replicate N Times 140 and the initial input signal (e.g., e.g., Q0, Q1, Q2 . . . , Qn−1). Such selection may aid in routing the appropriate signal for further processing and analysis within the circuit. Path failure signature (path_failure_signature) output may be a sticky status register that may hold the failure status of real critical path 104. The path failure signature output may provide an indication of timing failures detected during the monitoring process.
Delayed capture functionality may facilitate precise measurement and analysis of timing margins. Such functionality involves the use of no-delay flip-flops and delayed capture flip-flops to monitor the timing of signals traversing the critical paths (e.g., 104, 114) within the IC. The comparisons between the captured data from these flip-flops may provide timing margins used for DVS and overall system reliability.
No-delay flip-flops (e.g., CFF 106) may capture the state of signals at specific points along the critical path without introducing an intentional delay. Such flip-flops may provide a baseline measurement of the signal timing as it propagates through the circuit. CFF 106 for example, may be positioned at the end of the real critical path 104 to capture the output data (Q_real) and timing signal (D_real). CFF 106 may provide a measurement of the critical path timing under operating conditions. In contrast, CFFs 118, 120, 122, 124, 126 may capture the state of the signal at various points along the critical path. CFFs 118, 120, 122, 124, 126 may provide a snapshot of the signal timing, serving as reference points for comparing with delayed captures. These delayed capture flip-flops may introduce intentional delays into the signal path before capturing the state of the signal. These delays may be introduced using a programmable delay element 110 that may be adjusted to simulate different timing conditions. The delayed capture provides the effect of various delays on signal timing to quantify timing margins.
For example, in some examples, programmable delay element 110 may introduce controlled delays into the signal path, allowing for precise adjustment of the timing conditions. By varying the delay, system 100 may observe the effects on signal propagation and capture timing. Delayed capture flip-flops (e.g., CFFs 118, 120, 122, 124, 126), in addition to their role in no-delay capture, may also record the state of the signal after the signal has been delayed. Such dual functionality enables the system to compare no-delay and delayed captures effectively.
In some examples, system 100 may include a method for delay capture. The method may include initialization in which the system 100 may initialize the programmable delay element 110 to a specific delay setting. This setting may be dynamically adjusted to simulate different timing conditions. Input signals (DATA and CLK) may propagate through the real critical path 104 and the replica critical path 114. The signals may be monitored at various points along these paths. No-delay flip-flops (e.g., CFFs 118, 120, 122, 124, 126) may record the state of the signals at specific points without any additional delay. These captures may provide a baseline measurement of the signal timing. Next, programmable delay element (110) may introduce controlled delays into the signal path. The delayed capture flip-flops may record the state of the signals after the delay has been applied. Flip-flops may capture a progressively delayed version of the signal, providing a detailed view of how delays affect the timing.
The data from the no-delay and delayed captures may be compared to quantify the timing margins. The comparison involves analyzing the differences in the signal states recorded by the flip-flops. For example, in some examples, XOR gate 132 processes the captured data, generating a signal that may indicate the overall status of the timing margins. This processed signal may be stored in the D flip-flop 137, creating a path failure signature.
System 100 software loop may read the path_failure_signature and the captured data from the flip-flops. System 100 may analyze the timing margins to determine when there are timing violations. Based on the analysis, system 100 software may determine whether to adjust the supply voltage or recalibrate the programmable delays. When the timing margins are tight (e.g., exceeding, or nearing a threshold margin), the software may increase the supply voltage to ensure reliable operation. Conversely, when the margins are ample, the software may decrease the voltage to save power. Thus, system 100 software may send control signals to adjust the voltage regulators and the programmable delay element, dynamically optimizing the IC's performance and power consumption.
System 100 software may interpret margin data captured by the flip-flops and optimize the IC's operation. System 100 may monitor the timing margins and react to changes by adjusting the supply voltage and delay settings. For example, system 100 software may periodically read the captured data from the no-delay and delayed capture flip-flops and also retrieves the path_failure_signature from the D flip-flop 136.
System 100 software may analyze the timing margins by comparing the no-delay and delayed captures. In some examples, system 100 may determine the slack or deficit in the timing, identifying any potential issues that may affect performance. Based on such analysis, system 100 software may determine the adjustments to the supply voltage and delay settings and maintain optimal performance while minimizing power consumption.
In some examples, system 100 software may send control signals to the voltage regulators, adjusting the supply voltage dynamically based on the current timing margins. System 100 software may also reconfigure the programmable delay element 110 to fine-tune the timing conditions so that the IC operates within safe and efficient parameters. The software loop may monitor the critical path performance, reacting to any changes in real-time. This ongoing process allows the IC to adapt to varying operational conditions, such as changes in workload, temperature, and process variations.
Thus, the no-delay vs. delayed capture functionality, as described in FIG. 1A and FIG. 1B, may provide a mechanism for real-time monitoring and analysis of timing margins within an integrated circuit. By using no-delay and delayed captures, the system may accurately quantify timing margins and make dynamic adjustments to optimize performance and power consumption. The software may interpret the captured data and implement adjustments to maintain the IC's reliability and efficiency. This robust monitoring and adjustment capability allows the IC to operate at optimal performance under varying conditions, enhancing its overall reliability and efficiency.
In some examples, system 100 may implement DVS, allowing system 100 to adjust the supply voltage in real-time based on the current performance and timing. Such DVS functionality in the described circuits 101, 103 may use real-time measurements of timing margins to dynamically optimize power consumption without compromising the performance or reliability of the IC. By dynamically adjusting the supply voltage, system 100 may allow the IC to operate within safe and efficient parameters, balancing power savings with performance and reliability. The interplay between hardware components (such as programmable delay elements and capture flip-flops) and software control loops may facilitate voltage scaling, enhancing the overall efficiency and effectiveness of the integrated circuit.
DVS functionality may measure timing margins within the critical paths of the IC in real time. As shown in FIG. 1A, circuit 101 may include components such as the capture flip-flops 118, 120, 122, 124, 126, programmable delay element 110, and real critical path 104 and replica critical path 114. These components may monitor the timing margins dynamically. The capture flip-flops (e.g., 118, 120, 122, 124, 126) may record the timing information of signals traversing the critical paths, and programmable delay element 110 may introduce controlled delays to simulate different operational conditions.
The data captured by capture flip-flops (e.g., 118, 120, 122, 124, 126) may be processed to determine the timing margins, which may indicate the slack or deficit in timing for signals to propagate through real critical path 104. Such timing information may provide DVS with a real-time snapshot of system 100's performance under current conditions.
In some examples, based on the measured timing margins, the DVS mechanism may dynamically adjust the supply voltage to optimize power consumption. Such dynamic adjustment process may involve hardware and software loop components to ensure precise control and responsiveness.
For example, programmable delay element 110 may introduce delays to measure timing margins accurately and provide data for determining voltage adjustments. CFFs 118, 120, 122, 124, 126 may capture the state of the signal at various points along the real critical path 104 and provide data on how delays affect the critical path performance. Clock Divider 130 may generate the clock signals for delay calibration and timing measurement. CDC handshake 138 and sync components (e.g., reset sync 144 and CDC sync 146) may provide reliable communication and synchronization across different clock domains and maintain the integrity of timing data used for voltage scaling.
In some examples, system 100's software loop may read the timing margin data from the hardware components, process timing margin data, and make determinations regarding the supply voltage adjustments. In some examples, system 100 may include a method for reading timing margin data including: data acquisition in which the software may read the timing data captured by the flip-flops and process the data to calculate the current timing margins. The software may analyze the timing margins to determine when the current supply voltage is optimal. When the timing margin indicates that there is slack, the software may decide to lower the supply voltage to save power. Conversely, when the timing margins are tight or indicate potential timing violations, the software may increase the supply voltage to ensure reliable operation.
Based on the analysis, the software may send, via processor(s) (not shown) of system 100, control signals to adjust the supply voltage. System 100 hardware components, including the voltage regulators, may respond to such control signals to modify the supply voltage accordingly.
The dynamic adjustment of the supply voltage based on real-time timing margin measurements may allow the circuit to operate at the minimum possible voltage that still meets performance. Such optimization may reduce power consumption without compromising the IC's reliability. By monitoring and adjusting the supply voltage, the DVS mechanism of system 100 may ensure that the IC adapts to changing conditions, such as variations in workload, temperature, and process changes.
The DVS functionality facilitates the reliability and performance of the IC. By using real-time data from the critical path circuit, system 100 may determine voltage adjustments, balancing power savings with reliable operation. The use of a replica critical path 114 may allow for safe testing and calibration, ensuring that voltage adjustments are based on accurate and representative data. The combination of precise hardware measurements and responsive software control allows the critical path circuit to maintain optimal performance under varying conditions. The integration of DVS functionality within the critical path circuit allows the IC to operate efficiently, providing the performance while minimizing power consumption.
In some examples, system 100 includes in-situ monitoring functionality, which may be used for real-time observation and analysis of an IC's performance. By directly monitoring the critical paths (e.g., real critical path 104 and replica critical path 114) within the operational environment of a SoC, in-situ monitoring allows the adjustments to the system to be made based on accurate and current data. In-situ monitoring enhances the reliability and efficiency of the integrated circuit by providing immediate feedback on performance metrics, allowing for dynamic adjustments to timing and voltage parameters.
The in-situ monitoring capabilities of the circuit, as depicted in FIG. 1A and FIG. 1B, may provide a robust mechanism for real-time observation and adjustment. By using feedback from the capture flip-flops, programmable delay elements, and other components, adjustments may be based on accurate and current data. This real-time monitoring may enhance the reliability and efficiency of the IC, enabling it to operate at optimal performance while minimizing power consumption. In some examples, in-situ monitoring capabilities of system 100 may be facilitated by components as illustrated in FIG. 1A and FIG. 1B. Such components may capture, process, and analyze data in real-time, providing a detailed view of the critical path performance.
In some examples, CFFs 118, 120, 122, 124, 126 may be placed along the critical path to capture the state of signals at various points. By recording the data in real-time, CFFs may provide immediate data about timing margins and signal propagation delays. For example, flip-flops may capture a progressively delayed version of the signal, offering a granular view of how delays impact the critical path (e.g., 104). Such data may identify potential timing issues and make adjustments.
Programmable delay element 110 may introduce controlled delays into the signal path, allowing for the simulation of different operational conditions. This allows the circuit to measure the effect of various delays on the critical path in real-time. By adjusting the delay settings dynamically, the system may observe how different timing scenarios impact the overall performance, providing valuable data for optimization.
The real critical path 104 may be the actual operational path within the IC, while the replica critical path 114 may mimic this path for testing and calibration purposes. In-situ monitoring may involve observing the real critical path 104 and the replica critical path 114 to ensure accurate performance data. The ability to switch between the real critical path 104 and the replica critical path 114 allows for monitoring without disrupting operations so that the data remains up-to-date.
The captured data from the flip-flops and delay elements may be processed and analyzed to determine the current state of the real critical path 104. The integration of hardware and software loops facilitates this operation.
XOR gate 132 may combine the outputs of the capture flip-flops to generate a signal that indicates the overall status of the captured data. The multiplexer 135 may then select between this combined signal and the output of the D flip-flop 137, based on the operational mode. Such processed signal may provide a consolidated view of the critical path performance, highlighting any potential timing issues.
D flip-flop 136 may store the processed signal, generating a path failure signature that may provide the current status of the critical path. The path_failure_signature provides a metric for performance and reliability, and may be used by the software to make informed decisions about adjustments. In some examples, the stored data may be maintained in a sticky status register so that the information remains available for long-term observation and analysis.
CDC handshake 138 and sync components (e.g., reset sync 144 and CDC sync 146) may facilitate reliable communication and synchronization across different clock domains. By managing the timing and status updates, CDC handshake 138 and sync components 144, 146 may maintain the integrity of the data used for in-situ monitoring. The CDC handshake may facilitate the transfer of data between the hardware and software components, enabling seamless integration and real-time analysis.
The in-situ monitoring capabilities of the circuit may enhance the reliability and efficiency of the system. By providing real-time observation and immediate feedback, system 100 may dynamically adjust system 100 parameters to optimize performance, for example, via DVS functionality. The real-time data captured by the in-situ monitoring components allows adjustments to be based on accurate and current information. The immediate feedback loop allows for precise tuning of timing margins and supply voltage, tailored to the current operational conditions.
The ability to observe and analyze critical path performance in real-time allows the system to make dynamic adjustments to the supply voltage and timing parameters. This flexibility allows the IC to operate at optimal efficiency, minimizing power consumption while maintaining performance and reliability. Moreover, monitoring and adjustment based on real-time data aids in preventing timing violations and other performance issues that may compromise the reliability of the IC. By addressing potential problems as they arise, system 100 may maintain stable and reliable operation.
As depicted in FIGS. 1A-1B, failure signature analysis may facilitate the detection of timing failures and the interpretation of these failures to provide reliable operation of the integrated circuit (IC) and prevent further timing violations. Such analysis uses delayed capture flip-flops to monitor signal propagation along critical paths and generate failure signatures that indicate timing issues. These signatures are utilized for DVS and other adaptive measures to maintain the IC's performance and reliability. FIG. 1A and FIG. 1B illustrate the hardware components and their interactions in performing this analysis. By generating and analyzing failure signatures, system 100 may dynamically adjust supply voltage and other parameters to maintain optimal performance and reliability. The detailed processing and storage of failure signatures allows the IC to operate efficiently under varying conditions, providing a robust and adaptable solution for modern semiconductor design.
Failure signatures indicate the presence and severity of timing violations in the critical path (e.g., real critical path 104 or replica critical path 114). These signatures highlight areas where the signal timing does not meet the margins, allowing for targeted corrective actions. Moreover, the failure signatures inform the software loop about the current timing margins. Based on this data, the software may adjust the supply voltage dynamically to ensure optimal performance and power consumption. By monitoring and interpreting failure signatures, the system may optimize the timing and performance of the IC. This ongoing analysis ensures that the IC operates within safe and efficient parameters, adapting to changes in workload, temperature, and process variations. Failure signatures provide a long-term record of the critical path performance, allowing for the identification of trends and potential degradation over time. This historical data may be used for predictive maintenance for the long-term reliability of the IC.
Detecting Path Failures with Delayed Capture Flops
Delayed capture flip-flops may detect path failures by introducing intentional delays and observing their effects on signal timing. This method provides a granular view of how signals propagate through the critical path under various conditions. In some examples, a method for detecting path failures may include initializing programmable delay element 110 to introduce a specific delay into the signal path. The signal may travel through the critical path, and the state of the signal may be captured at various points by the CFFs 118, 120, 122, 124, 126. The CFFs 118, 120, 122, 124, 126 may record the delayed signal states, providing data on how the delay affects the timing.
The captured states from the delayed flip-flops may be compared to the expected signal states. Discrepancies may indicate a timing failure in the critical path. Failure signatures may be generated from the comparison of the delayed and expected signal states. These signatures provide information about the timing performance of the critical path and may be used to identify and rectify timing issues.
For example, in some examples, XOR gate 132 may combine the outputs of the capture flip-flops to produce a signal indicating the overall status of the captured data. Multiplexer 135 may select between the combined signal from the XOR gate 132 and the output of the D flip-flop 137, based on the operational mode. D Flip-Flop 137 may store the failure signature, providing a stable and persistent indication of timing failures. In some examples, such signature may be stored in a sticky status register so that the signature remains available for long-term observation and analysis.
Additional channels may be added by expanding the multiplexer 108 in the critical path circuit to enhance scalability and flexibility. The additional channels allow the circuit to handle a greater number of critical paths, thereby enhancing its applicability in complex integrated circuits with numerous timing-critical operations. Expanding the number of channels may involve managing complexity and ensuring accurate phase estimation. Mechanisms and considerations for channel expansion are provided in the context of FIG. 1A and FIG. 1B.
The multiplexer 108 may be expanded to provide for additional channels. In FIG. 1A, the multiplexer 108 may select between various inputs for the programmable delay element 110. To facilitate channel expansion, the multiplexer 108 may be expanded to handle additional inputs, allowing more critical paths to be monitored and tested.
By increasing the number of inputs to the MUX, additional critical paths can be routed through the programmable delay element 110 and capture flip-flops (e.g., 118, 120, 122, 124, 126). This expansion allows the circuit to monitor multiple paths simultaneously, providing a comprehensive analysis of the IC's timing performance. In addition, the expanded multiplexer configuration may be dynamically adjusted to select different critical paths, providing flexibility in testing and monitoring various sections of the IC.
With more channels, additional CFFs (e.g., 118, 120, 122, 124, 126) may be used to handle the increased data. These flip-flops may capture the state of signals at various points along the expanded critical paths so that paths may be monitored accurately. The capture flip-flops may be distributed across the IC to cover different critical paths. This distribution provides that relevant timing information may be captured and analyzed. The modular nature of flip-flops allows for scalability. As more channels are added, corresponding flip-flops may be integrated without significant redesign of the existing circuit.
Expanding the multiplexer may increase the complexity of the critical path circuit. Managing this complexity may allow the circuit to remain efficient and effective. With more channels, the routing of signals may become more complex. Careful design of the signal paths may prevent crosstalk and signal degradation, which may affect the accuracy of the timing measurements. The control logic for the multiplexer 108 may be enhanced to handle the selection of multiple inputs. This may include managing the enable signals and ensuring that the correct paths are selected for monitoring at a given time.
Accurate phase estimation may provide for reliable timing analysis in the expanded circuit. The increased number of channels may use precise synchronization and calibration so that timing data is accurate. Additional channels may introduce variations in delay. The programmable delay element (110) may be calibrated for the paths to account for these variations. This calibration provides that the timing measurements for channels is accurate. The capture flip-flops may be synchronized to ensure that data from channels may be captured at the correct time. This involves precise control of the clock signals and careful timing analysis to prevent skew and jitter. With increased complexity, the likelihood of errors in timing measurements may increase. Implementing robust error detection and correction mechanisms may maintain the integrity of the timing data.
Accurate phase estimation in the expanded circuit may involve several techniques and considerations including: (1) cross-correlation methods, (2) delay line calibration, and (3) phase-locked loops (PLLs). Using cross-correlation methods to compare the captured signals from different channels may help in accurately estimating the phase differences. This method may provide a mathematical approach to identify and correct phase discrepancies. Regular calibration of the delay lines used in the programmable delay element may provide that the delays introduced are steady across channels. This calibration may maintain accurate phase relationships between signals. Integrating PLLs may maintain synchronization between the clock signals used for different channels. PLLs may adjust the phase of the clock signals to align them accurately, so that flip-flops capture data at the correct time.
The software plays a role in phase estimation by processing the captured data and making adjustments. The software may analyze the data captured by the flip-flops to determine the phase relationships between different channels. The software may identify discrepancies and calculate adjustments. Based on the analysis, the software may dynamically adjust the delay settings and control signals to correct phase errors. This real-time adjustment may provide that the phase estimation remains accurate as operational conditions change. The software may implement a feedback loop that may monitor the phase relationships and makes adjustments. This loop may provide that the system remains in sync and that the timing data is reliable.
In the context of FIG. 1A and FIG. 1B, the implementation of replica circuits across different sections of an integrated circuit (IC) may accurately monitor and adjust the performance of the IC. Replica circuits may be used for simulating critical paths without interfering with the actual signal flow, allowing for safe and precise calibration and testing. This section elaborates on the implementation of replica circuits, the use of multiplexers to switch between different critical paths, and the distribution of critical path circuits across large chips.
Replica circuits may mimic the real critical paths within the IC. These circuits may be strategically placed in various sections of the chip to provide monitoring and calibration capabilities. As shown in FIG. 1A, the replica critical path 114 may be a duplicate of the real critical path 104. The replica critical path 114 may be used for testing and calibration without affecting the actual data flow. The input generator 112 may provide the signals to the replica circuits to operate under conditions similar to the real paths. The input generator may simulate the real operational environment to facilitate accurate measurements.
The replica circuits may include the same components and delays as the real critical paths. By replicating the conditions, these circuits may provide a reliable means of measuring and adjusting the performance of the IC. The captured data from the replica circuits may be compared with the real paths to identify timing issues and make adjustments.
Successive approximation register (SAR) analog-to-digital converters (ADCs) may have multiple critical paths that may be monitored. Multiplexers may switch between these paths, allowing a monitoring circuit to handle multiple paths efficiently.
As depicted in FIG. 1A, the multiplexer 108 may switch between different critical paths. The multiplexer 108 may select the input signals for the programmable delay element 110 from various critical paths, real and replica. The multiplexer 108 may dynamically switch between different paths based on the monitoring uses. This flexibility allows the system to focus on different sections of the SAR ADCs.
SAR ADCs may have critical paths associated with their operation, such as those in the comparator and digital logic sections. By using the multiplexer 108 to switch between these paths, the circuit may monitor critical paths individually to provide for accurate timing analysis. For example, in a SAR ADC, the multiplexer 108 may switch between paths related to the most significant bit (MSB) and the least significant bit (LSB) processing so that timing margins for fast and slow signal paths may be monitored and optimized.
For large ICs, distributing critical path circuits across different sections of the chip may provide for comprehensive monitoring and optimization. This distribution allows critical areas to be covered, providing a detailed analysis of the chip's performance.
As shown in FIG. 1A and FIG. 1B, the critical path circuit may include multiple capture flip-flops (118, 120, 122, 124, 126) distributed along the critical paths. These flip-flops may capture the state of signals at various points, providing a granular view of the timing performance. By placing replica circuits and capture flip-flops in different sections of the chip, localized timing issues may be identified and addressed. This localized monitoring may be used for large chips where different sections may exhibit varying performance characteristics.
The modular design of the critical path circuit may allow for scalability. Additional replica circuits and capture flip-flops may be integrated to cover more areas of the chip. The system may monitor different paths based on the operation. For instance, during high-performance operations, critical paths in high-speed logic sections may be prioritized.
The data captured from the distributed critical path circuits may be aggregated for centralized analysis. The software may process this data to provide an overview of the chip's performance. Based on the aggregated data, the software may make dynamic adjustments to the supply voltage and delay settings for different sections of the chip. This ensures that areas operate within optimal timing margins, enhancing the overall performance and reliability of the IC.
FIGS. 2A-2B depict a timing diagram 200 for an operation of system 100. Diagram 200 may provide a visual representation of signal transitions and may capture the critical path circuit, corresponding to the components and functionalities described in FIGS. 1A-1B. Diagram 200 illustrates the timing margins, capture edges, and the generation of the path failure signature, highlighting how system 100 detects and analyzes timing failures.
As shown in FIGS. 2A-2B, diagram 200 includes various signal lines representing the propagation of data through the critical path. The signals shown include the clock (CLK), the real data (D_real), the fake data (D_fake), and multiple delayed data signals (D_4 to D_11). Diagram 200 further illustrates the outputs of the capture flip-flops (Q_real, Q_fake) and the final path_failure_signature (PATH_FAILURE_SIGNATURE[15:0]).
The CLK signal may be the reference clock that synchronizes the operations of the capture flip-flops and other components in the critical path circuit. CLK provides the timing reference for capturing the data transitions. D_real may be the actual data propagating through the real critical path (104 in FIG. 1A) and D_fake may be the data in the replica critical path (114 in FIG. 1A) used for testing and calibration. Delayed Data Signals (D_4 to D_11) may be the data states at various points along the critical path, delayed by different amounts using the programmable delay element (110 in FIG. 1A). These delays simulate different timing conditions to measure the timing margins.
Diagram 200 highlights the concept of timing margins and capture edges, which may be used to detect and analyze timing failures. The timing margin may be the time window within which the data is to be stable before the clock edge to be correctly captured by the flip-flops. Such window includes the setup time required for reliable data capture. Diagram 200 shows the transition region with arriving glitches, indicating the period during which the data signals stabilize before the capture edge. The capture edge may be the point in time when the clock signal triggers the flip-flops to capture the data state. The capture edge may determine whether the data has been correctly latched by the flip-flops. In diagram 200, the capture edge is marked by the rising edge of the CLK signal, aligning with the stable data period.
As discussed above, path_failure_signature may be generated based on the comparison of captured data states from no-delay and delayed captures. Diagram 200 shows how the captured data from the flip-flops may be used to form the path failure signature. For example, Q_real may be the output of the flip-flop capturing the real data (106 in FIG. 1A). Q_fake may be the output of the flip-flop capturing the fake data after being processed through the replica critical path and delayed by the programmable delay element.
Delayed Capture Flip-Flops (Q0 to Qn-1) outputs may be the states of the data captured by the delayed capture flip-flops (118, 120, 122, 124, 126 in FIG. 1A). The outputs (Q0, Q1, Q2 . . . , Qn-2, Qn-1) may correspond to different delay settings, providing a detailed view of the timing margins. Path Failure Signature (PATH_FAILURE_SIGNATURE[15:0] may be formed by combining the outputs of the delayed capture flip-flops and indicating whether the data was captured correctly within the timing margins. The lower portion of the timing diagram shows the path_failure_signature bits 202, where ‘1’ indicates a failure (timing violation) and ‘0’ indicates correct data capture.
Thus, diagram 200 provides a detailed visual analysis of how the critical path circuit may operate in real-time to detect and analyze timing failures. By comparing the no-delay and delayed captures, circuits 101, 103 may identify when the data does not meet the timing margins. This may prevent timing-related errors in the IC. The transition region with arriving glitches highlights areas where timing violations are likely to occur, providing a focus for analysis. Diagram 200 shows how different delay settings affect the timing margins. This information may be used to dynamically adjust the supply voltage and other parameters to optimize performance and reliability. The continuous monitoring and adjustment based on real-time data allow the IC to operate within safe and efficient parameters. System 100 software may read the path_failure_signature and capture data to analyze the timing margins. Based on this analysis, system 100 may make real-time adjustments to the supply voltage and delay settings.
FIG. 3 shows a method 300 for programmable delay calibration of system 100. Method 300 may facilitate optimal performance and reliability of system 100. Such calibration procedure may adjust the programmable delay to a maximum setting and fine-tune such maximum setting based on the reference clock period, providing for accurate timing adjustments across the integrated circuit (IC).
In some examples, calibration initialization of method 300 may include or begin at an operation 302, by setting or programming programmable delay 110 to a maximum index value, MAX_IDX. For example, in some examples, in the context of a 128-tap programmable delay, MAX_IDX may be set to 127. Such initialization provides that delay element 110 in FIG. 1A operates at its maximum delay capacity, providing a baseline for subsequent adjustments.
At on operation 304, method 300 may include setting control signals to commence the calibration. For example, in some examples, the calibration enable signal (calib_en[M]) may be activated, along with the path enable signal (path_enable[M]) and the path clear signal (path_clr[M]). Such signals provide that the critical path circuit ‘M’ may be prepared for calibration. Additionally, the ring oscillator enable signal (rosc_enable[N]) may be initially set to 0, and the ring oscillator reset signal (rosc_reset[N]) may be set to 1, resetting the ring oscillator to a known state. The ring oscillator count input (rosc_cnt_inp) may be set to a default value of 0x1000. In some examples, the value is already set and resetting may be skipped.
In some examples, once the initial control signals are configured, at an operation 306, the path clear (path_clr[M]) and ring oscillator reset (rosc_reset[N]) signals may be deactivated by setting a state to 0. Such action may clear previous states and prepare the circuit for calibration. Deactivating such signals may provide that the programmable delay element 110 and associated components are correctly reset and ready for accurate delay measurement.
The next operation involves enabling the ring oscillator by setting the ring oscillator enable signal (rosc_enable[N]) to 1. The ring oscillator, depicted as part of the clock divider 130 in FIG. 1A, may begin operating and generating a clock signal used for delay calibration. Such clock signal may determine the precise delay introduced by the programmable delay element.
At an operation 308, method 300 includes monitoring ring oscillator completion. In some examples, the status of the ring oscillator may be monitored to check for completion. Such monitoring may be done by evaluating the rosc_done_<N> signal. When the ring oscillator has completed a cycle, the calibration process may proceed to the next operation. If not, the monitoring may continue until the completion signal is received. This operation provides that the ring oscillator has stabilized and is providing an accurate clock signal for delay measurement. The ring oscillator may count cycles of the reference clock signal over a predetermined period.
Upon completion of the ring oscillator cycle, at an operation 310, the delay per tap may be calculated using the formula:
Eqn . 1 Delay - per - tap = [ rosc_cnt _inp × T_ref _clk ] / [ rosc_cnt _out _ < N > × ( MAX_IDX + 1 ) ] .
Eqn. 1 above involves the reference clock period (T_ref_clk) and the count values from the ring oscillator (rosc_cnt_inp and rosc_cnt_out_<N>). The reference clock period may be the period of the clock input to the software-controlled DVS. The programmable delay element (110) introduces controlled timing shifts, which may be quantified using Eqn. 1 to determine the precise delay for the taps.
In some examples, after the delay per tap is calculated, at an operation 312, the control signals may be reset to their initial states to complete the calibration process. The calibration enable (calib_en[M]), path enable (path_enable[M]), and ring oscillator enable (rosc_enable[N]) signals may be set to 0. This reset provides that the circuit is ready for operation with the newly calibrated delay settings.
Method 300 programmable delay calibration process may directly interact with various hardware components shown in FIG. 1A and FIG. 1B. For example, programmable delay element 110 and capture flip-flops (118, 120, 122, 124, 126) in FIG. 1A may introduce and measure the delays. The ring oscillator, part of the clock divider 130, may provide the timing reference for the calibration. In FIG. 1B, CDC sync 146 and reset sync 144 components allow for proper synchronization and resetting of the circuit, while XOR gate 132, multiplexer 135, and D flip-flop 137 process and store the path failure signature, which may evaluate the timing performance.
By calibrating the programmable delay, system 100 may dynamically adjust the delay introduced in the critical path, providing for accurate timing margins and optimal performance. Such calibration may maintain the reliability and efficiency of system 100 ICs under varying operational conditions.
In the examples herein, system 100 components (e.g., 102-146) may include a number of processing units and/or CPUs. One or more aspects or features of the subject matter described herein may be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs, field programmable gate arrays (FPGAs) computer hardware, firmware, software, and/or combinations thereof. These various aspects or features may include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. The programmable system or computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
These computer programs, which can also be referred to programs, software, software applications, applications, components, or code, include machine instructions for a programmable processor, and can be implemented in a high-level procedural language, an object-oriented programming language, a functional programming language, a logical programming language, and/or in assembly/machine language. As used herein, the term “machine-readable medium” (or “computer readable medium”) refers to any computer program product, apparatus and/or device, such as for example magnetic discs, optical disks, memory, and Programmable Logic Devices (PLDs), used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” (or “computer readable signal”) refers to any signal used to provide non-transitory machine readable instructions and/or data to a programmable processor. The machine-readable medium can store such machine instructions non-transitorily, such as for example as would a non-transient solid-state memory or a magnetic hard drive or any equivalent storage medium. The machine-readable medium can alternatively or additionally store such machine instructions in a transient manner, such as for example as would a processor cache or other random access memory associated with one or more physical processor cores.
To provide for interaction with a user, one or more aspects or features of the subject matter described herein can be implemented on a computer having a display device (not shown), such as for example a cathode ray tube (CRT) or a liquid crystal display (LCD) or a light emitting diode (LED) monitor for displaying information to the user and a keyboard and a pointing device, such as for example a mouse or a trackball, by which the user may provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well. For example, feedback provided to the user can be any form of sensory feedback, such as for example visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including, but not limited to, acoustic, speech, or tactile input. Other possible input devices include, but are not limited to, touch screens or other touch-sensitive devices such as single or multi-point resistive or capacitive trackpads, voice recognition hardware and software, optical scanners, optical pointers, digital image capture devices and associated interpretation software, and the like.
The examples described herein may be embodied in systems, apparatus, methods, computer programs and/or articles depending on the desired configuration. Any methods or the logic flows depicted in the accompanying figures and/or described herein do not necessarily require the particular order shown, or sequential order, to achieve desirable results. The implementations set forth in the foregoing description do not represent all implementations consistent with the subject matter described herein. Instead, they are merely some examples consistent with aspects related to the described subject matter. Although a few variations have been described in detail above, other modifications or additions are possible. In particular, further features and/or variations can be provided in addition to those set forth herein. The implementations described above can be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of further features noted above. Furthermore, above described advantages are not intended to limit the application of any issued claims to processes and structures accomplishing any or all of the advantages. Furthermore, any reference to this disclosure in general or use of the word “example” in the singular is not intended to imply any limitation on the scope of the claims set forth below. Multiple examples may be set forth according to the limitations of the multiple claims issuing from this disclosure, and such claims accordingly define the example(s) herein, and their equivalents, that are protected thereby.
In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word “comprising” or “including” does not exclude the presence of elements or steps other than those listed in a claim. In a device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. In any device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain elements are recited in mutually different dependent claims does not indicate that these elements cannot be used in combination.
Although the description provided above provides detail for the purpose of illustration based on what is currently considered to be the most practical and preferred examples, it is to be understood that such detail is solely for that purpose and that the disclosure is not limited to the expressly disclosed examples, but, on the contrary, is intended to cover modifications and equivalent arrangements that are within the spirit and scope of the appended claims. For example, it is to be understood that the present disclosure contemplates that, to the extent possible, one or more features of any example can be combined with one or more features of any other example.
1. A critical path tracking system for an integrated circuit (IC), comprising:
a data input and a clock input;
a real critical path comprising a first set of logic receiving the data input and the clock input, and generating a first output;
a replica critical path comprising a second set of logic receiving the data input and the clock input, and generating a second output, wherein the second set of logic mimics the first set of logic;
a plurality of capture flip-flops coupled to the real critical path and the replica critical path, wherein the plurality of capture flip-flops are operable to capture the first output and the second output at one or more points along the real critical path and the replica critical path;
a programmable delay coupled to the replica critical path, wherein the programmable delay is operable to output adjustable delays to the second output to generate a delayed second output;
a multiplexer operable to select between the first output and the delayed second output for at least one of the plurality of the capture flip-flops;
a comparator operable to compare the first output and the delayed second output of the plurality of the capture flip-flops to generate a path failure signature; and
a control circuit operable to dynamically adjust, based on the path failure signature, one or more settings of the programmable delay or a supply voltage of the IC.
2. The system of claim 1, further comprising a software loop operable to: read the path failure signature, determine one or more timing margins, and transmit one or more control signals to the control circuit to adjust a supply voltage of the IC.
3. The system of claim 2, wherein the control circuit implements a feedback loop to monitor the one or more timing margins and adjust the supply voltage and delay settings in real-time.
4. The system of claim 1, wherein the programmable delay is calibrated using a ring oscillator to determine the delay per tap.
5. The system of claim 4, wherein the ring oscillator is operable to operate during a calibration mode, and the control circuit is operable to enable the ring oscillator during calibration.
6. The system of claim 1, wherein the plurality of the capture flip-flops are distributed across different sections of the IC to monitor timing margins at various critical points.
7. The system of claim 1, wherein the multiplexer is operable to switch between multiple critical paths.
8. The system of claim 7, wherein the multiplexer dynamically selects different critical paths based on operational limits of the IC.
9. The system of claim 1, further comprising a synchronization circuit operable to facilitate reliable data transfer and synchronization across different clock domains within the IC.
10. The system of claim 9, wherein the synchronization circuit includes a clock domain crossing (CDC) handshake component to manage communication for the critical path tracking system and the IC.
11. The system of claim 1, wherein the control circuit adjusts the supply voltage using pulse-width modulation (PWM) or inter-integrated circuit (I2C)-controlled power management integrated circuits (PMICs).
12. The system of claim 1, wherein the path_failure_signature includes a sticky status register that maintains a failure status.
13. The system of claim 1, wherein the critical path tracking system is operable to operate in a first mode and a calibration mode, wherein the calibration mode calibrates the programmable delay and the first mode tracks and adjusts an operation of the IC.
14. A method for calibrating a programmable delay element in a critical path tracking system of an integrated circuit (IC), comprising:
setting the programmable delay element to a maximum delay setting;
enabling a calibration mode by setting one or more of: a calibration enable signal, a path enable signal, or a path clear signal;
initializing a ring oscillator operable to output a reference clock signal, wherein the ring oscillator is coupled to the programmable delay element;
determining a delay output by the programmable delay element using the ring oscillator, wherein the ring oscillator counts cycles of the reference clock signal over a predetermined period;
determining a delay per tap value based on the delay output and the reference clock signal;
adjusting, based on the delay per tap value, the programmable delay element; and
disabling the calibration mode by resetting the one or more of: the calibration enable signal, the path enable signal, or the path clear signal thereby ending the calibration mode.
15. The method of claim 14, further comprising setting a ring oscillator reset signal to initialize the ring oscillator before enabling the calibration mode.
16. The method of claim 15, further comprising setting a ring oscillator enable signal to activate the ring oscillator for the calibration mode.
17. The method of claim 14, wherein determining the delay output by the programmable delay element includes counting a number of cycles of the ring oscillator output over the predetermined period.
18. The method of claim 14, wherein determining the delay per tap value includes using:
Delay-per-tap=[rosc_cnt_inp×T_ref_clk]/[rosc_cnt_out×(MAX_IDX+1)],
wherein rosc_cnt_inp is an input count, T_ref_clk is a period of the reference clock, rosc_cnt_out is an output count, and MAX_IDX is a maximum index of the programmable delay element.
19. The method of claim 14, wherein adjusting the programmable delay element includes reprogramming the delay settings based on a calculated delay per tap value to output uniform timing margins across different ICs.
20. A method for dynamically scaling supply voltage in an integrated circuit (IC) using a critical path tracking system, comprising:
tracking a real critical path and a replica critical path within the IC using a plurality of capture flip-flops to capture timing data at various points along the paths;
determining one or more delays to the replica critical path using a programmable delay element;
selecting between the real critical path and the replica critical path using a multiplexer to provide inputs to the plurality of the capture flip-flops;
comparing the timing data captured from the real critical path and the delayed replica critical path to determine, based on the comparing, one or more timing margins;
generating a path_failure_signature based on the one or more timing margins, wherein the path_failure_signature indicates timing violations within one or more of the real critical path or the replica critical path;
determining, using a control circuit, adjustments to a supply voltage based on the path failure signature; and
adjusting the supply voltage of the IC dynamically based on the determined adjustments to the supply voltage.