The waveform window is able to display digital simulation output. This simulation output can come from external simulators (such as Verilog and ArchSim) or built-in simulators (such as ALS and IRSIM). When displaying the results of external simulators, the system reads the simulation output and shows it. When internal simulators are displayed, you have the additional capability of changing the stimuli.

The digital waveform window looks like the picture below. Note also that there is a side bar with a cell explorer in the window, just like in all windows, but the explorer has a "SIGNALS" section that lists the signals found in the simulation.

#### Wave Panels

The waveform window contains a set of panels, each with a signal name and signal waveform. In each panel, signal names are shown on the left, and their waveform on the right. Signals can be high (line at the top), low (line at the bottom), "X" (solid bar from top to bottom), or "Z" (solid bar in the middle). Between the name and the waveform are two control buttons:

- Close (an "X") to remove that panel from the waveform window.
- Hide to stop displaying the panel, but keep it available (it can be restored by selecting its name from the popup at the top of the waveform window).

The waveforms can be single signals or busses. Busses are collections of single signals that display integer values (for example, "himb[1:10]"). To expand a bus, and show its individual signals in separate panels, double-click on its name. To contract the bus (removing its individual signals), double-click on the bus name again.

Although the color of the waveforms is usually the same, it can vary with the strength of the signal. To enable such a display, check "Multistate display" in the Simulators Preferences (in menu File / Preferences..., "Tools" section, "Simulators" tab). To control the actual colors used in multistate display, use the Layers Preferences (in menu File / Preferences..., "Display" section, "Layers" tab) and set the colors for "WAVEFORM: OFF STRENGTH", "WAVEFORM: NODE (WEAK) STRENGTH", "WAVEFORM: GATE STRENGTH", and "WAVEFORM: POWER STRENGTH" (see Section 4-6-2).

You can select a signal by selecting either its name or the actual waveform. A selected signal is highlighted, and the selected panel is marked with a bold white line (see the "out" signal above). Note that when you click on a signal, the equivalent network in the associated schematic or layout window is also highlighted (more on this below).

You can rearrange the order of the signals by dragging their names to a new location.

You can add a new panel to the waveform window by double-clicking on its name in the "SIGNALS" area (or by dragging that name to the waveform part on the right). If the layout or schematics cell that produced the simulation is being displayed in another window, and the currently selected network in that window is found in the simulation output, then that output can be added to the waveform window with the Add to Waveform in New Panel command (in menu Edit / Selection). You can also use the Remove from Waveform command to remove the currently selected network from the waveform display.

The order of signals in the waveform window is saved in the original cell so that subsequent simulations will show the same signals. You can also save the configuration of the waveform window with the Save Waveform Window Configuration to Disk... command (in menu Window / Waveform Window) and you can restore the configuration with the Restore Waveform Window Configuration from Disk... command.

#### Time Control

Two vertical cursors appear in the window, called "main" and "extension" (the extension cursor is dotted). Their time values and their difference are shown at the top of the window. You can click over the cursors and drag them to different time locations. You can also use the "Center" buttons to bring these cursors to the center of the display.

The time axis of the simulation window can be controlled with the appropriate Window menu commands. Use Zoom Out and Zoom In to scale the time axis by a factor of two. Use Focus on Highlighted (in menu Window / Special Zoom) to display the range between the main and extension cursors.

| Besides controlling time with menu commands, you can also use the Pan and Zoom tools of the toolbar to change the view. You can also adjust time by clicking-and-dragging in the time axis at the top. |

The pan tool lets you smoothly shift time when you click and drag. In the zoom tool, you zoom into an area by clicking and dragging out that area. To zoom out, hold the shift key and click in the center of the desired area.

The time axis is drawn linearly, but it can be changed to a logarithmic scale by right-clicking on the ruler and choosing "Logarithmic" (use "Linear" to restore the scale).

The different panels in the waveform window are locked in time: they all show the same range of time, as shown at the top of the waveform window. If you click on the "time lock" button at the top of the waveform window (looks like a lock with the time on it: ) then time is unlocked, and each panel has its own time scale. Now individual panels can show a different range of time than the rest.

Electric does crossprobing between the waveform window and an edit window with the original circuit. If the original circuit is being displayed, selection in the waveform window is mirrored in that cell. Also, whenever the main time cursor changes, the electrical state of the circuit is shown in that cell. Wires are colored differently according to their high/low/X/Z value in the simulation at that time. If you connect Simulation Probe nodes to any part of the circuit, those nodes light up with the appropriate color instead, which allows better visualization of activity patterns (see Section 7-6-3). You can control the colors used in crossprobing by using the Layers Preferences (in menu File / Preferences..., "Display" section, "Layers" tab) and setting the colors for "WAVEFORM: CROSSPROBE LOW", "WAVEFORM: CROSSPROBE HIGH", "WAVEFORM: CROSSPROBE UNDEFINED", and "WAVEFORM: CROSSPROBE FLOATING" (see Section 4-6-2).

For best visualization of the simulation activity, there is a set of VCR buttons to control an animation of the main time cursor. The play rate can be controlled by the up-arrow and down-arrow buttons, to the right of the VCR controls. These make the playback run faster or slower. As the time cursor sweeps across the waveform window, the original circuit can be seen to change levels.

These window functions apply to the digital simulation windows:

- Window / Fill Window make all data fit in window. If you wish to fill only in X, use the Fill Only in X command (in the Window / Waveform Window menu). To fill only in Y, use Fill Only in Y.
- Window / Zoom Out show twice as much time.
- Window / Zoom In show half as much time.
- Window / Special Zoom / Focus on Highlighted show from main to extension cursors.
- Window / Pan Left show earlier time.
- Window / Pan Right show later time.
- Window / Special Pan / Center Cursor shifts the time so that the location of the cursor is in the center (this command is only sensibly executed by using its quick-key binding).
- "Pan" tool in tool bar freehand drag of time.
- "Zoom" tool in tool bar drag area to zoom in, hold shift to zoom out.
- "Measure" tool in tool bar for measuring time (see Section 4-7-4).

#### Stimuli (for Built-in Simulators only)

When the waveform window displays the output of built-in simulators, you can set stimuli on the signals to affect the simulation. Each stimulus that you set is marked with a large red box at the time of the stimulus (see signals "cc" and "in"). You can select the stimuli by clicking on the red box. A selected stimulus has a green box in it (see the rightmost stimulus on signal "in").

To set stimuli, select either a waveform or the equivalent network in the original schematic or layout. Once selected, use the Set Signal High at Main Time (in menu Tools / Simulation (Built-in)) to make that signal go to "high" at the time indicated by the Main cursor. Use Set Signal Low at Main Time to set the selected signal "low", and use Set Signal Undefined at Main Time to set the selected signal "undefined" (X). Use the Get Information about Selected Signals command to show stimuli and other information on the selected signals.

To remove the selected stimulus, use the Clear Selected Stimuli command. To remove all stimuli on a the selected waveforms, use Clear All Stimuli on Selected Signals. To remove all stimuli in the simulation, use Clear All Stimuli.

Besides simple test vectors, the ALS simulator can also set clock patterns on the currently selected signal by using the Set Clock on Selected Signal... command. There are two ways to specify a clock: by frequency (in cycles per second) or period (in seconds). |

Note that the clock cycles infinitely, but Electric generates simulation events to fill only the current waveform window. If you want more clock events generated, zoom-out the waveform window before issuing the clock command.

Once a set of stimuli has been established, you can save it to disk with the Save Stimuli to Disk... command. These stimuli can be restored later with the Restore Stimuli from Disk... command. Each built-in simulator has its own format for saving stimuli.

The Simulators Preferences (in menu File / Preferences..., "Tools" section, "Simulators" tab), offers some controls for built-in simulators.

- "Auto advance time" requests that the main time cursor advance after each stimulus is added. This allows each stimulus added to occur at a new time.
- "Resimulate each change" requests that the simulator rerun the simulation after any change to the stimuli. Because the process of simulating a circuit can be costly, you might want to delay resimulation until all stimuli have been set. If you uncheck this item, you must issue the Update Simulation Window command to re-run the simulation.

#### Other Controls

At the top of the waveform window, above the signal names, are many useful controls. Those relating to time have already been discussed. Here are the remaining buttons:

- "Refresh" Refreshing the simulation causes it to reload from the original source. In the case of external simulation, it is assumed that the simulation was re-run and the output file is different, so the simulation output file is re-read. In the case of built-in simulators, it is assumed that the original circuit has changed, so it is re-evaluated and reloaded into the simulator. This function is also available with the Refresh Simulation Data command (in menu Window / Waveform Window).
- The Panel popup This is a list of all panels, including the hidden ones. Selecting a panel from this list toggles its "hidden" state, making a visible one disappear, and making a hidden one reappear.
- "Grow" and "Shrink" These buttons, which show a waveform being stretched or squeezed, cause the minimum panel size to change. By shrinking the panel size, more of them can fit in the window without having to use a slider to access them. Also, the panels can be resized individually by dragging any of the dividers.
- Plotting can be done with special commands in the Window / Waveform Window submenu (see Section 4-8 for more on printing).