Main Page
From CSE260
Contents |
CSE 260. Digital Computers I: Organization and Logical Design
Course description
Introduction to design methods for digital logic and fundamentals of computer architecture. Students learn to use hardware description languages and computer-aided design tools (simulation, circuit synthesis) and apply them to the design of a variety of digital circuits. Coverage includes both combinational and sequential circuits, ranging in complexity from basic arithmetic circuits to a simple processor. Students learn about the underlying causes of circuit delays and timing issues in sequential circuits (setup and hold times, minimum clock period analysis, metastability). They also study how logic minimization is done, learn to make basic design trade-offs (complexity vs. performance), and how lookahead techniques can be used to speed circuit operation. Coverage also includes the operation of a programmable processor, common methods for enhancing processor performance and the design of memory systems. Prerequisites: CSE 131 or 126 or comparable programming experience. Credit: 3 units.
Administrivia
- Time: Monday, Wednesday 2:30-4:00
- Place: Cupples II, 217
- Texts: VHDL for Digital Design - Frank Vahid, et. al., ISBN (978-0-470-05263-1); Lecture Notes for CSE 260 by Turner/Zar
- Instructor: David M. Zar, 935-4876, dzar at wustl.edu, office hours by appointment (send me email or call me to schedule).
- Teaching Assistants:
- Jonathan Novack (brazilian812 at gmail dot com) in Urbauer 115
- Tuesdays 11:30 - 1
- Saturdays 10-noon
- Jonathan Novack (brazilian812 at gmail dot com) in Urbauer 115
- Grading: Class Participation 10%, homework 15%, Quizzes 10%, Design Problems: 25%, Mid Term: 20%, Final: 20%.
Pre-recorded Lectures: To allow class time to be used for more active learning activities, lectures are being pre-recorded and posted on the web site. Students are expected to watch each lecture before the date of the corresponding class, so that class time can be spent on activities that involve more active student participation.
Class Preparation: Students are expected to do several practice problems that will be assigned before each class, and at the start of class, several students will be asked to give answers to the practice problems. Answers will be included in your class participation score.
Homework and Quizzes: In addition to the practice problems, longer homework problems will be assigned following the class in which that material is covered. These will be due at the next class meeting. Short pop quizzes will be given 6-8 times over the course of the semester. Quiz questions will be taken from the questions on the homework and practice problems due that day.
The Importance of Working Problems: The most important single thing you can do to master the material in this course is to work lots of problems. Do not fool yourself into thinking that attending class is enough. Engineering is not a spectator sport. It requires your active and energetic participation. And it requires practice, just like playing the piano or ice skating. The good news is that the more you let yourself get immersed in it, the more you will learn and the more you will enjoy the creative and inventive aspects of engineering that make it both fun and rewarding.
Design Problems: The design problems involve the use of computer-aided design tools to design and simulate circuits to solve particular problems. Most of the design problems will also include a lab component, where you implement your design on an FPGA prototype board and test it in the lab. Several design problems will be assigned during the semester. Most of these require considerable time and effort. Do not leave them to the last minute. You are expected to do ALL your own work on design problems. You may discuss general approaches with your fellow students, and the TAs will provide hints and general guidance. However, you are expected to turn in your own work and only your own work. You should not share any specific details of your design with other students. Sharing of block diagrams, VHDL code, simulation output or any other written material is expressly forbidden. Any group of students found to have collaborated inappropriately on a design problem will have the full value of the design problem deducted from the grades of all students involved. Repeat offenses will not be treated so leniently.
Late Policy: Design problems and homework are due in class on the day assigned. Solutions will be posted on the web site the same evening. Late submissions will not be accepted, not even for partial credit. No exceptions. If, for some reason, you cannot make it to class, you have a colleague bring it to class. In exceptional circumstances, you may drop off your assignment in the CSE department office, by giving it to one of the office staff, and asking them to initial and date it. It must be turned in before class. Do not make a habit of it.
Examinations: There will be two exams given during the semester. The mid-term exam is scheduled for October 14, during class. THERE WILL BE NO ALTERNATE TIMES FOR THE MID-TERM. The final exam will be given on Wednesday December 16 from 3:30 PM - 5:30 PM.
Expectations: This course covers a great deal of material and you will need to devote substantial time and effort to mastering it. You should plan to spend an average of ten hours per week outside of class, preparing for class, watching the recorded lectures, reading the textbook, working practice problems, working homework problems, and doing the design problems. Attendance is required!
On-line Communication: All information about the course can be obtained electronically, at this wiki.
Computer Aided Design Tools: The course makes extensive use of the Xilinx design tools. The tools we use can be downloaded for free from the Xilinx web site. Instructions can be found in section 5 of the lecture notes. The installation process is quite straightforward and I have run the tools under both Windows XP and Vista (including Vista 64-bit) without any trouble. Under Windows Vista you should install it as Administrator. They will run fine on a laptop (I do it all the time), although an external display is definitely a plus. They require at least 4 GB of disk space for installation and in general, the more memory you have the better (512 Meg is adequate for our projects). They run fine on a 1 GHz class machine. The tools are also available in CEC and you can access them remotely using the remote desktop utility to connect to mirage.cec.wustl.edu. All of the computers in Urbauer 115/116 have the tools installed, as well, and Urbauer 115 is where the programming adapters are for downloading your projects into the hardware.
Consulting Hours: The primary role of the TAs in this course is to help you learn the material, by holding consulting hours. Their schedule is posted above.
Course Materials
This wiki describes how to design digital systems using modern Hardware Description Languages (HDL) and Computer-Aided Design (CAD) tools. Some of the following links take you to more wiki pages and others just link to the class lecture notes for that section. The lecture notes are what are used in the pre-recorded lectures.
- The WashU-I+ Computer => Section 1 Lecture Notes (pdf)
- Introduction to Digital Systems (pdf)
- Digital Circuit Elements (pdf)
- Introduction to VHDL (pdf lecture notes)
- Simulating Digital Circuits (pdf)
- Designing Digital Circuits (pdf)
- Timing and Performance Issues(pdf)
- More Complex Circuits (pdf)
- Design of a Programmable Processor (pdf)
- Memory Systems (pdf)
- Improving Processor Performance (pdf)
- Optimizing Circuits to Minimize Cost (pdf)
- Advanced Arithmetic Circuits (pdf)
- Field Programmable Gate Arrays (pdf)
Hardware Resources
In our course we use a Spartan S3 board from Digilent, Inc. The specific board we use is the Spartan 3E Starter Board. The manual for this board is in PDF and can be downloaded from Digilent's site. This manual discusses the hardware components on the board and gives some background on how to use them. A complete UCF is also included in the manual.
Course description (from the catalog)
Digital computers and digital information processing systems; Boolean algebra, principles and methodology of logic design; machine language programming; register transfer logic; microprocessor hardware, software and interfacing; fundamentals of circuits and systems; computer organization and control; memory systems, arithmetic unit design. Occasional laboratory exercises. Prerequisites: CSE 131 or 126. Credit: 3 units.
