Back to Courses

CSCE 611 - High-level VLSI Systems Design

Course Lecture Notes & Resources

We will use several graphical formalisms to capture and analyze the information about the domain problems:  we will first use the Unified Modeling Language (UML) as the basis for capturing, analyzing, abstracting and scoping the set of functionality that will become part of our system under development.  UML has a number of different representation techniques that we will use for this endeavor.  Although UML is important as a specification and architecting method, we'll use it mostly in class (i.e., we may not have time to use Rational Rose tools to create UML models for our applications).  Next, we will begin the transformation of this specification (with its inherent set of engineering assumptions and constraints) into a register-level architecture.  We will use the Algorithmic State Machine (ASM) notation for this purpose--as is presented in the Fletcher text.  We'll use blockHDL and flowHDL tools for the purpose of creating block diagrams and state machine diagrams of out VLSI design models.

Register-transfer level design consists of the partitioning of the functionality into manageable blocks, according to one of a number of partitioning strategies (functional-based, object-based, pipelined, etc.) that provide an effective organization of the system functionality so as to achieve engineering design objectives.  Such design objectives may be expressed in terms of performance (design speed, design size), reliability (built-in test, logic redundancy) or other metrics.  We will take these design artifacts and synthesize circuits from them, and evaluate their performance by trading off the various design objectives and constraints.

We will next use logic synthesis tools to create models of our design models that are mapped into a target technology. We'll use Synopsys' set of Design Compiler and Design Analyzer tools for this purpose.  If time permits, we'll use Xilinx Place and Route software for doing layout of our design into an actual FPGA device.

I'll list each Lecture, including topic, planned date of coverage, and post any lecture materials when they are available.  I'll try and plan far enough out for you know what's going on; although I may not have links to materials until they are completed.  Some of the planned stuff may change, based on whether I decide to use material out of the text and pontificate directly to the blackboard.  So, you should plan on keeping a course notebook, labeling each lecture's entry by date, organized chronologically, in order to have notes that will be useful in studying for exams.

Lecture Date Topics Lecture Materials
1 8/23/02 (F) Introduction: VLSI Design & Wireless Communications Lectures 1 Notes (PDF)
2 8/26/02 (M) Overview of VLSI Design: Methods, Processes, Notation

Blackboard Notes; Fletcher Ch1: §1.3 (pp. 8-9), Ch2: §2.3-2.6 (pp. 62-76), 2.10-2.13 (pp. 83-97), 2.16 (pp. 100-103), 2.19 (pp. 118-121).

3 8/28/02 (W) Combinational Logic Design: Representation, Minimization

Blackboard Notes;   Fletcher Ch3: §3.3-3.12 (pp. 134-157), 3.16 (pp. 167-174).

4 8/30/02 (F) Combinational Logic Design: Device Taxonomy Fletcher Ch4: Lecture 4 Notes (PDF)
--- 9/2/02 (M) No Class (Labor Day) ---
5 9/4/02 (W) Combinational Logic Design: Arithmetic Devices Fletcher Ch4: §4.10-15 (pp. 251-265); Lecture 5 Notes (PDF).
6 9/6/02 (F) Combinational Logic Design: Logical & Steering Devices Fletcher Ch4: §4.15 (pp. 261-265), §5.1-5.4 (pp. 275-282), 5.7-5.9 (pp. 290-295); Lecture 6&7 Notes (PDF).
7 9/9/02 (M) Sequential Design: Finite State Machines Work problems in Fletcher, Ch4: 4.2 (p.266), and 4.27 set-up (pg. 271). Fletcher Ch5: §5.5-5.6 (pp.283-288), §5.10 (pp. 295-297.  Lecture 6&7 Notes (I posted these this weekend, on 9/8/02, so print them for class).
--- 9/11/02 (W) No Class (I'm attending a conference) ---
8 9/13/02 (F) Sequential Design: Finite State Machines Fletcher Ch5: §5.11 (pp. 297-301), §5.14 (pp. 304-305), §5.20-5.21 (pp. 323-325). Additional Lecture 8&9 Notes (PDF).
9 9/16/02 (M) Sequential Design: Sequential Design Fletcher Ch5: Lecture 8&9 Notes (continued).  Also work problems from Chapter 4, as appropriate.
10 9/18/02 (W) Sequential Design: State Machines (redux) Fletcher Ch6: §6.1, 6.2; Lecture 8&9 Notes (continued).   Lecture 10 Notes (PDF).
11 9/20/02 (F) Sequential Design: ASM Charts Lecture 8&9 Notes (continued).
12 9/23/02 (M) Sequential Design: ASM Charts (continued) Fletcher Ch6: Lecture 11 Notes (PDF).
13 9/25/02 (W) Sequential Design: ASM Charts (continued) Fletcher Ch5:  Detailed discussion of homework problems.            Problem 5.3 (pg. 329) and 5.6 (pg. 331).
14 9/27/02 (F) Sequential Design: ASM Charts (continued) Lecture 11 Notes (continued).
15 9/30/02 (M) Sequential Design: ASM Charts (continued) Fletcher Ch6: §6.1, 6.2, 6.3 (pp. 335-340), 6.5, 6.6 (design methods, pp. 353-364); Lecture 15 Notes (PDF).
16 10/2/02 (W) Sequential Design: ASM Charts and Using ASM Charts vs. State diagrams to model sequential circuits. Fletcher Ch6: 6.4 (analysis methods) 6.12 through 6.24 (pp. 387-428). Topical coverage of the taxonomy of counter and shift register functions defined using FSM.  Lecture 16 Notes (PDF).
17 10/4/02 (F) Using flowHDL (continued).  Constructing the UART example.  We meet in the 1D43 Lab (1st Floor).  Please don't forget!!  

Also, please print out the Lecture and Lab notes for class (no overhead in the Lab).

Hands on Lab - Using flowHDL (Lab 1D43).  Lecture 17 Notes (PDF): flowHDL. Also, you will need the Lecture 17-B (Lab) Notes (PDF).   NOTE, if you are in CSCE 491, both sets of these will be duplicate notes!!!  So, you won't need to print them again, except the first (Outline) and last (Examples) slides of Lecture 17.  Note: I will not cover these slides in detail during the lecture; I provide them as reference.  If you have more detailed questions after reviewing them, please let me know.  We'll discuss what is relevant for the Lab exercise on Friday.  See the information for Homework #6 on the Homework page.
18 10/7/02 (M) Sequential Design (continued). Fletcher Ch6: 6.12 through 6.24 (pp. 387- 428) continued.                Lecture 18 Notes (PDF) - Exam Review.
19 10/9/02 (W) Exam #1 - Closed Book/Closed Notes. EXAM #1: Covers Fletcher Chapters 2,3,4,5,6 (6.1-6.6)
20 10/11/02 (F) Introduction to Logic Synthesis.  Sequential Machine analysis and design methods. Lecture 20 Notes (PDF).  Fletcher Ch6: §6.8, 6.9, 6.11 (pp. 368-374, pp. 381-386).
--- 10/14/02 (M) Fall Break. No Classes. ---
21 10/16/02 (W) Sequential Design: Logic Synthesis of ASM Charts (continued). Fletcher Ch6: §6.12 - 6.15 (pp. 386-398).
22 10/18/02 (F) Sequential Design: ASM Charts (continued) Hands on Lab - Using flowHDL and Synopsys (Labs 1D41 & 1D43).
23 10/21/02 (M) Sequential Design: Logic Synthesis (redux) from the Lab, and discussion on Counters. Lecture 20 Notes (continued).  Fletcher Ch6: §6.16 (pp. 398-402).
24 10/23/02 (W) Sequential Design: Counters and Shift Registers.  The patterns for Counter and Shift Register objects will be discussed, and we'll do some examples of our analysis and design process for these sequential artifacts. Fletcher Ch6: §6.16 - 6.19 (pp. 398-415).  Notes on blackboard.
25 10/25/02 (F) Sequential Design: flowHDL and Logic Synthesis with Synopsys.  We'll work on the Ripple Counter and other design examples. Hands on Lab - Using flowHDL and Synopsys (Labs 1D41 & 1D43).    Lecture 24 Notes for Lab (PDF).
26 10/28/02 (M) Controller Design - System control philosophy, methods, and notation (redux).  Design sequence, mapping between register-level control model and the gate-level circuit realization of the state machine. Fletcher Ch7: §7.1 - 7.7 (pp. 440-456).  Blackboard notes and examples.
27 10/30/02 (W) Problem Examples (Homework problems). Fletcher Ch7: §7.1 - 7.7 (pp. 440-456) continued.  Problem 6-44 in detail.
28 11/01/02 (F) Design Debug and Verification using flowHDL Cycle-based Simulation. Hands on Lab - Using flowHDL and Synopsys (Labs 1D4).             Continuing the various Counter examples.
29 11/04/02 (M) Integrated Control and datapath applications.  Register-level systems controller design and system components (processor, memory, ALU) and design  "patterns" (handshaking, pipelining, arbitration). Lecture 28 Notes (PDF).
30 11/06/02 (W) Integrated Controller and datapath design example.  The Motorola 68000 CPU.  Discussion and assignment of Projects. Handouts in Class.  Supplemental Reading:  Carpinelli Chapter 6,      Oldfield and Dorf, Chapter 1.
31 11/08/02 (F) Memory modeling and creating memory arrays in flowHDL.  NEW 11/13/02: Notes from Lecture 31, get them here!

Lecture 31 Notes (PDF).  Also, design examples located in the flowHDL examples directory at  /usr/local/bin/flowHDL/examples.  These are the Memory_Controller and DRAM_FIFO_Controller examples.

32 11/11/02 (M) No Class (Sorry, I'm sick!!!!) Work on HW assignment and/or Projects!!!
33 11/13/02 (W) Design Projects.  Discussion of memory modeling in flowHDL (continued).  See Lecture 31 Notes.

Notes and Handouts.  NOTE: If you are having problems with Synopsys synthesis running out of memory, see my Tools page notes on Synopsys, link here.  Scroll down to the bottom of the page for the tip.

34 11/15/02 (F) Design Projects. Discussion on the MPEG Audio Decoder project (both teams should be on time). Meet in classroom (for MPEG project team members) Everyone else meet in Lab to discuss your projects.  Here's the files for the MPEG-1 Audio Layer 1 Specification (main document PDF and Annex A&B PDF) from the ISO/IEC 11172-3 Specification, dated 1993.  Also, here's the MPEG-1 Layer 1 Conformance Test data set, specification (PDF) and zipped TAR file (tar.gz) for your use.
35 11/18/02 (M) Design Projects. Discussion on the M68K CPU Design project. Meet in classroom (for 68K CPU project team members) Everyone else meet in Lab to discuss your projects.  The referenced chapters for this project are from I. S. Mackenzie, The 68000 Processor, (C) 1995, Prentice-Hall Publishers, Inc.  Chapters 2,3, Appendices A, C & D.
36 11/20/02 (W) Design Projects. Discussion on the 802.11 MAC Transmitter project. Meet in classroom (for 802.11 project team members) Everyone else meet in Lab to discuss your projects.   The specs for this project are provided here.  802.11 MAC Layer Transmitter Specification Part 1 (PDF), Part 2 (PDF), Part 3 (PDF).
37 11/22/02 (F) Design Projects.  Discussion on the Arithmetic Architecture projects: Adders, Multipliers, and Residue Arithmetic. Meet in classroom (for Arithmetic project team members) Everyone else meet in Lab to discuss your projects.  Primary references are as follows: (1) Adders: B. Parhami, Computer Arithmetic: Algorithms and Hardware Designs, (C) 2000, Oxford University Press, Chapters 5, 6, 7, & 8.  (2) Multipliers: B. Parhami, Computer Arithmetic: Algorithms and Hardware Designs, (C) 2000, Oxford University Press, Chapters 9, 10, 11, & 12.  (3) Residue Arithmetic: F. J. Taylor, "Residue Arithmetic: A Tutorial with Examples", IEEE Computer, May 1984, pp. 50-62.
38 11/25/02 (M) Exam #2 Review. Notes and Handouts.
-- 11/27/02 (W) Thanksgiving Holidays.  No Class.  (Work on projects!!!) ---
-- 11/29/02 (F) Thanksgiving Holidays.  No Class. ---
39 12/2/02 (M) Exam #2.

Exam Topics: ASM design and modeling.  The exam will be 4 problems, related to modeling and design.  Given some problem descriptions, I may ask for you to create a model, or I may give you a model and ask you to answer questions about it, draw a waveform of its output, etc.

40 12/4/02 (W) Project Presentations. Teams presenting: (1) MPEG Audio team #1 (VHDL), (2) MPEG Audio team #2 (flowHDL), (3) M68K CPU Design team. 
41 12/6/02 (F) Project Presentations.  NOTE: final date to turn in project deliverables. Teams presenting: (1) 802.11 MAC Transmitter team, (2) Arithmetic teams: Adders, Multipliers, Residue Arithmetic.

Back to Courses