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 sheet,
3-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
flowHDL:
Printing 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. |
|
|
|