CS 577: C-Based VLSI Design

Announcements:
  • Welcome to CS 577 Course page

  • The Class will strat from 5th January 2023 (Friday) in 5G4

  • IMPORTANT: Any malpractice will lead to F grade without any explanation.

Instructor

  • 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

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

  • Venue: 5G4, Class Room Complex

  • Mode of Lecture: Live Class

Teaching Assistants:

  • Praveen Karmakar - pkarmakar@iitg.ac.in

  • Nilotpola Sarma - s.nilotpola@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

  • Class Participation/Quiz: 10%

  • MidSem: 25%

  • End Sem: 45%

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

Classes

Lecture No Date Topic Resources
1. 5th Jan 2024 Introduction to C-Based VLSI Design Class notes
2. 12th Jan 2024 basic concept of C to RTL Synthesis Class notes
3. 16th Jan 2024 C to RTL with example Class notes
4. 18th Jan 2024 Scheduling Problem Formulation Class notes
5. 19th Jan 2024 ILP Formulation of Scheduling Class notes, Micheli: Ch. 5
6. 23rd Jan 2024 Scheduling: ASAP, ALAP, ILP Example Class notes, Micheli: Ch. 5
7. 29th Jan 2024 Multiprocessor Scheduling Micheli: Ch. 5
8. 30th Jan 2024 Multiprocessor Scheduling: HUs’ Algorithm, List Scheduling-MLRC Class notes, Micheli: Ch. 5
9. 30th Jan 2024 (Makeup class) List Scheduling: MRLC lass notes, Micheli: Ch. 5
10. 5th Feb 2024 Forced Directed Scheduling Forumulation Class notes, Micheli: Ch. 5
11. 6th Feb 2024 Forced Directed Scheduling: MLRC, MRLC Class notes, Micheli: Ch. 5
12. 9th Feb 2024 Scheduling with Pipelined resource, Functional Pipeline Class notes
13. 12th Feb 2024 FU Allocation and Bind Class notes, Micheli: Ch. 6
14. 13th Feb 2024 Quiz 1
15. 13th Feb 2024 (Makeup class) Complexity of FU Allocation, Polynominal Solvability Class notes, Micheli: Ch. 2, Ch. 6
16. 16th Feb 2024 Left-Edge Algorithm, FU Allocation of Non-hierarchical Graph Class notes, Micheli: Ch. 2, Ch. 6
17. 17th Feb 2024 FU Allocation of Hierarchical Graph Class notes, Micheli: Ch. 2, Ch. 6
18. 19th Feb 2024 Register Allocation and Binding Class notes, Micheli: Ch 6
19. 20th Feb 2024 Port Assignment Problem, Data path and Controller Generation Class notes, Micheli: Ch 6
20. 22nd Feb 2024 Data path and Controller Optimizations Class notes, Micheli: Ch 6
21. 4th March 2024 Vivado HLS tool Demo
22. 5th March 2024 HLS for Loops: Unroll, Iterative HW Class notes
23. 11th March 2024 HLS for Loops: Pipelined HW Class notes
24. 12th March 2024 HLS for Loops: Managing Dependencies Class Notes
25. 15th March 2024 HLS for Arrays Class Notes
26. 18th March 2024 HLS for Arrays, Array at Interface Class Notes
27. 19th March 2024 C-Coding Style for HLS Class Notes
28. 22nd march 2024 Impact of Compiler Optimization in HLS Class Notes
29. 1st April 2024 Dataflow Optimization Class Notes
30. 2nd April 2024 HLS Case Study: Merge Sort Class Notes
31. 5th April 2024 HLS Case Study: Matrix Multiplication Class Notes
32. 8th April 2024 HLS for Security Class Notes, paper
33. 9th April 2024 SAT Attack on Logic Locking Class Notes, Paper
34. 12th April 2024 Varios Logic Locking techniques Class Notes, paper
35. 16th April 2024 HLS reverse Engineering Class Notes, Paper
36. 19th April 2024 C to RTL Equivalence Checking Class Notes, Paper
37. 22nd April 2024 Quiz 2
38. 23rd April 2024 Introduction to Logic Synthesis Video Link
39. 24th April 2024 Project Evaluation (Entire Day)
40. 26th April 2024 Introduction to Physical Synthesis Video Link

Evaluation Schedule