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!
- Windows Version 0.4 [zipped, 1949 KByte, tested on Win2K/WinXP with Solidify 2.9.17]
- Linux Version
0.3 [zipped, 2093 KByte, tested on Redhat
9.0 with Solidify 2.9.17]
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:
- Create a new task called AutoCheckBuilder
- Browse the Command to the autocheck executable
- Set the Arguments to: project_name.prj %(library_downstream_PrecisionSynthesisDataPrep) %(unit) %(view)
- Set the Initial Directory to: %(SideDataUserDir)
- Tick the Capture Output tickbox
- Click Finish.


Note the project_name.prj can be any project name.
- Next create a New Flow (right-mouse click in the task window)
- Name the flow e.g. AutoCheck
- Open the Precision Synthesis flow and copy the "Precision Synthesis Prepare Data" into the autocheck flow.
- 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
- Not all Moduleware components can be handled by Solidify 2.9.17, it fails on case choices which uses 'L' and 'H' values.
- You need to create the Side Data/User Data directory first
before running AutoCheck Builder.
The simplest way is just add a text file,
you can do this by RMB click on the Side Date User Data folder
-> select new -> textfile->save.
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.
