A New C-Interpreter

Introduction

The C-Interpreter is a general purpose tool that allows users to prototype new model equations. A new C-Interpreter with a more sophisticated architecture and advanced features will be available in a number of Silvaco's products including SmartSpice, ATLAS and UTMOST. The following describes a number of its advanced features and summarizes the benefits it will bring to end users.

 

New C Interpreter Architecture and Features

The new C-Interpreter's architecture, shown in Figure 1., uses state of the art compiler techniques in order to compile a program into an internal machine code representation which is then interpreted by a software virtual machine. This technique gives the new C-Interpreter far superior execution times over its predecessor.

Figure 1. New C interpreter architecture.

 

 

Not only is the new C-Interpreter ANSI/ISO compliant, but it also supports a number of C++ extensions, additional extensions for concurrency and can be embedded within a multi-threaded application allowing multiple virtual machines to interpret more that one program at a time. It also has a new debugger GUI providing user friendly access to all features. Figure 2 shows the new C-Interpreter's debugger GUI main window.

Figure 2. Silvaco C Interpreter (SCI)
debugger GUI main window.

 

 

SmartSpice - C interpreter Model Development

As an example, Figure 3 shows the relationship between the C-Interpreter debugging environment and SmartSpice for model development.

 

Figure 3. SmartSpice - C interpreter debugging relationship.

 

 

The debugging environment shields the user from unnecessary code allowing a focus solely on model development. The integration with SmartSpice allows the results of model modifications to be seen instantly within the SmartSpice simulation as a whole. The new environment preserves the current ability for users to compile model code with the native host compiler once debugged for full model performance optimization.

 

Performance Summary

The new C-Interpreter architecture gives much faster execution speeds allowing faster simulations of interpreted code and faster debug and test cycles. In SmartSpice, early benchmarks have shown a significant improvement over the existing C-Interpreter. Circuits containing single devices including bjts, jfets, mesfets and mosfets have shown total analysis time ratio improvements varying from 3.8 to 7.12. Comparisons with native compiled code Sun Solaris 2.5.1 C compiler have indicated the interpreter to be only four to five times slower which is a much improved performance increase over the current SmartSpice C-Interpreter.

 

Conclusion

In summary the new C-Interpreter currently under development is very powerful and offers a number of sophisticated features. This translates to a number of benefits to the end user. These benefits include much faster interpreted execution times, faster debug/test cycles, improved debugging environment features and cross tool transparency between SILVACO products.