Main Content

Data Mining With Signal Integrity Viewer

For those experienced using Serial Link Designer, you are probably aware that even the simplest simulations can produce mountains of data and sorting through the data can be time consuming. As the complexity of the channel and number of variables increase, sorting through that data can be ever more daunting. This example is set up to show some of the tools available to give the user control, to focus in on the results and variables of interest and make design decisions on large data sets.

In this example, data mining and management features in the Signal Integrity Viewer will be covered. A project is included which can be used to replicate the steps shown in this document or for experimentation with these features.

There are two workflows that will be discussed in this example. The first is data mining within the Signal Integrity Viewer window and the second is data mining using Table Column Control dialog in the Signal Integrity Viewer. In general, one will tend to use a combination of these two methods when analyzing results. Though this example focusses on tabular data, the ultimate goal is to find the passing results.

Open the Example Project

Use the code below to open the Data Mining Example project in Serial Link Designer.

% openSignalIntegrityKit('sldDataMiningExample');

Example Project

The example project is a single sheet, single channel design where the signals propagate from a transmitter, through the transmitter package model, a differential via, lossy transmission line, a second differential via, a receiver package and into a receiver where the signals are recovered.

The schematic sheet is set up to simulate cases where the the channel is swept over IC corner process (SS, FF and TT) as well as for etch impedance and delay (+/-10% variation from TT). The length of the transmission line is swept from 4 to 12 inches and there are three different via models being swept. Each via model transitions between two layers. The "VIA_TOP_BOT" is the top layer to bottom layer of the printed circuit board. The "VIA_TOP_SIG3_B" transitions from the top layer to layer 3 with layers 4 to bottom being back drilled. The "VIA_TOP_SIG3_S" transitions from the top layer to layer 3 with layers 4 to bottom not being back drilled. Since this via is not back drilled, the barrel after the layer 3 becomes a large stub which can cause signal quality issues such as ringing, reflections due to resonances and impedance mismatches.

There are a total of 81 simulations based on the solution space setup. This example will go through how one can use the data mining and management features to drill down into the simulation results and make design decisions on the dataset. We will start with data mining from the Signal Integrity Viewer Window then go through the Table Column Control.

Data Mining from the Signal Integrity Viewer Window

For this example we are going to work in the "Statistical" tab in the Signal Integrity Viewer. Select the Statistical tab in the lower left corner of the viewer window after the simulation results have loaded into the viewer.

There are many ways to organize results and drill down to get insight. In general Serial Link Designer simulations, even simple ones can provide mountains of data. We will sort, filter and roll up these results in the next section to demonstrate how to focus on specific the variables and results and analyze their performance.

Set Up Columns

To best show the viewer sort, filter and roll up, we are going to open the table column control and select the columns of results that we want to use. Open the table column control by selecting the "Gear" icon in the "Row" column header.

Next in the "Visible" column of the Table Column Control window, right click next to any of the check boxes and select "Set All Invisible". This will uncheck all columns and disable them from being seen in the viewer.

Now, select just these four columns and arrainge them as shown below: Stat Eye Height (V), $W1:LENGTH, $X_VIADIFF:V_MODEL , CORNER. The arrows highlated will allow one to move the rows to their desired position. Now close the Table Column Control.

Moving Columns

Simulation results are contained in rows of data. These results are in a multi-column rows. Depending on the number of variables and settings there can be tens or hundreds of columns. As such, from the Signal Integrity Viewer window only 10 or so columns are visible at a time. To view others one has to scroll to the right. This can be tedious and inefficient. As previously we have modified the view to only rows with the variables and results we are going to use.

From this view or at any time one may wish to re-order the visible columns for comparison with others or to group their design critical metrics together. Without using the Table Column Control, the way to do this is by simply be dragging a column to the desired area for placement. Selecting the header and holding down the left mouse button. Drag the column to the desired position in the table and release. Shown below I selected the "CORNER" column and moved it one column to the left.

Sorting on a Column

For a quick analysis of a result, such as BER or Eye Height, one may wish to quickly sort ascending or descending. This can be accomplished by pressing on the column header with the left mouse button. Select once for ascending or a second time for descending. It toggles between ascending and descending each time selected. One can see the up arrow in the figure below signifies that the column is sorted ascending.

Filtering on a Column

Filtering a column allows one the ability to include or exclude data based on a wildcard. The text box below the any column header allows for a wildcard to be entered. This could be either text or numerical data. Simply enter in the wildcard and press the filter button next to the text box. The icon will change from disabled as shown to enabled looking as a dark blue. To disable, click on the icon a second time. Shown below is the entry of “0.1”. The filter button has been set and is highlighted. The small down arrow in the lower right-hand corner of the column header allows for setting the filter treatment. In this case it is set to “Greater Than”, so all results less than 100mV are no longer displayed. As a note, the filter treatments “Matches Wildcard” and “Does Not Match Wildcard” can be used with text or numeric values. The other options can only be used with numeric values.

Roll-up on a Column

Now we have the results set up to see only the eye height's above 100mV. The rollup function will collapse the rows of the table so that there is one row for each unique value in the associated column. A column can be rolled up by pushing on the roll up icon as shown in the figure below. The icon will then be enabled looking dark blue. To disable, click on the icon a second time. As with filtering data the user can choose how they wish to have the rolled-up data treated. This is done by selecting the small down arrow in the column header.

While keeping the filter on the "STAT Eye Height(V)" column, lets select the rollup on the "$LENGTH" column, then set the "Rolled Up Treatment" to "Min, Max". This allows us to see the minimum and maximum "Stat Eye Height" for each of the corresponding lengths.

Rolling up on "$LENGTH", while filtering on "STAT Eye Height" reveals that some lengths (i.e. 12") only have one simulation that meet the eye height requirement of greater that 0.1V. The other is how the some lengths (i.e. 9") have higher minimum and maximum than some shorter lengths. This is most likely due to the via model variable.

For reference the rollup treatments are:

<Mixed>: If there is more than one value in the table, cells that are being rolled up display <Mixed> in the rolled-up cell for this column.

Vectorized: Vectorizes the values in the table cells that are being rolled up.

Count: Displays the number of rows rolled up.

CSV: Displays the unique values as a CSV (Comma Separated Value) list.

Mean: Displays the Mean of all values rolled up (numeric data only).

Min: Displays the minimum of all values rolled up (numeric data only).

Max: Displays the maximum of all values rolled up (numeric data only).

Min/Max: Displays the minimum and maximum values rolled up (numeric data only).

Finishing the Analysis

To take this one step farther, we can start by filtering the "$X_VIADIFF:V_MODEL" with the "VIA_TOP_SIG3_B". Then set the "Stat Eye Height(V) rollup treatment to "min, max".

From this view we can see that using the "VIA_TOP_SIG3_B" (backdrilled via) in our simulation over corner process and various channel lengths results meets the Stat Eye Height requirement of 0.1V in only one case (the 4" length). One can continue this flow and look at the results for simulations with the other via models. One could relax the Stat Eye Height requirement to 0.05V and see which cases meet the criteria.

Data Mining with the Table Column Control

As we have used the Table Column Control in the earlier part of this example, lets look at it in more detail here. The Table Column Control is a powerful feature that allows one to set up and save preferences for column visibility, rollup and filter. It has the same capabilities as working directly from the Signal Integrity Viewer (what we previously did) but also has some added features that offer the user the ability to fully customize their viewer sessions.

To invoke the Table Column Control, select the gear icon in the first “Row” column of the Signal Integrity Viewer window. As a note, a Table Column Control session is unique to each tab (i.e., Network, Statistical and Time Domain in SLD). Setting up and saving a Table Column Control session can only be used in that specific tab on results. Also seen in the figure, below the Table Column Control gear icon is the “home” icon. This will only be visible after some change to the default view has been made. By selecting the home icon the view will be reset to default status, meaning all current filter, sort, rollup…etc. will be reset in the tab.

Visualizing Columns

After simulation one might notice the seemingly endless number of columns in the reported results. One may wish to select certain columns for viewing while suppressing lesser relevant columns. One may also wish to re-order columns of data. With the Table Column Control visibility can be set for each column. The first column in the Table Column Control contains check boxes for each category of results. Here the view for a particular column of results can be enabled or disabled. Right mouse click in the table allows one to select “All Visible”, “All Invisible” or “Reset All Visibility and Order”.

Ordering Columns

Columns can be ordered by simply selecting the row, or rows and using the arrow keys in the top right corner of the Table Column Control window. For multi-selecting, hold the “Ctrl” key down while selecting each row. Arrows are for up/down and for top and bottom of the list.


To select a column for rollup simply select the checkbox on that particular row. Next to the rollup checkbox is a pull-down menu for selecting rollup treatment. Rollup treatment options are the same as the rollup enabled from the Signal Integrity ViewerGUI. Rollup options are available to disable or reset the rollup by right mouse click on the table as shown in the figure below.


To select a column for filtering select the checkbox on the row. Next to the checkbox is a box where the filtering wildcard can be entered. This can be a text or numerical entry. The pull-down menu next to the wildcard is for selecting filter treatment options. Filter options are available to disable or reset the filter by doing a right mouse click on the table as shown in the figure below. The filter treatments “Matches Wildcard” and “Does Not Match Wildcard” can be used with text or numeric values. The other treatment options can only be used with numeric values. To disable or reset all filtering, right mouse click on the table and select the desired filter option.

We have now covered the sort, filter and roll-up features of the Table Column Control. Try to use the Table Column Control to set up the analysis done earlier in this example.

Saving a View

The views that are set up in the Table Column Control can be saved and used after simulations have been re-run or kept for use with other projects. Once a change has been made to the Table Column Control dialog the “Selected Table View” will change from “Default” to “Modified”. The view can then be saved to a unique name for later use. This is done by selecting the “View Manager” button in the top center of the dialog window.

The “Manage Table Views” dialog will show any currently saved views. There are options delete or rename one existing views or save the current view. When saving the current view one has two options; “User” and “Interface”.

The “User” option corresponds to the user and is saved in the user’s local install area. It will be available to the user during the present and any subsequent Signal Integrity Viewersessions regardless of project. The “interface” view will be saved in the interface of the project and is only available when that project interface is open and simulation results are available.