A Vertically Integrated Framework for Templatized Chip Design
Jeongeun Kim, Christopher Torng
TL;DR
Marionette addresses the challenge of software developers prototyping custom hardware by translating object-oriented software into a vertically integrated hardware stack that preserves object structure and protocols via session-type specifications. It introduces a formal equivalence verification framework that ensures software-level interactions are realized identically in RTL and in layout, coupled with interconnect designs (snoopy bus vs crossbar) and a template-based, correctness-by-construction layout library. Key contributions include cross-layer session-type equivalence checking, data-aware verification, scalable implementation, and a templated optimization flow that makes hardware design more accessible to software-first users. Evaluation on CNN modules demonstrates that a snoopy-bus network can outperform Arduino-based prototyping for MAC-heavy workloads, validating the practicality of software-driven chip prototyping while highlighting trade-offs in area, latency, and power.
Abstract
Developers who primarily engage with software often struggle to incorporate custom hardware into their applications, even though specialized silicon can provide substantial benefits to machine learning and AI, as well as to the application domains that they enable. This work investigates how a chip can be generated from a high-level object-oriented software specification, targeting introductory-level chip design learners with only very light performance requirements, while maintaining mental continuity between the chip layout and the software source program. In our approach, each software object is represented as a corresponding region on the die, producing a one-to-one structural mapping that preserves these familiar abstractions throughout the design flow. To support this mapping, we employ a modular construction strategy in which vertically composed IP blocks implement the behavioral protocols expressed in software. A direct syntactic translation, however, cannot meet hardware-level efficiency or communication constraints. For this reason, we leverage formal type systems based on sequences that check whether interactions between hardware modules adhere to the communication patterns described in the software model. We further examine hardware interconnect strategies for composing many such modules and develop layout techniques suited to this object-aligned design style. Together, these contributions preserve mental continuity from software to chip design for new learners and enables practical layout generation, ultimately reducing the expertise required for software developers to participate in chip creation.
