The design and implementation of a component-based distributed Java front-end for the Berkeley SPICE circuit-simulation program is described. The front-end is architected as a client-server application implemented via the Remote Method Invocation (RMI) API. A graphical user-interface is implemented on the client-side which has multiple components for command and control, graphing, text-editing and communication with the server. JavaBeans API is used as the underlying component model. On the server side, the native SPICE code (in C language) is converted into a dynamic library and is interfaced with the Java Server code using Java Native Interface (JNI) API. Implementation issues related to modi cations in the SPICE code enabling multiple invocations as a shared object, e cient input/output of simulation data from the Java code, waveform compression and extraction for display on client side, real-time transfer of SPICE generated runtime messages from the server to client etc. are discussed. Benchmark results comparing performance of le input using various Java I/O classes are presented.
Download Full PDF Version (Non-Commercial Use)