The Liberty Structural Specification Language: A High-Level
Modeling Language for Component Reuse [abstract] (ACM DL, PDF)
Manish Vachharajani, Neil Vachharajani, and David I. August
Proceedings of the 2004 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), June 2004.
Rapid exploration of the design space with simulation models is
essential for quality hardware systems research and development.
Despite striking commonalities across hardware systems, designers
routinely fail to achieve high levels of reuse across models
constructed in existing general-purpose and domain-specific languages.
This lack of reuse adversely impacts hardware system design by slowing
the rate at which ideas are evaluated. This paper presents an
examination of existing languages to reveal their fundamental
limitations regarding reuse in hardware modeling. With this
understanding, a solution is described in the context of the design
and implementation of the Liberty Structural Specification Language
(LSS), the input language for a publicly available high-level
digital-hardware modeling tool called the Liberty Simulation
Environment. LSS is the first language to enable low-overhead reuse
by simultaneously supporting static inference based on hardware
structure and flexibility via parameterizable structure.
Through LSS, this paper also introduces a new type inference algorithm
and a new programming language technique, called use-based
specialization, which, in a manner analogous to type inference,
customizes reusable components by statically inferring structural
properties that otherwise would have had to have been specified
manually.