Skip to Main Content
Behavioural synthesis is the process of automatically translating an abstract specification to physical realisation - silicon. The endpoints of this process are accelerating apart (behavioural descriptions become more abstract, DSM silicon becomes less willing to behave as Boolean circuits) but there is still work outstanding in the middle ground. Recursion allows the elegant expression of complicated systems, and is supported by many languages (software and hardware). The electronic design automation (EDA) tool designers- task is to support the semantics of a language (both simulation and synthesis). Although recursive descriptions can always be re-cast into non-recursive iterative forms, if a language supports a construct, a user should be able to utilise it (the authors are not offering any opinion on the relative wisdom of using recursion or iteration). The authors describe the problems/solutions of supporting the semantics of recursion (single/multiple, direct/arbitrarily indirect) in synthesis. The hardware synthesised can be smaller and faster than that obtained by reformulating the description. It is dangerous, to conclude too much from this - recursion requires a stack and a heap (plus managers). In software, these are taken for granted (-free- resources that do not feature in footprint metrics); in hardware, every resource needed must be explicitly created.