CSCE 611 - High-level Digital Systems Design
Homework & Lab Assignments
I will attempt to lay out the assignments far enough in advance that you can plan the workload accordingly. I will post assignments on a certain date, with a given due date. Assignments should be completed either on computer or they can be handwritten (but neatly!), when we are doing problems out of the text. For the assignments using the tools, you will be required to provide computer output, with both hardcopy and electronic submissions.
NOTE: As defined by the University policy, in courses where we have both undergraduate and graduate students, I must define two levels of assignments. The undergraduate students in this course will have a lighter workload (as USC expects graduate students to work harder, and have the capacity to do more work, than undergraduate students.) So, each assignment will list those problems that the undergrad students can omit (and you know who you are!). I'll expect the graduate students to turn in the full assignments.
NOTE: Assignments are due in class on the due date, so be prepared. Get stuff printed out before coming to class.
NOTE: For the most part, the assignments in this class will be conducted labs, scheduled for Fridays during the regularly scheduled class period. The lab results must be demonstrated to the Lab Instructor, so you are best served by working the lab during the time allotted in class. We will likely need to schedule an alternate time for completion of the labs so that if you can't finish, or for some valid reason, miss the Lab session, you will be able to make it up. Lab results are due the day of assignment, or due on the day of a Lab makeup (to be determined--so keep watch here!)
| Homework | Assign Date | Due Date | Assignment |
| 1 | Mon 1/12/04 | Wed 1/21/04 | Reading: Lee, Chapter 1 (pp.
3-42).
Problems: Lee, Chapter 1, problems #5, 7, 15, 19, 33, 35, 36 (pp. 44-45). The reading provides you background and the problems provide you with practical experience in some of the basic reasoning techniques about Boolean expressions and their realization in terms of standard logic gates. These techniques will be part of our analysis of algorithms to find the most optimal mapping to a digital systems architecture. The ability to write algorithmic operations in terms of efficient Boolean expressions is key to good hardware architecture design. |
| 2 | Wed 1/21/04 | Wed 1/28/04 |
Reading: Lee, Chapter 2; Arnold, Chapter 2. (Handouts). Problems: Lee, Chapter 2, problems #6, 13, 16, 21. Note: graduate students must also work Problem #19. pp 75-76. 1/28/04 Note: Given that we missed class on Monday--and so we were not able to discuss questions on the homework problems--I am giving those that need an extra day to complete the assignment until Friday class to turn it in. Since we spent class today discussing questions on the homework, I'll give you this time to complete working the homework problems and get it turned in. My primary interest is in your mastery of the concepts being presented. I can cut you *some* slack on due dates, but don't expect me to do it for every assignment. Those that do get the homework in on time will gain points (until I start taking off points for late homework, which will start for Homework assignment #3, to be posted before Friday.) |
| 3 | Fri 1/30/04 | Wed 2/4/04 | Design Capture lab: Given
the UART model handout posted on the Lectures
Page (labeled as Lab/Lecture 17-B), you are to enter this design using
Nimbus(TM), using the signal declarations and the ASM threads (4 of them)
as the guide. Since Nimbus differs slightly from flowHDL, everyone
has to learn the interface and difference in the ASM notation supported in
Nimbus.
Deliverables: (1) ASM thread sheets, (2) Bus Table listing (if Nimbus prints it), and (3) Your name and the course and assignment number, posted in the Design Information fields, which are accessible in Nimbus. |
| 4 | Fri 2/6/04 | Wed 2/11/04 | Design Synthesis Lab: We
start working with logic synthesis tools, taking the VHDL output from Nimbus®,
and synthesizing a circuit for a Xilinx® FPGA. Given the
UART model you created for Assignment #3, you will take this model and
follow the Laboratory #4 Script (HTML) attached to this link, and perform
the tasks during this lab. We will be using the Synopsys®
FC-2 (FPGA Compiler II) tool set.
Deliverables: (1) Circuit schematic, (2) Output report, stabled together. Note: Get this printed out *before* class; do not miss my class because you are waiting for the printer at the last minute....please. |
| 5 | Fri 2/6/04 | Mon 2/16/04 | Design Lab: Modulo-N
Counter application: Given the counter discussed in Lecture
11 Notes (PDF), create the 3 design models as ASM threads.
Create 3 different design files. You will synthesize each of the 3
design architectures using FC2®, you will run the reports after
synthesizing the circuits, and you will compare the timing and area for
each of the three options, showing the three worst-case timing values, and
the areas for each. Show these in a table.
NOTE 2/11/04: I have now posted the Report Cover template, with design parameter values and effort statistics. Use this Lab/Project Cover Sheet (MS-Word), and either fill it in using Microsoft Word, or use the PDF version and write the values neatly before handing in. Please fill in all time effort distribution data for your time on each activity in the appropriate blanks on the form, and please try to track it for each design iteration. Deliverables: (1) ASM diagrams and Bus Tables (labeled as "architectures 1 - 3"), (2) circuit schematics for each architecture, (3) reports for each design synthesis run, and (4) completed Lab Project Cover sheet. NOTE 2/11/04: I have moved the due date of this assignment out until next Monday (2/16), because I want you to have more time to work with the Nimbus simulator and to do the required verification test planning using the worksheet. See Lecture 15 Notes for guidance, using the Binary Up/Down counter example, which is not too far off from this Mod-N counter problem. |
| 6 | Wed 2/11/04 | Fri 2/13/04 | NOTE 2/9/04: Please identify someone else to be a project partner, fill out this Template (PDF) form, and return to me on class Wednesday or, latest, by Friday. Project assignments will be made soon. |
| 7 | Wed 2/11/04 | Fri 2/20/04 | Design Testing and Simulation
lab: Given the Modulo-N Counter model you created as part of
Assignment #5, you are to define 4 test
cases against which you will test each of the two Mod-N counter models. You will use the Test
Case Planning Worksheet (PDF) or Test
Case Planning Worksheet (MS-Word) that you download from here, define
your cases, run the Nimbus® simulator to see the results of the simulation,
then turn in the completed Test Case form and the waveform subset for each of
the test case that validates the test case. Note: we are looking to
see that (1) the two Mod-N ripple counters function exactly the
same, and (2) whether the cycle timing is the same.
NOTE 2/11/04 (late): I changed this date earlier in class, as I thought it was incorrect on the web page. However, given that I said in class today that the assignment #7 was due on Monday, which is really assignment #5, I am leaving this due date until Friday 2/21 instead, for those who need more time in learning to use the Nimbus simulator. Make your best effort to get it done, and see me if you are having difficulties. Also, don't forget to turn in your completed Lab/Project Report Cover sheet (Word or PDF version). This will include data for the Effort Distribution only, as you will have already turned in the Report Cover with the design parameters with assignment #5. Deliverables: (1) completed Test Planning Worksheet, and (2) subset of Waveforms, or screen dumps of wave display window, showing the results of your test case. You are to annotate the waveform diagrams to indicate where the test shows correct data (use a pen or magic marker and make an appropriate note on the figure). You can use the Sun® window's Snapshot tool to take a snapshot of the waveform, then import it into MS-Paint on the PC, and type onto the diagram--this yields a neater result. (3) Describe any differences in the timing between the two Mod-N counter models; what accounts for any differences you notice? (4) Lab Report cover sheet. Note: Please select the waveform output, and don't turn in reams of paper with undocumented waveform output. I will take off points for this. Carefully select what parts of the wave display you want. You can reformat the waveform output so that it is reduced on a sheet of paper. Also you can snapshot a wave display window as a TIF file, then paste it into the Paint program. |
| 8 | Wed 2/19/04 | Wed 2/25/04 | Problems: Lee Chapter 4,
#s 10, 16. These are ASM design problems posed by the text
author. However, we will not be using his manual design methodology,
as we will implement these designs using Nimbus. You are to create
one model for each problem, define 4 test cases for each, and run
simulations to verify the design.
Deliverables: (1) Lab/Project Report Cover sheet (Word or PDF version), with only the Effort distribution times filled in (since we are not synthesizing for this assignment), (2) Nimbus design sheets and Bus Table, (3) filled-in Test Case Planning Worksheet (PDF) showing clearly your results, and (4) waveforms showing the key results of each test run for each of the design problems. Use a separate cover page for each problem, and track the time spent on each problem separately. |
| 9 | Fri 3/19/04 | Fri 3/19/04 | Updated 3/23/04! This lab
assignment consisted of (1) exporting an EDIF (.edf) netlist from your
counter project in Synopsys, (2) creating a new project in the Xilinx
ISE(R) v5.0 Layout tools (located on the PCs in lab 1D15), (3) running the
place and route to generate a place and route (PAR) report for your
design, based on selection of the Xilinx Virtex-II part we targeted when
we used the Synopsys tools to synthesize a circuit, and (4) turning in the
PAR report generated from the place and route run of your Modulo counter
design. This is what is to be turned in for assignment #9; if you
were absent or did not get your design placed and routed onto the Virtex-II
FPGA, then you'll need to see me about making this work up. We did
this instead of the UART, as this is a project topic.
Design Lab: Here, we will make some functional enhancements to the UART. This set of enhancements are to be posted here. Deliverables (updated 2/11/04): Test Case Planning Worksheet (PDF), ASM Diagrams and Bus Table, Simulation Waveforms, Synthesis Report & Schematic, and Lab Report cover sheet PDF version (with all data filled out according to our procedure). You are to annotate the waveform diagrams to indicate where the test shows correct data (as before). |
| --- | Mon 3/15/04 | Sat 5/1/04 | Projects: (1) 802.11
MAC Transmitter Block: this is a project choice for teams of
two who have completed CSCE 491 and who worked on the MAC Receiver.
The specifications for the Transmitter are posted here: 802.11
MAC Transmitter (PDF). (2) Extended UART: This project
choice is open to undergraduate students who have not taken CSCE
491. The specification for the UART design is posted here: Intel
8251 UART (PDF). (3) Arithmetic/algorithmic circuits:
Graduate students will select one of a set of algorithm problems for which
we want to devise efficient architectures in VLSI custom logic.
These specs will either be published here or handed out in class: Arithmetic
Algorithm Designs (PDF). (4) Some advanced undergraduates who have had
CSCE 491 and don't want to do 802.11, can elect to take on the MPEG audio
design. MPEG
Audio Layer 1 Spec (PDF). This can be done as either the MPEG-1
stream encoder or decoder units.
Projects 3/30/04 New! Here is more information on project assignments: Updated Project Assignments Roster document (PDF). I have updated since its original release a week ago. Please see me if you have questions about your project. 4/30/04 New! I have updated the Project Assignments Roster to reflect the two modifications to project assignments for the Team 6 (Deas/Brown) and Team 17 (Huang/Squarize) teams, as we discussed last week. Updated Project Assignments Roster document (PDF). Team 17 should make sure you've got a copy of the handout on Ascending Sort (PDF). For the Graduate students, I'm reposting the specification handouts here, in case you need another copy: (1) Ascending Sort Algorithm (PDF), (2) Data Transposition Algorithm (PDF), (3) Multiple Precision Arithmetic (PDF), and (4) Reed-Solomon LFSR Coding algorithm (PDF). Each graduate student working on one of the Sorting architectures should follow the general specification provided in the Ascending Sort algorithm document. I've given you more detailed instructions regarding your assigned sorting algorithm in the Project Assignments Roster document (PDF). |
| 10 | Wed 3/31/04 | Mon 4/5/04 | First project Milestone due:
Your team is to submit a set of block diagrams showing the decomposition
of your project into a set of design units. These units may
represent individual ASM threads that are to be written, or they may
represent computational units in the datapath of some computation.
This block-oriented decomposition may be multiple levels deep. Use
the example I have posted on the Lectures page for Lecture 31: Project
Architecture Template (PDF), as a guide. You can draw this using
blockHDL on the Suns,
or using Visio on the PC, or with some other tool. I expect this to
be a reasoned and well-thought out portrayal of your design, consistent
with what the author has shown us in similar designs presented in the
text. Label your inputs and outputs clearly, indicating
bit-width and direction. As I stated in class, you can start out
with a basic architecture structure that is a basic 32-bit width, from
which you'll elaborate your designs in a later pass, once you have the
functionality for this bit-width done. NOTE: if you choose to model
your architecture using UML class diagrams and sequence diagrams, through
the use of Rational Rose®,
this is acceptable as well; just label things clearly and provide
descriptive text, where appropriate. NOTE: You will
submit the Project
Cover Sheet (the cover sheet we have been using for assignments) with
these pages, indicating your time spent on this activity for each team
member. Label this time in the System Definition and
Partitioning box (one entry for each team member).
The deliverables are: (1) Description of your design application, in your own words, which should indicate any assumptions you are making about the project implementation (this should be done in MS-Word, and you can start by using this Project Report Template that is used in CSCE 612, just change it to CSCE 611, which you will add to as we progress through the milestones), (2) Block diagram and/or UML Sequence diagram printouts of the partitioned architecture and its decomposition into sub-units, showing signal interfaces for each component, direction of data movement, etc. (if you want, you can include these diagrams in your Word file, (3) Project Cover sheet with activity time estimates. |
| 11 | Wed 3/31/04 | Mon 4/12/04 | Second project Milestone due:
Your team is to submit a set of ASM threads created in Nimbus for your
initial pass of the design artifacts. You should have made a single
design pass through each of the architecture choices (if you have more
than one to do), or you should have some functionality for each of your
threads defined (although some projects with detailed concurrent
processing may have some of the details omitted in the first pass).
You should also have defined your test data.
The deliverables are: (1) printout of the .nim file containing your ASM model of your architectures, including all thread sheets, and Bus Table, (2) Test Planning worksheet (PDF or MS-Word version) for your basic level of testing for these initial models, and (3) Project Cover Sheet (PDF or MS-Word version), with time indicated for Graphical Entry and Simulation line items for time estimation. |
| 12 | Wed 3/31/04 | Mon 4/19/04 | Third project Milestone due:
Your team is to submit a revised set of ASM threads created in Nimbus for
your 2nd pass of the design artifacts. This may include designs for
different bit-widths (if this is part of your project specification), or
it may include more refined, more detailed treatment of the functionality
of your blocks (if you submitted abstract ASM descriptions in the last
submission). This submission should also contain some ASM
description for the components of your Test Driver block (refer to
the Project Architecture
Template). This submission should also include test results from
your design, including the initial set of test cases you provided in the
previous submission. You should submit portions of waveform output
from the Nimbus simulator to show the results. You should have
sufficient test coverage to demonstrate that your design is functioning
correctly, given the specification.
The deliverables are: (1) ASM model and Bus Table printouts; (2) the waveform printouts (don't dump a bunch of pages; only provide those that show correctness per your tests), (3) updated Test Planning worksheets (you will obviously be using more than one sheet for this phase), and (4) Project Cover Sheet, indicating times in this phase for Graphical Entry and Simulation activities. (Please be accurate in your accounting of time, thanks.) |
| 13 | Wed 3/31/04 | Mon 4/26/04 | Fourth project Milestone due:
Your team will make submissions of synthesized and placed & routed
design passes. If you have multiple candidate architectures, you
will submit the data for these passes, showing the differences between
them, as posted on your Project Cover sheet (for Estimated Area, Worst
Case Delay and Max Clock Frequency). If you have made design
changes, submit your ASM models, if you have corrected problems, submit
simulation data as well. You don't need to submit any output from
Synopsys, unless the schematic shows something you believe is important to
your design choices.
The deliverables are: (1) any revised model printouts, (2) any additional simulation waveforms, (3) Xilinx PAR reports for each design run carried through logic synthesis and place and route, (4) data appropriately indicated on the Project Cover sheet (also with Logic Synthesis time spent, and Layout time spent). |
| 14 | Wed 3/31/04 | Sat 5/1/04 | Final project report due: Your team will submit the final report, using the Report Template. The Project Cover sheet should indicate the time for the remaining activities that have been required to complete the project. More details about this deliverable will be posted shortly. We will have an inspection and review of the project submissions, and each team will have some amount of time to present their work. This is what we will do in lieu of a final exam, and is part of the deal we have made. Check back here for more information as we get closer to this final date. |