COMP_ENG 395, 495: Advanced Digital System Design with FPGAS



COMP_ENG 303, 355 or equivalent HDL experience.


This course covers the systematic design of advanced digital systems using field-programmable gate arrays (FPGAs). The course presents a top-down design methodology, where students learn how to translate software applications in high-level languages (such as C/C++) into SystemVerilog models to run on FPGAs. The course focuses on designing real-time high-performance computing applications using industry-standard methodologies, with an emphasis on simulation-based verification and debugging.

We will first review in detail the basic building blocks of FPGA programming. Second, we focus on architecture, design methodologies, best design practices, and optimization techniques to scale performance (frequency, latency, area, power, etc.) Finally, we will cover testbench development, simulation for bit-true design verification, synthesis of complete digital systems, and timing analysis.

Throughout the course students will gain real-world experience in developing applications and solving real-world design problems across some of the hottest commercial industries. The lab projects include applications in machine learning, computer vision, network packet processing, digital signal processing, and radio communications. Students will form teams to work on a final project focusing on a large scale streaming architecture, employing various strategies and techniques to optimize and measure performance.

INSTRUCTOR: David C. Zaretsky (



LOCATION: TBD, Tech, Evanston campus

Department of Electrical and Computer Engineering
McCormick School of Engineering and Applied Science
Northwestern University
2145 Sheridan Road, Room L359
Evanston, IL 60208-3118
Phone: 847-491-5410

COURSE GOALS: When a student completes this course, s/he should be able to:

  • Understand the basic strategies for hardware design using SystemVerilog
  • Understand the building blocks that are available to digital designers
  • Differentiate SystemVerilog code for hardware simulation and synthesis
  • Build a complete testbench to simulate and validate their SystemVerilog designs
  • Apply UVM functional verification methodology in simulating digital hardware
  • Use commercial CAD tools to synthesize and simulate SystemVerilog designs
  • Apply parallel processing, pipelining and streaming design methodologies to drive high-throughput performance
  • Analyze and solve timing related problems based on synthesis timing reports
  • Demonstrate a working RTL design with all aspects in the projects


Week 1:
• Lecture 1: Introduction to System Verilog
• Lecture 2: Testbenches, Simulation
• Lab 1: Fibonacci

Week 2:
• Lecture 3: Processes, Finite State Machines, Memory
• Lecture 4: Linear Algebra, Matrices & Vector applications
• Lab 2: Matrix Multiplication

Week 3:
• Lecture 5: Universal Verification Methodology (UVM)
• Lecture 6: Image Processing Applications
• Lab 3: Average & Max Pooling

Week 4:
• Lecture 7: FIFOs, Streaming Architectures
• Lecture 8: Convolutional Filter Applications
• Lab 4: Edge Detection

Week 5:
• Lecture 9: Pipelining, Loop Unrolling, Optimizations
• Lecture 10: Network Packet Processing Applications
• Lab 5: UDP

Week 6:
• Lecture 11: Quantization, Fixed-Point Architectures
• Lecture 12: Digital Signal Processing Applications
• Lab 6: Cordic

Week 7:
• Lecture 13: Clock Domains, Static Timing Analysis
• Lecture 14: Communication Systems Applications

Week 8-10:
• Final Project: Streaming FM Radio

COMPUTER USAGE: Students will be required to download the Intel Quartus Prime Lite toolset, which includes software for development and synthesis, as well as Modelsim simulation software for verification. The software is only available for Windows and certain Linux operating systems. The software is also generally available in the ECE computer labs.

LABORATORY PROJECTS: This course is project oriented. Students will gain experience in software programming for hardware architectures using SystemVerilog, while applying various optimizations and design methodologies. Students will use industry standard computer-aided design tools to develop, simulate and synthesize the hardware designs. Each student will have the opportunity to design several projects individually and work in groups for the final project.

GRADES: Grading is team-based, and is composed of the following:
• 60% Weekly Labs (6)
• 30% Final Project
• 10% Class Participation

ACADEMIC INTEGRITY: Students in this course are required to comply with the policies found in the booklet, "Academic Integrity at Northwestern University: A Basic Guide." All papers submitted for credit in this course must be submitted electronically unless otherwise instructed by the professor. Your written work may be tested for plagiarized content.

ACCESSIBILITY: Northwestern University is committed to providing the most accessible learning environment as possible for students with disabilities. Should you anticipate or experience disability-related barriers in the academic setting, please contact AccessibleNU to move forward with the university's established process (; 847-467-5530). If you already have established accommodations with AccessibleNU, please let me know as soon as possible, preferably within the first two weeks of the term, so we can work together to implement your disability accommodations. Disability information, including academic accommodations, is confidential under the Family Educational Rights and Privacy Act (FERPA).

CLASS RECORDINGS: This class or portions of this class will be recorded by the instructor for educational purposes and available to the class during the quarter. Your instructor will communicate how you can access the recordings. Portions of the course that contain images, questions, or commentary/discussion by students will be edited out of any recordings that are saved beyond the current term.

PROHIBITION OF CLASS RECORDINGS BY STUDENTS: Unauthorized student recording of classroom or other academic activities (including advising sessions or office hours) is prohibited. Unauthorized recording is unethical and may also be a violation of University policy and state law. Students requesting the use of assistive technology as an accommodation should contact AccessibleNU. Unauthorized use of classroom recordings-including distributing or posting them-is also prohibited. Under the University's Copyright Policy, faculty own the copyright to instructional materials-including those resources created specifically for the purposes of instruction, such as syllabi, lectures and lecture notes, and presentations. Students cannot copy, reproduce, display, or distribute these materials. Students who engage in unauthorized recording, unauthorized use of a recording, or unauthorized distribution of instructional materials will be referred to the appropriate University office for follow-up.

COVID-19 TESTING COMPLIANCE: To ensure the health of our community, Northwestern University currently requires students who come to campus or interact with the campus community in person regularly to be tested for COVID-19 routinely. Students must keep the Community Interaction Survey in CAESAR up-to-date, which is the method by which students communicate such plans to the University. Community Interaction Survey status, enrollment in classes with face-to-face meetings, and/or living in an on-campus residence dictate the frequency with which students must be tested.

Students who fail to comply with COVID-19 testing or misrepresent their status in the Community Interaction Survey may face summary disciplinary action, including being restricted from campus or suspended.

COVID-19 CLASSROOM EXPECTATIONS STATEMENT: Students, faculty, and staff must comply with University expectations regarding appropriate classroom behavior, including those outlined below and in the COVID-19 Code of Conduct. With respect to classroom procedures, this includes:

  • Policies regarding masking and social distancing evolve as the public health situation changes. Students are responsible for understanding and complying with current masking, testing, Symptom Tracking, and social distancing requirements.
  • In some classes, masking and/or social distancing may be required as a result of an Americans with Disabilities Act (ADA) accommodation for the instructor or a student in the class even when not generally required on campus. In such cases, the instructor will notify the class.
  • No food is allowed inside classrooms. Drinks are permitted, but please keep your face covering on and use a straw.
  • Faculty may assign seats in some classes to help facilitate contact tracing in the event that a student tests positive for COVID-19. Students must sit in their assigned seats.

If a student fails to comply with the COVID-19 Code of Conduct or other University expectations related to COVID-19, the instructor may ask the student to leave the class. The instructor is asked to report the incident to the Office of Community Standards for additional follow-up.

EXCEPTIONS TO CLASS MODALITY: Class sessions for this course will occur in person. Individual students will not be granted permission to attend remotely except as the result of an Americans with Disabilities Act (ADA) accommodation as determined by AccessibleNU.

SUPPORT FOR WELLNESS & MENTAL HEALTH: Northwestern University is committed to supporting the wellness of our students. Student Affairs has multiple resources to support student wellness and mental health. If you are feeling distressed or overwhelmed, please reach out for help. Students can access confidential resources through the Counseling and Psychological Services (CAPS), Religious and Spiritual Life (RSL) and the Center for Awareness, Response and Education (CARE).

TITLE IX AND SEXUAL MISCONDUCT STATEMENT: Northwestern University is committed to fostering an environment where students are safe and free from sexual misconduct. Confidential resources are available to those who have experienced sexual misconduct. Faculty, instructors, and TAs are not confidential resources and are required to report incidents of sexual misconduct, whether discussed in your assignments or in person, to the Office of Equity, which can provide information about resources and options. Students who have experienced sexual misconduct are encouraged to talk with someone to get support. For more information, including how to request interim protective measures and academic accommodations for file a complaint, see the Get Help page on Northwestern's Sexual Misconduct Response and Prevention site.