Path margin monitoring
A method includes determining a plurality of threshold margins corresponding to a plurality of functional paths in an electronic circuit. The method further includes storing the plurality of threshold margins corresponding to the plurality of functional paths in a memory. The method further includes receiving a first trigger from a processing device. The method further includes responsive to receiving the first trigger, monitoring at least one of the plurality of threshold margins corresponding to at least one of the plurality of functional paths in view of a previously determined threshold margin stored in the memory and corresponding to the at least one of the plurality functional paths.
1 . A method comprising:
determining a plurality of threshold margins corresponding to a plurality of functional paths in an electronic circuit;
storing the plurality of threshold margins corresponding to the plurality of functional paths in a memory;
receiving a first trigger from a processing device;
responsive to receiving the first trigger, capturing first path margin monitoring (PMM) data from a first section of the electronic circuit and second PMM data from a second section of the electronic circuit during in-field operation of the electronic circuit, wherein the first PMM data and the second PMM data each comprise at least one of the plurality of functional paths corresponding to the plurality of threshold margins in view of a previously determined threshold margin stored in the memory and corresponding to the at least one of the plurality functional paths for a respective section of the electronic circuit; and
causing, by the processing device, a first feedback operation to be performed on the first section of the electronic circuit based on the first PMM data captured during the in-field operation of the electronic circuit, and causing a second feedback operation, different from the first feedback operation, to be performed on the second section of the electronic circuit based on the second PMM data captured during the in-field operation of the electronic circuit.
2 . The method of claim 1 , wherein the plurality of threshold margins are determined using automatic test pattern generation (ATPG) test patterns generated using scan chains, and wherein the plurality of threshold margins and ATPG test patterns are stored in the memory as path margin monitoring (PMM) packets.
3 . The method of claim 1 , further comprising:
initializing a PMM idle state;
waiting for the first trigger from the processing device; and
responsive to receiving the first trigger, monitoring the at least one of the plurality of threshold margins corresponding to the at least one of the plurality functional paths in view of the previously determined threshold margin stored in the memory and corresponding to the at least one of the plurality functional paths.
4 . The method of claim 3 , further comprising:
determining, in response to detecting a degradation of the at least one of the plurality of functional paths, an updated threshold margin corresponding to the at least one of the plurality of functional paths that is degraded;
storing the updated threshold margin corresponding to the at least one of the functional paths that is degraded in the memory;
reinitializing the PMM idle state; and
waiting for a second trigger from the processing device.
5 . The method of claim 3 , further comprising:
receiving an interrupt from the processing device;
reinitializing the PMM idle state; and
waiting for a second trigger from the processing device.
6 . The method of claim 1 , wherein determining the plurality of threshold margins comprises:
configuring a path monitoring unit (PMU) comprising a path select multiplexer and a delay select multiplexer, the delay select multiplexer having at least one delayed input and one un-delayed input;
selecting a functional path of the plurality of functional paths using the path select multiplexer;
selecting a delayed input using the delay select multiplexer, wherein the delayed input has a delay, the delay to be applied to the selected functional path of the plurality of functional paths;
sending a functional signal via the selected functional path with the delay applied;
determining if the functional signal fails to reach an end of the selected functional path with the delay applied before a cycle of a clock signal ends;
determining, in response to the functional signal failing to reach the end of the selected functional path with the delay applied before the cycle of the clock signal ends, a threshold margin of the selected functional path based on a greatest amount of delay applied to the functional path wherein the functional signal reaches the end of the selected functional path with the delay applied before the cycle of the clock signal ends; and
storing the determined threshold margin corresponding to the selected functional path in the memory.
7 . The method of claim 1 , wherein the monitoring comprises:
configuring a path monitoring unit (PMU) comprising a path select multiplexer and a delay select multiplexer;
selecting a functional path of the plurality of functional paths using the path select multiplexer;
selecting a delay to be applied to the selected functional path of the plurality of functional paths using the delay select multiplexer, the functional path having an associated threshold margin of the plurality of threshold margins;
sending a functional signal via the selected functional path, the selected functional path having a functional path time; and
determining if the functional path time with the delay applied exceeds the associated threshold margin.
8 . The method of claim 7 , further comprising:
determining an updated functional path time and an updated threshold margin, in response to determining that the functional path time with the delay applied exceeds the associated threshold margin; and
storing the updated functional path time and updated threshold margin associated with the selected functional path in the memory.
9 . A non-transitory computer-readable storage medium storing instructions which, when executed, cause a processing device to perform operations comprising:
determining a plurality of threshold margins corresponding to a plurality of functional paths in an electronic circuit;
storing the plurality of threshold margins corresponding to the plurality of functional paths in a memory;
receiving a first trigger from a processing device;
responsive to receiving the first trigger, capturing first path margin monitoring (PMM) data from a first section of the electronic circuit and second PMM data from a second section of the electronic circuit during in-field operation of the electronic circuit, wherein the first PMM data and the second PMM data each comprise at least one of the plurality of functional paths corresponding to the plurality of threshold margins in view of a previously determined threshold margin stored in the memory and corresponding to the at least one of the plurality functional paths for a respective section of the electronic circuit; and
causing, by the processing device, a first feedback operation to be performed on the first section of the electronic circuit based on the first PMM data captured during the in-field operation of the electronic circuit, and causing a second feedback operation, different from the first feedback operation, to be performed on the second section of the electronic circuit based on the second PMM data captured during the in-field operation of the electronic circuit.
10 . The non-transitory computer-readable storage medium of claim 9 ,
wherein the plurality of threshold margins are determined using automatic test pattern generation (ATPG) test patterns generated using scan chains, and wherein the plurality of threshold margins and ATPG test patterns are stored in the memory as path margin monitoring (PMM) packets.
11 . The non-transitory computer-readable storage medium of claim 9 , the operations further comprising:
initializing a PMM idle state;
waiting for the first trigger from the processing device; and
responsive to receiving the first trigger, monitoring the at least one of the plurality of threshold margins corresponding to the at least one of the plurality functional paths in view of the previously determined threshold margin stored in the memory and corresponding to the at least one of the plurality functional paths.
12 . The non-transitory computer-readable storage medium of claim 11 , the operations further comprising:
determining, in response to detecting a degradation of the at least one of the plurality of functional paths, an updated threshold margin corresponding to the at least one of the plurality of functional paths that is degraded;
storing the updated threshold margin corresponding to the at least one of the functional paths that is degraded in the memory;
reinitializing the PMM idle state; and
waiting for a second trigger from the processing device.
13 . The non-transitory computer-readable storage medium of claim 11 , the operations further comprising:
receiving an interrupt from the processing device;
reinitializing the PMM idle state; and
waiting for a second trigger from the processing device.
14 . The non-transitory computer-readable storage medium of claim 9 , the operations further comprising:
configuring a path monitoring unit (PMU) comprising a path select multiplexer and a delay select multiplexer, the delay select multiplexer having at least one delayed input and one un-delayed input;
selecting a functional path of the plurality of functional paths using the path select multiplexer;
selecting a delayed input using the delay select multiplexer, wherein the delayed input has a delay, the delay to be applied to the selected functional path of the plurality of functional paths;
sending a functional signal via the selected functional path with the delay applied;
determining if the functional signal fails to reach an end of the selected functional path with the delay applied before a cycle of a clock signal ends;
determining, in response to the functional signal failing to reach the end of the selected functional path with the delay applied before the cycle of the clock signal ends, a threshold margin of the selected functional path based on a greatest amount of delay applied to the functional path wherein the functional signal reaches the end of the selected functional path with the delay applied before the cycle of the clock signal ends; and
storing the determined threshold margin corresponding to the selected functional path in the memory.
15 . The non-transitory computer-readable storage medium of claim 9 , the operations further comprising:
configuring a path monitoring unit (PMU) comprising a path select multiplexer and a delay select multiplexer;
selecting a functional path of the plurality of functional paths using the path select multiplexer;
selecting a delay to be applied to the selected functional path of the plurality of functional paths using the delay select multiplexer, the functional path having an associated threshold margin of the plurality of threshold margins;
sending a functional signal via the selected functional path, the selected functional path having a functional path time; and
determining if the functional path time with the delay applied exceeds the associated threshold margin.
16 . The non-transitory computer-readable storage medium of claim 15 , the operations further comprising:
determining an updated functional path time and an updated threshold margin, in response to determining that the functional path time with the delay applied exceeds the associated threshold margin; and
storing the updated functional path time and updated threshold margin associated with the selected functional path in the memory.
17 . A system comprising:
a memory; and
a first processing device coupled to the memory, the first processing device to:
determine a plurality of threshold margins corresponding to a plurality of functional paths in an electronic circuit;
store the plurality of threshold margins corresponding to the plurality of functional paths in the memory;
receive a first trigger from a second processing device;
responsive to receiving the first trigger, capture path margin monitoring (PMM) data from a first section of the electronic circuit and second PMM data from a second section of the electronic circuit during in-field operation of the electronic circuit, wherein the first PMM data and the second PMM data each comprise at least one of the plurality of functional paths corresponding to the plurality of threshold margins in view of a previously determined threshold margin stored in the memory and corresponding to the at least one of the plurality functional paths for a respective section of the electronic circuit; and
cause, by the first processing device, a first feedback operation to be performed on the first section of the electronic circuit based on the first PMM data captured during the in-field operation of the electronic circuit, and cause a second feedback operation, different from the first feedback operation, to be performed on the second section of the electronic circuit based on the second PMM data captured during the in-field operation of the electronic circuit.
18 . The system of claim 17 , wherein the plurality of threshold margins are determined using automatic test pattern generation (ATPG) test patterns generated using scan chains, and wherein the plurality of threshold margins and ATPG test patterns are stored in the memory as path margin monitoring (PMM) packets.
19 . The system of claim 17 , the first processing device to further:
initialize a PMM idle state;
wait for the first trigger from the second processing device; and
responsive to receiving the first trigger, monitoring the at least one of the plurality of threshold margins corresponding to the at least one of the plurality functional paths in view of the previously determined threshold margin stored in the memory and corresponding to the at least one of the plurality functional paths.
20 . The system of claim 19 , the first processing device to further:
determine, in response to detecting a degradation of the at least one of the plurality of functional paths, an updated threshold margin corresponding to the at least one of the plurality of functional paths that is degraded;
store the updated threshold margin corresponding to the at least one of the functional paths that is degraded in the memory;
reinitialize the PMM idle state; and
wait for a second trigger from the second processing device.