Software Model Interface
© Copyright 2000-2007 Adrian Lewis
 

SMI Home
Why SMI?
Documentation
Download
Platforms
Future
Support

   

SMI Home Page

This is the home page of the Software Model Interface (SMI). The Software Model Interface (SMI) is a library for modeling hardware components in a combination of C/C++ and Verilog HDL. With SMI, hardware components are modelled using simple Verilog bus-functional models (BFMs) controlled by C/C++ running in one or more separate threads or processes. SMI provides the user with an easy-to-use interface and takes care of all calls to the Verilog-PLI and to the socket/thread library.

Features:

  • Powerful implementation
    • Create modular re-usable and extendible models.
    • Uses multiple processes communicating via sockets or CORBA.
  • Models easy to implement and use. For example, for a memory model:
    • The Verilog module uses only THREE Verilog task calls.
    • The C++ class requires only ONE method in addition to the class constructor.
    • The test code calls only THREE methods on SMI classes plus one constructor for each memory instance.
  • Small learning curve, simple interfaces:
    • Fully documented code and user manual with a working example.
    • Simple Verilog Interface: only FOUR basic task calls.
    • Simple C++ Interface: only FOUR classes, each with an average of FOUR basic methods.
  • Simple installation: run ./configure then make.
  • Easy to debug: printable exceptions are raised if SMI encounters a problem.
  • Platform portability: tested on Linux and Solaris with Icarus and VCS simulators.
  • Open source: standard GNU License, no sign-up required, no special conditions of use!

Site Map:

  • SMI Home: This page!
  • Why SMI?: Why should you use SMI? This page presents some very persuasive arguments.
  • Documentation: The online user manual and specification explains how to create SMI models and use them in your simulation environment. The documentation begins with an overview and ends with a working example.
  • Download: The current version of the SMI software, which includes the online manual and installation instructions, can be downloaded from this page.
  • Platforms: This page describes the hardware/OS platforms and software versions required to compile and simulate using SMI.
  • Future: You can influence the future of SMI by reading about proposed extensions presented on this page. Pick the order you'd like to see the extensions implemented (or suggest your own) and send me an e-mail.
  • Support: Found bugs? Having problems installing? Want to send me a large cheque but don't know the address? Contact information is on this page.

This website uses CSS stylesheets and Frames.