EDA toolchains are notoriously unpredictable, incomplete, and error-prone; the generally-accepted remedy has been to re-imagine EDA tasks as compilation problems. However, any compiler framework we apply must be prepared to handle the wide range of EDA tasks, including not only compilation tasks like technology mapping and optimization (the "there"} in our title), but also decompilation tasks like loop rerolling (the "back again"). In this paper, we advocate for equality saturation -- a term rewriting framework -- as the framework of choice when building hardware toolchains. Through a series of case studies, we show how the needs of EDA tasks line up conspicuously well with the features equality saturation provides.
@article{arxiv.2404.00786,
title = {There and Back Again: A Netlist's Tale with Much Egraphin'},
author = {Gus Henry Smith and Zachary D. Sisco and Thanawat Techaumnuaiwit and Jingtao Xia and Vishal Canumalla and Andrew Cheung and Zachary Tatlock and Chandrakana Nandi and Jonathan Balkind},
journal= {arXiv preprint arXiv:2404.00786},
year = {2024}
}