Wizard and the design agent architecture

written by Jimmy Zhang
July 25 1996

Challenges to the EDA industry

Rapid changes in infrastrastructure, outsourcing of design, just-in-time market opportunities, deep sub-micron technology and quality of high level design decsions are some of the challenges facing EDA industry today. What we need is easy integraion of tools and services, timely access and adaptation to new information,etc. In DAC 96, we demonstrated our design flow (see picture below) as part of our answer to these new challenges.



What can Wizard do ?

One important piece of the work we did for DAC 96 was that we used FSM editor to edit state diagram and feed it into Nova Server to do logic optimization,then we took the output from the NOVA server and used Synopsys's design compiler to synthesize the gate level logic circuit. Naji and I have little knowledge about design compiler at all so we have to go out and ask other people who know how to use design compiler. It is generally the case that as modern EDA tool gets more powerful, it is also getting harder and harder for people to learn and to use. New users either have to read a huge stack of manual which usually take them months to read through, or they pay more money to get the service from the EDA tool maker. Wizard is a compromise between these two extreme cases. Observe the first case in the above. The problem is that there is huge amount of information a user have to deal (I mean the user manual) with, but the user is only able to "absorb" certain amount at a given period of time. Wizard will let user deal with a small amount of information at each step by either make selections by clicking checkboxes or typing inputs inside the text field in each wizard panel. Wizard will also show user what exactly this step is for and offer detailed help for every choice that the user has to make or every input user has to put into the text field. By going through one such step after another, the user is able to generate the correct input parameters and configuration parameters for the tool to make it work by itself.


snapshot of the UI



What about the application flow? In order to make our environment more robust and scalable, we should find a good way to configure a new tool to work with exsiting tools. Wizard can also be used to do just that which means user will need to configure extra one or two wizard panels to complete the application flow chain. It will also be nice to represent all the application, perl script by little boxes and design the complete application flow visually. We could connect boxes with wires to indicate the data flow from one tool to another.

After the "application flow chain" is built, we might want to monitor the process occurring at the backend in order to debug the design. We can set up some conditions inside the wizard. If the output data at certain point of the application flow chain do not meet these conditions, wizard could change the input parameters or controllinger parameters on the fly according to certain rule, and the loop will continue until the output meet the spec.



Adding intellegence to the wizard will eventually turn the wizard into the design agent for our WELD environment. Wizard will be able to identify what subset of the tools is needed to do certain design and link up these tools smartly. User can also store all the current setup into the database, so next time they do the same thing, they will need to load up the origin setup and get everything going quickly. If that is true, then wizard will become the front end for the entire environment, the user will mainly interact with wizard for most part of the design. Maybe we can even add groupware features, so that more than one people can team up and collaborate on the web.

Short Term Goal

Target FSM editor and build a wizard to simplify the use of FSM editor.


Copyright: Jimmy Zhang <zhengyu@ic.eecs.berkeley.edu>