Filtering information is not so easy when schematics are not available. For this reason, the navigator should support multiple navigation levels. Navigation levels can determine how a circuit is viewed when tracking values. Low-level navigation may allow tracking values as they propagate from primitive to primitive. Higher level navigation tracks values at a higher level of abstraction.
Users select the level they desire.
For this we need to be able to easily view which threads are active, which ones are blocked, and what is each blocked thread waiting for, rather than simple state machines, so we can follow the complex interactions of higher-level protocols. Within each thread we may need to be able to look at higher abstraction objects, such as packets, or other classes of objects, rather than just scalars and buses, to better understand the flow of data. Tracking Values in Time During interactive debugging, one is limited to tracking values at the current simulation time. Imagine, tracking a value to the output of a flip-flop. That value was clocked into the flip-flop some time earlier in the simulation.