Chapter 25. Creating a New CDD
| Part IV. Graphical User Interface |

## Chapter 25. Creating a New CDD

Creating a new CDD file from the GUI can be accomplished by either clicking on the Generate New CDD File button in the Wizard window (see Chapter 30, Navigating the Wizard Window for more details on this window), by selecting the `File -> Generate -> New CDD...` menu option, or using the shortcut "Shift-Control-N". This file creation "wizard" allows the user to create a new CDD file that can be opened/merged into the GUI for coverage analysis. The methods that the CDD creation GUI allows for creating a new CDD file are quite flexible and are completely compatible with the command-line commands.

The following subsections describe the various windows used to create a CDD. Note that the CDD creation wizard uses several "pages" to describe the various options to set for creating a new CDD file, using Back and Next buttons on each page for navigation. Clicking on the Back button will not cause previously filled in pages to be reverted to their default values but rather will remain populated with the user's data. Similarly, if a page has been filled in with data and the Back button is clicked and then the Next button is clicked, the page contents are retained. The only way to clear out fields is to click the Cancel button at the bottom of each page and startup the CDD creation wizard again.

Clicking the Cancel button at any time will cause the CDD creation wizard to immediately exit. Clicking on the help (?) button at any time will bring up the user documentation for the current page (context sensitive help).

## 25.1. Navigating the New CDD Creation Option Selection Page

Figure Figure 25.1, “CDD Creation Option Selection Page” shows the look of this page of the CDD creation wizard.

Figure 25.1. CDD Creation Option Selection Page

The first page of the CDD creation window allows the user to select whether all options should be interactively selected within the GUI or if a file should be read in which contains command-line options to the score command to use. If the latter is chosen, the contents of that file are read in and are populated in the GUI, but the CDD creation wizard will continue in the same fashion as the first option, allowing the user to change, remove or add to the options found in that file.

If the Create CDD by interactively selecting options entry is currently selected and the user wishes to not use a command-line file to populate the rest of the CDD creation pages, simply click on the Next button at the bottom of the page to continue. If the Create CDD by using option file entry is currently selected, the user must either type a valid filename or select one by clicking the Browse... button to the right of the file entry area and select a valid file. Once a valid filename is selected, the Next button will be enabled and the user may then click it to continue to the next page. Note that any filename can be selected (whether it's a valid command file or not). Only valid score command options found in that file are used to populate the wizard entries. No error message will be displayed if the file does not contain this information.

## 25.2. Navigating the New CDD Creation CDD Name Page

This page is used to specify the name of the output CDD file. Figure 25.2, “CDD Creation Output Name Page” shows the display of this page.

Figure 25.2. CDD Creation Output Name Page

The output CDD name must be specified and, as such, the Next button is disabled until a name is specified in the entry field. Any filename is allowed. If the user wishes to make use of a "Save As" style window for creating a filename, click the Browse... button and use the window for creating a filename. When the Save button is clicked, the specified filename is placed in the entry field and the Next button is enabled.

## 25.3. CDD Creation Type Page

This page is used to specify what type of CDD file to create. The four types of CDD files that can be created are:

1. An unscored CDD file that was created by parsing the design. This CDD file can later be scored via a VCD, LXT2 or FST dumpfile.

   This option can be chosen by selecting the Parse Design Only radiobutton.

2. A scored CDD file created from the design and from a previously created VCD, LXT2 or FST dumpfile.

   This option can be chosen by selecting the Dumpfile: option. If this option is chosen, a VCD, LXT2 or FST dumpfile is required to be specified before the next option page can be used. Either specify this dumpfile name by typing in an existing dumpfile name in the entry field or use the Browse... button to select a dumpfile.

3. An unscored CDD file, a top-level Verilog file containing a PLI call to run Covered in VPI mode, and a PLI tab file that can be used by some simulators for compilation purposes. See Section 7.3, “What is needed for VPI scoring?” for details on how to use these files for simulation/scoring purposes.

   This option can be chosen by selecting the VPI Module: radiobutton. If this option is chosen, the name specified will be the name of the module file created that is used to allow Covered to run in VPI mode within a simulation. The basename of the module file will be used for the top-level module.

   In addition to providing a module name when this option is selected, the simulator type that will be used when scoring can be specified as well as the timescale information that can, optionally, be specified at the top of the generated module.

4. An unscored CDD file and a top-level Verilog file containing the necessary $dumpfile/$dumpvars calls to score the design. This module can be compiled as a top-level module along with the design to produce a VCD/LXT2/FST dumpfile to be used for coverage scoring. See the section called “Selecting What to Dump” for details on how to use these files for simulation/scoring purposes.

   This option can be chosen by selecting the Dumpvars Module: radiobutton. If this option is chosen, the name specified will be the name of the module file created (the basename will be the name of the module and the basename of the VCD/LXT2/FST dumpfile created from the simulation) that will contain the $dumpfile/$dumpvars calls needed to score the design.

The timescale specifiers will be enabled if either the "VPI Module" or "Dumpvars Module" buttons are selected. Selecting the "Set Top Module Timescale" checkbutton will allow you to specify a timescale that will be added to the top of the VPI or dumpvars module file (setting the timescale in top-level modules is sometimes necessary for compilation purposes). If the checkbutton is not selected, no timescale information will be added to the generated top-level module file.

Figure Figure 25.3, “CDD Creation Type Page” displays the contents of this page. When all necessary fields have been specified, the Next button will be enabled and clicking it will lead to the next option page.

Figure 25.3. CDD Creation Type Page

## 25.4. CDD Creation Options1 Page

This page is used to specify several options to Covered's score command. See figure Figure 25.4, “CDD Creation Options1 Page” for the layout of this window.

Figure 25.4. CDD Creation Options1 Page

The following is a description about each of the CDD creation options available on this page.

### General Options

- Toplevel module name

  Required? Yes

  The name of the top-level module must be specified for a given design to be parsed and a CDD generated from that source. Simply type in the name of the top-most module in the provided entry field. Once a name is provided, the Next button will be enabled to allow traversal to the next option page.

- Root pathname

  Required? No

  This entry field is an optional one to fill. This value is only necessary if the top-most module to be scored is not the top-most module of the simulator. If this is true, then the value that must be provided in the associated entry field must be the hierarchical reference to the module to be scored.

  An example of a valid root pathname would be something like: `top.foo.bar.dut`

  See Section 9.3, “Specifying What to Cover” for more information.

- Delay Type

  This value specifies which delay should be used when a delay type of #(delay_max:delay_typ:delay_min) is encountered in the scored design. If this type of delay specification is not encountered, there is no need to change this value in the GUI. If the delay specification is encountered in the design and this value has not been specified, the default of typ will be used. Otherwise, the user can specify which delay value should be chosen by changing the displayed type to either max, typ, or min.

- Race Condition Action

  After the design has been parsed and elaborated, Covered performs a static race condition check on the design to verify that no potential race conditions exist. If a race condition exists in the design, this would cause the coverage results to potentially be errant.

  This parameter allows the user to tell Covered what to do if a race condition is found in the design. The valid values are:

  - Silent

    Specifies that no output should be generated. Any blocks with race conditions existing within them will be automatically removed from coverage consideration.

  - Warning

    Specifies that race condition should be output and those blocks containing the race condition will be automatically removed from coverage consideration.

  - Error

    Causes Covered to display the race condition violations and stop scoring after all race condition checking has occurred.

  - Ignore

    Causes Covered to skip race condition checking completely. This option can be used if the user is confident that no real race conditions exist in the design but Covered's static race condition checker is displaying potential problems. If no race conditions actually exist, ignoring race condition checking results allows more of the design to be considered for coverage.

- Use embedded race condition pragmas

  If this option is selected, a user-specified pragma ("racecheck" by default) is parsed and any potential race conditions found between the off/on pragma pair are ignored by the race condition checker.

  See Section 4.3, “Avoiding Race Condition Checking” for more details.

- Default Verilog Generation

  Covered's parser supports parsing for Verilog-1995, Verilog-2001 and SystemVerilog, defaulting its parser to support SystemVerilog. However, for older designs which may contain names that are keywords in the newer versions, it may be necessary to change the parser of Covered for the entire design. This option specifies the version of the parser which is used for the entire design.

  For information regarding the ability to specify a certain version of the parser for a specific module, see the section called “Module Generation...”.

- Include OVL Assertions

  If this option is selected, any OVL assertion modules found within the scored design will have assertion coverage information extracted from them.

### Exclude Options

- Exclude Always Blocks

  If this option is selected, all `always` code blocks will be excluded from coverage consideration.

- Exclude Assign Blocks

  If this option is selected, all `assign` code blocks will be excluded from coverage consideration.

- Exclude Initial Blocks

  If this option is selected, all `initial` code blocks will be excluded from coverage consideration.

- Exclude Final Blocks

  If this option is selected, all `final` code blocks will be excluded from coverage consideration.

- Exclude Within Pragma

  If this option is selected, all code blocks will be excluded between the exclusion off/on pragmas. The name of the exclusion pragma is defaulted to "coverage" but can be changed within the associated entry field.

  See the section called “Using the -ep Option for Exclusion” for more information.

## 25.5. CDD Creation Options2 Page

The second CDD creation options page contains a listbox which will contain the various user-specified options that have been inserted via the Insert... menubutton. Any options that exist within this listbox can be edited by selecting the option and clicking on the Edit... button or deleted by clicking on the Delete button. Additionally, options may be reorganized within the listbox by simply clicking on an option and dragging it into the needed position. See figure Figure 25.5, “CDD Creation Options2 Page” for the layout of this option page.

Figure 25.5. CDD Creation Options2 Page

To add an option to the listbox, simply click on the Insert... menubutton which will display a list of options. Select one of these options to display a window where the contents of that option can be specified. Clicking the OK button in one of those windows will cause the option to be added to the option listbox. Clicking Cancel in one of those windows will cause the option to not be added to the listbox. Clicking help (?) will display context-sensitive help information to be displayed about the current window.

Figure Figure 25.6, “CDD Creation Insert Menubutton” shows the contents of the Insert... menubutton. The following sections describe each option and its corresponding entry window.

Figure 25.6. CDD Creation Insert Menubutton

### Source File...

Selecting this insert option will cause an open file selector window to be displayed. Use it to choose a single file that will be parsed as a library file (i.e., the -v option to most Verilog compilers).

### Library Directory...

Selecting this insert option will cause an open directory selector window to be displayed. Use it to choose a single directory that will be used as a library directory (i.e., the -y option to most Verilog compilers).

### Library Extension(s)...

Selecting this insert option will cause a window to be displayed that will allow the user to add library file extensions to the library file parser (i.e., the +libext+ option to most Verilog compilers). Figure 25.7, “CDD Creation Library Extension Window” is a display of this window.

Figure 25.7. CDD Creation Library Extension Window

To add a new extension, select the Click to Add New Extension item in the extension box (selected by default), type in the name of the extension in the upper entry box and either hit the "Enter" key or click on the Update button. If an incorrect extension was input, you may edit it by clicking on the incorrect item in the extension listbox. This will cause the item to be listed in the upper entry box where it can be edited or removed. Click the OK button to accept the specified library extensions and add these to the main window listbox. Click the Cancel button to ignore the recent updates in this window.

### Include Directory...

Selecting this insert option will cause an open directory selector window to be displayed. Use it to choose a single directory that will be used as an include directory (i.e., the +incdir+ option to most Verilog compilers).

### Define...

Selecting this insert option will cause a window to be displayed that will allow the user to add a command-line variable definition to be added to the score command (i.e., the +define+ option to most Verilog compilers).

Figure 25.8. CDD Creation Define Window

To add a new define, enter the name of the definition variable in the entry box to the right of "Define name:". If the variable does not require a value, simply click on the OK button to submit it to the main window option listbox. If the variable requires a value, click on the = button, enter the value in the entry box to the left of that button, and click on the OK button. To abort the addition of the definition, simply click on the Cancel button.

| Note
The OK will only be enabled when the user has entered a value in the "Define name:" entry box.

### Parameter Override...

Selecting this insert option will cause a window to be displayed that will allow the user to add a parameter overload option to the score command. Because Verilog "defparam" is not used by the Covered parser, this option is the only way to override parameter values.

Figure 25.9. CDD Creation Parameter Override Window

To add a new parameter override option, enter the full hierarchical path to the parameter to override in the left entry box and add the override value in the right entry box. See Section 9.5, “Overriding Parameters (-P option)” for details on how to specify an override value. After both values have been input, click the OK button to add the parameter override option to the main window listbox. To abort the parameter override addition, click on the Cancel button.

| Note
The OK button will only be enabled if both values are input in the entry boxes.

### FSM...

Selecting this insert option will cause a window to be displayed that will allow the user to add an FSM input/output state on the score command line. This option allows the user to specify the location of FSMs within the design without inlining this information with the use of pragmas for the purposes of gaining FSM coverage information.

Figure 25.10. CDD Creation FSM Specification Window

To add a new FSM option, enter the name of the module containing the FSM in the upper-left entry box, the description of the output state in the upper-right entry box (see Section 9.6, “Scoring FSMs” for information on properly specifying the output/input state information). If the input state is the same as the output state, simply click on the Input == Output button which will fill in the input state with the same value as the output state value. If the input state differs from the output state, enter the input state in the lower-right entry box. When all entry fields have been filled in, click on the OK button to add the FSM description to the main window listbox. To abort the addition, click on the Cancel button.

| Note
The OK button will only be enabled if all entry fields have been filled in.

### Module Generation...

Selecting this insert option will cause a window to be displayed that will allow the user to specify a Verilog generation (Verilog 1995, Verilog 2001 or SystemVerilog) for a particular module. This generation value will override the universal generation value (see the "Default Verilog Generation" item in the section called “General Options”) for the design.

Figure 25.11. CDD Creation Module Generation Window

To specify a Verilog generation to be used for a specific module, enter the name of the module in the left entry box and select one of the Verilog generations in the drop-down menu on the left. Once this information has been specified, click on the OK button to add this option to the main window listbox. To abort the module generation addition, click on the Cancel button.

| Note
The OK button will only be enabled if a module name is specified in the left entry box.

### Module Exclusion...

Selecting this insert option will cause a window to be displayed that will allow the user to specify a module to exclude from parsing and coverage consideration. More information on the purpose for excluding modules is discussed in Section 9.3, “Specifying What to Cover”.

Figure 25.12. CDD Creation Module Exclusion Window

To specify a Verilog module to exclude from the score command parser, enter the name of the module in the entry box to exclude. Click on the OK button to add the module exclusion option to the main window listbox. Click on the Cancel button to abort the option addition.

| Note
The OK button will only be enabled if a value is specified in the entry box.

### Command File...

Selecting this insert option will cause an open file selector window to be displayed which will allow the user to find a file that contains Covered score command-line options within it. Select a file and click on the Open button to cause the selected file to be added to the main window listbox. Click on the Cancel button to abort this action.

### Other Notes

After all options have been specified, the Save Options to File... button can be clicked to cause all previously specified options to be saved to a file which can later be loaded by the new CDD creation window. Simply click the button and specify a filename to save the options under and click the Save button.

When all options have been setup, click the Generate button to create the new CDD file. This button will advance to another page containing the output from Covered's score command.

## 25.6. CDD Creation Output Pane

The final pane in the CDD creation window wizard is the output window. After the Generate button is pressed, the user-supplied options are gathered and executed within a system shell and the output of that command is sent to this pane's textbox. If the score command run was a success, the Open/Merge the newly created CDD checkbutton will be enabled, allowing the user to open or merge the new CDD file into the GUI immediately. To exit the CDD creation process, click on the Finish button. If the score command failed for any reason, the user may click on the Back button to change the options specified to the score command or simply click the Finish button to exit the new CDD creation wizard.

Figure 25.13. CDD Creation Output Window

Chapter 24. Navigating the Assertion Source Code Window |  | Chapter 26. Creating an ASCII report file