ABSTRACT
Modern high-level languages bring compelling productivity benefits to hardware design and verification. For example, hardware generation and simulation frameworks (HGSFs) use a single "host" language for parameterization, static elaboration, test bench generation, behavioral modeling, and simulation. Unfortunately, HGSFs often suffer from slow simulator performance which undermines their potential productivity benefits. In this paper, we introduce Mamba, a new Python-based HGSF that co-optimizes both the framework and a general-purpose just-in-time compiler. We conduct a quantitative comparison of Mamba vs. traditional and emerging hardware development frameworks across both simple and complex designs. Our results suggest Mamba is able to match the performance of commercial Verilog simulators and is 10× faster than existing HGSFs while still maintaining the productivity of using a high-level language in hardware design.
- D. Ancona et al. RPython: A Step Towards Reconciling Dynamically and Statically Typed OO Languages. Symp. on Dynamic Languages, Oct 2007. Google ScholarDigital Library
- K. Asanovic et al. Instruction Sets Should Be Free: The Case for RISC-V. Technical report, UCB/EECS-2014-146, Aug 2014.Google Scholar
- C. Baaij et al. Clash: Structural Descriptions of Synchronous Hardware Using Haskell. Euromicro Conf. on Digital System Design (DSD), Sep 2010. Google ScholarDigital Library
- J. Bachrach et al. Chisel: Constructing Hardware in a Scala Embedded Language. Design Automation Conf. (DAC), Jun 2012. Google ScholarDigital Library
- S. Belloeil et al. Stratus: A Procedural Circuit Description Language Based Upon Python. Int'l Conf. on Microelectronics (ICM), Dec 2007.Google Scholar
- P. Bellows et al. JHDL-An HDL for Reconfigurable Systems. Symp. on FPGAs for Custom Computing Machines (FCCM), Apr 1998. Google ScholarDigital Library
- P. Bjesse et al. Lava: Hardware Design in Haskell. Int'l Conf. on Functional Programming (ICFP), Sep 1998. Google ScholarDigital Library
- C. F. Bolz et al. Tracing the Meta-Level: PyPy's Tracing JIT Compiler. Workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems (ICOOOLPS), Jul 2009. Google ScholarDigital Library
- J. Clow et al. A Pythonic Approach for Rapid Hardware Prototyping and Instrumentation. Int'l Conf. on Field Programmable Logic (FPL), Sep 2017.Google Scholar
- J. Cong et al. High-Level Synthesis for FPGAs: From Prototyping to Deployment. IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems (TCAD), 30(4):473--491, Mar 2011. Google ScholarDigital Library
- J. Decaluwe. MyHDL: A Python-based Hardware Description Language. Linux Journal, Nov 2004. Google ScholarDigital Library
- J. P. Grossman et al. The Role of Cascade, a Cycle-Based Simulation Infrastructure, in Designing the Anton Special-Purpose Supercomputers. Design Automation Conf. (DAC), Jun 2013. Google ScholarDigital Library
- P. Haglund et al. Hardware Design with a Scripting Language. Int'l Conf. on Field Programmable Logic (FPL), Sep 2003.Google Scholar
- Icarus Verilog. http://iverilog.icarus.com.Google Scholar
- J. Jennings et al. Verischemelog: Verilog Embedded in Scheme. Conf. on Domain-Specific Languages (DSL), Oct 1999. Google ScholarDigital Library
- Y. Li et al. HML, A Novel Hardware Description Language and Its Translation to VHDL. IEEE Trans. on Very Large-Scale Integration Systems (TVLSI), 8(1):1--8, Dec 2000. Google ScholarDigital Library
- D. Lockhart et al. PyMTL: A Unified Framework for Vertically Integrated Computer Architecture Research. Int'l Symp. on Microarchitecture (MICRO), Dec 2014. Google ScholarDigital Library
- A. Mashtizadeh. PHDL: A Python Hardware Design Framework. Master's thesis, EECS Department, MIT, May 2007.Google Scholar
- Migen. https://m-labs.hk/gateware.html.Google Scholar
- N. Nikhil. Bluespec System Verilog: Efficient, Correct RTL from High-Level Specifications. Int'l Conf. on Formal Methods and Models for Co-Design (MEMOCODE), Jun 2004. Google ScholarDigital Library
- P. R. Panda. SystemC: A Modeling Platform Supporting Multiple Design Abstractions. Int'l Symp. on Systems Synthesis (ISSS), Oct 2001. Google ScholarDigital Library
- D. G. Pérez et al. A New Optimized Implemention of the SystemC Engine Using Acyclic Scheduling. Design, Automation, and Test in Europe (DATE), Feb 2004. Google ScholarDigital Library
- O. Shacham et al. Rethinking Digital Design: Why Design Must Change. IEEE Micro, 30(6):9--24, Nov/Dec 2010. Google ScholarDigital Library
- Verilator. http://www.veripool.org/wiki/verilator.Google Scholar
- Mamba: closing the performance gap in productive hardware development frameworks
Recommendations
Mamba: Closing the Performance Gap in Productive Hardware Development Frameworks
2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC)Modern high-level languages bring compelling productivity benefits to hardware design and verification. For example, hardware generation and simulation frameworks (HGSFs) use a single “host” language for parameterization, static elaboration, ...
Mamba: A scalable communication centric multi-threaded processor architecture
ICCD '12: Proceedings of the 2012 IEEE 30th International Conference on Computer Design (ICCD 2012)In this paper we describe Mamba, an architecture designed for multi-core systems. Mamba has two major aims: (i) make on-chip communication explicit to the programmer so they can optimize for it and (ii) support many threads and supply very lightweight ...
The Story of Mamba: Aligning Messages Against Recovered Additives
A postwar report shows that during World War II, OP-20-GM, the research section of Naval Communications, planned and the Naval Computing Machine Laboratory engineered and produced at least 27 different codebreaking machines or attachments, and did ...
Comments