ECAD Library Services Via the WWW

As part of the Vela project experiment, MSU is providing ECAD library services via the WWW. These library services are meant to complement the CMOS standard cell libraries which have been developed within our Microsystems Prototyping Lab (MPL) . The library services are provided using a Java client GUI which interacts with a custom server running on MPL compute resources. The library services effort is also used to support Microelectronics education courses taught within the ECE department at MSU. Other work at MSU on the Vela project can be found here .

Library Services which are currently available are:

The services are configured to work with libraries (standard cell and FPGA) which are of interest to Vela project members and which are used by Microelectronics courses as MSU.

Library Services Architecture

All 'services' are accessed via a common Java-based GUI (JavaCADD) application. There is only one GUI class - runtime customization of the GUI based on service type is done via a parameter file which is loaded from the server at GUI startup. At startup, the JavaCADD GUI queries the server for a list of available services. The user chooses the desired service and another copy of the JavaCADD GUI is invoked for that service. The user fills in parameter templates for the job to be done, and the job is dispatched to the server along with parameter information and any local files for completing the task. A log window is opened back to the client so that the user can view job progress; at job completion result files are sent back to the local client and placed in a user-specified directory.

Advantages of this Approach

Disadvantages of this Approach

JavaCADD

To use JavaCADD download the following archive: jcadd113.zip .

This archive contain the Java classes that define the JavaCADD GUI (look here for information on the JavaCADD server). This is a Java application, not an applet, which means that you cannot run it from a web browser. To run the JavaCADD GUI, you will either need the Java Development Kit (JDK) or the Java Runtime Environment (JRE). Either of these are available from the Javasoft homepage .

If you using JavaCADD from an ERC machine, the command 'swsetup java' will setup your environment correctly.

Invoking the JavaCADD GUI

Once you have unpacked the zip file, you will find the following files located inside of the JavaCADD directory:

JavaCADD              csh script for Unix users using the JDK
JavaCADD.bat          bat file for Win95/NT users using the JDK
JavaCADD_JRE          csh script for Unix users using the JRE
JavaCADD_JRE.bat      bat file for Win95/NT users using the JRE
README                explains use of script files
classes/              directory which contains JavaCADD classes

The contents of the JavaCADD csh script illustrates how java is used to execute the JavaCADD application:

#!/bin/csh -f
setenv CLASSPATH classes
java JavaCADD titan.erc.msstate.edu 23573

This script is intended to be executed from within the JavaCADD directory; the 'setenv' points the CLASSPATH environment variable at the local './classes' directory. You can move the 'JavaCADD/classes' directory as long as this directory is referenced by the CLASSPATH environment variable. The command
:
java JavaCADD titan.erc.msstate.edu 23573
starts the JavaCADD GUI as a Java application. The hostname 'titan.erc.msstate.edu' is the hostname which will run the services, and the port number is the port number for the release version of our ECAD server. One problem we have found is that Unix installations whose hostname services do not return fully qualified host names may have a problem during the JavaCADD GUI operation in exchanging data with the remote server.

Win95/WinNT users may want to edit the properties on the appropriate bat file and set the environment space to at least 1024 (use the memory tab), set the DOS window to be minimized on startup and closed on exit.

The JavaCADD Services List

The first window which appears will list the available services found at the server/port combination given to the JavaCADD application. This is shown below:

Left clicking on a service will select the service; then left clicking on Launch Tool will cause the JavaCADD application to query the server for the GUI-specifics for that tool. Once the tool personalization information has been returned, the JavaCADD application window customized for that tool will appear. The JavaCADD application window for the "Synopsys Synthesis" service appears below:

There is no limit to the number of active tool application windows; you can also have multiple JavaCADD launch windows present, each connected to a different server if desired (currently, the only JavaCADD server available is "titan.erc.msstate.edu").

Individual Services Tutorials

Below are a set of tutorials for some of the currently available services.It is not necessary to download a new version of the JavaCADD GUI if we add additional services; the JavaCADD GUI queries the server to determine the available services.

Restrictions on JavaCADD Access

Currently, there are no restrictions on outside use of these services. We welcome other WWW CAD researchers to try it out, and educators who are curious about the commercial tools which perform the services. We are making these services available as part of the Vela Distributed CAD project; feel free to experiment but remember that these services are running on MPL computing resources using MPL tool licenses. If we find that outside use becomes too heavy or that the services are being used for production use then remote access will be shut down. Service use is logged for monitoring purposes. The server can be installed on any Sun workstation running Solaris; if you are interested in setting up a JavaCADD server for local use please see the JavaCADD Server documentation. Setting up a JavaCADD server for ECAD services requires knowledge of the local ECAD tool environment. The JavaCADD GUI is designed so that adding new tool services does not requiring writing any java code, only Perl scripts. Knowing Java helps in understanding some of the provided Java code samples, but is not necessary.

Known Problems

Feedback

Please contact us if you have any questions or comments about the JavaCADD application.

Authors