Skip to Main Content
This paper describes how program synthesis techniques can be applied to the generation of technology-sensitive VLSI design tools. We present results from ELF, a synthesis tool for wire-routing software. The ELF synthesis architecture has three key features. First, a very high level language, lacking data structure implementation specifications is used to describe algorithm design styles. Second, routing domain knowledge and generic program synthesis knowledge are used to guide search among candidate design styles for all necessary component algorithms, and to deduce compatible data structure implementations for these components. Third, code generation is used to transform the resulting abstract descriptions of selected algorithms and data structures into final, executable code. Code generation is an incremental, stepwise refinement process. We present experimental results from several correct, fully-functional routers synthesized by ELF from varying high-level specifications.