|
CIRCT 24.0.0git
|
Public Member Functions | |
| __init__ (self, collection) | |
| int | __len__ (self) |
| Union[DataflowPath, List[DataflowPath]] | __getitem__ (self, Union[slice, int] index) |
| DataflowPath | longest_path (self) |
| DataflowPath | get_by_delay_ratio (self, float ratio) |
| None | print_summary (self) |
| merge (self, "LongestPathCollection" src) | |
| drop_non_critical_paths (self, bool per_end_point=True) | |
Public Attributes | |
| collection = collection | |
| length = self.collection.get_size() | |
A collection of timing paths sorted by delay (longest first).
This class provides a Python wrapper around the C++ LongestPathCollection,
offering convenient access to timing paths with caching for performance.
The paths are pre-sorted by delay in descending order.
Attributes:
collection: The underlying C++ collection object
length: Number of paths in the collection
| synth.LongestPathCollection.__init__ | ( | self, | |
| collection ) |
Initialize the collection wrapper.
Args:
collection: The underlying C++ LongestPathCollection object
Definition at line 246 of file synth.py.
Referenced by drop_non_critical_paths(), and merge().
| Union[DataflowPath, List[DataflowPath]] synth.LongestPathCollection.__getitem__ | ( | self, | |
| Union[slice, int] | index ) |
Get a specific path from the collection by index.
Supports both integer and slice indexing. Integer indices can be negative.
Args:
index: Integer index or slice object to access paths
Returns:
DataflowPath or list of DataflowPaths for slice access
Raises:
IndexError: If index is out of range
Definition at line 263 of file synth.py.
References circt::hw::InnerSymbolNamespaceCollection.collection, collection, and length.
| int synth.LongestPathCollection.__len__ | ( | self | ) |
Get the number of paths in the collection.
Definition at line 259 of file synth.py.
References length.
Referenced by om.List.__iter__().
| synth.LongestPathCollection.drop_non_critical_paths | ( | self, | |
| bool | per_end_point = True ) |
Drop all paths except the longest path per end point or start point.
Args:
per_end_point: Whether to keep only the longest path per end point
(True) or per start point (False)
Definition at line 336 of file synth.py.
References comb.ExtractOpBuilder.__init__(), comb.ICmpOpBuilder.__init__(), fsm.MachineOp.__init__(), fsm.StateOp.__init__(), hw.HWModuleExternOp.__init__(), hw.HWModuleOp.__init__(), hw.InstanceBuilder.__init__(), om.Evaluator.__init__(), om.List.__init__(), om.Object.__init__(), seq.CompRegClockEnabledOp.__init__(), seq.CompRegOp.__init__(), sv.IfDefOp.__init__(), sv.RegOp.__init__(), sv.SVVerbatimModuleOp.__init__(), sv.SVVerbatimSourceOp.__init__(), sv.VarOp.__init__(), sv.WireOp.__init__(), synth.Instance.__init__(), __init__(), circt::hw::InnerSymbolNamespaceCollection.collection, collection, and drop_non_critical_paths().
Referenced by drop_non_critical_paths().
| DataflowPath synth.LongestPathCollection.get_by_delay_ratio | ( | self, | |
| float | ratio ) |
Get the path at the specified position in the delay-sorted collection.
Since paths are sorted by delay in descending order, higher ratios
correspond to paths with higher delays (closer to the critical path).
Args:
ratio: Position ratio between 0.0 and 1.0
(e.g., 1.0 = longest delay path, 0.0 = shortest delay path,
0.95 = path among the top 5% slowest paths)
Returns:
DataflowPath at the specified position ratio
| DataflowPath synth.LongestPathCollection.longest_path | ( | self | ) |
| synth.LongestPathCollection.merge | ( | self, | |
| "LongestPathCollection" | src ) |
Merge another collection into this one.
Args:
src: The collection to merge into this one
Definition at line 326 of file synth.py.
References comb.ExtractOpBuilder.__init__(), comb.ICmpOpBuilder.__init__(), fsm.MachineOp.__init__(), fsm.StateOp.__init__(), hw.HWModuleExternOp.__init__(), hw.HWModuleOp.__init__(), hw.InstanceBuilder.__init__(), om.Evaluator.__init__(), om.List.__init__(), om.Object.__init__(), seq.CompRegClockEnabledOp.__init__(), seq.CompRegOp.__init__(), sv.IfDefOp.__init__(), sv.RegOp.__init__(), sv.SVVerbatimModuleOp.__init__(), sv.SVVerbatimSourceOp.__init__(), sv.VarOp.__init__(), sv.WireOp.__init__(), synth.Instance.__init__(), __init__(), circt::hw::InnerSymbolNamespaceCollection.collection, collection, and merge().
Referenced by merge().
| None synth.LongestPathCollection.print_summary | ( | self | ) |
| synth.LongestPathCollection.collection = collection |
Definition at line 252 of file synth.py.
Referenced by __getitem__(), drop_non_critical_paths(), and merge().
| synth.LongestPathCollection.length = self.collection.get_size() |
Definition at line 253 of file synth.py.
Referenced by __getitem__(), and __len__().