Professor: Prof. Rob Marano
Email: rob@cooper.edu
Semester: Spring 2025
Introduction to the internal design of computers and computer systems, using Verilog, a hardware description language. Topics include: integer and floating-point representations and operations: ALU design; von Neumann and Harvard architectures; accumulator, general purpose register and stack-based processor design; RISC and CISC architectures; addressing modes; vector operations; microprogrammed and hard-wired controllers; machine language and assembly language programming; static and dynamics memory operation, timing and interfacing; cache; virtual memory; I/O systems: bus design and data transfer, DMA; interrupts and interrupt handling, polling; disk operation and organization; pipelined processor design. The course requires a substantial project component that includes assembly language programming and the design and construction of systems that contain microcontrollers, programmable logic, and a variety of I/O devices.
3 credits. 3 hours per week (45 total hours). Link to course catalog
ECE 150 — Digital Logic Design
Most specifically combinational and sequential logic theory and implementation.
Lectures and SW-based Labs: The class meets in person from 6:00-8:50pm on class days, for a total of 15 sessions. Office hours are held Tuesdays 5:00-6:00pm in the Engineering Adjunct’s Office on the 2nd floor of the NAB at 41 Cooper Square. Appointments held remotely will be scheduled upon request in increments of 20 minutes. Please contact me on Microsoft Teams chat via rob.marano@cooper.edu
. Once scheduled, you will receive a meeting invite that you must accept to confirm the appointment. I can meet any day, including weekends, should that work for us both.
The course will use expand your knowledge of digital logic design to understand the design of computers systems down to the fundamental internals of a processor, that is, a central processing unit (CPU), and its associated memory systems.
The following topic areas will be covered:
Class | Topic |
---|---|
1, 2 | Hardware Modeling with Software (Verilog HDL) |
3 | Computer Abstraction & Stored Program Concept |
4, 5 | Instructions —The Language & Grammar of Computers |
6, 7 | Assembly Language Programming — MIPS CPU |
8 | Midterm Exam |
9 | Arithmetic for Computers |
10, 11, 12 | The Processor — Data Path & Control |
13, 14 | Interrupts; Memory Hierarchies (Caching) |
15 | Final Exam |
15 | Group Final Project due at 5pm ET |
Optional weekend lab sessions will be offered throughout the semester to work on your final project designs or for review sessions.
Upon successful completion of this course, each student will be able to:
This course supports student achievement of outcomes 1, 5, and 7:
Also, this course supports ABET’s Criteria for Accrediting Computing Programs, 2021 – 2022, specifically items 3, 4, and 5:
The best way to contact me is via chat on Microsoft Teams then email. I will do my best to respond within 24 hours. Communication and participation in class is not only encouraged, but required. I seek to understand your individual understanding of the material each class. Advocate for yourself, early and often. Make time to meet with me should you need more explanation and assistance.
Depending upon the week’s topic, each session will consist of two components: class discussion and hands-on lab, using your computers. Come prepared with your laptop and a Linux environment. Ensure you have access to the ICE Lab computers should you need it; check with jacob.koziej@cooper.edu
or james.ryan@cooper.edu
.
Each class discussion consists of a mix of lectures, programming/simulations, and question-driven group analysis of one or more large programming problems. SW-based lab work will consist of either group or individual work on exercises or projects. Questions arising during lab time in class may be used to prompt additional discussion as time permits.
Success as a student begins with attendance. Class time serves not only for learning new concepts and skills but also for practicing what you have learned with active feedback. Some assignments and demos may be completed in class, but practice and study are required outside of class. Students are expected to attend classes regularly, arrive on time, and participate. I take attendance during every session, and it forms part of your grade. Students are encouraged to e-mail me when they are absent. Students are responsible for all academic work missed as a result of absences. It is at my discretion to work with students outside of class time in order to make-up any missed work.
We will be using my notes and handouts curated from the following textbooks and resources. I will post the handouts by the respective week’s lecture on the topic as we progress through the semester.
The Elements of Computing Systems Building a Modern Computer from First Principles, 2nd Edition by Noam Nisan and Shimon Schocken, ISBN 9780262539807
Digital Design and Computer Architecture by David Harris and Sarah Harris, paperback ISBN 9780123944245, eBook ISBN 9780123978165
Computer Organization and Embedded Systems, 6th Edition by Carl Hamacher, Zvonko Vranesic, Safwat Zaky, and Maraig Manjikian, ISBN 9780073380650
Computer Organization and Design — The Hardware/Software Interface MIPS, 6th Edition by David Patterson & John Hennessy, ISBN 9780128201091
Designing Video Game Hardware in Verilog by Steven Hugg, ISBN 9781728619446
We will be using various tools during our class, including but not limited to:
We will detail access and usage in class during the semester. Become familiar with working with your computer’s shell, e.g., Windows PowerShell or Bash on a Mac or Linux desktop.
All assignments must be completed by the end of this course in order to receive at least a passing grade. Individual homework assignments and the final project will be handed-in electronically via GitHub Classroom. Also, please hand in the URL for each assignment’s repository via Microsoft Teams Assignments for this course. On exam days, offices hours will be canceled unless otherwise noted. Final group-based projects will be handed-in via your team’s GitHub respository per project. We will discuss in class how to create each repository.
Total points | Explanation |
---|---|
0 | Not handed in |
1 | Handed in late |
2 | Handed in on time, not every problem fully worked through and clearly identifying the solution |
3 | Handed in on time, each problem answered a boxed answer, each problems answered with a clearly worked through solution, and less than majority of problems answered correctly |
4 | Handed in on time, majority of problems answered correctly, each solution boxed clearly, and each problem fully worked through |
5 | Handed in on time, every problem answered correctly, every solution boxed clearly, and every problem fully worked through. |
Assignment | Title | Points | Given On | Due Date (by time class begins) |
---|---|---|---|---|
1 | HW 1 | 5 | 1/21 | 1/28 |
2 | HW 2 | 5 | 1/28 | 2/4 |
3 | HW 3 | 5 | 2/4 | 2/11 |
4 | HW 4 | 5 | 2/11 | 2/18 |
5 | HW 5 | 5 | 2/18 | 2/25 |
6 | HW 6 | 5 | 2/25 | 3/4 |
7 | HW 7 | 5 | 3/4 | 3/11 |
8 | Midterm Exam | 100 | 3/11 | Study Guide |
9 | HW 8 | 5 | 3/18 | 3/18 |
10 | HW 9 | 5 | 3/25 | 3/25 |
11 | HW 10 | 5 | 4/1 | 4/22 |
12 | HW 11 | 5 | 4/22 | 4/29 |
13 | HW 12 | 5 | 4/29 | 5/6 |
14 | HW 13 | 5 | 5/6 | 5/13 |
15 | Final Exam | 100 | 5/13 | Study Guide |
8 | Final Group Project | 200 | 3/4 | 5/16, due no later than 5pm ET |
Note: From time to time I may offer optinoal, extra credit homework assignments. Any points earned from these assignments will be added to the total points under the homework category. Also, I highly recommend that you focus on your final project during the two weeks we have no class from 4/2 through 4/21.
This course follows the rubric of criterion-referenced grading. You have the opportunity to earn 500 total points for this class. The final letter grade (no +/-) will be based upon applying the normal distribution to the following assessment categories. Note the weighting of each type. The variance to your calculations of your points earned throught the semester may vary by 7% for points given for class participation.
Assessment Type | Points | % of Final Grade |
---|---|---|
Homeworks | 65 | 13% |
Midterm Exam | 100 | 20% |
Final Exam | 100 | 20% |
Final Project | 200 | 40% |
Class Participation | 35 | 7% |
The grading for the final project follows this rubric:
Project Assessment Category | Points |
---|---|
ISA Design | 34 |
Memory Design & Implementation | 16 |
Processor Design & Implementation | 120 |
Project & Design Documentation | 30 |
Extra Credit | 70 |
The full rubric can be found at this link.
(aka at Amazon Web Services, Minimum Lovable Product (MLP))
You will choose a partner with whom to you will jointly design and implement, using SystemVerilog, a central processing unit (CPU) and simple memory system that work together to execute programs. These programs will be written in assembly language using your newly designed instruction set architecture (ISA) for your project’s CPU. You will also write a simple assembler that will convert the assembly code to your CPU’s machine code. Your computer (CPU plus memory) will only run one program at a time. Hence, since you do not have an operating system, you will not need to link your code.
Occassionally, class may be held virtualy for a variety of unforeseen reaons, including, if required by the School or to deliver course material by a more effective delivery method, for example certain video presentations or certain online interaction. If announced in advance, class will meet virtually at the assigned times via the class MS Teams portal or via a Zoom meeting. If a class meeting is to be held via Microsoft Teams, a calendar invitation from Microsoft Teams will be sent to students via email in advance of the class. Students are expected to maintain appropriate technology (microphone, camera, speakers) to support online class delivery, should it be announced.
It is understood that having a class meeting entirely via a virtual environment may be challenging, especially to those not accustomed to virtual collaboration and learning. Reasonable efforts may be made to adjust to these circumstances. Students are to log on using identifiable names. It is the student’s responsibility to log on and remain online, engaged, and actively participating for the duration of the class. Come on camera.
It is a goal of Cooper Union that learning experiences be as accessible as possible. If you anticipate or experience physical or academic barriers based on disability, please let me know immediately so that we can discuss options. Students with disabilities are to contact the Director of Student Care and Support to formally establish accommodations. Students with accommodation letters must provide me with a copy of your letter and make an appointment to meet with me as soon as possible to discuss your needs.
While I want you to feel comfortable coming to me with issues you may be struggling with or concerns you have, please be aware that I have reporting requirements that are part of my responsibilities as a member of the faculty. If you inform me of an issue of sexual harassment, sexual assault, or discrimination, I will keep the information as private as I can, but I am required to report the basic facts of the incident to Cooper’s Title IX Coordinator. Counseling Services at The Cooper Union are coordinated through the Office of Student Affairs.
Before you leave for break, ensure that you clean up your personal GitHub respository so that you can showcase the work you have developed. Like an artist, you know have a portfolio of software you have designed and implemented. No matter what you decide in your career, work and life is better through coding!
Enjoy the course.
/prof.marano