mufp, a language for vlsi design
In this paper, we present a VLSI design language &mgr;FP, which is a variant of Backus' FP [Backus 78, 81]. &mgr;FP differs from conventional VLSI design languages in that it can describe both the semantics (or behaviour) of a circuit and its layout (or floorplan) [Sheeran 83]. We chose to base our design language on FP for several reasons. Functional programs are easier to write and to reason about than imperative ones. We hope to bring some of these benefits to IC design. FP, in particular, is designed to allow the programmer to reason about his or her programs by manipulating the programs themselves. Likewise, in &mgr;FP, programs (or circuit descriptions) are just expressions made from a small number of primitive functions and combining forms (functionals that map functions into functions). These functions and combining forms (CFs) were chosen because they have nice algebraic properties. Thus, circuit descriptions are concise and can be easily manipulated using the algebraic laws of the language. Also, each CF has a simple geometric interpretation, so that every &mgr;FP expression has an associated floorplan. This interpretation exists because &mgr;FP expressions represent functions rather than objects, allowing us to associate a function with each section of the floorplan. Most VLSI design languages are designed either for layout description or for behavioural specification. &mgr;FP, with its dual interpretation, allows the designer to consider the effect on the final layout of a particular design decision or to manipulate the layout while keeping the semantics constant. In the following sections, we show how &mgr;FP is constructed from FP by the addition of a single combining form &mgr;, which encapsulates a very simple notion of state.
language design paper semantic circuits layout floorplanning reasoning functional functional programming program writing programmer express combinational interpretation association object effect