MOJITO is a tool for analog circuit topology selection / topology design (synthesis).
- Inputs: a hierarchical library of analog building blocks (pre-specified), having >100K possible topologies
- Action: Searches ("synthesizes") possible topologies and sizings, with SPICE in the loop. Multi-objective, device operating constraints. Operating-point driven approach to sizing.
- Returns: a set of sized topologies that approximate a performance tradeoff curve.
There are two main versions of MOJITO. The basic, simplest, and most stable version is at https://github.com/trentmc/mojito. The version here is faster ("TAPAS" extension), variation-aware ("R" extension), and has a bigger topology library (>100,000 topologies). However, this version is a bit more unstable than the basic MOJITO. For example, the unit tests are not all passing. If you want simple code and basic results, then use MOJITO. Only use this version if you want to levearage its extra benefits (variation, speed, or larger library).
"MOJITO-R" was described at: T. McConaghy, P. Palmers, M. Steyaert, and G.G.E. Gielen, Trustworthy genetic programming-based synthesis of analog circuit topologies using hierarchical domain-specific building blocks, IEEE Transactions on Evolutionary Computation 15(4), Aug. 2011, pp. 557-570. http://trent.st/content/2011-TEVC-mojito-ea.pdf
"MOJITO-TAPAS" was described at: P. Palmers, T. McConaghy, M. Steyaert, and G.G.E. Gielen, Massively multi-topology sizing of analog integrated circuits, in Proc. Design Automation and Test in Europe (DATE), March 2009. trent.st/content/2009_DATE_mojito_tapas.pdf