CS 4272 - Hardware-Software Co-design


Announcements

  1. This course requires CS2271 and CS3212 as a pre-requisite.

  2. Lectures are Thursday 9 AM - 12 noon in Seminar Room 3B (COM1 Level 2).

  3. There will be no class on Thu 6 September. Instead a make-up lecture will be taken on Wed 12 Sep 10:30 AM at SR 3B (the classroom). The lecture on Thu 13 September will proceed as usual.

  4. The midterm will be on Thursday 11 Oct 9 AM. The exam is open-book.

Brief Description

Till recently embedded computing systems were designed by specifying and realizing 
hardware and software separately. This often leads to incompatibilities across the 
HW/SW boundary making system integration a very difficult task. The goal of co-design 
methodologies is to overcome these difficulties by using unified hardware-software 
representations and creating the means for exploring various ways of partitioning the
system into hardware and software components. This module will expose the fundamental 
issues in HW/SW co-designs by exploring topics such as: High level system descriptions, 
formal verification, system co-simulation, design partitioning, hardware synthesis, 
software synthesis, HW/SW interfaces and Co-design tools. 

Course Outline (Tentative)

      Week 1  :    Introduction  ® See chapter 1 of textbook

      Week 2  :    System Specification Notations ® See chapter 2.3, 2.7,2.8 and also here

      Week 3 :     State Charts  See chapter 2.3 and also here

      Week 4-5:   Scheduling Methods ® See Chapter 4.2

      Week 6:      System Partitioning  ® See Chapter 5.3 and also here

      Week 7:      Midterm (Open Book)

      Week 8:      Functionality Validation  ® See here (Sections 1,2,4 are sufficient)

      Week 9-10:  Timing Analysis and Validation

                         ®Survey article by Mitra/Roychoudhury in Compiler Design Handbook.

      Week 11:     Processor Platforms ® See 3.1 - 3.4

      Week 12:     Memory Hierarchies and Compiler support  ® See Chapter 5.4 and also here

      Week 13:     Hardware testing and validation ®  See Chapter 6

    

Materials

      Readings : Embedded System Design by Peter Marwedel.

                            Other readings will appear in the course-outline lecture by lecture.

      Lectures : Lecture notes will be posted regularly in this webpage.

 

                            ® Introduction  (1 lecture)

                            ® System Modeling (1 lecture)

                            ® Modeling using StateCharts  (2 lectures)

                            ® Scheduling  (2 lectures)

                            ® Hardware Software Partitioning (1 lecture)

                            Functionality Validation (1 lecture)

                            ® Timing Validation (2 lectures)

                            ® Hardware Platforms (1 lecture)

                            ® Compiler controlled Memories (1 lecture)

     

 

      Tools :   Rhapsody modeling environment (Assignment 1),

                      Jslice debugging tool (Assignment 2),

                      Chronos WCET Analyzer (Assignment 3).

                     

      

 

 Hands-on Assignments

 

           Assignment 1: Use Rhapsody for Modeling ( Assignment, Explanation slides, Rhapsody notes) - 10 %

           Assignment 2: Use JSlice for Debugging  ( Assignment, Explanation slides  )- 10%

           Assignment 3: Use Chronos for Cache-aware Scheduling  -- (Assignment  , Benchmarks ) - 10%

Assessment

Midterm       :   25 %

Final :              45 %

Assignments :  30 %

Other Course Information

Pre-requisites :    CS 2271 and CS 3212
Instructor:            Abhik Roychoudhury    Office : COM1 #03-20
Lectures:             Thursday 9:00 AM - 12:00 noon at Seminar Room 3B (COM1 Level 2)

Consultation :      Thursday 2:00 - 4:00 PM in my office COM1 #03-20