Constraint analysis for code generation : Basic techniques and applications in FACTS

C.A.J. Eijk, van, B. Mesman, C.A. Alba Pinto, Q. Zhao, M.J.G. Bekooij, J. Meerbergen, van, J.A.G. Jess

Research output: Contribution to journalArticleAcademicpeer-review

9 Citations (Scopus)

Abstract

Code generation methods for digital signal processors are increasingly hampered by the combination of tight timing constraints imposed by signal p processing applications and resource constraints implied by the processor architecture. In particular, limited resource availability (e.g.registers) poses a problem for traditional methods that perform code generation in separate stages (e.g., scheduling followed by register binding). This separation often results in suboptimality (or even infeasibility) of the generated solutions because it ignores the problem of phase coupling (e.g., since value lifetimes are a result of scheduling, scheduling affects the solution space for register binding). As a result, traditional methods need an increasing amount of help from the programmer (or designer) to arrive at a feasible solution. Because this requires an excessive amount of design time and extensive knowledge of the processor architecture, there is a need for automated techniques that can cope with the different kinds of contraints during scheduling. By exploiting these constraints to prune the schedule search space, the scheduler is often prevented from making a decision that inevitably violates one or more constraints. FACTS is a research tool developed for this purpose. In this paper we will elucidate the philosophy and concepts of FACTS and demonstrate them on a number of examples.
Original languageEnglish
Pages (from-to)774-793
Number of pages20
JournalACM Transactions on Design Automation of Electronic Systems
Volume5
Issue number4
DOIs
Publication statusPublished - 2000

Fingerprint

Dive into the research topics of 'Constraint analysis for code generation : Basic techniques and applications in FACTS'. Together they form a unique fingerprint.

Cite this