ECE284: Low-power VLSI Implementation for Machine Learning

This course provides "hands-on" VLSI design guideline of the machine learning (ML) accelerator architectures across top-to-down vertical layers including algorithm, architecture, and circuit. The overview/theory of training and inference of deep neural network and other ML algorithms are provided. Students are supposed to train and validate their own network models for computer vision and natural language processing (NLP) applications via python (pytorch) programming. Then, the network model is mapped on the hardware by applying multiple low-power techniques including quantization, pruning, compression, and sparsity-aware circuit techniques. Students design their own architecture with verilog programming and verify the functionality with their test benches from python. Finally, the design is synthesized and evaluated with the Quartus Prime for FPGA emulations.

- Recommended preparation: ECE111 or equivalent course (which covers verilog & digital logic design).

- Prior knowledge of Machine learning is not required to take this course.

ECE260B /CSE241A - VLSI Integrated Circuits & Systems Design

This course provides "hands-on" low-power VLSI design guideline including RTL design, verification, logic synthesis, and place-and-route (PnR) to generate gate-level netlist and layout via computer-aided design (CAD) flow with Synopsis Design Compiler (DC) and Cadence Innovus. This course also covers various low-power technicuqes including pipeline, dynamic voltage and frequency modulation (DVFM), loop unrolling, memory double buffering, and clock gating. On top of low-power techniques, the curriculumn also provides the digital design fundamentals such as the multi-cycle path design and managing asynchronous interface with synchronizer, hand-shaking protocol, and FIFO. Small group of students are supposed to design a simple risc processor with a 65 nm process PDK and evaluate it's area, power, and performance with post-layout simulations.

- Recommended preparation: ECE111 or equivalent course (which covers verilog & digital logic design).

- Pre-requisite: ECE260A

ECE299: Research

This course is a great way to explore our group’s hands-on research and ideally connect to academic publications. Students are required to attand a weekly one-on-one meeting, and each meeting generally takes 1-1.5 hrs (no meeting during midterm / final exam period). A decent amount of time and dedication from the students are expected, e.g., 8hr research per week for 4 credits. 

Academic advisor provides a goal of the week with the detailed guideline and written manual, and students are supposed to explain weekly progress during the meeting, ask questions, and discuss directions.

Please contact via email for ECE299. 

ECE30 SP21: Introduction to Computer Engineering

The fundamentals of both the hardware and software in a computer system. Topics include representation of information, computer organization and design, assembly and microprogramming, current technology in logic design.

- Prerequisites: ECE 15 and 25 with grades of C– or better.

UCSD Electrical and Computer Engineering (ECE) Department