Course Website for

Harvard Extension School CSCI E-93

Computer Architecture (17128)

Fall 2024
Site last revised 3:27 PM ET 17-Dec-2024

Dr. James L. Frankel

 

 

Final Project Presentation Slots:
Time Slot Available
6:45 PM - 7:00 PM Slot 1 Filled by Mikey
7:00 PM - 7:15 PM Slot 2 Filled by Nathan
7:15 PM - 7:30 PM Slot 3 Filled by Patrick
7:30 PM - 7:45 PM Slot 4 Filled by Ben
7:45 PM - 8:00 PM Slot 5 Filled by Julian
8:00 PM - 8:15 PM Slot 6 Filled by Aliya
8:15 PM - 8:30 PM Slot 7 Filled by Pedro

We will be holding our first section meeting on Tuesday, September 3, 2024 at 6:45 PM ET. Note that this section meeting is *before* our first class meeting. Both section and class meetings are live streamed and are also available after class for later viewing and reviewing.

Many links in the course website are not yet available. They will be activated as the course progresses.

 

Quick Links:

Class Hours and Location:

Tuesdays 8:00-10:15 PM in 53 Church Street, Room L01. Students can attend in person on campus, participate live online at the time the class meets via web conference, or watch the recorded video on demand. Recorded sessions are typically available within a few hours of the end of class and no later than the following business day. Students who attend this course in person must comply with the Massachusetts and Harvard University mandatory immunization requirements. See Immunization Requirements.

Distance Learning Links including Video Streaming, Chat, and the Midterm Exam:

During Class:

Video Streaming:

In addition to being able to participate in section & class in person, both are live streamed and also recorded. Students are encouraged to share their video feed and to ask questions verbally using their audio/video link in Zoom. The section & class live video stream is available through the class Canvas web site under Zoom.

Chat:

Questions can also be asked using the text Chat facility in Zoom during class meetings & during section meetings. Please use the chat feature available in Zoom rather than Canvas chat. We will *not* be monitoring Canvas chat.

After Class:

Videos of class and section are available on the course's Canvas web site under Class Recordings.

Midterm Exam

Our midterm exam is a three hour long proctored exam that will be available on-line through Canvas with integrity protected by Proctorio. Students must start the exam within the 24-hour period that begins at the designated start time of our midterm exam and ends 24 hours later. Students will have three hours to complete the exam independent of when they start. More information will be available about the exam later in the semester.

The exam does not allow access to any books or notes, but relevant course slides will be made available. No electronic devices are allowed.

Prerequisites:

Knowledge of data structures and programming experience, such as is taught in CSCI E-22 (formerly CSCI E-119) (Data Structures), is required. Some background in boolean/digital logic, such as is taught in a Laboratory Electronics: Digital Circuit Design course, is preferred, but not required. Students must have sufficient experience to write programming projects of modest size and complexity in C, C++, or Java that utilize a variety of data structures. This course does *not* teach programming.

Brief abstract:

This course is a study of the fundamental concepts in the design and organization of modern computer systems. Topics include computer organization, instruction set design, processor design, memory system design, timing issues, interrupts, microcoding, and various performance-enhancing parallel techniques such as prefetching, pipelining, branch prediction, superscalar execution, and massive-parallel processing. Study of existing architectures using CISC, RISC, vector, data parallel, and VLIW designs. An extensive lab project will be required of all students.

4 credits. Undergraduate credit, Graduate credit, or Noncredit.

Learning Objectives:

This class will provide a strong understanding of how a computer works. Students will come away with a detailed awareness of how computers function from the lowest Boolean logic to block diagram and instruction set levels. A working understanding of the VHDL hardware description language will be taught and it will be utilized in building a functional computer from scratch. The material learned in the class will be instrumental in allowing more efficient utilization of computers by all programmers.

Overview:

Computer Science E-93 is a comprehensive course in the architecture and organization of modern computers. Students are already expected to be comfortable with designing, coding, and debugging programs of modest complexity while employing good programming style, structured techniques, and employing appropriate data structures as appropriate. In particular, this class is not a programming course, but students will be required to write several significant programs. In addition, some experience with digital logic and gates and with programming in assembler language is preferred.

A significant portion of the class will involve the design and implementation of a major term project. The project will be developed by each student working alone. That project is the core of a new computer's central processing unit including the data path, instruction fetch and decoding unit, and registers implemented using an Altera FPGA. Initially, both the classroom lectures and the section meetings will be covering material important to the design and implementation of the final project. Later in the semester, advanced topics will be covered in class; however, both the class and sections will continue to support students as term projects progress. For the term project, students will continue working on and debugging their projects leading to their complete implementation and a final demonstration.

Because the course includes a required and significant term project involving both programming and hardware implementation, the assignments will be time-consuming; therefore, a significant time commitment to the course is necessary. Although the relevant experience of students in the class is usually quite diverse, depending on background, it is not unusual for students to spend 10-15 hours per week or more completing the readings and homework assignments. Although the computers are available more-or-less around the clock, occasionally they will suddenly become unavailable (this is known as a crash). As with all such events, they always seem to occur at the worst possible time. Plan your computer work so that it is complete in advance of the deadlines. Check in your code to the required class git repository frequently. You have now been forewarned!

Books/Course Bibliography:

All course books are available from the Harvard Coop and are available for on-line ordering. Keep in mind that Coop members receive a 10% discount. There are links available on Canvas to find the Library Reserves and, for some books, these include View online versions. In addition, all registered students will be eligible for library services (access, borrowing privileges, group study rooms) in FAS libraries, just like any other student in FAS. The Harvard Library website includes information about how to access library materials remotely as well as the reopening schedule. All registered students will continue to have access to Harvard Library on-line resources.

Required Textbooks:

Contemporary Logic Design, Second Edition; Randy H. Katz and Gaetano Borriello; Pearson Higher Ed, 2005; ISBN-13 978-0-201-30857-0; ISBN-10 0-201-30857-6

Computer Organization and Design: The Hardware/Software Interface, MIPS Edition, Sixth Edition; David A. Patterson and John L. Hennessy; Elsevier, November 2020; eBook ISBN 978-0-12-822674-2; Paperback ISBN 978-0-12-820109-1; Errata for the Fourth Revised Edition; Errata for the Fifth Edition; Errata list as of 9/1/14

The Designer's Guide to VHDL, Third Edition; Peter J. Ashenden; Elsevier, May 2008; ISBN-13 978-0-12-088785-9; ISBN-10 0-12-088785-1; Errata for the First to Fifth Printings

Optional Additional Digital Electronics Book:

Digital Systems: Principles and Applications, Twelfth Edition; Ronald J. Tocci, Neal S. Widmer, and Gregory L. Moss; Pearson Higher Ed, 2017; ISBN-13 978-0-13-422013-0

Optional Electronics Books:

The Art of Electronics, Third Edition in the Catalogue; The Art of Electronics, Third Edition in Physics; Paul Horowitz and Winfield Hill; Cambridge University Press, April 2015; ISBN-13 978-0521809269; The Art of Electronics Website

Learning the Art of Electronics: A Hands-On Lab Course in the Catalogue; Learning the Art of Electronics: A Hands-On Lab Course in Physics; Thomas C. Hayes and Paul Horowitz; Cambridge University Press, March 2016; ISBN-13 978-0521177238; The Art of Electronics Website

Optional Additional Computer Architecture Books:

Computer Architecture: A Quantitative Approach, Sixth Edition; John L. Hennessy and David A. Patterson; Elsevier, November 2017; ISBN 978-0-12-811905-1

Modern Operating Systems, Fifth Edition; Andrew S. Tanenbaum and Herbert Bos; Prentice-Hall, 2023, 2014, 2008; ISBN-13 978-0-13-761887-3

Or, if the updated and preferred Fifth Edition is not accessible:

Modern Operating Systems, Fourth Edition; Andrew S. Tanenbaum and Herbert Bos; Prentice-Hall, 2015, 2008; ISBN-13 978-0-13-359162-0

Optional git Books:

Dangit, Git!: Recipes for Gitting out of a Git Mess; Katie Sylor-Miller and Julia Evans; This short on-line book describes git fundamentals.

Pro Git, 2nd Edition; Scott Chacon and Ben Straub; Apress, 2014; ISBN-13 978-1-4842-0077-3. This is a comprehensive book about git. It is also available for free download at the web site above.

There will also be other handouts & supplementary readings

Instructor:
Dr. James L. Frankel Dr. Frankel's Photo,

Teaching Assistants:

We have two Teaching Assistants (TAs) for this course. The TAs hold a weekly section meeting and office hours as described below. The information delivered during the TAs' section meeting is a required component of the course. Course material will be covered in section -- either in toto or in more detail -- that time does not permit to be covered in class meetings. For example, this material includes use of git and GitHub; general approaches to solving the problem sets; overviews of algorithms, code snippets, and data structures. Also, the section meetings provide a venue in which it may be easier to ask more lengthy questions. When appropriate to send e-mail, please send e-mail to both TAs and to the course instructor.

TA Section Meeting Time/Place Office Hours Time/Place E-mail Address/Phone
Mark Ford
Mark's Photo,
Section Site
Tuesday,
6:45-7:45 PM ET,
53 Church Street, Room L01
Thursday,
7:00-8:00 PM ET by appt.,
Via web conference
E-mail: Mark's e-mail address. Questions whose answers would be relevant to the whole class should be posed via Ed Discussion. When e-mail is appropriate (for grading questions, personal issues, etc.), e-mail should be sent to both TAs and also to the professor.
Stephen Benjamin  Stephen's Photo,
Section Site
Tuesday,
6:45-7:45 PM ET,
53 Church Street, Room L01
Monday,
6:30-7:30 PM ET by appt.,
Via web conference
E-mail: Stephen's e-mail address; +1.617.401.8836 (11:00 AM - 9:00 PM ET). If there's no answer, please leave a message with your name and a call-back number. Questions whose answers would be relevant to the whole class should be posed via Ed Discussion. When e-mail is appropriate (for grading questions, personal issues, etc.), e-mail should be sent to both TAs and also to the professor.
Questions and Issues:

When posing questions or bringing up issues of a non-personal nature, please use the class Ed Discussion Forum. Answers to questions posed on Ed Discussion benefit the whole class and allow the course staff to answer questions once for all students. Questions that include code or other information that shouldn't be shared with other students should be sent via e-mail to all course staff at the same time in order to increase the probability of a rapid response.

Ed Discussion Wiki/Forum:

A Ed Discussion Wiki/Forum (on-line discussion list) for CSCI E-93 is set up at Harvard Extension School CSCI E-93 Ed Discussion Forum.

Record a Say Hello! Video:

Using any tool of your choosing (perhaps a cell phone selfie or the camera on your laptop), please record and post a short video (maybe just one to three minutes in length) in Canvas Discussions as a reply to my Say Hello! discussion to introduce yourself to the class. With everyone being remote, anything we can do to create a community for our class would be great. Please tell us a little about yourself possibly including where you are located, your background, what you do when you're not taking classes, and your goals for this class.

Enter Your Location:

Please enter your location in Canvas.

Using git and GitHub:

When using "git" and GitHub, make sure to follow the information on using "git" and setting up your GitHub repository that is available on the section web site.

Grading:

Graduate-credit students:

Problem Sets:

All problem sets and programming assignments are due at midnight Eastern Time on Sunday night (i.e., midnight between Sunday and Monday) unless otherwise stated in the assignment or in the course website. Unless otherwise stated, all programming assignment solutions must be written in C, C++, or Java. All code must build, be tested, and run on cscie93.dce.harvard.edu; be submitted using "git" on GitHub (or, in dire circumstances, via e-mail only if agreed to by the course staff); be well-written (clear coding style, modular structure, appropriately commented and documented in English); and tested (include any programs and/or shell scripts used in testing your solution as part of your submission). Remember, in addition to handing in all parts of the problem set solution or programming assignment program, sample runs of the program which demonstrate that the program works must be attached. In addition, each submission must include a makefile to build the assignment. The grade for programming assignments will include all of these attributes.

Of course, the solutions may be written and tested using any system of the student's choosing; however, when the solution is complete, it must be tested on the cscie93.dce.harvard.edu computer and pushed to the git code repository on GitHub. You may choose to develop under your own Unix/Linux system or under Cygwin under Windows, but testing and grading of your programming assignments will take place on the cscie93.dce.harvard.edu computer. To reiterate, we will be grading the solutions based on their behavior on the cscie93.dce.harvard.edu computer.

The first step to begin to use our computer resources is to ensure that your HarvardKey account has been established. Use a browser to connect to https://key.harvard.edu. From that page, you can claim a new HarvardKey if you don't already have one. There, you can also manage your HarvardKey account. On the "Manage Your HarvardKey Account" page, in addition to your "Login Name," you can see your NetID. Your NetID will be required to login to our instance named cscie93.dce.harvard.edu.

Access to our cscie93.dce.harvard.edu instance requires that a VPN (Virtual Private Network) connection to the Harvard network is established first. The Cisco AnyConnect VPN application can be downloaded by logging into https://vpn.harvard.edu. Then, you can run the Cisco AnyConnect to complete the VPN connection. For creating the VPN, use vpn.harvard.edu as the hostname and click on "Connect." On the two-step verification pop-up window, enter your HarvardKey Login Name as your Username, and for the Password, enter your HarvardKey Password. Do *not* enter a Two-Step Verification Code. You should receive a request for approval via your Duo Mobile app before the VPN can be established.

After establishing a VPN connection to the Harvard network, you can set up an account on cscie93.dce.harvard.edu. Access our cscie93.dce.harvard.edu instance for remote login using "ssh" over the Internet. Your username is your HarvardKey NetID and your password is your HarvardKey password. On your first attempt to login to our instance, your account will be configured. Files may be transferred to these systems using "secure ftp" (SFTP). If you are using a Windows system, the SecureCRT and SecureFX programs are available from the Science Center at http://downloads.fas.harvard.edu/download; these programs implement "ssh" and "secure ftp," respectively. On Unix/Linux systems, the shell commands "ssh" and "sftp"/"scp" can be used for ssh and SFTP, respectively.

Separate documentation is available describing how to install and use git and GitHub on the section web site.

Some assignments may include Extra Credit programming problems. The Extra Credit programming problems can be completed to earn points that can increase the overall grade on the programming portion of your problem set; however, the grade on the programming portion of a problem set including extra credit will never exceed the full credit possible grade on the programming portion. That is, the Extra Credit programming problem(s) can be used to make up for deficiencies in other programming portions of the problem set to allow a higher grade to be earned. Extra Credit points from one problem set are not transferrable and may not be used on any other problem sets.

Late Policy:

All problem sets except for Problem Set 0 may be submitted late for partial credit. A late homework will lose 5% of its original grade for each day it is late (e.g. an assignment handed in two and a half days late will receive its original grade multiplied by 0.85). Late assignments may be submitted via "git" and an e-mail message notifying the instructor and the teaching assistants should be sent immediately after the late assignment is submitted. In addition, each student is given five free late days that may be used freely during the semester. However, keep in mind that almost all of the assignments are built on the previous assignments; handing in one assignment late does not extend the due date for subsequent assignments. The scope and difficulty level of the assignments increases during the class; therefore, we recommend against using the five free late days early in the class.

After a programming assignment has been initially submitted, we will award additional partial credit for corrections made to that assignment. We encourage students to correct any errors found in their code and to make improvements and enhancements. This will improve your grade and, in many cases, will be required to allow the next phase of your computer system (hardware and software) to function correctly. No additional partial credit will be awarded for Problem Set 0 or for book problems.

Commented and Documented:

In the "Grading: Problem Sets" section above, the phrase "commented and documented" is used; this paragraph will clarify the necessary comments and documentation that should be provided with all programs. First, there should be a description of the entire application. This should include the user interface (i.e., how a user interacts with the program) and an explanation of what the program does. This documentation may be in a separate file from the program itself. Second, there should be a description at the beginning of each file which outlines the contents of that file. Third, each routine, function, method, etc. must be preceded by a section describing: (1) the name of the routine, (2) the purpose/function of the routine, (3) the parameters to the routine (name, type, meaning), (4) the return value from the routine (type, meaning), and (5) any side-effects (including modifying global variables, performing I/O, modifying heap-based storage, etc.) that the routine may cause. Fourth, declarations of variables should be commented with their purpose. Fifth, blocks of code should be commented to describe the purpose of the code section. Sixth, any complex or difficult to understand code statements or fragments should be commented to clarify their behavior.

Programming Languages:

In addition to programming in conventional languages (either C, C++, or Java), students will learn how to write code in VHDL. This is the Hardware Description Language that we will use to configure the Altera FPGA. All students are required to use the Quartus Prime Lite Edition Software, Release 20.1.1, Release Date November, 2020. This software may be downloaded from the Intel FPGA web site, is free, and no license is required. The software runs only on either Windows or Linux.

Using git:

When using "git" and https://github.com/, make sure to follow the information on using "git" and setting up your repository that is available on the section web site. Create a named branch for each of your problem sets as follows: specify "problem-set-0" for Problem Set 0 (the course questionnaire, fix this program, and word count), specify "problem-set-1" for Problem Set 1, "problem-set-2" for Problem Set 2, etc., specify "prelim-term-project" for the Preliminary Final Project Problem Set, and specify "term-project" for the Term Project.

Midterm Exam:

See Distance Learning Links: Midterm Exam for information on the Midterm Exam.

Accessibility:

The Extension School is committed to providing an accessible academic community. The Accessibility Office offers a variety of accommodations and services to students with documented disabilities. Please visit https://www.extension.harvard.edu/resources-policies/resources/disability-services-accessibility for more information.

Plagiarizing:

All work should be the personal creation of the individual student. Students are free to consult with each other and to study together, but all problem set solutions, programming assignments, exams, and the final project must be the personal contribution of each individual student. More explicitly, whenever a concept is reduced to a detailed algorithm or a program, no collaboration is allowed. If a paper, assignment, exam, program, or final project contains any information, algorithms, program fragments or other intellectual property taken from another source, that source and material must be explicitly identified and credit given. If you have any questions about this policy, it is the student's responsibility to clarify whether their activity is considered plagiarism.

You are responsible for understanding Harvard Extension School policies on academic integrity (https://www.extension.harvard.edu/resources-policies/student-conduct/academic-integrity) and how to use sources responsibly. Not knowing the rules, misunderstanding the rules, running out of time, submitting the wrong draft, or being overwhelmed with multiple demands are not acceptable excuses. There are no excuses for failure to uphold academic integrity. To support your learning about academic citation rules, please visit the Harvard Extension School Tips to Avoid Plagiarism ((https://www.extension.harvard.edu/resources-policies/resources/tips-avoid-plagiarism), where you'll find links to the Harvard Guide to Using Sources and two free online 15-minute tutorials to test your knowledge of academic citation policy. The tutorials are anonymous open-learning tools.

Use of Generative Artificial Intelligence (AI):

Major course objectives, in addition to designing and implementing a new processor, are for students to gain a deep understanding of Boolean logic, digital systems, processor block diagrams, sequencer design, assembly language, high-performance computing, parallel processing, processor performance, etc. and to gain a working knowledge of how to design low-level hardware systems. These are knowledge and skills that will benefit every student throughout their future careers. In order to meet these goals, we specifically forbid the use of ChatGPT or any other generative artificial intelligence (AI) tools at all stages of the work process, including preliminary ones. It is the responsibility of each student to check with the course staff for any other exceptions to this policy. Violations of this policy will be considered academic misconduct.

We draw your attention to the fact that different classes at Harvard could implement different AI policies, and it is the student's responsibility to conform to expectations for each course.

Publishing or Distributing Course Materials:

Students may not post, publish, sell, or otherwise publicly distribute course materials without the written permission of the course instructor. Such materials include, but are not limited to, the following: lecture notes, lecture slides, video, or audio recordings, assignments, problem sets, examinations, other students' work, and answer keys. Students who sell, post, publish, or distribute course materials without written permission, whether for the purposes of soliciting answers or otherwise, may be subject to disciplinary action, up to and including requirement to withdraw. Further, students may not make video or audio recordings of class sessions for their own use without written permission of the instructor.

Approximate Schedule:
July Description
9 Pre-Registration opens at 9 AM
19 Course registration opens for Degree Candidates and Premedical Program admitted candidates at 9 AM
22 Course registration opens for all students at 9 AM

 

August Description
19 Full payment deadline
22 English Proficiency Requirement deadline
29 Course registration deadline
30-September 10 Course change period for registered students only

 

September Description
2 Labor Day
3 Classes begin
3 First class meeting. Introduction, course information & policies, outline, schedule. Review of simple digital logic.
8 at Midnight Problem Set 0 (using git, the course questionnaire, fix this program, and word count) due.
10 Course changes deadline. Last day to drop courses for 100% tuition refund.
10 Second class meeting. Flip-flops as memory building blocks. Advanced Boolean logic, computer arithmetic, useful laws and theorems, sum of products form, minimization, technology metrics, gray codes & Karnaugh maps.
For today, read Katz chapters 1 and 2 and Patterson/Hennessy appendix B (4/e revised printing: appendix C) on The Basics of Logic Design.
15 at Midnight Problem Set 1 due.
17 Last day to drop courses for 50% tuition refund
17 Third class meeting. Place values, numeric encodings, canonical forms (minterms & maxterms), dealing with time in combinational logic networks, MIPS assembly language programming and instruction set design, addressing modes.
For today, read Katz chapter 3 and Patterson/Hennessy chapters 1 and 2 (4/e revised printing: chapters 1 and 2) on Computer Abstractions and Technology, and Instructions: Language of the Computer.
24 Fourth class meeting. Designing a processor: the datapath and control logic, Continue to discuss the MIPS instruction set and a simple block diagram of its implementation.
For today, read Katz chapter 4 and Patterson/Hennessy chapter 4 (4/e revised printing: chapter 4) on The Processor.
29 at Midnight Problem Set 2 due.

 

October Description
1 Fifth class meeting. Discuss the instruction sets for the PDP-8 and the PDP-11.
For today, read Katz chapters 5 and 6 and Patterson/Hennessy chapter 3 (4/e revised printing: chapter 3) on Arithmetic for Computers.
8 Sixth class meeting. Waveform diagrams, glitches, and hazards. Complete the PDP-11 instruction set including subroutines and condition codes. Endianness. Finite state machines. Material to be covered in the midterm exam.
For today, read Katz chapters 7 and 8.
13 at Midnight Problem Set 3 due.
14 Indigenous Peoples' Day
15 Seventh class meeting. Midterm exam.
For today, read Patterson/Hennessy chapter 5.6-5.18 (4/e revised printing: chapter 5.4-5.14) on the memory hierarchy.
22 Eighth class meeting. Details of implementing an assembler. MIF file description. Performing I/O operations using memory-mapped I/O. The interface to our memory subsystem.
For today, read Patterson/Hennessy appendix A (4/e revised printing: appendix B) on Assemblers, Linkers, and the SPIM Simulator and Patterson/Hennessy chapter 5.2, 5.11 (4/e revised printing: chapter 6) on I/O devices.
27 at Midnight Problem Set 4 due.
29 Ninth class meeting. Review the midterm exam. Serial communication, Caching, Virtual memory.
For today, read Patterson/Hennessy chapter 5.1-5.5 (4/e revised printing: chapter 5.1-5.3) on caches.

 

November Description
1-December 1 Degree program application period for fall
3 at Midnight Preliminary Final Project Problem Set due.
5 Tenth class meeting. Virtual memory (continued), TLB's (Translation Lookaside Buffers), Page Replacement strategies, Basic electronics, Pipelining.
10 at Midnight Problem Set 5 due.
12 Eleventh class meeting. Pipelining (continued). Parallelism. SISD, SIMD, & MIMD architectures. Locality of data to processor.
For today, read Patterson/Hennessy chapter 6 (4/e revised printing: chapter 7) on parallel processing.
19 Twelfth class meeting. VLSI circuit (custom silicon) design.
22 Last Day to withdraw from courses for no tuition refund (Course on record with WD (withdrawal) grade)
24 at Midnight Problem Set 6 due.
26 Thirteenth class meeting. I/O (Input/Output) Systems, interrupts. Vector computers. Data parallel computers.
27-December 1 Thanksgiving Break

 

December Description
3 Fourteenth class meeting. RISC vs. CISC architectures. VLIW (Very Long Instruction Word) computers. Mapping a high-level language onto a low-level architecture.
10 Fifteenth class meeting. Additional topics.
16-21 Final exams and last class meetings
17 Final Class Meeting during usual section and class time. Student project presentations/demonstrations. Term Project due.
20 by 2 PM ET All Final Project code, documentation, and presentation material must be submitted.

 

January 2025 Description
7 Grades available online in Online Services

 

Hardware Related References: Intel FPGA (formerly Altera) Information:

The class project will use the Intel Altera Cyclone IV FPGA (EP4CE115F29C7) on the Altera Development and Education DE2-115 board. All students will be required to purchase their own Altera DE2-115 Development and Education Board. This hardware is available at academic pricing from the Terasic web site.

As mentioned above, the Quartus software that we will be utilizing to program the FPGAs, runs only on either Windows or Linux. We strongly recommended that only the Windows version be used. For those of you using Apple Mac computers and macOS, running Quartus under a VM on a Mac works well, however a 64-bit x86 processor is required. To clarify, you cannot run Quartus on any Apple ARM processor (Apple silicon).

Intel FPGA (formerly Altera) information is available for:

The most recent version of Quartus that supports the Altera DE2-70 boards (with a Cyclone II FPGA) is Quartus II Web Edition, Release 13.0sp1. The most recent version of Quartus that supports the Altera DE2-115 boards (with a Cyclone IV FPGA) is Quartus Prime Lite Edition, Release 20.1.1. For release 20.1.1, only the Lite Edition can be utilized for free -- it doesn't require a License Key.

So, in order to use the newest Quartus release that supports our Altera DE2-115 boards, we will be using Quartus Prime Lite Edition, Release 20.1.1. This is the version of Quartus that we will all be using in the class.

In addition, it was announced that starting in Quartus II version 14.0 there will no longer be support for 32-bit computers (Quartus II V14.0 can only be used on 64 bit computers).

Sample Altera VHDL documents are:

CSCI E-93 Application Notes for using the Altera FPGAs:

Laboratory Documents and Programs:

USB to Serial Adapter: Static dissipative devices used in the lab:

The ring terminal at the end of the common point ground wire should be attached to the nearest electrical outlet faceplace using the screw between the outlets of a duplex outlet. Note that the alligator clips connected to the wires on both the anti-static mat and the wrist strap are removeable. The alligator clips are actually adapters from banana plugs to alligator clips similar to the Mueller Electric BU-60. After the alligator clip adapter is pulled off, the banana plug can be plugged into one of the two banana jacks on the common point ground. Both the anti-static mat's banana plug and the wrist strap's banana plug should be plugged into the common point ground.

Software and Course Documents On-Line: Slides used in class The Course Questionnaire and Problem Sets Online Software: Windows 10, GNU, Cygwin, Windows Subsystem for Linux, Google Drawings, Visio, Dia, OmniGraffle, draw.io, SPIM, etc.

Electronics stores in the Greater Boston Area

Electronics distributors on the Web

Hardware distibutors on the Web Harvard University Information Technology

Section Home Page