Jaijeet Roychowdhury edited this page May 8, 2017 · 24 revisions
Clone this wiki locally

The Berkeley Model and Algorithm Prototyping Platform (MAPP)

Berkeley MAPP is a MATLAB-based platform for prototyping numerical models and simulation algorithms. MAPP also runs in Octave.

MAPP eases the process of developing new device models and simulation algorithms, especially for those who do not have an extensive background in compact modelling or experience coding algorithms in simulators. Towards this end, MAPP features a MATLAB/Octave-based executable format, ModSpec, that makes it easy to describe new devices and to prototype them in simulation quickly and conveniently. A translator, VAPP, translates device models from Verilog-A to ModSpec for use with MAPP.

Interconnections between devices can be specified using a MATLAB/Octave-based netlist description language similar to that of SPICE. MAPP features online help to help new users get started and to provide more advanced users information about internal structuring and available functions.

An overview of MAPP is available in this paper; examples of its use for developing novel simulation tools are available here and here.

MAPP is meant for quick and convenient prototyping in a MATLAB/Octave environment. As such, it is not optimized for design use in the same way that many commercial or open source simulators, such as SPECTRE, FastSPICE, HSPICE, ADS, Xyce, ngspice, QUCS and Berkeley SPICE, are. MAPP is useful when the primary goal is to develop, debug or refine a new device model or simulation algorithm, or to learn modelling/simulation concepts in a concrete, hands-on manner.

MAPP has been developed at Berkeley in Jaijeet Roychowdhury's group as an open source project released under the GPL on github. (Alternative licensing models are also available, please email jr@berkeley.edu for details.) MAPP development has been funded primarily by the NSF NEEDS project and has been informed by long-standing interactions with Sandia's Xyce group.

There are two ways you can get MAPP:

  • git clone https://github.com/jaijeet/MAPP.git (recommended); it should automatically check out and put you in the current release branch. Then follow the instructions in 0-README. Note: this is best done in a Unix environment; it uses autoconf, make and other standard Unix tools to set up MAPP.
  • download a "pre-built snapshot" for this release.
    • To set up and use MAPP: untar it somewhere (say under /where/ever/, ie, creating /where/ever/MAPP-2017-02-15-release-936fe19c63bf22cd50399c5cba1de4f0c2a339fa/), and follow the instructions in the file 00-READ-THIS-FIRST within.
    • Note: the tarball contains soft links, extracting which correctly is important. On OSX and Windows, the default archive extraction tools typically mess these up, so try the following instead:
      • OSX: open a terminal and give the command tar zxvf /var/tmp/MAPP-2017-02-15-release-936fe19c63bf22cd50399c5cba1de4f0c2a339fa-release-snapshot-2017-02-17-0715.tgz
      • Windows: use 7zip to extract. Get 7zip here.