Chandan Karfa

CS 577: C-Based VLSI Design

Overll Course Feedback:

overal Feedback 

Feebback on Course Instructor:

Comments for Instructor 
Comments for Instructor 

Feebback on Course:

Comments on Course 
Announcements:
  • The class will start from 8th January 2020. The class will be conducted live using MS Teams. The schedule: Monday: 12PM-1PM, Tuesday: 12PM-1PM, Friday: 11AM-12PM.

  • It is mandetory to join the MS teams group CS577: C-Based VLSI Design_2021 to attend the course.

  • Welcome to CS 577 Course page

Instructors

  • Dr. Chandan Karfa

Cource Overview

  • High-level Synthesis (HLS) is the process of generating effecient hardware at register transfer level (RTL) from the input C-code (high-level code). HLS is an active domain of research in recent times in the domain of electronic Design Automation (EDA) of VLSI. This course will help the students to understand

    • the overall C to RTL synthesis flow,

    • how a C-code will be converted to its equivalent hardware,

    • how to write C-code for efficient hardware generation,

    • how the common software compiler optimizations can help to improve the circuit performance.

    • Hardware Acceleration of Machine Learning Algorithm

    • Secure Hardware generation using HLS

    • Equivalence checking between C and RTL.

    • The overall EDA tool flow.

  • This course will help the students to take up research in the domain of HLS. Also, this course will help the students to become proficient for EDA industries.

  • Pre-requisites: (1) Basic knowledge of digital circuits (2) Basic knowledge of Data structures and algorithms

Class Timing and Venue:

  • Slot F in timetable for Open Electives

  • Monday: 12PM-1PM, Tuesday: 12PM-1PM, Friday: 11AM-12PM

  • Venue: MS Teams

  • Mode of Lecture: Live session in the class hour. Weekly one live interaction session to clear doubts/discussions.

Teaching Assistants:

  • Debabrata Senapati - debab176101003@iitg.ac.in

  • Priyanka Panigrahi - priya176101006@iitg.ac.in

  • Jayprakash Patidar - jpatidar@iitg.ac.in

  • Rupak Gupta - rgupta@iitg.ac.in

  • Arshdeep Kaur - akaur@iitg.ac.in

  • Modammed Abderahman - ma.adem@iitg.ac.in

  • Melbin John - v.melbin@iitg.ac.in

Syllabus:

  • Electronic Design Automation flow: Overview of high-level synthesis, logic synthesis and physical synthesis;

  • High-level Synthesis (HLS) Fundamentals: Overview HLS flow, Scheduling Techniques, Resource sharing and Binding Techniques, Datapath and Controller Generation Techniques;

  • Impact of C-coding style on Hardware: Data types, Synthesis of Loops, Functions, RAM, ROM, Shift register inference from arrays;

  • Impact of Compiler Optimization in HLS results: Impact of Compiler optimizations like copy propagation, constant propagation, common sub-expression elimination, loop transformations, code motions, etc., in HLS results;

  • HLS for Security: RTL Locking, Logic Locking, Attack and Defense techniques;

  • RTL Optimizations Techniques: Various optimization techniques to improve latency, area and power in C-based VLSI designs;

  • High-level Synthesis Verification: BDD, Simulation based verification, Equivalence checking between C and RTL;

  • Hardware acceleration of Machine Learning Algorithms

  • Domain Specific High-level Synthesis

Text Book:

  • [Micheli] G. De Micheli. Synthesis and optimization of digital circuits, McGraw Hill, India Edition, 2003.

  • [Elliot] J. P. Elliot, Understanding Behavioural Synthesis: A Practical guide to High-level Synthesis, Springer, 2nd edition, 2000

  • [Kilts] Steve Kilts, Advanced FPGA Design, Wiley, 2007.

  • [Parhi] K. Parhi: VLSI Digital Signal Processing Systems: Design and Implementation, Jan 1999, Wiley.

  • [Huth] M. Huth and M. Ryan, Logic in Computer Science: Modelling and Reasoning about Systems, 2nd Ed, Cambridge University Press, 2004.

  • Various Research Papers.

References:

  • [Gajski] D. D. Gajski, N. D. Dutt, A.C.-H. Wu and S.Y.-L. Lin, High-Level Synthesis: Introduction to Chip and System Design, Springer, 1st edition, 1992

  • [BlueBook] Mike Fingeroff, High-Level Synthesis Blue Book, Mentor Graphics Corporation, 2010.

  • Ryan Kastner, Janarbek Matai, and Stephen Neuendorffer, Parallel Programming for FPGAs, 2018.

  • Philippe Coussy and Adam Morawiec, High-level Synthesis from Algorithm to Digital Circuit, Springer, 2008

  • David. C. Ku and G. De Micheli, High-level Syntehsis of ASICs Under Timing and Synchronization Constraints, Kluwer Academic Publishers, 1992.

  • T. F. Melham, Higher Order Logic and Hardware Verification, Cambridge University Press, 1993.

Grade Calculation

  • Examination: 60%. Four modules with an examination for each module. Each module has 15% weightage.

  • Project: 20%. A group of 4/5 students to be assigned to a project.

  • Class participation: 10%. There will be short pop quizzes during most lectures/dicsussion session to cover key topics discussed in the current or previous lecture. Your attendance in the class will also be monitored.

  • Student-led discussion: 10%. A group of 4/5 students to be assigned to a topic (The group will be same as project group). There will be a student-led presentation for each group on the assigned research topics.

Classes

Lecture No Date Topic Resources
1. 8th Jan 2021 Introduction to C-Based VLSI Design
2. 11th Jan 2021 C-Based VLSI Design: Working with an Example
3. 12th Jan 2021 C-Based VLSI Design: Working with an Example
4. 18th Jan 2021 Scheduling: Problem Formulation, ASAP, ALAP Micheli: Ch. 5
5. 19th Jan 2021 Scheduling: ILP Formulation of MLRC Micheli: Ch. 5
6. 22nd Jan 2021 Scheduling: ILP Formulation of MRLC Micheli: Ch. 5
7. 25th Jan 2021 Scheduling: Hu's Algorithm Micheli: Ch. 5
8. 29th Jan 2021 Scheduling: ILP Demo and List Scheduling-MLRC Micheli: Ch. 5
9. 29th Jan 2021 List Scheduling - MRLC Micheli: Ch. 5
10. 29th Jan 2021 Scheduling: Forced Directed Scheduling Micheli: Ch. 5
9th Feb 2021 Exam 1
11. 12th Feb 2021 Scheduling: Path based Scheduling
12. 15th Feb 2021 Scheduling: Path Based Scheduling Paper
13. 17th Feb 2021 Resource Sharing: Basic
14. 20th Feb 2021 Resource Sharing: Left-edge Algorithm
15. 22nd Feb 2021 VIVADO HLS Demo
16. 26th Feb 2021 Resource Sharing: ILP formulation for Binding Problem
17. 27th Feb 2021 Resource Sharing: Register Binding Problem
18. 1st March 2021 Verilog Basic
19. 2nd March 2021 FSM Modeling in Verilog
20. 3rd March 2021 Design with Verilog
21. 5th March 2021 Verifying a Verilog Design using testbench
22. 8th March 2021 HLS for Loops
23. 10th March 2021 HLS for Loops (Continue)
24. 15th March 2021 HLS for Arrays
25. 19th March 2021 HLS for Array Partitioning
26. 22nd March 2021 Hardware Efficient C Coding
27. 23rd March 2021 HLS for Array at Interface
28. 27th March 2021 Data path and Controller Synthesis in High-level Synthesis
29. 30th March 2021 Data path and Controller Optimizations
30. 4th April 2021 HLS for Security
31. 10th April 2021 HLS Obfuscation
32. 11th April 2021 Impact of Compiler Optimization on HLS
33. 12th April 2021 FPGA technology Mapping Youtube Link
34. 13th April 2021 Retiming Youtube Link
35. 12th April 2021 Introduction to Logic Synthesis Youtube Link
36. 13th April 2021 Introduction to Physical Synthesis Youtube Link

Examination Schedule

Exam No Date Topic Mode
1 9th Feb 2021 Till Lec 10 Online (Open Book) - MCQ,MSQ, Short Ans
2 12th March 2021 Lec 1-19 Online (Open Book) - MCQ,MSQ, Short Ans
3 5th April 2021 Lec 20-29 Online (Open Book) - MCQ,MSQ, Short Ans
4 21st April 2021 Lec 30 to 34 Online (Open Book) - MCQ,MSQ, Short Ans

Assignment Schedule

Exam No Date Topic Mode
1 25th March 2021 Project Evaluation Phase 1 online
2 11th April 2021 Final Project report Submission online
3 12th April 2021 Self-Study Presentation 1 (Grp 1-6) online
4 13th April 2021 Self-Study Presentation 2 (Grp 7-12) online
5 16th April 2021 Self-Study Presentation 3 (Grp 13-18) online