Computer-Aided Design Algorithms for Integrated Circuits
Recent years have seen an incredible increase in the achievable densities, speeds, and complexities of integrated circuits. The key to designing such complex chips is the use of complex computer-aided design tools. In this course, we will examine some of the optimization algorithms behind these CAD tools, and learn how CAD tools translate a circuit to a working chip. We will study each aspect of the design flow including high-level design, technology dependent and independent optimization, partitioning, floorplanning and placement, and routing. We will talk about algorithms that target both custom chips and FPGAs. We will also touch on CAD for mapping programs to Quantum Annealing computers. This course will be of interest to three types of students: (1) Students interested in integrated circuit design. Having a thorough understanding of how CAD tools work and the algorithms they employ is key to using these tools effectively, (2) Students interested in software design. Many of the optimization algorithms we will talk about (simulated annealing, dynamic programming, genetic algorithms, etc.) have many applications outside of CAD tool design. Understanding these algorithms is an essential component of any software designer’s arsenal. (3) Students interested in pursuing research in CAD tool design. This is an exciting, fast moving area with many research opportunities. This course will give a good overview of the field, and will identify many open research problems.
Credit will only be given for one of CPEN 513 or EECE 583.