NetTrace: API

The NetTrace API is based on the QIS API.



Ntrc_Get_Version

Summary

returns the current version of NetTrace.

Arguments

None

Example
Client
----------------
Ntrc_Get_Version\n
                            NetTrace
                            ----------------------
                            Ntrc_Get_Version\n
                            1.0 Beta (23 June 2005)\n

Errors

No error messages generated from this command.




Ntrc_Set_Input_File

Summary of API Function

Informs the NetTrace server which GDSII file is to be traced. This file must, of course, be already opened in QIS.


Arguments

the client provides the name of the full path to the GDSII file to be processed. There is no response from the server.


Example

Client
------------------------
Ntrc_Set_Input_File\n
inputfilename.gds\n

                             Server
                             --------------
Errors

Input GDSII File does not exist - If the input GDSII file specified does not exist, NTS issues following error to client,

Ntrc_Error\n
Invalid Parameter: Input file does not exist.\n

NTS Startup 'exit' codes

Exit Code (1)
1 - Thread error.
Example:
- NTS thread creation failed for link QIS-NTS. (Thread responsible to
  talk to QIS)
- NTS thread creation failed for link NTS-CLIENT.(Thread responsible to talk to
  clients)
2 - NTS unable to communicate with QIS.
3 - NTS failed to start at the specified port and IP address.
4 - NTS failed to allocate memory.
0 - Represents normal startup and normal exit as well.




Ntrc_Set_Tech_Stackup

Summary of API Function

This API sends NetTrace the stack-up information needed to perform the tracing. The stackup data must be provided prior to requesting a net trace.

Arguments

The server expects two arguments -- the data length in bytes followed by the lines required to define the stackup. NetTrace does not respond to the client's command.

Example
Client
-----------------------
Ntrc_Set_Tech_Stackup\n
1256\n
METAL\n
# Order Layerno Name    Type\n
   1      10   poly       P \n
   2      30   contact    C \n
   3      31   metal1     M \n
   4      32   via1       V \n
   5      33   metal2     M \n
   6      34   via2       V \n
   7      35   metal3     M \n
   8      36   via3       V \n
   9      37   metal4     M \n
ENDMETAL \n
Errors

currently the data is written to file and no checking is done on the syntax.

Usage Notes

In the first cut of NetTrace, the client needs to send this command prior to each trace request. In future releases, The NetTrace server will save the stackup settings and be able to re-use them.




Ntrc_Set_Preferences

Summary of API Function

This API command is used the set a variety of parameters for control of NetTraces behavior. This is generally sent prior to the first net tracing request. This is an optional command and each parameter is optional.

Arguments

The NetTrace server expects 1 argument for this command. The argument is in the same "form" as a command line would be. Each individual preference in the list is delimited by a space from the next. All paramters (including this API command are optional)

Example

In the example below the arguments are shown on separate "lines" but when sent from the client they are a continuous byte stream which is terminated by the "\n" end of line character.

Client
-------
-viasize:_VS_ 
  -startorder:_SO_ 
   -sfactor:_SF_ 
     -retain 
      -clientwin:_CWX_,_CWY_ \n

                                Server
                                ------
Details of the Preference Settings

_VS_ specifies maximum via size. Entities found on a via layer larger than this size are ignored.
_SO_ specifies start order stack-up layer. There is no need to use this option unless you wish to ignore layers defined in the stackup. The option was implemented for Sun Microsystems as part of a special function.
-CWX_ & _CWY

specifies the client's current viewing window width and height; helps the NetTrace server in choosing an optimimum window size when requesting data from QIS.

_SF_

This "size factor" helps NetTrace determine the window size used when requesting data from QIS; NetTrace also relies on the GDSII data extents and number of vertices per layer in the current open structure. The larger the sfactor, the larger the data windows requested of QIS. The number of window requests to QIS along x and y dimension increases with a factor of sq. rt of the sfactor.

-retain

This (optional) flag instructs NetTrace to retain (in memory) all of the window data it receives from QIS until it is done tracing a net. For example, if during a net computation, a net moves from window 1 to window 3 and then it returns back to window 1 (possibly via a different layer) NetTrace does not need to re-request the boundary data for window 1 from QIS since it has "cached" the boundaries for that window. This parameter essentially trades additional memory usage against less computation work by QIS. Note to Mayur: if you are going to offer such a parameter then you are also obliged to offer a debug mode/log that shows for a given trace: how much memory is used by this option; how many "cache" hits are made and how "long" it took to get each window from QIS. Such data would make it easier to understand whether or not the -retain option is a good choice and help predict whether or not to use it on a given GDSII file.



Example
Client
------------------------
Ntrc_Set_Preferences\n
-viasize:5.000 
 -startorder:1 
  -sfactor:10.00 
   -retain 
    -clientwin:100,50\n

                         Server
                         ------------------------

Programmer Notes

In the beta version, the client must need to send this command for each trace requested.




Ntrc_Start

Command Summary

This command starts a net trace from a specified coordinate on a specified layer:data type.

Arguments

NetTrace expects 1 argument for this command. The argument, includes the structure name, layer number:data type and test point x, y co-ordinates. Each of this parameter in this argument is delimited by a comma.


Ntrc_Start\n
Structure name, layer number:datatype, testx, testy\n

where
Structure name             the structure name to which the test point belongs.
layer number:datatype      the layer number and data type to which the test point belongs.
testx                      the x co-ordinate of the test point.
testy                      the y co-ordinate of the test point.
Example
Client
----------------
Ntrc_Start\n
TOP,1:2,96.222,101.222\n

Upon receiving this command, NetTrace will send a request to QIS to get the required boundary data in the initial window; it will start tracing the net within that window starting at the seed coordinate. As geometries belonging to the net are identified, the vector data will be returned to the client ... NetTrace will make further requests to QIS as the net moves out of the current window and into new regions of the layout.

              Server
              --------------------------
              Ntrc_Vector_Data\n
              B,_STRUCTURE_,_LAY_:_DT_,_NOOFVERT_, x1 y1  x2 y2 ... xn yn\n
              B,_STRUCTURE_,_LAY_:_DT_,_NOOFVERT_, x1 y1  x2 y2 ... xn yn\n
              B,_STRUCTURE_,_LAY_:_DT_,_NOOFVERT_, x1 y1  x2 y2 ... xn yn\n
              B,_STRUCTURE_,_LAY_:_DT_,_NOOFVERT_, x1 y1  x2 y2 ... xn yn\n
              B,_STRUCTURE_,_LAY_:_DT_,_NOOFVERT_, x1 y1  x2 y2 ... xn yn\n
              B,_STRUCTURE_,_LAY_:_DT_,_NOOFVERT_, x1 y1  x2 y2 ... xn yn\n
              .
              .
              .
              Ntrc_Start\n

Details of the Returned Data from NetTrace


_STRUCTURE_ the name of the structure containing this boundary.
_LAY_ the layer of the boundary. [ 0-1024 ]
_DT_ the datatype of the boundary. [ 0 - 1024 ]
_NOOFVERT_ the number of vertices to follow.
x1 y1 x2 y2 … xn yn coordinate of the vertices. These are in the GDSII file user units.
Ntrc_Start\n all data has been returned and the request closed out.


Programmer Note: in the future NetTrace will offer other methods of returning the net boundraies to the client -- possibly in binary blocks for to reduce communication overhead.

Errors
Invalid or incomplete argument list
If the Ntrc_Start command argument list is incomplete or incorrect,
NTS issues following error to client.
Ntrc_Error\n
Invalid Parameter(s): Expected argument list-structure name,layer number,
datatype,start pt.x,start pt.y\n


Input GDSII file is not specified
If the GDSII input file is not specified before calling Ntrc_Start
command, NTS issues following usage error to client
Ntrc_Error\n
Usage Error: No input file specified.\n



Technology file is not specified
If the technology file is not specified before calling Ntrc_Start
command, NTS issues following usage error to client.
Ntrc_Error\n
Usage Error: No technology stack up file specified.\n


Invalid Structure
If the structure specified as part of Ntrc_Start argument list is
invalid, NTS issues following error to client.
Ntrc_Error\n
Invalid Paramter: Structure specified is not a valid structure.\n



Input GDSII File is invalid
If the input GDSII file specified before(Ntrc_Set_Input_File) is
an invalid GDSII file, NTS detects this anomaly when it receives Ntrc_Start command.
Ntrc_Error
Invalid File: Input file specified is not a valid GDSII file.


Technology file is invalid
If the technology file specified before the Ntrc_Set_Stackup_File..
Ntrc_Error
Invalid File: Technology file specified is not a valid stackup file.




Ntrc_Set_Stackup_File

Command Summary

This command allows you to specify the stackup file on the machine, where NTS(Nettrace server) is running.


Arguments
Ntrc_Set_Stackup_File\n
Technology stackup file name\n

Example
  Client
  ---------
Ntrc_Set_Stackup_File\n
c:\wcad\qis\demo1.tec\n

                  Server
                  ---------
Errors
Technology file does not exist
If the file specified does not exist, NTS issues following error to client..
Ntrc_Error\n
Invalid Parameter: Technology stack up file does not exist.\n



Ntrc_Set_Show_Details

Command Summary

This command allows you to turn on or off the printing at the NTS console. You can turn it on only for debugging / trace purposes.


Arguments
Ntrc_Set_Stackup_File\n
On or Off\n

Example
  Client
  ---------
Ntrc_Set_Stackup_File\n
On\n

                  Server
                  ---------
Errors
Invalid parameter
If the argument is not a valid argument (on or off), NTS issues following error to client..
Ntrc_Error\n
Invalid Parameter(s): Expected argument list-on or off.\n



Ntrc_Exit

Command Summary

This command allows you to control the exit of NTS from the remote client. You can ask NTS to exit by sending this command.


Arguments
Ntrc_Exit\n

Example
  Client
  ---------
Ntrc_Exit\n

                  Server
                  ---------
Errors
No errors for this command.


Ntrc_Pause

Command Summary

Pauses a trace operation. NetTrace will not stop immediately: It will continue net extraction until it needs a new data window from QIS.


Arguments

None


Example
  Client
  ---------
  Ntrc_Pause\n

                  Server
                  ---------



Ntrc_Resume

Restarts a net trace operation after a pause.


Arguments

None


Example

Client
-------------
Ntrc_Resume\n

                 Server
                 -----------


Ntrc_Stop

Stops the NetTrace server


Arguments

None


Example

Client
-------------
Ntrc_Stop\n

                 Server
                 -----------


Ntrc_Exit

Shuts down the NetTrace server


Arguments

None


Example

Client
-------------
Ntrc_Exit\n

                 Server
                 -----------






Download   |   Documentation   |   API Details   |   Revision History