![]() |
|
|||
|
Home
Process Simulation
Device Simulation
Interactive Tools
Virtual Wafer Fab
Licensing
Platforms
Services
Design Flows
Technical Library
Downloads and Support
Corporate
Learn more
|
Inter-Tool Communication Within CAD CELEBRITYIntroduction
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:
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:
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:
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; 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 6. Cross-Probing mode within Scholar's Drawing window.
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. |
|||
| © 1984 -
Silvaco Data Systems Inc. -
Trademarks - Privacy Policy
|
||||