My courses at Texas A&M are listed below:
EE 248 – Introduction to Computer Systems Design. This course covers fundamental concepts in computer systems design such as binary arithmetic, Boolean functions and their representation, two-level and multi-level logic, and finite state machines
EE 449/749 – Microprocessor System Design. This lab course covers several embedded design techniques. The lab material is based on a Xilinx XUP2VP30 board, which has reconfigurable logic as well as a pair of PowerPC 405 microprocessors on the same integrated circuit. The labs cover hardware and software codesign exercises.
EE 454 – Digital Integrated Circuit Design. This course covers several digital IC design techniques. We start with MOSFET modeling, then cover static and dynamic characteristics of typical digital circuits. We will discuss IC design techniques as applicable in industrial practice.
EE 689 – Scalable Distributed Consensus. This course will cover advanced topics in distributed consensus, which is the core algorithm used in several blockchain based
applications. Particular emphasis will be given to scalablility.
EE 689 – Quantum and Logic Synthesis. This covers both classical logic synthesis (methods for efficient representation and optimization of logic) and quantum logic synthesis, and the “bridge” between them.
EE 699 – VLSI Logic Synthesis. This course covers different methods for logic representation, manipulation, and optimization, for both combinational and sequential logic. The course views logic synthesis in the context of the implementation styles that are popularly used in industry today.
EE 754 – Advances in VLSI Circuit Design. The class covers design techniques applicable in a custom VLSI design setting. We cover various CMOS circuit design styles, design and simulation techniques including 3-D parasitic extraction, leakage power reduction and exploitation, dynamic compensation of circuit behavior, design of semiconductor memories, packaging issues and transmission line analysis.
Below is a list of the graduate and undergraduate courses that I taught at the University of Colorado, Boulder. My graduate classes are research-centric, and usually have a research project in lieu of a final exam.
ECEN 6013 – Computer-Aided Design Techniques for VLSI
This class covers circuit-level, switch-level, and logic-level simulation techniques in addition to physical design topics like circuit partitioning, placement and global as well as detailed routing. This course was first offered in the Fall 2002 semester.
ECEN 6003 – Digital Circuit Design
The class covers design techniques applicable in a custom VLSI design setting. We cover various CMOS circuit design styles, design and simulation techniques including 3-D parasitic extraction, design of semiconductor memories, packaging issues and transmission line analysis.
ECEN 6139 – VLSI Logic Synthesis
This course deals with logic synthesis techniques for VLSI, with an emphasis on the VLSI design techniques that drive corresponding logic synthesis algorithms. We cover two-level logic optimization, multi-valued logic optimization, multi-level network optimization, multi-level don’t cares, factorization, timing optimization, technology mapping, testing, Sets of Pairs of Functions to be Distinguished (SPFDs), sequential circuit optimization
ECEN 6009 – Research Topics in VLSI
This is a research-oriented course which includes readings in the areas of Embedded Systems (scheduling, power considerations, new hardware paradigms etc.), Nano-electronics and Quantum Computing.
My undergraduate classes at the University of Colorado, Boulder, have been in the area of switching theory.
ECEN 4703 – Switching and Finite Automata Theory
This is an undergraduate course on fundamentals of switching theory, two-level and multi-level logic optimization and finite automata theory.