Cornell University
School of Electrical and Computer Engineering
ECE 6745 Complex Digital ASIC Design
Spring 2026
Prof. Christopher Batten
219 Phillips Hall • Tuesday and Thursday • 1:25–2:40pm
home | syllabus | staff | schedule | readings | handouts | resources
Course Information
| Instructor | Prof. Christopher Batten, cb535 Office Hours: 323 Rhodes Hall, Wednesday, 4:30–5:30pm |
|---|---|
| Teaching Assistants | Elton Shih, Parker Schless, Irwin Wang |
| Course Developer | Vayun Tiwari |
| Lectures | 219 Phillips Hall, Tuesday and Thursday, 1:25–2:40pm (until spring break) |
| Lab | 225 Upson Hall, Friday, 2:30–4:25pm (until spring break) |
| Required Materials |
Neil H.E. Weste & David M. Harris "CMOS VLSI Design: A Circuits and Systems Perspective" 4th edition, Addison Wesley, 2010 |
Objectives
The field of computer systems can be visualized as a stack of abstraction and implementation layers with application requirements at the top and technology constraints at the bottom. The intermediate layers include devices, circuits, gate-level design, register-transfer-level (RTL) design, microarchitecture, instruction set architecture, compilers, operating systems, programming languages, and algorithms.
ECE 4750 Computer Architecture is in the middle of this stack and focuses on the fundamentals of designing processors, memories, and networks, and apply this knowledge through a series of lab assignments. Students gradually design, implement, test, and evaluate a simple multicore system capable of running parallel microbenchmarks at the register-transfer level. The lab assignments focus on cycle-level performance (i.e., the impact a technique has on the number of cycles it takes to execute a program). Although ECE 4750 teaches students some basic principles involved in evaluating the cycle time, energy, and area impact of various design decisions, they do not have an opportunity to put this into practice. In addition, the focus of ECE 4750 is firmly on general-purpose subsystems as opposed to application-specific subsystems. At the opposite end of the computer engineering spectrum is ECE 4740 Digital VLSI Design. This course teaches students the fundamentals of digital circuit design, but the scope of these courses is on small custom-designed subsystems involving hundreds of transistors.
This course bridges the gap between computer architecture and digital circuits. Students will learn how to take the RTL designs from ECE 4750 and use automated tools to generate realistic layout. The course will enable students to quantitatively evaluate the cycle time, energy, and area impact of the techniques they learned in ECE 4750. The course will also eable students to better appreciate how the circuits they learn in ECE 4740 fit into complete digital systems. ECE 4750, ECE 4740, and this course dovetail nicely together creating a year-long digital design experience for students. By the end of this course, students should be able to:
- describe concepts related to the overall ASIC design methodology, CMOS digital circuits, and CAD algorithms and explain how these concepts interact.
- apply this understanding to new ASIC design problems within the context of balancing application requirements against technology constraints; more specifically, quantitatively assess a design's execution time in cycles, cycle time, area, and energy.
- evaluate various design alternatives and make a compelling quantitative and/or qualitative argument for why one design is superior to the other approaches.
- demonstrate the ability to implement and verify designs of varying complexity at the register-transfer level and to push these designs through a commercial ASIC CAD toolflow.
- create new baseline and alternative designs at the register-transfer level, the associated effective testing strategies, and a thorough evaluation plan.
- write comprehensive technical reports that describe designs implemented at the register-transfer level, explain the testing strategy used to verify functionality, and evaluate the designs to determine the superior approach.
Prerequisites
This course is targeted towards advanced senior undergraduates, M.Eng.~students, and first-year Ph.D.~students. ECE 4750 / CS 4420 / ECE 5740 is a prerequisite for all students. Students are more likely to be successful in this class if they did well in ECE 4750. Since ECE 4750 is a prerequisite, students are expected to be very proficient with Linux and the command line, implementing designs using well-structured synthesizable register-transfer-level models, writing test harnesses, and evaluating designs using simulators. Students are expected to be familiar with all of the ECE 4750 lab assignments.
We will be using a combination of both Verilog and Python in the lab assignments and design project. Those students with less experience working with the Verilog hardware description language are strongly encouraged to read Chapter 4 in "Digital Design and Computer Architecture, 2nd edition" by D. M. Harris and S. L. Harris (Morgan Kaufmann, 2012), and/or to review "Verilog HDL: A Guide to Digital Design and Synthesis, 2nd edition" by S. Palnitkar (Prentice Hall, 2003). Students which have never used Python before may want to spend additional time reviewing the textbook titled "Think Python: How to Think Like a Computer Scientist" by A.~B. Downey (Green Tea Press, 2014).
Note that we will cover enough circuits and EDA in this course such that advanced circuit-level or EDA courses are not prerequisites. However, those students that have taken such courses will be able to see how digital circuits are composed into much larger multi-million transistor designs, and how EDA algorithms can be used in practice.
Required Materials
The required textbook for the course is Neil H.E. Weste and David M. Harris, ``CMOS VLSI Design: A Circuits and Systems Perspective, 4th edition,'' Addison Wesley, 2010. Please use the 4th edition, since there have been significant changes compared to earlier editions. This book is available through the Cornell Academic materials Program and the Cornell library. There will be occasional assigned readings from the book, but more importantly this is an excellent book that all serious digital ASIC designers should have on their bookshelf.
Format and Procedures
This course includes a combination of lectures, laboratory sections, quizzes, and three projects. The design project includes a preproposal, proposal, weekly meetings, milestone documents, demonstration, and final report. The final project includes a preproposal, proposal, weekly meetings, milestone documents, demonstration, and final report. Students are expected to work in groups of 2–3 students on the projects. Assessment rubrics for projects will be distributed early in the semester.
- Lectures – There will be two 75-minute lectures every week until spring break. There will be no lectures after spring break. We will start promptly so please arrive on time. Students are expected to attend all lectures, be attentive during lecture, and participate in class discussion. Please turn off all cellular phones during class. Use of cellular phones and laptops during lecture is not allowed
- Laboratory Section – There is a required three-hour laboratory section every Friday before spring break. Each laboratory session will include a combination of hands-on instructor-guided activities as well as independent in-lab work towards the current project.
- Quizzes – There will be several in-class quizzes before spring break. Quizzes may or may not be announced ahead of time, and there are no make-up quizzes.
- Project 2 & 3 Preproposal/Proposal – Students are required to submit a project preproposal and proposal as a PDF online via the online Canvas assignment (see resources section). Students are strongly encouraged to discuss their project ideas with the instructors before the preproposal is due. The preproposal will be reviewed by the course instructors and feedback delivered to the students to factor into their proposal.
- Project 3 Meetings – After spring break, each project group will meet with the course instructors once a week during the regularly scheduled course meeting times. Project meetings will be held in the instructor's office, 323 Rhodes Hall. Students are expected to show up on time and be prepared for the meeting. Students will be asked to demonstrate progress by remotely logging into the course computing resources and running unit tests or small experiments on their design.
- Project 3 Milestones – There will be three project milestone documents due after spring break. Each milestone document must be submitted as a PDF via the online Canvas assignment system (see resources section). Each project milestone document focuses on a portion of the design project final report; so an initial draft of the final report can consist of simply assembling the project milestone documents into a coherent narrative.
- Project 3 Demonstration – During the final week of classes, students will schedule time to meet with the instructors and demonstrate their design project. This demonstration is a key part of the project assessment. Students should prepare a step-by-step demonstration that illustrates the project's code quality, functionality, and illustrates some of the results discussed as part of the project report.
- Project 3 Report – The project report is due during the final exam period according to the final project schedule published by the University. Students are not allowed to make significant changes to their code after the project demonstration. Instead, students should focus on writing a well-structured report which describes the motivation, related work, baseline design, design alternatives, testing strategy, and evaluation for their design project.
Grading Scheme
This course will be adopting a philosophy of ``grading for equity'' where grading is exclusively used to assess mastery of the material covered in the course as opposed to rewarding effort and/or incentivizing specific behaviors. To this end, each part or criteria of every assignment is graded on a five-point scale without any curve according to the following rubric.
- 5 (Mastery): Submitted work demonstrates no misunderstanding (there may be small mistakes which do not indicate a misunderstanding) or there may be a very small misunderstanding that is vastly outweighed by the demonstrated understanding. Student has mastered learning objectives; can independently apply course material in later courses and/or career.
- 4 (Accomplished): Submitted work demonstrates more understanding than misunderstanding. Student has accomplished learning objectives; would probably need some additional learning/help to apply course material in later courses and/or career.
- 3 (Progressing): Submitted work demonstrates more misunderstanding than understanding. Student is still progressing towards learning objectives; would need additional study and practice to apply course material in later courses and/or career.
- 2 (Beginning): Submitted work is significantly lacking in some way. Student is just beginning towards learning objectives; would need significant additional study and practice before being able to apply course material in later courses and/or career.
- 1 (Minimal Understanding)
A score of 5 corresponds to an A, 4 corresponds to a B, 3 corresponds to a C, and so on. A score of 5.25 is reserved for when the submitted work is perfect with absolutely no mistakes or is exceptional in some other way.
Total scores are a weighted average of the scores for each part or criteria. Parts or criteria are usually structured to assess a student's understanding according to four kinds of knowledge: basic recall of previously seen concepts, applying concepts in new situations, qualitatively and quantitatively evaluating design alternatives, and creatively implementing new designs; these are ordered in increasing sophistication and thus increasing weight. In almost all cases, scores are awarded for demonstrating understanding and not for effort. Detailed rubrics for all assignments are provided once the assignment has been graded to enable students to easily see how the score was awarded. The final grade is calculated using a weighted average of all assignments with the following distribution.
| Quizzes | 10% |
| Project 1, Parts A--C | 20% |
| Project 2, Parts A--D | 20% |
| Project 2, Report | 10% |
| Project 3, Parts A--C | 5% |
| Project 3, Demo | 10% |
| Project 3, Report | 25% |
Policies
This section outlines various policies concerning usage of cellular phones and laptops in lecture, turning in assignments late, regrading assignments, collaboration, artificial intelligence, copyright, and accommodations for students with disabilities.
Auditor and Listner Policy
Casual listeners that attend lecture but do not enroll as auditors are not allowed; you must enroll officially as an auditor. Auditors are allowed to enroll in the course as long as there is sufficient capacity in the lecture room. Auditors must attend most of the lectures. If you do not plan on attending the lectures, then please do not audit the course. Please note that students are not allowed to audit the course and then take it for credit in a later year unless there is some kind of truly exceptional circumstance.
Cellular Phones and Laptops in Lecture Policy
Students are prohibited from using cellular phones and laptops in lecture unless they receive explicit permission from the instructor. It is not practical to take notes with a laptop for this course. Students will need to write on the handouts and quickly sketch diagrams during lecture. The distraction caused by a few students using (or misusing) laptops during lecture far outweighs any benefit. Tablets are allowed as long as they are kept flat and used exclusively for note taking. If you feel that you have a strong case for using a laptop during lecture then please speak with the instructor.
Late Assignment Policy
Project code must be submitted electronically via GitHub. Project reports must be submitted electronically in PDF format via Cavnas. No other formats will be accepted! All assignments must be submitted by 11:59pm on the due date unless otherwise specified. No extensions will be granted except for serious illness, family emergency, or medical emergency. The instructors must be notified of this emergency in advance if at all possible. You can continue to resubmit your files as many times as you would like up until the deadline, so please feel free to push your code to GitHub and upload to Canvas early and often. If you submit an assignment even one minute past the deadline, then the assignment will be marked as late and not graded. We simply cannot accept late work given the tight timeline of the course. Please plan your time accordingly!
Regrade Policy
Addition errors in the total score are always applicable for regrades. Regrades concerning the actual solution should be rare and are only permitted when there is a significant error. Please only make regrade requests when the case is strong and a significant number of points are at stake. Regrade requests should be submitted online via a private post on Ed Discussions within one week of when an assignment is returned to the student. You must provide a justification for the regrade request.
Collaboration Policy
The work you submit for the projects is expected to accurately demonstrate your understanding of the material. The use of a computer in no way modifies the standards of academic integrity expected under the University Code. You are encouraged to discuss information and concepts covered in lecture and relevant to the lab assignments with other students. You can give ``consulting'' help to or receive ``consulting'' help from other students about the projects. Students can also freely discuss basic computing skills or the course infrastructure. However, this permissible cooperation should never involve one student (or group) having possession of or observing in detail a copy of all or part of work done by someone else, in the form of an email, an email attachment file, a flash drive, or on a computer screen. Students are not allowed to seek consulting help from online forums outside of Cornell University. If a student receives consulting help from anyone outside of the course staff, then the student must acknowledge this help on the submitted assignment.
During quizzes, you must do your own work. Talking or discussion is not permitted during the quizzes, nor may you compare papers, copy from others, or collaborate in any way.
Violating the collaboration policy will be considered a violation of the code of academic integrity, and a primary hearing will be held. See https://theuniversityfaculty.cornell.edu/academic-integrity for more information about academic integrity proceedings.
Artificial Intelligence (AI) Policy
Students are allowed to use artificial intelligence (AI) systems (e.g., OpenAI ChatGPT, Anthropic Claude, Google Gemini, Microsoft Copilot) in this course as long as this usage adheres to an \IT{AI as TA} policy. This means students can ask AI anything they would ask a TA. Students can ask AI to explain concepts from lecture, to brainstorm design or test case ideas, to provide help debugging their code, to provide a qualitative assessment of their code quality, and to provide advice on how to improve their project report. They may not ask AI anything they would not ask a TA. Students cannot ask AI to write code, write test cases, fix their code, write comments, or write portions of the report.
Students must not enable AI coding assistants within VS Code (e.g., Microsoft Copilot) nor use AI-enabled integrated development environments (e.g., Cursor) since these tools will automatically write code for the student which violates the AI as TA policy.
As an exception to this policy, students can request permission to use AI more aggressively in project 3 (e.g., to generate a GUI, to generate some boilerplate code). These requests must be made in advance in writing via a private post on Ed.
Violating the AI policy will be considered a violation of the code of academic integrity, and a primary hearing will be held. See https://theuniversityfaculty.cornell.edu/academic-integrity for more information about academic integrity proceedings.
Copyright Policy
All course materials produced by the course instructor (including all handouts, tutorials, homeworks, quizzes, exams, videos, scripts, and code) are copyright of the course instructor unless otherwise noted. Download and use of these materials are permitted for individual educational non-commercial purposes only. Redistribution either in part or in whole via both commercial (e.g., Course Hero) or non-commercial (e.g., public website) means requires written permission of the copyright holder.
Accommodations for Students with Disabilities
In compliance with the Cornell University policy and equal access laws, the instructor is available to discuss appropriate academic accommodations that may be required for students with disabilities. Students must register with Student Disability Services (SDS) within the first three weeks of the semester to verify their eligibility for appropriate accommodations. If students register with SDS after the first three weeks of the semester, the instructor may or may not be able to make the appropriate accomodation.
Online and Computing Resources
We will be making use of a variety of online websites and computing resources.
- Public Course Website – http://www.csl.cornell.edu/courses/ece6745 This is the main public course website which has the course details, updated schedule, lecture slide handouts, tutorials, and lab handouts. We intend for all course content to always be available on Canvas. The public course website is just for public access to some of this content.
- Canvas Course Site – We will be using Canvas to manage course content, assignment submission, and grade distribution.
- Ed – We will be using Ed for all announcements and discussion on course content, lab assignments, and the projects. The course staff is notified whenever anyone posts on the forum and will respond quickly. Using the forum allows other students to contribute to the discussion and to see the answers. Use common sense when posting questions such that you do not reveal solutions. Please prefer posting to Ed Discussions as opposed to directly emailing the course staff unless you need to discuss a personal issue.
- ECE Computing Resources – The ECE department has a cluster of Linux-based servers named ecelinux which we will be using for the programming assignments. You can access the ECE computing resources remotely from either one of the computer labs on campus or your own laptop/workstation. You do not need a special account; you will instead simply use your NetID and Cornell password to log into the ecelinux servers.
- GitHub – GitHub is an online Git repository hosting service. We will be using the commercial GitHub service to distribute code and as a mechanism for student collaboration on the lab assignments. Students will also use GitHub for submitting the code for their lab assignments. Students are expected to become familiar with the Git version control system. Note that we are not using the Cornell hosted version of GitHub as in some other courses; we are using github.com.