CDROM

ECE 4514: Digital Design II

This is the course outline for the Spring 2008 version of Digital Design II.

Instructor: Patrick Schaumont
Venue: TR 11:00AM-12:15PM, Durham Hall 261

Syllabus

Lecture 1 Introduction [Slides]
  • Overview
  • Motivation for the use of Hardware Description Languages
Lecture 2 Hierarchical Design [Slides]
  • Structural and Behavioral Modeling
  • Top-down and Bottom-up Design
  • 4-bit counter example and simulation in Modelsim
Lecture 3 Verilog Bread and Butter [Slides]
  • Verilog for Synthesis and Simulation
  • Verilog Module Structure: Port List, Behavioral/Dataflow/Structural constructs
  • Verilog Data Types, Values and Constants
Lecture 4 Gate Level Modeling [Slides]
  • Structural Modeling with gate-level primitives
  • Delay modeling at gate level
  • Examples: Bit and Byte Comparator, Latches and Flip Flops
Lecture 5 How the Verilog Simulator Works [Slides]
  • Structure and operation of an event-driven simulator
  • Simulation of gate networks with an event-driven simulator
  • Simulation of behavioral code with an event-driven simulator
Lecture 6 Random Number Generators [Slides]
  • True RNG and Pseudo RNG
  • Fibonacci and Galois LFSR
  • Flaws in RNG: bias, predictability
  • Non-linear combination generators
Lecture 7 Dataflow Modeling [Slides]
  • Use of assign statement, formation of operands using bit-select and part-select
  • Delay in dataflow assignment
  • Verilog operators, expressions, precision in expressions
Lecture 8 Multiplexed Datapaths [Slides]
  • Multiplexed datapaths can be made using registers and assign statements
  • Rules: use single-clock, use edge-triggered flipflops, use register-at-the-output
  • Through multiplexed datapaths, we can trade-off area and time for different solutions
  • Finite State Machines can be modeled using the same approach
Lecture 9 System Commands and Testbenches [Slides]
  • System commands for display and file I/O
  • VCD Files, format and usage
Lecture 10 Behavioral Modeling: Non-blocking Assignments [Slides]
  • Non-blocking assignments split RHS evaluation from LHS assignment
  • Used to model registers in always blocks
  • VCD Files
Lecture 11 Design of a SHA-1 Module in Verilog [Slides]
  • SHA-1 = Secure Hashing Algorithm
  • Illustration of non-blocking assignment (<=) and register-transfer level design
Lecture 12 Behavioral Modeling/ Conditionals and Loops [Slides]
  • Elements of Behavioral Modeling
    • if-the-else, case
    • loops
    • parallel block, named block
  • Generate statement
Lecture 13 Logic Synthesis [Slides]
  • Hardware Inference: The rules that govern Verilog to hardware translation
  • How to capture combinational logic in an always block
  • How to capture registers in an always block
  • How to recognize warnings and errors from the tools when you synthesize your design
Lecture 14 Spartan 3ES500 FPGA [Slides]
  • Implementation details of FPGA: CLB's and the interconnection network
  • Analysis of data sheet table, tool diagnostic output
Lecture 15 FSM-based Control [Slides]
  • Verilog mapping for synthesizable FSM
  • State encoding using synthesis tools
  • Synthesis issues: default state assignment, safe FSM, RAM-based FSM
  • FSM-based control of datapath
Lecture 16 Synthesis of Memories in FPGA [Slides]
  • Design flow for Memory Elements
    • Inference and instantiation
    • Integrated synthesis and simulation
  • Memory Elements
    • Register Files
    • Memory Arrays: SRAM and DRAM
    • Operation of SRAM and DRAM
    • SRAM in Spartan 3E FPGA
Lecture 17 Hardware Division [Slides]
  • Division as an 'inverted' multiplication
  • Division one digit at-a-time: digit-recurrence
  • The restoring divider algorithm
  • The non-restoring divider algorithm
  • Designing an architecture for a non-restoring divider
Lecture 18 Optimizing Area [Slides]
  • Area and Performance Constraints in digital design
  • Area-Delay product and 'optimal' design
  • Area optimization using resource sharing
  • Hardware sharing factor
  • Example: unshared multiplier, shared multiplier, multiplication with a constant
Lecture 19 Optimizing Performance [Slides]
  • Performance factors of a digital design
  • Latency and Throughput
  • Delay = Clock Period * Cycle Count
  • What determines the minimum clock period?
  • Performance Optimizations you can do in Verilog
    • Parallel Computations
    • Pipelining
    • Retiming
  • Summary Optimizing Area & Performance
Lecture 20 Static Timing Analysis [Slides]
  • Static and Dynamic Timing Analysis
  • Static Timing Analysis
    • Delay Model
    • Path Delay
    • False Paths
    • Timing Constraints
    • FPGA Design Flow & STA: Sorter Example
  • Dynamic Timing Analysis
    • FPGA Design Flow & Timed Simulation
    • Delay back-annotation with SDF files
  • Demonstration
Lecture 21 Functions and Tasks [Slides]
  • Functions and Tasks
  • Functions and Tasks enable shorthand notations within always and initial blocks
  • Functions are single-output, and do not support event control
  • Tasks may have more then a single output, and may have event-control statements
  • In practice, only functions are used in synthesis
Lecture 22 Design Economics [Slides]
  • Wows and Woes of scaling
    • The case of the Microprocessor
    • How efficient does a microprocessor use transistors ?
  • Alternative Technologies: FPGA, ASIC, Full Custom
    • Energy Efficiency and Design Cost

Valid HTML 4.0 Transitional