COMP_ENG 355: ASIC and FPGA Design



COMP_ENG 303 or equivalent.


This course will introduce students to practical design methodologies for developing applications for FPGAs and ASICs. You will learn the fundamentals for FPGA and ASIC design through software coding techniques in VHDL, and develop the skills necessary to solve critical digital design problems efficiently. Using commercial CAD tools, you will learn how to implement RTL VHDL designs, verify your application through simulation, and optimize performance by exploiting parallelism in your architecture.

The course includes extensice use of commercial design automation and verification tools for the labs and projects. We will be primarily utilizing the Intel FPGA development software and Intel FPGA development boards. Topics covered include VHDL software coding, hardware architecture design, logic synthesis tools, simulation and verification methods, and optimization techniques for synthesis. In the course we will include practical design through several labs, followed by a final project.

RECOMMENDED TEXTBOOKS: The Designer's Guide to VHDL, Peter J. Ashenden

REFERENCE TEXTS: Course handouts

COURSE INSTRUCTOR: David C. Zaretsky (


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

  • Understand the basic strategies for hardware design using VHDL
  • Understand the building blocks that are available to digital designers
  • Differentiate VHDL code for hardware simulation and synthesis
  • Use commercial CAD tools to synthesize and simulate RTL VHDL designs
  • Write RTL VHDL designs that exploit parallel processing architectures 
  • Apply design flow methodologies & optimization techniques for a given problem
  • Analyze and solve timing related problems based on synthesis timing reports
  • Demonstrate a working RTL design with all aspects in the projects

PRE-REQUISITES : COMP_ENG 303 or equivalent.


Week 1:
• Lecture 1: Introduction
• Lecture 2: Hierarchical Design
• Lab 1

Week 2:
• Lecture 3: Dataflow / Structural Design
• Lecture 4: Processes, Statements & Expressions
• Lab 2

Week 3:
• Lecture 5: Basic I/O and Testbenching
• Quiz 1
• Lab 3

Week 4:
• Lecture 6: Simulation
• Lecture 7: Synthesis
• Lab 4

Week 5:
• Lecture 8: Parameters & Generics, FSMs
• Lecture 9: Functions & Procedures
• Lab 5

Week 6:
• Lecture 10: Design Methodologies
• Lecture 11: Static Timing Analysis

Week 7:
• Quiz 2
• Lecture 12: Final Design Project

Week 8-11:
• Final Project

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 writing hardware designs in software using VHDL while applying several different design methodologies. They will use industry standard computer-aided design tools, primarily Intel FPGA tools, to develop hardware designs for the DE2-115 FPGA boards. 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:

  • 40% Weekly Labs (5)
  • 20% Quizzes (2)
  • 30% Final Project
  • 10% Project Check-ins

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

1. Have an understanding of the difference between VHDL code for hardware simulation and hardware synthesis.

2. Understand the basic strategies for hardware design using VHDL.

3. Understand and critically compare state-of-the-art design automation methodologies.

4. Use computer aided design tools to physically synthesize a design written in VHDL and generate a physical layout for testing and fabrication.

5. Use computer aided design tools to synthesize a design written in VHDL and generate a bitstream for execution on an FPGA.

6. Write intelligent VHDL designs that show understanding of basic hardware that will be synthesized with tools.

7. Verify hardware designs at several levels in the design flow.

8. Understand the need for and application of different optimization techniques, and their relative interaction within computer aided design tools.

9. Take advantage of pre-existing intellectual property to reduce design time and produce more optimal results.

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 comitted 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 Respose and Prevention site.