Chandan Karfa
CS 577: C-Based VLSI Design
Overll Course Feedback:
Feebback on Course Instructor:
Feebback 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
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.
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
|
|