Automated Hardware Design
Design automation is one of the perennial challenges in circuit design.
Despite many decades of research and a large commercial presence in design automation, there remain many aspects of circuit design that are still largely done manually. One of these is pipelining, which refers to implementing a series of operations by simultaneously performing different computations in the series. At the cost of requiring more computation at any one time, this allows a circuit to produce results as shorter intervals.
We are developing techniques to automatically analyze an algorithm and automatically determine how it should be pipelined to achieve a given target with respect to circuit area or throughput.