EE 4743/6743 Digital System Design
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
If you have not been receiving messages from the class email list (reese-class1@erc), then IT
IS VERY IMPORTANT that you get on this list! You do this via two ways:
- Send email to majordomo@erc.msstate.edu with the line "subscribe reese-class1" in the
body (subject does not matter)
- Send email to reese@erc.msstate.edu and I will add you.
This list is where the TA and myself announce corrections to lab assignments,
problems/workarounds in the software, etc. You will cost yourself a lot of hours if you do not
subscribe to this list and read the messages that are sent to it.
Altera Maxplus Student Edition Software
You can get the Altera Student edition software from the CDROM that I hand out in class or
via the ZIP file available from /home/reese/altera_student/maxplus2.zip (on either the ERC
machines or the ECE machines). I cannot make this file available via this WWW page because
it cannot be made publicy available. Use FTP to download the maxplus2.zip file (12.7 Mb) from
/home/reese/altera_student. Be sure you use binary mode in downloading the file.
Once you unzip the file 'maxplus2.zip', execute the file 'install.exe' from the 'Pc/Maxplus2/'
directory double clicking on it from an explorer window. If you have the CDROM, execute
'PC/Maxplus2/install.exe' directly from the CDROM.
Installing the Patch
After installation, you will also need to download the patch. You can RIGHT CLICK HERE to
save it to disk; be sure to save it to the SAME directory as where you installed Maxplus2
(i.e, c:\maxplus2). Once you have saved this file, use a DOS window to execute it with the
command "univers.exe -o". You can also get this patch from the WWW page referenced to
during the installation process.
First Time execution
When you run maxplus2 for the first time, a license agreement will pop up in a small window.
You MUST click inside of this window, and use the 'PG DN' key to page all the way down to
the bottom of the agreement. At this point, you should be able to click on the "Yes" button
to accept the license agreement. A window will also pop up with the software guard ID (will
look like S0002XXXXX). You will need to go to THIS PAGE , enter the software guard, and fill
out the form. Your authorization code will be emailed back to you very quickly; you can copy
this authorization code into the appropriate window in the Maxplus2 software (will be displayed
when you startup Maxplus2). After you enter the authorization code, the software should work
ok. Save YOUR authorization email message from Altera somewhere safe!!! If you have
installation problems, I would like to see this message FIRST before I help you.
If you used the 'maxplus2.zip' file, after installation you can delete the 'Pc/...' directory
tree that was created after unzipping.
Altera Maxplus Professional Edition Software
Once you install the software, the first time you execute it you will see message about a
missing or corrupted license file. Use the Options -> License file menu choice to set the path
to the license file server. Use that path given in class. WARNING -- Maxplus2 will take
about 3-4 minutes to start because it has to download licenses.
Labs
- Lab 1 (Microsoft Word document)
Lab 1 (HTML)
- Lab 2 (HTML): Intro to VHDL - Saturating Adder (print this lab out in landscape mode)
- Lab 3 (HTML): Intro to Altera LPMs
- Lab 4 (HTML): Blend Equation
- Lab 5 (HTML): Timing
- Lab 6 (HTML): Pipelining
- Lab 7 (HTML): FSMs (Matrix Multiply)
- Lab 8 (HTML): Matrix Multiply Revisited
- Class Project
Homeworks
- Homework #1 (HTML)
Homework #1 (Microsoft Word)
- Homework #2 (HTML)
Homework #2 (Microsoft Word)
- Homework #3 (HTML)
Homework #3 (Microsoft Word)
Any files referenced in the labs can be directly copied or ftp'ed from "~reese/EE4743/labs/"
on leto.ece.msstate.edu. Some students have had trouble accessing these from the HTML
hyperlinks.
Lecture Supplements
- Fixed Point arithmetic, Saturating adders
- FPGA Families Summaries.
You should also look at the data sheets.
- Test #1 Review (HTML)
Test #1 (Microsoft Word)
- FPGA Timing Models
You should also look at the data sheets.
- Introduction to Pipelining
- Altera Timing Model Details
- Postscript file for FIR filter FSM example
- Datapath Design, Part I
- Datapath Design, Part II
- RAM Zeroing Operation Example, zip file, Implementation 1. This is an implementation of
the example given in the Datapath design notes, Part I. This implementation uses mostly
LPMs.
- RAM Zeroing Operation Example, zip file, Implementation 2. This is an implementation of
the example given in the Datapath design notes, Part I. This implementation uses mostly
VHDL.
- RAM Zeroing Operation Example, zip file, Implementation 3. This is an implementation of
the example given in the Datapath design notes, Part I. This illustrates the use of
structural VHDL to replace the top-level schematic of the second implementation. Uses
two VHDL files.
- RAM Zeroing Operation Example, zip file, Implementation 4. . This is an implementation of
the example given in the Datapath design notes, Part I. This illustrates simply declaring
the RAM component instantiation into the same VHDL file that contains the FSM code and
other datapath components. This shows that you can mix component instantiations in with
RTL code.
- Test #2 Review (HTML)
Test #2 (Microsoft Word)
Topic Coverage by Week
- Week 1: Intro to Maxplus2
- Week 2: VHDL Combinational Logic Introduction
- Week 3: Saturating arithmetic, begin talking about Implementation technologies (Full
Custom, Standard Cells, Gate Arrays, FPGAs, CPLDs, PLDs).
- Week 4: FPGA Families
- Week 5: FPGA Families, Timing, Test #1
- Week 6: FPGA Timing Models, start VHDL for Sequential Logic
- Week 7: FSMs in VHDL
- Week 8: FSM/Datapath Design in VHDL
Data Sheets
Sample Tests
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.
Maxplus Oddities, Error Messages
This is a list of oddities/errata/weird_stuff that you need to be aware of when using the
Maxplus software:
- .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.
- If you get an error message about 'tri-state outputs' during compilation, this means
that you have two outputs tied together (probably have mistakenly named two busses
the same name ).
- 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.