Twine: A Chisel Extension for Component-Level Heterogeneous Design

Shibo Chena, Yonathan Fissehab, Jean-Baptiste Jeanninc and Todd Austind
University of Michigan, Ann Arbor
achshibo@umich.edu
byonathan@umich.edu
cjeannin@umich.edu
daustin@umich.edu

ABSTRACT


Algorithm-oriented heterogeneous hardware design has been one of the major driving forces for hardware improvement in the post-Moore’s Law era. To achieve the swift development of heterogeneous designs, designers reuse existing hardware components to craft their systems. However, current hardware design languages either require tremendous efforts to customize designs, or sacrifice quality for simplicity. Chisel, while attracting more users for its capability to easily reconfigure designs, lacks a few key features to further expedite the heterogeneous design flow. In this paper, we introduce Twine—a Chisel extension that provides high-level semantics to efficiently generate heterogeneous designs. Twine standardizes the interface for better reusability and supports control-free specification with flexible data type conversion, which saves designers from the busywork of interconnecting modules. Our results show that Twine provides a smooth on-boarding experience for hardware designers, considerably improves reusability, and reduces design complexity for heterogeneous designs while maintaining high design quality.



Full Text (PDF)