Policy/Syllabus
- Policy/Syllabus
Teaching Philosophy
This is an upper level course, and thus is taught in a different
style than what I use in a lower level course. READ THIS -- it will give you a clue as
to what to expect in this class.
Email List
The class EMAIL list will be the one
provided by Information Technology Services (ITS). The email list
is ece4743-01.spring2003@courses.msstate.edu . All students will be on this list, regardless of what section you are registered for.
See the
Class EMAIL Faq for further information about class email lists.
WARNING!!! It is your responsibility to make sure that you are able
to read email sent to this list (the list uses your official MSU email
address). I will send many homework/test/lecture announcements to this
list -- you are responsible for reading the emails sent to this list.
ECE HelpDesk
Please visit the ECE HelpDesk
Site for general questions about ECE computing facilities.
If you are a new student and have registered well in advance you will
have an account on ECE machines. New stduents may pick up their accounts slips (has username,
password) from the main office. Students who registered close to the
start of classes accounts during the first week of class.
Maxplus Software
We will be using a software package called 'Altera Maxplus' for digital logic simulation in this class.
Your textbook has a CDROM of this software package on the back cover. We will discuss
how to install and use the software in class. Your book also has a good tutorial on the software
in Appendix B. This same software is available on the Unix workstations in the ECE department.
Download the Student Edition Software
(v. 10.2) Directly from Altera Website
HERE.
Obtain a license file from Altera for either version 10.1 or version
9.23 from
HERE .
Spring 2003 Lab Instructors, Lab Policy
Anitha Govindarajan ag128@ece.msstate.edu
"Ram" Ramakrishnan Nagakrishnan, Phone: 325-9476 rn1@ece.msstate.edu
This Lab Policy Document will be
used for the Spring 2003 semester.
WebCT Course Ware
I will be using a University WWW resource called 'WebCT' for some
homework assignments. To access the ECE 4743 WebCT course page, go to
the WebCT home page , and click on the
"Log into myWebCT" option. You will need to use your MSU NetID and password to login into WebCT.
If you do not know your MSU Netid, look it up in the
online campus directory: http://www.msstate.edu/directory ,
the MSU NetID is right next to your name. If you have never logged into a WebCT course before,
the login name is your MSU NetID, the default passwd is your 6-digit birthdate (mmddyy). Once you
have logged into WebCT, use the Password Tool ("Change Password" in upper right corner) to change
your password.
Once you are logged into WebCT, you should see under "Courses" on the left-hand side the course
"ECE 4743-Digital System Design" (if you do not see this then this means that you have not been added yet
- please send me email at reese@ece.msstate.edu and I will add you to the course).
Click on the course name to access the course.
I will be using WebCT only for online homework quizzes.
To take a WebCT quiz, click on the Online
Quizzes once you have accessed the course . You will be presented with a list of multiple choice questions. After
choosing an answer for a question, click on the 'submit answer'
button. This MUST BE DONE FOR EACH QUESTION. Simply choosing an
answer does not submit the answer, you must click on the "submit
answer" button. There is a chart on the right side that will show how
many questions have answers submitted for them; don't leave the quiz
until you have answered all of the questions.
Some of the questions will be in short answer format instead
of multiple choice -
it is important that you follow the question directions in terms of answer format because answer checking
is done via string matching, and if you don't use the correct format for your answer it will be graded
as wrong even though your answer is technically correct.
Homework Assignments
- I have enabled quizzes 8, 9 and 10 in the ECE 4743 WebCT course --
these are quizzes that review basic Digital Devices concepts. The
cutoff date for completing these quizzes is January 22nd. I will not
count these quiz results in a formal way in the grade average, but
will use them for making decisions for bordeline students when I
assign final grades at the end of the semester. Taking these quizzes
should help you in understanding the review material. The review
material does not cover all of the quiz topics - you can find
additional information on these topics at
my home page for
Digital Devices . When taking a quiz, you will be presented with
all of the questions at once. After answering the questions, press
the 'submit' button, and you will be shown which questions were
correct or incorrect (for incorrect answers, the correct answer is NOT
shown). You can take the quiz twice - the highest of the two grades will be the
grade that I will use for borderline decisions.
Test Seating Spring 2003
Here is the
Seating Chart that
will be used for all tests.
Spring 2003 Labs
See the lab policy document for lab report requirements. While the
lab reports are very informal in this class, lab reports are required.
A lab report is NOT REQUIRED for Lab #0. Lab reports are required for
Labs 1 through 5. Lab reports are required for all
three parts of Lab #6. A lab report is required only for the 2nd portion of
Lab #7. A lab report required for Lab #8.
- Lab 0 (HTML): Maxplus Tutorial
(first week of class)
- Lab 1 (PDF, updated Spring 2003)
-
Lab 2 Signed/Unsigned Saturating Adder, Updated Spring '02 ,
lab2.zip - contains files
needed for assignment ,
Lab 2 Post-lab
Questions
- Lab 3 (HTML): Intro to Altera
LPMs, Datapaths
, Lab 3 Post-lab
Questions
- Lab 4: Timing, Pipelining ,
files.zip - contains files needed for assignment ,
Post-Lab questions (answer these in your lab report)
- Lab 5: A FSM + Datapath Problem - Block Transfer Ram ,
files.zip - contains files needed for assignment
- Lab 6, Part #1: Bilinear Filtering Lab assignment ,
PDF file ,
bifilt_students.zip - Files needed for
this assignment
- Lab 6, Part #2: Bilinear Filtering Lab assignment ,
PDF file ,
tb_bifiltp2_gold.zip - Files needed for
this assignment
- Lab 6, Part #3: Bilinear Filtering Lab assignment ,
PDF file ,
tb_bifiltp3_gold.zip - Testbench golden waveform ,
Due ONE week after Part #2 is due (clock speed constraint has been
reduced to 20 Mhz for Fall 2002).
- Lab 7: Parts #1, #2: Serial Data Transfer ,
ZIP archive with needed files
- Lab 8 : Structural VHDL - take one of your successful
implementations for Lab #6 (parts 1,2 or 3) or Lab #7 (part #2) and
implement it in 100% VHDL - ie. no schematic capture is allowed.
Lecture Supplements, Spring 2003
- Maxplus II overview ,
PDF file .
- Course introduction, Review of Combinational
Logic , PDF file .
- Review of Sequential
Systems , PDF file .
- Review of Finite State Machine/Datapath timing ,
PDF file .
- Combinational Logic in VHDL
, PDF file .
- Fixed Point arithmetic,
Saturating adders, Maxplus LPMs
, PDF file
- System Timing Issues ,
PDF file
- Introduction to Pipelining ,
PDF file
- Implementation Technologies ,
PDF file
- FPGA Families ,
PDF file
- Intro to Sequential Systems in VHDL ,
PDF file
- Finite State Machines in VHDL ,
PDF file
- FSM + Datapath Design ,
PDF file
- Scheduling, Data Flowgraphs ,
PDF file
- Bilinear Filtering Lab assignment ,
PDF file
- Increasing the
Initiation Rate of a datapath, scheduling ,
PDF file
- FPGA Timing Models ,
PDF file
- Altera Timing Models ,
PDF file
- Altera Stratix FPGA Features ,
PDF
- Cooperating Finite
State Machines ,
PDF
- Structural VHDL ,
PDF
-
Introduction to Design For Test ,
PDF
-
A Brief Introduction to Verilog ,
PDF
,
Clifford E. Cummings Paper on Verilog Coding Styles, SNUG Best Paper
Award (2000)
-
Verilog RTL Example - Deserializer ,
PDF
-
System-On-a-Chip. Xilinx Pro, Cypress Microsystems PSOC ,
PDF
- Some info about Video displays
and the Ga Tech Video module ,
PDF
In-class Group Exercises on Datapath Scheduling, Spring 2003
- Group
Assignment 1
- Group
Assignment 2
- Group
Assignment 3
Data Sheets
Sample Tests
- Test 3, Spring 2003
- Test 2, Spring 2003
- Test 1, Spring 2003
, Gate
implementation of FSM
- Test 3, Fall 2002
- Test 2, Fall 2002
- Test 1, Fall 2002
- Test 1, Spring 2002
- Test 2, Spring 2002
- Test 1,
Spring 00 (.doc), Test 1,
solutions (.pdf)
- Test 3,
Solutions, Spring 00 (pdf)
- Test1, Fall 99
(.doc) ,
Test1 Solutions, Fall 99
(PDF) ,
Test1 Solution
Pictures, Fall 99 (*.ppt)
- Test 2,
Solutions, Fall 99 (.doc), Test 2,
Figures/Solution waveforms (.ppt)
- Test 3,
Solutions, Fall 99 (.doc), Test 3,
Figures/Solution waveforms (.ppt)
- Test 1, Fall 98 (ps)
- Test 1, Fall 98 (pdf)
- Test 2, Fall 98 (ps)
- Test 2, Fall 98 (pdf)
- Test 1, Spr 98 (ps)
- Test 1, Spr 98 (pdf)
- Test 2, Spr 98 (ps)
- Test 2, Spr 98 (pdf)
- Test 1, Spring 99 (pdf)
- Test 2, Spring 99 (pdf)
Misc
To read PDF documents on the Sun systems, do "swsetup acrobat", then do
"acroread documentname".
VHDL Examples
Click HERE for the VHDL examples from the
notes. These have checked to work with Altera Maxplus2.
UP1 Board
-
Professor Jim Hamblen's (Ga Tech) UP1 Board page Look here
for interesting project ideas, neat implementations, and
miscellaneous tips.
-
Ga Tech Page that discusses use of Video module and keyboard module
for UP1 Board.
- Zip file that contains
video/keyboard modules referenced above.
- Improved keyboard function
that has a little better performance (important for large designs if using the onboard
25Mhz clock as system clock for keyboard module. The original
module had marginal timing and would sometimes fail if integrated into a
larger design.)
- Zip archive containing the SOF file for 'circles'
game (requires keyboard, VGA monitor). 'Circles' is a Nim variant
- instructions for the game are displayed on the video screen. Spring 99 class project.
Using the Altera UP1 Board
- Make sure that the jumpers on the board are set correctly.
Look at this document
for an explanation of the jumpers. Look at pages 5,6 at
the description of the jumper settings and make sure that you
can program the Flex10K device.
- Connect power to your board, and the byteblaster cable to the
parallel port and to your board.
- Start Maxplus2, and click on the ByteBlaster icon or the
"Programmer" choice under the Max+plusII menu. If the Hardware
setup window does not appear, then access this via "Options ->
Hardware Setup". Choose ByteBlaster, and make sure that LPT1
port is selected. Close the Hardware setup menu.
- Under the "JTAG" menu, make sure that "Multi-Device Jtag
Chain" is checked. Then under the "JTAG" menu, execute the
"Multi-Device JTAG Chain Setup". When this menu pops up,
click on "Select Programming File" and browse to the .SOF file
that you want to download. Click on "Add", then exit by
clicking on "Ok". There should be only ONE programming file
selected.
- In the "Programmer" popup menu, click on "Configure", and you
should see the download completion bar progress from 0% to
100%. Your design is now downloaded.
- If you are running NT, you must install the ByteBlaster
driver. Access the Multimedia icon under the Control Panel,
and add an "Unknown device"; point the installation program at the maxplus2/drivers
directory. Choose the "ByteBlaster" when the popup menu
appears, and the installation will complete. You will need to
reboot. If you are running Win2000 you must follow a similar procedure, but you must
have version 9.6 or greater in order to get the ByteBlaster drivers for Win2000.
I do not know if the Win2000 drivers will work with WinXP.
Maxplus Oddities, Error Messages
This is a list of common error messages/oddities/errata/weird_stuff that you need to be
aware of when using the Maxplus software:
- "Error: Input pinstub/port somepin is unconnected and has no
default value" -- To locate the problem component, double click
on the error message and the component will be highlighted.You may
forgotten to connect the pin, or misspelled the label of the net that
is connected to the pin. Sometimes, it will look like a net is
connected to a pin but it is not actually connected. Try clicking on
the net and moving it around - if it is connected, then the net will
'rubberband' and remain connected.
- "Error: node missing source :"pinname"[ID:compnum:pinname]"
. The pinname is the name of the pin, the compnum is the number of
the component (the component number is displayed in the lower left
hand corner of the component - the BUF8 picture above has a component
number of '16'). This error happens if there is actually a net
connected to an input pin, but the net does not connect to an output
pin of some other component. The most common cause of this problem is
that you have either mislabeled the output input net name or the input
pin net name.
- "Error: Illegal node or pin name
:"pinname"[ID:compnum:pinname]" . This usually happens if an
illegal syntax has been used for a bus name, such as A[7:0] or A[7.0],
or A(7..0), etc. A bus name uses two periods to seperate the high/low
bus indexes, and brackets around the bus indexes ( A[7..0]).
- "Error: Width mismatch in pinstub
:"pinname"[ID:compnum:pinname]" . This is due to a mismatch
between the label on a bus and the pin that it is connecting to. For
example, if a bus has the label A[8..0] (9-bits wide), and the pin has
the label A[7..0] ( 8 bits wide), this error will be generated. This
also happens if you use a single dimensional bus label where a
multi-dimensional bus label is required, or vice-versa.
- "Error: Tri-state node must be driven by a TRI buffer, but is
driven by a primitive :"pinname"[ID:compnum:pinname]" . This
happens when you connect mistakenly connect two outputs together by
physical connection or by using the same net name (you can only do
this if you are using a tri-state buffer, and the FLEX devices we are
mapping to do not implement tri-state buffers).
- .TDF file extension: When you edit a text file using Maxplus, the
default extension is ".TDF". Do NOT use this for a VHDL code -
the default compiler invoked on a ".TDF" is not the VHDL
compiler. Use a ".vhd" file extension for VHDL files.
- VHDL Syntax Errors . In general, try to solve the first
error message - this error may have generated many of the other error
messages. Also, when you edit a file via the "Max+plus II -> Text
Editor", you can use the "Templates-> VHDL Template" menu to insert
various templates for VHDL structures. This can save you from many
common syntax problems - I would highly suggest that you use this.
- Student Edition Installation under Win98: Many people
have installed the Student Edition under Win98 with no
problems. However, the following
problem occurred on a Pentium 130Mhz, 32Mb RAM system running
Win98 - everytime the installation procedure was attempted, a
system error occurred that would terminate the
installation. Many different things were tried, including
shutting down all starup programs, copying the "Pc/Maxplus2
directory tree to the C: drive before installation, etc.
We finally got it work by first copying the "Pc/" directory on
the Maxplus CDROM to drive C:, booting in Safe Mode, and then
doing the installation (Safe mode does not have a CDROM driver
so that is why the "Pc/" directory had to be copied first).
After the installation completed, the machine was booted
normally and all worked ok.
- Student Edition, "Partitioner Error" Under the Student
edition, if a design won't fit (i.e. a 16-bit multiplier in a
Max7000 part), then you will occasionally get a 'Internal
Partitioner Error' instead of a 'Design does not Fit' message.
Try mapping the design to a Flex10K family part.
- Student Edition, Synthesis Problem with Finite State
Machines, Conditional outputs in Processes.
These two files,
fsmbad.vhd and fsmgood.vhd
illustrate a synthesis problem with the student edition V7.21 (the
problem does not occur in the Professional edition). The lecture
notes use the style that is shown in the 'bad' example, so be
SURE to use the style in the 'good' example if you are using the
Student edition. This is actually a symptom of a larger problem
as shown by test_bad.vhd and
test_good.vhd . In the student
edition V7.21, if you have a conditional output in an 'if' statement
inside of a CASE statement, the output will have a latch
synthesized on it if the 'if' statement does not have an 'else'
clause EVEN if the output is previously assigned a default value. The
professional edition generates the correct logic (no latch).
BE CAREFUL OF THIS!!!! This bug is tough to spot!! Try
to avoid conditional outputs inside of case statementts if you are using Student V7.21 or
put them in concurrent statements outside of the process.
Here are two more examples that correspond to the FSM defined in
the Datapath notes . The
first
file is the recommended method for writing FSMs if you are using the
Student edition V7.21. The second file
follows the style
discussed in the notes, and works fine with the professional
edition.
- Student Edition, Compare operation. This is from James
Hamblen, Professor at Ga Tech.
The only big VHDL problem issue that I have come across deals
with '<' or '>' compare ops. It does not select signed correctly and
seems to always use unsigned compare operations (i.e. it ignores your
signed library statement). This is fixed only in the latest pro
version.
Actual Lecture List, Fall 99
- August 23rd: Mon, Wed: Comb Logic Review. Fri: Seq Logic Review
- Aug 30th: Mon: Maxplus Overview (Lab #1 discussion), Wed, Fri:
VHDL Comb Logic, Fixed Point discussion
- Sep 6 : Mon: No class, holiday. Wed: Implementation Technlogy, Fri:
Fixed Point discussions, Lab #2
- Sep 13: Mon:Implementation Tech (overview, no detailed FPGA
discussion), Wed: Start System Timing Friday: System Timing, Talk about Lab #4
- Sep 20: Monday: Finish System Timing, start Pipelining, Wed:
Finish Pipelining, Talk about Lab #5
- Sep 27: Monday: Sequential Systems with VHDL, Wed: Ram Zero Dpath
example, Test #1 review, Friday: Test #1
- Oct 4: Monday: Test #1 Results, FSMs in VHDL, Wed: FSM timing,
Implementations of Sync RAM with zeroing Capability
- Oct 10: Monday: Altera FPGA Architecture, Wed: Matrix
Multiply Assignment, Xilinx/Actel FPGA architectures
- Oct 17: Monday: Finish Xilinx/Actel FPGA architectures, Low
Voltage IO Families, Wed: DalSemi lecture by Chris Collins
- Oct 24: Monday: Discuss class project, Wed: Scheduling,
Flowgraphs
- Nov 1: Monday: More on scheduling, Wed: Increasing Datapath
initiation rate, UP1 Board demo
- Nov 8: Monday: Design for Test, Wed: Test #2
- Nov 15: Monday: Discussion of Test #2 results, Project speedup
hints. Wed: Altera Video Module discussion
- Nov 22: Monday: Finished up Altera Video Module, discussed
high level synthesis
- Nov 29: Review for Test 3, Wed: Test #3
- Dec 6: Mon Test #3 results, review for Final
Non-tech topics (Spring 2000)
- Sept 13: Difference between Architect, logic designer, circuit designer
- Sept 27: Privacy chips vs Law enforcement backdoors
- Oct 4: Avoiding Engineering obsolesence
- Oct 11: Microsoft a monopoly? Intel a monopoly?
- Oct 21: Interviewing, Technical Interviews (Chris Collins, DalSemi)
- Nov 3: Intellectual Property.
- Nov 8: Time to Market, Product development
- Nov 15: Y2K hysteria
Old lectures
- Maxplus II overview ,
PDF file .
- Course introduction, Review of Combinational
Logic , PDF file .
- Review of Sequential
Systems , PDF file .
- Combinational Logic in VHDL
, PDF file .
- Fixed Point arithmetic,
Saturating adders, Maxplus LPMs
, PDF file .
- Implementation Technologies
- FPGA Families Summaries.
You should also look at the data sheets.
- System Timing Issues ,
PDF file
- Introduction to Pipelining ,
PDF file
- FPGA Timing Models
You should also look at the data sheets.
- Altera Timing Model Details
- Intro to Sequential Systems in VHDL ,
PDF file
- Finite State Machines in VHDL ,
PDF file
- FSM + Datapath Design ,
PDF file
- Scheduling, Data Flowgraphs ,
PDF file
- Increasing the
Initiation Rate of a datapath, scheduling
-
Introduction to Design For Test ,
PDF
- Spring '00 Project Hints
- Some info about Video displays
and the Ga Tech Video module ,
PDF
Labs from previous semsters
- Lab 6 (HTML): Sequential VHDL
- Lab 7 (HTML): Finite
State Machines -- Synchronous Ram with Block Transfer ,
(Additional discussion:
(.ppt) ,
(.pdf) )
- Lab 8 (HTML):
Maxtrix Multiply - Minimum Resource Implementation
- Project Spring '00:
Maxtrix Multiply Revisited