AutoCheck Builder

A GUI to generate Solidify AutoCheck TCL scripts

Current Version: 0.4 14/05/04

AutoCheck Builder is a simple Graphical User Interface to create and execute Solidify autocheck TCL scripts. AutoCheck Builder can be invoked standalone or executed from Mentor Graphics HDL Designer. Note that a valid license of Averant's Solidify must be installed in order to run AutoCheck Builder.

Solidify is a powerful static property checker developed by Averant in the US. Using a very easy to use property language called HPL (PSL is also possible) the user can fully verify his or her design without resorting to simulation. This not only speeds up the verification process but also means the design is fully verified something which is not always possible with simulation. Due to the flexibility of HPL a user can write generic property files which can check for common and hard to find errors. Averant supplies a standard set of these generic property files. Using these generic property files the user can check for unreachable states and deadlocks in FSM's, array out of bounds violations,  tri-state violations etc. The AutoCheck Builder will generate and execute a TCL script which invokes these generic property files on the supplied HDL files.
 

1. License Agreement

AutoCheck Builder and VHDLSort are FREEWARE.

This license agreement is a legal agreement between you (either an individual or a single entity) and the author of this software package. By installing or otherwise using this software you agree to be bound by this agreement. If you do not agree to the terms of this Agreement, you may not install or use this software.
You may install and use an unlimited number of copies of this software on your computers.
The author will not make available Technical Support for this Software. The author may, from time to time, revise or update the Software. In so doing, the author incurs no obligation to furnish such revision or updates to you.

THIS SOFTWARE IS DISTRIBUTED "AS IS".  NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AUTOCHECK BUILDER/VHDLSORT AT YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS SOFTWARE.

2. Download software

Make sure you run an up-to-date virus scanner on the downloaded file before installing and executing it!

Note: There is a font issue when running AutoCheck Builder under Linux, this result in some fonts being to large and some too small. This will be fixed in the next release.

3. Installation

Installation is straitforward, simply unzip the file to a directory which is in your search path and set an environmental variable called AUTOCHECK to point to it. The zipfile consist of 2 executables, the actual script builder called autocheck{.exe} and vhdlsort{.exe}. The latter one is optional and allows the user to automatically perform a dependency sort on a VHDL file list. AutoCheck Builder itself require that Solidify's sol_shell command is in your search path. If you would like to display this webpage ( button) or edit a file ( button) from within the tool then you also have to make sure that the autocheck.ini file contains the correct filename and search path of your favorite texteditor and webbrowser.

3.1 AUTOCHECK environmental variable

Before running AutoCheck Builder you must set an environmental variable called "AUTOCHECK" (all uppercase).This variable must point to the directory were you installed the executables. The variable is used to located the help file (help.html) and default autocheck.ini file.  Under windows setting this variable is easy, simply right mouse click on your "My Computer" icon, select properties, navigate to the Advance tab and click on Environmental variables.

Figure: WinXP Example

Under Linux/Unix modify your .bash_profile file or .tclsh file and export/set the AUTOCHECK variable.

3.2 Autocheck.ini file

AutoCheck Builder looks for an initialisation file during startup. This text file, autocheck.ini, contains pathname mappings to your favorite texteditor and webbrowser. When AutoCheck Builder starts-up it looks in the current directory first, if the autocheck.ini file is not found then it will look for the file in the installation directory. The default settings are as follows:

autocheck.ini on WIN32:
webbrowser_pathname iexplore.exe
texteditor_pathname notepad.exe
sol_shell_pathname cmd /c sol_shell.bat

autocheck.ini on Unix/Linux:
webbrowser_pathname mozilla
texteditor_pathname gedit
sol_shell_pathname xterm -e sol_shell

To change the default settings simply edit the autocheck.ini file with a texteditor.

Example autocheck.ini file modified for my Windows machine:

# Default web browser search path
webbrowser_pathname C:\Program Files\Internet Explorer\iexplore.exe
# Use Turbo Writer for the default texteditor
texteditor_pathname D:\products\HDLTurboWriter6.6a\twriter.exe
# Command to execute DOS sol_shell
sol_shell_pathname cmd /c d:\products\solidify\sol_shell.bat

3.3 HDL Designer Setup

AutoCheck can be invoked from HDL Designer. The setup is as follows:

  1. Create a new task called AutoCheckBuilder
  2. Browse the Command to the autocheck executable
  3. Set the Arguments to: project_name.prj %(library_downstream_PrecisionSynthesisDataPrep) %(unit) %(view)
  4. Set the Initial Directory to: %(SideDataUserDir)
  5. Tick the Capture Output tickbox
  6. Click Finish.

Note the project_name.prj can be any project name.

  1. Next create a New Flow (right-mouse click in the task window)
  2. Name the flow e.g. AutoCheck
  3. Open the Precision Synthesis flow and copy the "Precision Synthesis Prepare Data" into the autocheck flow.
  4. Drag the AutoCheckBuilder task into the flow after the Precision Synthesis Prepare Data task

Note Precision Synthesis tool itself is not required (or invoked) for the AutoCheck Flow.

4. How to use AutoCheck Builder

Using AutoCheck Builder is straightforward.

1. First click on a file(s) in the Available Files window and click the Add button. You can also double click on a file which will add it immediately. If you need to add all files simply click on the Add All button. Note on the Options Tab you can enable the VHDL Dependency sort, this will automatically sort the VHDL files before writing the filelist (files.f).

2. All the selected files will be added to the Project Files window. Files can be removed by selecting the file(s) followed by clicking on the Rem button. Double clicking on a file in the Project Files window will remove it immediately.

3. After selecting the HDL files which will be used for the autocheck, select which autocheck you want to perform by ticking the appropriate box.

4. Specify the reset signal which initialises your design to a known state. For example if your reset is called rst and it is asserted low then add !rst, if the reset is active high then simple add rst. You can open an HDL file in a texteditor by selecting the file and clicking on the editor button or pressing the shortcut CTRL-e.

5. Specify your clock signals and any signal that clocks flipflops (e.g. read/write strobes).

6. Press RUN

The Log window will display the results of the Solidify Autocheck run.

Note: the scrollbar doesn't always seems to work properly, simply click on the text to activate the scrollbar.

4.1 Running from HDL Designer

To run the AutoCheck Builder from HDL Designer, select a Design Unit or HDL file and click on the AutoCheck flow. The first "Precision Synthesis Prepare Data" task will create an add_files.tcl scrip in the Precision Downstream HDS directory. This directory, the name of the Design Unit selected entity (%(unit)) and Architecture name (%(view)) will be passed on as command line arguments to AutoCheck Builder. The add_files.tcl script will be parsed for the filenames and automatically added to the Project Files window. All output files will be saved in the Design Unit's side data directory.

Figure: Running AutoCheck Builder from HDS2003.3

Note the first time you run the autocheck flow the log file will contain an error that the project_name.prj file can not be opened. This error message disappears after saving the project. You can also rename and copy the default.prj file to the Design Unit User Side Data directory (%(SideDataUserDir))

Known Issues

4.2 Projects and Autoload

You can save or load a project using the and button respectively. You can also just save a Solidify TCL script file by clicking on the Save Script button. Note the TCL script file is created automatically when you hit the RUN button.

AutoCheck Builder also provides an Autoload Previous Settings Option. This option will automatically load the previous settings. When the Autoload Previous Settings option is ticked the settings are saved in an autoload.prj file after the RUN or Save Script button is pressed. AutoCheck Builder must be started from the same directory as where the autoload.prj file is saved (side data if invoked from HDL Designer).

Note: AutoCheck Builder does not check the loaded project file, thus if you select a wrong file then you will end up with garbage in your Options tab!

4.3 Advanced Automatic Check Options

Most of the autochecks have further options. These options can set under the Options Tab, see the Solidify user manual for further information.

When using VHDL files the fileorder can automatically be sorted by ticking the VHDL Dependency Sort tickbox. This will result in the VHDLSort program to be executed on the filelist before Solidify is invoked. The VHDL Dependency Sort option is disabled if invoking AutoCheck Builder from HDL Designer.

Note: the search path and filename of the Web Browser, Text Editor and sol_shell command can be changed but are not added to the saved or autoload project file.

Note: make sure that no options settings are blank. This can occur when a corrupted or wrong project file is loaded. If this happens simply load the default.prj file.

4.4 VHDL Libraries

VHDL Libraries can be entered on the VHDL Lib tab. If invoked from HDL Designer the library names are filled in automatically.

Note: the associated filename can not be edited or deleted in this table. If

4.5 Special Buttons

You can edit a file by selecting it in the File Selection or Project Files window and then click this button. The text editor, as specified in the autocheck.ini file, will be invoked together with the selected file. This function can also be called using the shortcut CTRL-e.

This button will invoke the sol_shell command without any argument unless they are specified under the options tab or autocheck.ini file .

Selecting this button will check if an updated version of AutoCheck Builder is available, you can also use this button to jump to this page on www.ht-lab.com.

This button will allow the user to change the working directory. All generated scripts, intermediate files and the autoload project file are save in the work directory. Note: this option is not required for HDL Designer users since all files are already save in the side data directory.

The HTML help page can be displayed by clicking this button. The help.html file is located in the installation directory. If you get an error that the file can not be found then check the AUTOCHECK environmental variable settings.

4.6 Hot Keys

ctrl-s Save Solidify TCL script
ctrl-r Run Solidify
ctrl-q Quit
ctrl-p Previous Tab
ctrl-n Next Tab
ctrl-e Edit Selected File

4.7 Command Line arguments

The following command line arguments are supported:

autocheck <project_filename>

Invoked from HDL Designer

autocheck <project_filename> %(library_downstream_PrecisionSynthesisDataPrep) %(unit) %(view)

5 Uninstall AutoCheck Builder

Simply delete the files and remove the AUTOCHECK environmental variable.