Inter-Tool Communication Within CAD CELEBRITY

Introduction

One of the main features of modern complex Computer-Aided Design Systems is the ability to support the communication between concurrently executing applications within the design process. This feature allows applications, intended for different steps in a design flow, to exchange design data in an integrated manner and therefore to solve design tasks more accurately, easily and quickly. At the same time these applications keep a high degree of modularity and functional independence.

Using Inter-Tool Communication CAD Systems can solve such tasks as:

  • Cross-Probing, sometimes named Cross-Highlighting, - the possibility to highlight images of a selected object in different applications. The CAD system may highlight several aspects of design object description, including:
    • textual description in HDLs;
    • schematic view;
    • layout view;
    • wave form diagrams, etc.

  • Static Back-Annotation - that an application at some time in the design process may request some design information (e.g. transistor parameters) from another application, receive this information, and display it by its own methods.

  • Dynamic Back Annotation - two or more applications establish a direct connection between their sub-processes through Inter-Tool Communication and dynamically (during a long period of time) exchange design data. An application which receives data uses it only for displaying in its windows.

  • Driving Design Process - manipulations in one application cause actions in another application. An example of such communication is schematic driven design of a layout.
  • Managing Design Process - requests to do something or to send some information. This means that in the CAD System there is a special application which manages the process of design development, i.e. it controls the sequence of design procedures and the presence of files needed for successful completion of procedures.


All these tasks will be solved within CAD CELEBRITY. This paper will cover only the basic principles of Inter-Tool Communication and Cross-Probing.


Main Concepts

The main concept of Inter-Tool Communication implemented within CAD CELEBRITY is a client-server approach based on Socket of message exchange. Sockets were selected as a basic mechanism due to their advantages over other mechanisms of Inter-Process Communication (pipes, shared memory, signals, etc.). Socket?s Main features are:
  • Providing a two-way communication path.

  • Existing within communication domains.

  • Providing access to communications networks such as the Internet.

  • Enabling communication between unrelated processes residing locally on a single host computer and residing remotely on multiple host machines.


The implemented client-server approach is schematically shown in Figure 1. In this Figure ITC Server has one listening socket, which is intended for permanent reading from the communication channel. Also it has a list of sending sockets, each of which supports the connection to the appropriate application. Sending sockets are created and added to the list when any application sends a request to connect to the ITC Server.




Figure 1. Client-Server approach based on socket mechanism.



Each application has a universal socket which provides listening, as well as receiving information, from an ITC Server. These sockets are created before establishing a connection with the ITC Server.

Message Structure. Messages used for Inter-Tool Communication have several attributes. The most important are shown below:
  • MessageType - messages may have different types, e.g. Request, Notification, Broadcasting, etc.

  • MessageCode - messages may have different codes, e.g. Connect to Server, Command, Information, etc.

  • CommandType - if message code is command, CommandType attribute has to be set into one of settled values. Each application has its own set of commands.

  • FromApplicationId - the identifier of an application from which this message was sent. This attribute is used by the Design Manager for understanding identifier which sends the application.

  • ToApplicationId - the identifier of application to which this message was sent to. This attribute is used by ITC Server for understanding the destination of a message. The Message would be sent only to the a specified application.

  • FromApplicationType - the type of application from which this message was sent. This attribute is used by Design Manager and ITC Server for understanding the type of sending application.

  • ToApplicationType - the type of application to which this message was sent to. This attribute is used by ITC Server for understanding the destination of message. If ToApplicationId is not set the message would be sent to all applications of the given type.

  • Text - any textual information.

Message processing contains two parts: sending and receiving. They are shown schematically in Figure 2.




Figure 2. The mechanism of data sending/receiving.



Sending. The user may make some action, for example clicking the left mouse button on some object in the schematic drawing. The program processes this action, i.e. it finds an object whose bounding box contains the point with cursor coordinates. Then it displays the results, e.g. highlighting the selected object. If the cross-probing mode is established for the current window, the program will form the appropriate message and send it to ITC Server.

Receiving. Application receives messages from ITC Server through socket. The message is decoded, i.e. the application analyzes all of its attributes: message type, message code, application, etc. (see above, section describing message structure). After decoding, the application makes the decision and processes the appropriate action(s), e.g. finding objects which it has to highlight and then displaying the results.

The architecture in Figure 2 shows the general approach for Inter-Tool communication. Since CAD CELEBRITY has a framework intended for managing the design process, the general structure was improved (see Figure 3). In this structure ITC Server plays the key role for delivery of messages (requests and notifications) to appropriate applications. The main controlling module within framework, named Design Manager, from the ITC point of view, acts as all other applications it sends and receives messages. But according to its special controlling role Design Manager has a special place within the ITC architecture. In Figure the socket, intended for supporting communication between ITC Server and Design Manager, is separated from sockets of other applications.




Figure 3. ITC structure within CAD CELEBRITY Framework.

Cross-Probing

In this section we will consider cross-probing as one of the tasks solved with the use of Inter-Tool Communication. Cross-Probing within CELEBRITY is implemented between three applications:

  • Scholar - schematic editor;

  • Expert - layout editor;

  • SmartSpice - simulation tool.

Before any communication can start, the user should run the ITC Server. If the user did not put the channel number as the starting parameter, the program will display the dialog window, shown in Figure 4. All applications which plan to communicate through the appropriate ITC Server should use this channel number.


Figure 4. Dialog for Channel number setting.



After running, ITC Server minimized and its icon (see below) appears in Window?s status bar.



All applications within CAD CELEBRITY can be automatically connected to the ITC Server. For this purpose there is a file, named crossprobing.ini, which contains all necessary information including: host name, where ITC Server was run channel number, flags for automatic run etc. If the flag for the source application is set (=1), it will be automatically attached to the ITC Server.

After running applications, the user should open the required files (e.g; .schlr in Scholar) and in the appropriate window set the cross-probing mode.

In order to set the cross-probing mode within Scholar the user should select sub-item "Cross-Probing" from menu item "Show" (see Figure 5) or press the button with a bulb picture (see Figure 6).

Figure 5. Sub-items of
Show menu item.





Figure 6. Cross-Probing mode within Scholar's Drawing window.




Within the Expert layout editor, the user can set the cross-probing mode for the whole cell, and thus all of its views can send and receive messages concerning selecting and highlighting of objects. To set the cell into the cross-probing mode, the user should push the button with a white bulb picture. After that, the bulb on the button will change its color to green. This is the signal for the user that a window was set to cross-probing mode. If the color of the bulb was already green, and the user pushes this button, the program will reset the cross-probing mode for this cell. To reset cross-probing mode for all cells in the current project, the user should push the button with three bulbs. If bulbs on this button are white, there are no cells in the cross-probing mode.

There is one restriction for cross-probing with the layout editor. It can find and highlight objects only on layouts which were processed by the procedure of the netlist extraction with checked "Annotate Layout" flag. This procedure flattens hierarchical layout and generates names for transistors and nets.

When Scholar?s drawing window enters into Cross-Probing mode, it changes the shape of cursor to "hand" image. The hint line under the toolbar describes possible operations of this mode. An exit from this mode can be made by pushing the button or by pushing any button on toolbar, by selecting any other menu item, or by pressing the middle mouse button.

Within this mode the user can select objects by clicking left mouse button on the required image, and a message with appropriate information about the selected object will be sent to the ITC Server. ITC Server retranslates this message to all applications involved in cross-probing. Therefore all applications of the predefined types connected to the ITC Server will receive requests to highlight objects with the given type and name. The application which receives such a message finds out the appropriate object and highlights it on all child windows, which are set into cross-probing mode.

For example, when the Expert layout editor receives a request to highlight the transistor, selected in the Scholar schematic editor, it finds an appropriate object and highlights all polygons constructing this transistor, see Figure 7. In the figure transistor M2 corresponds to an orange rectangle. For better visibility it was filled with inclined lines. In real application the color and pattern of highlighting objects are up to the user?s preferences.




Figure 7. Cross-Probing mode within Expert's Cell layout window.



The same mechanism works in the opposite direction. So, if the user selects any polygon in the layout window, which was previously set to cross-probing mode, Expert will determine the name of an object to which the geometry of a selected polygon belongs, and sends the request to highlight the object. For example, if the user selects a polygon marked by a black border and filled with inclined lines (see Figure below). Expert will determine that this polygon belongs to net (node) with name the "6", form the appropriate message, and send it to the ITC Server, which will retranslate it to Scholar.




Figure 8. Selecting polygon for cross-probing


Scholar analyzes all drawings, set in the cross-probing mode, and highlight the net with the given name (see Figure 9). If there are several nets with the given name, all of them will be highlighted. Also if one net belongs to several pages of one drawing, all of its parts will be highlighted. The user can go through all the pages of analyzed drawings and see all parts of the selected net.




Figure 9. Highlighting nets in Scholar drawing.


If SmartSpice is also connected to an ITC Server the user can see highlighted curves on plot windows for objects selected in Scholar's drawing or in Expert's cell view. Figure 10 shows the result of selection transistor "M2" in Scholar (see Figure 6) within the cross-probing mode. Also it is useful to see highlighted objects in schematics and/or in layout by clicking on a curve in SmartSpice's chart.




Figure 10. The result of cross-probing in SmartSpice.

Conclusion

Inter-Tool Communication within CAD CELEBRITY is based on server/client architecture and socket mechanism of message exchange. This approach is in conjunction with the innovative structure of communication messages allowing for the possibility to solve all inter-tool communication tasks mentioned in the introduction. Some of them are as follows: cross-probing, dynamic back annotation and design management which has been already implemented in the beta version of the CAD CELEBRITY Framework.

Also the basic principles of CAD CELEBRITY Inter-Tool Communication allow to integrate applications concurrently executed on different computers with different platforms.