EE4743/6743 Digital Systems Design (Fall 2007)
Class Time & Location
MW(F) 10:00-10:50am, Simrall 203
Instructor
Sherif Abdelwahed
Assistant Professor
ECE Department, Mississippi State University
Office Hours: MW 1:30-3:00pm or by appointment
Lab Instructor
Ridzky Riyadi rar67@msstate.edu
The Lab Policy is
provided here.
Class E-mail
ece4743@ece.msstate.edu
Textbook
R. Reese and M. Thornton, Introduction to Logic Synthesis Using Verilog HDL, Morgan &
Claypool Publishers, 2006.
Grade Determination
Tests: 45%
Lab: 20%
Project: 10%
Final: 25%
Grading Scheme
A: 100-90
B: 89-80
C: 79-70
D: 69-60
F: 59-0
Attendance
Students are expected to be present for all tests and for the final exam. In
extreme cases, I may arrange a make-up test. I will not be taking regular
attendance, but I strongly suggest coming to class as the tests are based off of
material discussed in class. It is the student's responsibility to contact me in
advance to explain the situation and arrange an alternate plan.
Prerequisites
Digital Devices (ECE3714)
- Topics
- Sample Exercises
In-Class Slides
- Aug 20, 2007 (M) : Introduction
- Aug 22, 2007 (W): Review of combinational logic
- Aug 23, 2007 (F): Review of sequential logic
- Aug 27, 2007 (M): Review of finite state machines
- Aug 29, 2007 (W): Combinational Verilog
- Aug 31, 2007 (F): Implementation technology
- Sept 5, 2007 (W): Fixed point Arithmetic (Shift-add-3 algorithm)
- Sept 7, 2007 (F): Sequential Verilog
- Sept 10, 2007 (M): Finite state machines design
- Sept 12, 2007 (W): Datapath design
- Sept 17, 2007 (M): System Timing
- Sept 19, 2007 (W): Increasing the Clock Rate
- Sept 26, 2007 (W): Structural Verilog (VGA Graphics)
- Sept 28, 2007 (F): Scheduling
- Oct 3, 2007 (W): Scheduling Examples
- Oct 8, 2007 (M): Increasing the initiation rate
- Oct 10, 2007(W): Linear Feedback Shift Registers (LFSR)
- Oct 15, 2007(M): System-on-a-Chip design
- Oct 17, 2007(W): Pipelining
- Oct 24, 2007(W): Pulse Width Modulation
- Oct 29, 2007(M): IO Technology
- Oct 31, 2007(W): Introduction to design for Test
- Nov 7, 2007 (W): Introduction to design for Test
- Nov14, 2007 (W): Introduction to VHDL
- Nov 28, 2007 (W): Review for the final
Tests
- No calculators/PDAs/laptops/phones etc.
- Write legibly
- Make your final answers clear
- Test 1 will be a take home exam
- For Test 2-5 are closed book, closed notes.
Test 1: Wednesday, August 28. Due Friday August 31.
Test 2: Friday, September 14, 2007.
Test 3: Friday, October 5, 2007.
Test 4: Monday, October 22, 2007.
Test 5: Monday, November 12, 2007.
Final Test" Friday, December 7, 2007.
The first key to doing well on the tests is to study the old exams. There are
many problems on them which I use for future exams with perhaps some small
modifications. It is also excellent practice to work the problems. If you
understand how to do the problems on the old exams, then you will be well
prepared.
The second key to doing well on the exams is to prepare a good page of
notes. Just by going through the process of looking up information on the
slides, you come to understand what you know and what you don't know. The
decision to put something on the exam requires a certain level of understanding
of the material. It's also ok to put old exam problems and answers on there
since I use a lot of old material; however, be sure you know how the problem
works since I often slightly change old problems for new exams.
Handouts
Fall 2007 Syllabus and Class Policy
Software
We will be using a software package called Xilinx ISE WebPack for digital logic
programming in this class. This is free software that can be downloaded from the
Xilinx web page. For simulations, we will use the Modelsim software, which is
also a free download from the Xilinx web page. We will discuss how to install
and use the software in lab. The labs will be oriented around your laptops, so
you will need to install the software yourself. You must have the software
downloaded before coming to lab since it is a very large download (~850MB).
Instructions for downloading it are included in lab 1. This software is also
available on the workstations in the lab if you do not have a laptop. You can
also use the Quick Start Tutorial to answer many questions about how to use the
software, including HDL and schematic entry, simulation, constraints,
implementing, and downloading.
Hardware
The labs this semester will require each student to purchase the Digilent,
Inc. Basys development board. These cost $59 each and can be purchased directly
from the Digilent, Inc. homepage.
Included with each kit is a power supply and download cable. We decided to do
this so each student can have hands-on experience with FPGA hardware. Each board
has 8 LEDs, 8 switches, 4 push buttons, and a 4 digit numerical display. There
are also connections for a VGA monitor and a PS/2 port for keyboards/mice. We
will be using all of these in the lab.
- Basys reference manual
- Basys board schematic
We strongly recommend doing the labs on your laptops. If your laptops do
not have a parallel port, then you won't be able to use the download cable. If
you don't have a suitable laptop, some computers will be available in lab for
development and programming.
Labs
The labs offered this semester will have different accomplishment levels.
This is designed so each student can decide how many hours he/she wants to put
into the lab. Each level carries a grade of A,B,C. The labs are designed so that
completing the 'C' level work will lead directly into the 'B' level work, which
will in turn lead into the 'A' level work. Graduate students must complete at
least the 'B' level work. There are weekly quizzes at the beginning of the lab
period and a lab final during the last week of class. Be sure to bring your
laptops to lab. If you do not have a laptop, then there are a few workstations
that you can use.
If you use the Basys board, use the constraints file provided here. When you open the project in the lab files provided below
you will have to change the FPGA for which it is synthesizing the design. Do this
by right clicking on "xc3s200-4ft256" in the Sources window and select
"Properties...". Change the Family to Spartan 3E, change the Device to XC3S100E,
and change the Package to VQ100.
- Week of August 27: Lab1: Software
Installation and Tutorial
- Week of Sept. 5: Lab2: Combinational Verilog
- Week of Sept 10: Lab3: Sequential Verilog: Board Evaluation
- Week of Sept 17: Lab4: Finite State Machines: Calculator
- Week of Sept 24: Lab5: IP Cores: Pong
- Week of Oct 1: Lab 6: Memories: Raster vs. Tiles
- Week of Oct 8: Lab7: Image Processing: Dithering
- Week of Oct 15: LFSRs: Cryptology
- Week of Oct 22: Pulse Width Modulation
- Week of Oct 29: Embedded Processors: Picoblaze
- Nov. 14: Lab Final
Lab Tips:
- General:
- Be sure to include the constraints file in your project. If you're seeing
strange things on the outputs, this may be the problem.
- If your code compiles, but doesn't do what you want it to: READ THE WARNINGS
- The warnings are there to tell you that you probably made a mistake, but it
will compile your code anyway
- If it optimized something out, it will give you a warning - that's usually a
mistake
- It will tell you when it finds an asynchronous loop
- It will tell you of unassigned I/O
- Verilog code:
- Make simple always blocks
- Only assign few related outputs
- More smaller process statements are better than one big one
- The compiler is not very smart
- Always be able to draw a block diagram of the circuit you are trying to
describe
- Watch out for asynchronous loops in your code
- Make sure you can't trace a combinational path
- Temporary signals make this deceptive
- Schematic Entry:
- Use the wire naming tool - don't double click on a wire to name it
- If you rename a wire, it will rename all of the wires of the same name
Project
There will be a team project this semester lasting four weeks. The project
will use the Basys development board. During the semester you will submit a
proposal for their project, and it must be approved by the instructor. A detetailed describtion of the project is found here.
Phase 1 Due: Nov 2
Phase 2 Due: Nov 9
Phase 3 Due: Nov 16
Phase 4 Due: Nov 26
Demonstrations Nov 29 and Nov. 30 3:00-5:00 at SDS lab
4743 Project Template Page
Current Projects
- Team 1: Venkata Nookala, Lakshmi Pragada, Venkata Puvadi
- Team 2: Frank Holland
- Team 3: Chris Dailey, Michael Weir
- Team 4: Charlie Mraz
- Team 5: Steven Austin, Jerome Walker
- Team 6: Andrew Thigpen, Joshua Wilson
Previous Projects
Spring 2007
Fall 2006
Spring 2006
- Team Elves: IP Cores Lab: The Baloon Hunt
- Team PWM_Audiophiles: PWM Audio Player
- Team XYZZY: FSM Lab: Maze
- Team Wireless Pong: Wireless Pong
Fall 2005
- Team Syzygy: Computer Fan Control
- Team Illumination Science: Light-Bright Toy
- Team Snooze: Alarm Clock
- Team NTN Design: PoV Game
- Team Cyclotech: Cyclocomputer
Spring 2005
- Team Ramrod: Weather Station
- Team 2: Pegasus Clock
- Team CCA: CCA Tank Monitor
- Team High Fidelity: Graphical Equalizer
- Team H.A.L.: Sunlight Replicator
Reference Material
Web pages of interest
Data Sheets
Sample Tests
- Test 4, Spring 2006
- Test 3, Spring 2006
- Test 2, Spring 2006
- Test 4, Fall 2005
- Test 3, Fall 2005
- Test 2, Fall 2005
- Test 4, Spring 2005
- Test 3, Spring 2005
- Test 2, Spring 2005
- Test 4, Fall 2004
- Test 3, Fall 2004
- Test 2, Fall 2004
- Test 3, Spring 2004
- Test 2, Spring 2004
- Test 1, Spring 2004
- Test 3, Fall 2003
- Test 2, Fall 2003
- Test 1, Fall 2003
- Test 3, Spring 2003
- Test 2, Spring 2003
- Test 1, Spring 2003
- Test 3, Fall 2002
- Test 2, Fall 2002
- Test 1, Fall 2002
- Test 2, Spring 2002
- Test 3, Spring 2000
- Test 1, Spring 2000
- Test 3, Fall 1999
- Test 2, Fall 1999
- Test 1, Fall 1999
- Test 2, Spring 1999
- Test 1, Spring 1999
- Test 2, Fall 1998
- Test 1, Fall 1998
- Test 2, Spring 1998
- Test 1, Spring 1998
Homework problems