bisect_signal
Find when a signal condition first becomes true using automated binary search within a simulation time range. This tool saves checkpoints and repeatedly restores runs to narrow down the exact occurrence time.
Instructions
Find when a signal condition first becomes true using automated binary search.
Internally saves checkpoints and repeatedly restores/runs with watchpoints to narrow down the exact time. Returns iteration log and final time range.
Args: signal: Full hierarchical signal path. op: Comparison operator (e.g. "=="). value: Target value (e.g. "8'h11"). start_ns: Start of search range in nanoseconds. end_ns: End of search range in nanoseconds. precision_ns: Stop when range is narrower than this (default 1000ns).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| signal | Yes | ||
| op | Yes | ||
| value | Yes | ||
| start_ns | Yes | ||
| end_ns | Yes | ||
| precision_ns | No |
Implementation Reference
- src/xcelium_mcp/server.py:484-510 (handler)The bisect_signal tool implementation sends a command to the TclBridge.
async def bisect_signal( signal: str, op: str, value: str, start_ns: int, end_ns: int, precision_ns: int = 1000, ) -> str: """Find when a signal condition first becomes true using automated binary search. Internally saves checkpoints and repeatedly restores/runs with watchpoints to narrow down the exact time. Returns iteration log and final time range. Args: signal: Full hierarchical signal path. op: Comparison operator (e.g. "=="). value: Target value (e.g. "8'h11"). start_ns: Start of search range in nanoseconds. end_ns: End of search range in nanoseconds. precision_ns: Stop when range is narrower than this (default 1000ns). """ bridge = _get_bridge() cmd = ( f"__BISECT__ {signal} {op} {value} {start_ns} {end_ns} {precision_ns}" ) result = await bridge.execute(cmd, timeout=600.0) return result