Go to USC home page USC Logo Computer Science & Engineering
UNIVERSITY OF SOUTH CAROLINA
J. Davis Home Page | Research | CSE Site Map | CSE Faculty
James P. Davis
Associate Professor
Department of Computer Science and Engineering
University of South Carolina
Columbia, SC 29208

3A63 Swearingen
jimdavis in domain cse.sc.edu
803-777-5855(voice)
803-777-3767(fax)
Office hours: 2:00-4:30pm T-TH

 

CSCE 491 course home page

Course Description & Grading
491—Capstone Computer System Project. (3) (Prereq: CSCE 240, 311) Advanced computer systems engineering. Team projects.  Link to Syllabus on Department Web Page.

Homework 15%, Exams(2) 30%, Project 50%, Class Participation 5%.


Textbook
Gast, Matthew S., 802.11 Wireless Networks: The Definitive Guide, O'Reilly Publishers, Inc., 2002.
Course Times & Location
Tuesday & Thursday: 11:00 - 12:15,  SWGN 2A22

Lab sessions meet in 1D39 and/or 1D43 on appointed Thursdays when we are using the Nimbus or flowHDL tools.

 


Course Overview

For more detailed information about the structure of this course, please read the Research Position Paper regarding how I conduct the course, which is an early treatment being prepared for a research paper (without literature survey). CSCE 491 White Paper (PDF).

In this course, we'll take on the design of digital systems for implementing the IEEE 802.11 wireless LAN protocol.  We'll focus on the MAC layer functionality, which controls the allocation of the wireless medium and the transmission of data across the wireless channel.

From my experience (and from my research into custom computing systems built using programmable logic devices), I believe that whole systems can be built out of custom logic models--without requiring the use of a microprocessor--and that the cost of building such a solution can be recouped in the initial project.  Microprocessor cores generally have a sizable royalty structure associated with them, and so cost--along with performance, power minimization, and form factor--become reasons for adopting custom logic, which can be delivered with the flexibility and designer productivity using programmable logic devices, namely FPGAs.

We'll be designing circuits for realizing the 802.11 MAC protocol in programmable logic.  What you will start with when you come in the door will be your experience in digital logic design from CSCE 211, and your knowledge of computer architecture from CSCE 212.  In addition, your experience in algorithms and what you may have gained from any computer networking courses taken will be of benefit.  But everything else you will need to know to design systems using wireless networking you will learn in this class.  We will use the high-level graphical methods for depicting our design, namely the Algorithmic State Machine (ASM) method.  The specifications will be discussed using UML models of the WLAN protocol--from which we will derive suitable systems architectures for our circuit design activities.

The design method I teach for realizing high-productivity design and architecture analysis for programmable logic design is and integral part of this course.  I also teach this in CSCE 611, the course on Digital Systems Design.  Just as in that class, I will be collecting designer productivity data and effort distribution data for all homework assignments and project assignments in this course to compare against data sets I've collected  in previous semesters.

 


Course Objectives

The overall objectives of the 491 project experience will be for you to learn to carry out the following engineering design and analysis activities:

(1) Create a digital systems architecture and functioning synthesizable and simulatable model for a subset of the 802.11 MAC Layer protocol that supports a portion of this WiFi WLAN standard, namely, the ad-hoc station operation in DCF mode. The description of this protocol is contained in the Gast text, which is our primary reference. I will also provide a set of CSCE 491 lecture notes we will be working from in the class.

(2) Verify the correctness of the behavior of your digital systems model, in that it conforms to the protocol standard, by using simulation according to a set of test scenarios that you will develop and collect verification data substantiating the functionality and cycle-level timing of the model.

(3) Subject the verified model to a set of simulation experiments, in terms of evaluating its throughput and performance.  The model you create should be architected such that it will support a nominal bit transmission rate of up to 56 megabits per second, the rated transmission speed for the new 802.11g standard. Actually, we should be able to create a MAC model that runs many times faster than this rate, and the limiting factor of the network performance will be the transmission medium (i.e., the air). But we'll plot the data throughput for the various frame operations and data frame sizes supported by the standard.


Course Outline

The course outline is as follows:

1. Overview of the Digital Systems Design process.  Davis, Chapter 1.

2. Review of gate-level and register level design components.  Davis, Chapter 2.

3. Design of systems using the Algorithmic State Machine (ASM) method.  Davis, Chapter 3.

     4.1 Representation of combinational logic; data path elements.

     4.2 Representation of synchronous sequential logic; finite state machine styles, encoding, mapping to device structures.

     4.3 Conventions for expressing circuits and systems using the ASM methodology.

5. The IEEE 802.11 Wireless LAN (WiFi) standard.  Davis, Chapters 5-7, Gast, Chapters 1-4.

     5.1 802.11 Protocol, timing and architecture.

     5.2 Detailed module-level design of MAC Layer Receiver.

     5.3 Detailed module-level design of MAC Layer Transmitter.


Lecture Notes and Assignments

I have posted the lecture notes for each week in both 2-page and 3-page-with-notespace PDF formats.  You can print whichever suits you.  The 3-page per sheet is the PowerPoint format that gives you space to write notes  beside each slide.

All design assignment deliverables must be completed according the Assignment Submission Guidelines.  Please follow these when preparing assignment submissions.

Lecture Week Topics Notes and Materials Assignment
Week #01 (8/18) Introduction to the course and what we're going to do this semester. Week-01 Lecture Notes (PDF) 2-page per sheet3-page per sheet. --
Week #02 (8/23, 8/25) Review basics of FSM and combinational logic data path operations (ANDs, XORs, ADD, etc.)  ALU design example. Introduction to Algorithmic State Machines, notation and diagrammatic conventions.  Week-02 Lecture Notes (PDF) 2-page per sheet, 3-page per sheet.

Arnold, Chapter 2, pp. 7-22.  (We will conform to Prentice-Hall publisher's guidelines regarding the dissemination of copyrighted materials.)

HWs #1 & #2:       Due  9/13.

HW Assign01-02 , HW01.pdf , HW02.pdf.

Bus Table worksheet (PDF).

ASM diagram worksheet (PDF)

ASM Worksheet guidelines (PDF)

Test Planning Worksheet (PDF),  Worksheet (Word).

Guidelines for using Testplan Worksheet (PDF).

Effort Distribution Worksheet (PDF),  Worksheet (Word).

Unix .csh script template for running flowHDL (TXT).

Total 40 points.

Week #03 (8/30, 9/1) Modeling using ASM diagrams. Design Example.  The ALU example, a combinational logic circuit model--2 different versions for the same truth table.

Thursday: We meet in lab 1D39.

Week-03 Lecture Notes PDF 2-page per sheet, 3-page per sheet.  

Note:  Here are notes on how to get decent printouts of ASM and waveform diagrams from Nimbus or flowHDLPrinting Guide (PDF).

Week #04 (9/6, 9/8) The Subtractor, built on the ALU, and the Binary Up/Down Counter.   We also discuss their usage in developing a test harness for design verification. Thursday: Lab 1D39. Week-04 Lecture Notes PDF 2-page per sheet, 3-page per sheet. HW #3, HW #4:    Due 9/20

HW Assign03-04 (PDF)

Total 20 points each.

Week #05 (9/13, 9/15) The UART (universal asynchronous receiver/transmitter).  Memory Modeling using ASM models flowHDL.  Thursday - Lab: working on extensions to the UART model, and you will be using the design tools extensively, and competently, by this time. Week-05 Lecture Notes PDF 2-page per sheet, 3-page per sheet.  

Please follow the Assignment Submission Policy

Total 20 points.

Week #06 (9/20, 9/22) 802.11 Overview: the DCF protocol and the 802.11 MAC frame structure.  The shifter function.  We build on the serial communications handshaking pattern we established with the UART.  We look at how the MAC layer manages the wireless medium with some fairness.  We talk about the traffic that passes through the wireless network before we talk about the structure and format (and meaning) of the individual frames themselves.    
Week #07 (9/27, 9/29) 802.11 Detail: the DCF protocol and the 802.11 MAC frame structure.  Frame structure, subtypes, and Sequence diagrams of behaviors and interactions.  Also, discussion of how we get words from the PHY Layer.  The 802.11 MAC Receiver architecture (cont.)  We walk through the interaction of the sub-blocks of the Receiver's Shifter Controller block.  The MAC Receiver shifter function and memory model. 802.11 MAC Lacture Notes (a) 2 page/sheet, (b) 3 page/sheet (PDF). 1. Project Team Assignment Form (a) MS-Word, (b) PDF.

2. HW #5: Shifter Block (PDF). Due 10/18.

3. Printing model diagrams from flowHDL (PDF).

Week #08 (10/4, 10/6) 802.11 WLAN frame delays, timing, and management of who and when transmission can occur; how we pass timing information around in frames to prevent everyone from stepping gall over each other.  Frame sequencing and sequencer controller block.  How does the Receiver know what to do when a frame comes in, given that each frame type/subtype has different fields in it?  Design Lab  (802.11 MAC Receiver Shifter Controller). Tuesday: Lecture (discuss Framing and timing)

Thursday: Lab (working on Shifter.

HW Assignment #5 (PDF): Design of Receiver and Transmitter Shifter blocks.

Due 10/18

Week #09 (10/11, 10/13) Fall Break for part of this week.  We'll meet in class on Tuesday, to discuss the Shift Controller (Receiver) and Frame Builder (Transmitter). Have a good holiday and get caught up.
Week #10 (10/18, 10/20) Discussion of the medium allocation scheme, the hidden node problem, and how the MAC layer handles getting control under DCF using the Backoff scheme.  Exam #1: 4 problems.  To be discussed. Exam#1 Review Sheet (PDF).

We'll also discuss ASM Memory Array modeling in flowHDL.

 
Week #11 (10/25, 10/27) Discussion of the Transmitter architecture: (1) Frame Construction, (2) Media allocation, (3) Transmission Timeouts and Retries. New 10/19/05!  Here is the updated 491 Project Specification document (PDF).  You'll want to get with your team members and carefully go through it.  This is the set of functionality that is to be implemented in your Trans & Recv models.

Tuesday: No lecture.  I am at a conference.  Meet in the lab with your team.

Lecture on Thursday.  Topics: Transmitter's Media Allocation, Receiver's Frame Control Word, DID.  Creating memory models for testing.

Assignment #6: Go through the specification, discuss it with your team members. This is so you know what is in it, and so you can participate in an informed manner.

Receiver: design the full Shift Controller block.

Transmitter: Design the Frame Builder block.  Test it for RTS, CTS, and ACK, and a Data frame fragment.  Integrate it with the Shifter.

Due: 11/3

Week #12 (11/1, 11/3) Discussion of the Receiver's FCH_Decoder, DID_Decoder and Addr_Decoder blocks.   Assignment #7: Next blocks:

Receiver: FCH Decoder (full implementation), DID Decoder.  Integration with Shift Controller. Test harness creation using memory arrays for test data in PHY to generate receiver data stream.

Transmitter: Medium Allocation (1) Timer and counters, (2) Looping for allocation, (3) Backoff algorithm.  Test harness creation using memory arrays for test data in PHY to store data stream generated by Transmitter.

Due: 11/10

Week #13 (11/8, 11/10) Discussion of the 802.11 MAC Receiver's Sequence_Control_Decoder and the Frame_Body_Decoder blocks, for both full frames and frame fragments.    Assignment #8:

Receiver: ADDR decoder.

Transmitter: Retry logic, Frame transmit (integration of Frame Build and Shifter).

Due: 11/17

Week #14 (11/15, 11/17) Design Lab (802.11 MAC Receiver blocks): FCS_Decoder block.  CRC error detection codes.  Transceiver Controller. Managing MAC Layer DCF transaction state in your design model.   Assignment #9:

Receiver: Frame Body decoder, Sequence Count decoder, and Fragmentation.

Transmitter: DCF Controller logic.

Due: 11/22
Week #15 (week 11/22) Lab work on projects.

No class Thurs. (Thanksgiving holiday)

Tools for messing with the .mem files (Zipped executables).

Also, some additional notes on backoff calculation (Txt).

Assignment #10:

Receiver: FCH decoder.

Transmitter: FCH generator.

Due: 12/2
Week #16 (11/29, 12/2) Tuesday:  Project presentations and demo.  Thursday: Discussion of Exam. Project report template (MS-Word).

Project presentation template (MS-PPT).

Project integration (Receiver and Transmitter). Project reports.

 

Final Exam - Mon. Dec 5, 2PM 4 questions, on the general workings of the 802.11 protocol and architecture.   Final Project Deliverable package: Due Fri 12/9 by 6:00PM.

Here are the examples which are good sample problems for studying for the exam.  (1) Tail Light Controller problem (PDF), (2) Tail Light Controller solutions (mine) (PDF), (3) Vending Machine Controller problem (PDF), (4) Vending Machine solution-sequence diagram (PDF), (5) Vending Machine solution-ASM chart (PDF).  Note that the scope of problem on exam #1 will be more like the Tail Light controller, but I've included the Vending Machine because it is such a good example.