Methodology, Algorithms, and Framework for Hardware Design Understanding
Understanding a given digital system is at least as hard as implementing it. Particularly this holds for systems designed in large projects where no single person knows all details, legacy components with poor or outdated documentation are reused, and team members change regularly. Designers then try to understand the inner logic of the design using various sources -- informal discussions with team members, textual information like documents for requirements and specifications, and review as well as execution of source code and test cases.This project strives to support a designer in understanding the source code of a system design at Register Transfer Level (RTL) in a holistic way:We will study methodology, theory, and algorithms to guide a designer through the source code. To handle the underlying complexity and to provide concise explanations for a design, we will devise a framework for interactive usage that combines light-weight guidance with algorithms that automatically derive result which are understandable. The framework implementing our methodology and underlying algorithms will be evaluated in empirical design studies for different tasks on practical designs taken from the open source domain.The project is ground breaking as it formalizes the methodology for design understanding, holistically addresses design understanding starting from a full design task to individual steps, and comprehensively evaluates the practical impact in empirical studies.