Lecture 01 – Codesign

Ryan Robucci

• Spacebar to advance through slides in order
• Shift-Spacebar to go back
• Arrow keys for navigation

• ESC/O-Key to see slide overview
• ? to see help

Printable Version

Table of Contents

References

Hardware Software Codesign

Textbook Overview

†Schaumont

Representations of Digital Systems

  1. Schematic:

    ▶︎
    all
    running...
  2. HDL:

    module counter(rst, clk, q);   
      input              rst;
      output logic [7:0] q;
      input              clk;
    
      logic  [7:0]       c;
      
      always_comb begin
        q  = c+1;
      end
      
      always @ (posedge clk) begin: blk1
          c  <= rst ? 0 : q;
      end
    endmodule // test
    
  3. Timing Diagram:

    †Schaumont
  4. Truth Tables: Combinational and Sequential

Single-clock synchronous digital circuits

Cycle-based (RTL) Modeling

Sequential Software

Sequential vs Parallel vs Concurrent

Hardware and Software

The line between software and hardware is fuzzy

Hardware or Software

Hardware vs Software Systems Specialty

Advantages of hardware

Parallelism

Advantages of software

Hardware Software Codesign Space

†Schaumont

Example Hardware Software Platform

†Schaumont

Platform Flexibility and Efficiency

Application Mapping

Dualism of Hardware and Software Design and Platforms

Time Abstraction in Simulation

†Schaumont

Concurrency vs Parallelism

Application Example

†Schaumont

Here is the schedule:

Retask unused resources deduplicate computations

Maximal Speedup of an Application Governed by Amdahl’s Law

The maximal speedup is determined by the level of possible parallelism, but the complexity is in identifying what must be sequential vs. what can be parallelized, and how to parallelize. Algorithms may need to be reworked to leverage parallel computation.

A description can be found here: https://en.wikipedia.org/wiki/Amdahl's_law

Amdahl's Law

Digital Circuit Design Tradeoffs and Iron law of processor performance

In traditional computer architecture, computations are divided into instructions.

Computer Architecture Iron law of processor performance:

TimeProgram=InstructionsProgram×ClockCyclesInstruction×TimeClockCycles{\displaystyle{\frac {Time}{Program}} = {\frac {Instructions}{Program}}\times {\frac {ClockCycles}{Instruction}}\times {\frac {Time}{ClockCycles}}}