English

Modular Hardware Design with Timeline Types

Hardware Architecture 2023-04-24 v1 Programming Languages

Abstract

Modular design is a key challenge for enabling large-scale reuse of hardware modules. Unlike software, however, hardware designs correspond to physical circuits and inherit constraints from them. Timing constraints -- which cycle a signal arrives, when an input is read -- and structural constraints -- how often a multiplier accepts new inputs -- are fundamental to hardware interfaces. Existing hardware design languages do not provide a way to encode these constraints; a user must read documentation, build scripts, or in the worst case, a module's implementation to understand how to use it. We present Filament, a language for modular hardware design that supports the specification and enforcement of timing and structural constraints for statically scheduled pipelines. Filament uses timeline types, which describe the intervals of clock-cycle time when a given signal is available or required. Filament enables safe composition of hardware modules, ensures that the resulting designs are correctly pipelined, and predictably lowers them to efficient hardware.

Keywords

Cite

@article{arxiv.2304.10646,
  title  = {Modular Hardware Design with Timeline Types},
  author = {Rachit Nigam and Pedro Henrique Azevedo De Amorim and Adrian Sampson},
  journal= {arXiv preprint arXiv:2304.10646},
  year   = {2023}
}

Comments

Extended version of PLDI '23 paper

R2 v1 2026-06-28T10:13:07.523Z