MNRL and MNCaRT: An Open-Source, Multi-Architecture State Machine Research and Execution Ecosystem

  • Authors:
    Kevin Angstadt (Univ. of Virginia), Jake Wadden (Univ. of Virginia), Westley Weimer (Univ. of Virginia), Kevin Skadron (Univ. of Virginia)
    Publication ID:
    Publication Type:
    Received Date:
    Last Edit Date:
    2384.007 (University of Michigan)


We present MNRL, an open-source, general-purpose and extensible state machine representation language. The representation is flexible enough to support traditional finite automata (NFAs, DFAs) while also supporting more complex machines, such as those which propagate multi-bit signals between processing elements. The specification is based on JSON, a data interchange format that is supported across general-purpose programming languages. We also provide Python and C++ APIs for direct reading and writing of MNRL files.

We also discuss MNCaRT, the software ecosystem built around MNRL. MNCaRT is an umbrella repository of previously-published tools, which have been adapted to support MNRL, as well as new tools, which were specifically designed for MNRL. Tool support includes manipulation of MNRL files, execution of complex machines, high-speed processing of simplified MNRL files, and compilation of regular expressions to MNRL. We support the execution of MNRL networks on CPUs (with VASim and Intel Hyperscan), GPUs (with a custom DFA engine), and FPGAs (with a MNRL to HDL translator). As with MNRL, all of the tools in MNCaRT are open-source, allowing for development and use in both academia and industry.

4819 Emperor Blvd, Suite 300 Durham, NC 27703 Voice: (919) 941-9400 Fax: (919) 941-9450

Important Information for the SRC website. This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.