EE 4743/6743 Digital System Design (Spring 2003)



Policy/Syllabus

  1. 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

  1. 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.

  1. Lab 0 (HTML): Maxplus Tutorial (first week of class)
  2. Lab 1 (PDF, updated Spring 2003)
  3. Lab 2 Signed/Unsigned Saturating Adder, Updated Spring '02 , lab2.zip - contains files needed for assignment , Lab 2 Post-lab Questions
  4. Lab 3 (HTML): Intro to Altera LPMs, Datapaths , Lab 3 Post-lab Questions
  5. Lab 4: Timing, Pipelining , files.zip - contains files needed for assignment , Post-Lab questions (answer these in your lab report)
  6. Lab 5: A FSM + Datapath Problem - Block Transfer Ram , files.zip - contains files needed for assignment
  7. Lab 6, Part #1: Bilinear Filtering Lab assignment , PDF file , bifilt_students.zip - Files needed for this assignment
  8. Lab 6, Part #2: Bilinear Filtering Lab assignment , PDF file , tb_bifiltp2_gold.zip - Files needed for this assignment
  9. 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).
  10. Lab 7: Parts #1, #2: Serial Data Transfer , ZIP archive with needed files
  11. 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

  1. Maxplus II overview , PDF file .
  2. Course introduction, Review of Combinational Logic , PDF file .
  3. Review of Sequential Systems , PDF file .
  4. Review of Finite State Machine/Datapath timing , PDF file .
  5. Combinational Logic in VHDL , PDF file .
  6. Fixed Point arithmetic, Saturating adders, Maxplus LPMs
    , PDF file
  7. System Timing Issues , PDF file
  8. Introduction to Pipelining , PDF file
  9. Implementation Technologies , PDF file
  10. FPGA Families , PDF file
  11. Intro to Sequential Systems in VHDL , PDF file
  12. Finite State Machines in VHDL , PDF file
  13. FSM + Datapath Design , PDF file
  14. Scheduling, Data Flowgraphs , PDF file
  15. Bilinear Filtering Lab assignment , PDF file
  16. Increasing the Initiation Rate of a datapath, scheduling , PDF file
  17. FPGA Timing Models , PDF file
  18. Altera Timing Models , PDF file
  19. Altera Stratix FPGA Features , PDF
  20. Cooperating Finite State Machines , PDF
  21. Structural VHDL , PDF
  22. Introduction to Design For Test , PDF
  23. A Brief Introduction to Verilog , PDF , Clifford E. Cummings Paper on Verilog Coding Styles, SNUG Best Paper Award (2000)
  24. Verilog RTL Example - Deserializer , PDF
  25. System-On-a-Chip. Xilinx Pro, Cypress Microsystems PSOC , PDF
  26. Some info about Video displays and the Ga Tech Video module , PDF

In-class Group Exercises on Datapath Scheduling, Spring 2003

  1. Group Assignment 1
  2. Group Assignment 2
  3. Group Assignment 3

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

Using the Altera UP1 Board

  1. 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.
  2. Connect power to your board, and the byteblaster cable to the parallel port and to your board.
  3. 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.
  4. 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.
  5. 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.
  6. 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:

  1. "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.

  2. "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.

  3. "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]).

  4. "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.

  5. "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).

  6. .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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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

  1. August 23rd: Mon, Wed: Comb Logic Review. Fri: Seq Logic Review
  2. Aug 30th: Mon: Maxplus Overview (Lab #1 discussion), Wed, Fri: VHDL Comb Logic, Fixed Point discussion
  3. Sep 6 : Mon: No class, holiday. Wed: Implementation Technlogy, Fri: Fixed Point discussions, Lab #2
  4. Sep 13: Mon:Implementation Tech (overview, no detailed FPGA discussion), Wed: Start System Timing Friday: System Timing, Talk about Lab #4
  5. Sep 20: Monday: Finish System Timing, start Pipelining, Wed: Finish Pipelining, Talk about Lab #5
  6. Sep 27: Monday: Sequential Systems with VHDL, Wed: Ram Zero Dpath example, Test #1 review, Friday: Test #1
  7. Oct 4: Monday: Test #1 Results, FSMs in VHDL, Wed: FSM timing, Implementations of Sync RAM with zeroing Capability
  8. Oct 10: Monday: Altera FPGA Architecture, Wed: Matrix Multiply Assignment, Xilinx/Actel FPGA architectures
  9. Oct 17: Monday: Finish Xilinx/Actel FPGA architectures, Low Voltage IO Families, Wed: DalSemi lecture by Chris Collins
  10. Oct 24: Monday: Discuss class project, Wed: Scheduling, Flowgraphs
  11. Nov 1: Monday: More on scheduling, Wed: Increasing Datapath initiation rate, UP1 Board demo
  12. Nov 8: Monday: Design for Test, Wed: Test #2
  13. Nov 15: Monday: Discussion of Test #2 results, Project speedup hints. Wed: Altera Video Module discussion
  14. Nov 22: Monday: Finished up Altera Video Module, discussed high level synthesis
  15. Nov 29: Review for Test 3, Wed: Test #3
  16. Dec 6: Mon Test #3 results, review for Final

Non-tech topics (Spring 2000)

  1. Sept 13: Difference between Architect, logic designer, circuit designer
  2. Sept 27: Privacy chips vs Law enforcement backdoors
  3. Oct 4: Avoiding Engineering obsolesence
  4. Oct 11: Microsoft a monopoly? Intel a monopoly?
  5. Oct 21: Interviewing, Technical Interviews (Chris Collins, DalSemi)
  6. Nov 3: Intellectual Property.
  7. Nov 8: Time to Market, Product development
  8. Nov 15: Y2K hysteria

Old lectures

  1. Maxplus II overview , PDF file .
  2. Course introduction, Review of Combinational Logic , PDF file .
  3. Review of Sequential Systems , PDF file .
  4. Combinational Logic in VHDL , PDF file .
  5. Fixed Point arithmetic, Saturating adders, Maxplus LPMs
    , PDF file .
  6. Implementation Technologies
  7. FPGA Families Summaries.
    You should also look at the data sheets.
  8. System Timing Issues , PDF file
  9. Introduction to Pipelining , PDF file
  10. FPGA Timing Models
    You should also look at the data sheets.
  11. Altera Timing Model Details
  12. Intro to Sequential Systems in VHDL , PDF file
  13. Finite State Machines in VHDL , PDF file
  14. FSM + Datapath Design , PDF file
  15. Scheduling, Data Flowgraphs , PDF file
  16. Increasing the Initiation Rate of a datapath, scheduling
  17. Introduction to Design For Test , PDF
  18. Spring '00 Project Hints
  19. Some info about Video displays and the Ga Tech Video module , PDF

Labs from previous semsters

  1. Lab 6 (HTML): Sequential VHDL
  2. Lab 7 (HTML): Finite State Machines -- Synchronous Ram with Block Transfer , (Additional discussion: (.ppt) , (.pdf) )
  3. Lab 8 (HTML): Maxtrix Multiply - Minimum Resource Implementation
  4. Project Spring '00: Maxtrix Multiply Revisited