Chandan Karfa
CS 577: C-Based VLSI Design
Course Feedback:
|
|
|
|
Announcements:
IMPORTANT UPDATE: Links to Video Lectures are given. Please check the Day-wise Schedule at the bottom of the page. Go through the lectures from home. I will schedule discussion sessions once you are back to campus. Feel free to send email if you have any doubts about any part of the lectures. I will clarify over email/phone/skype.
11th March 2020: Project Evaluation Schedule and Guidelines. Guidelines, Evaluation Scheme
14th February Guest Lecture by Prof. Ramesh Karri, New York University: Time: 6:30PM-7:30PM, Venue: CSE Seminar Room
VIVADO HLS Tool DOWNLOAD
Clas Test 1: 19th February 2020
No Class on 6th and 7th February 2020
Update your github id in the project page. One for each group. LINK
5th February 2020, Time: 6PM-7PMM. Venue: CSE Seminar Room. Topic: Project Discussion. There would be normal class as well.
30th January 2020, Time: 12PM-1pm, Venue: CSE Seminar room, Topic: HLS Tool Demo
[Project Allocation]: Make your group of four students. Fill the Google form group-wise by 21st January 2020. LINK
Welcome to CS 577 Course page
Cource Overview
High-level Synthesis (HLS) is the process of generating effecient hardware from 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 student to
(i) understand the overall HLS flow, (ii) how a C-code will be converted to its equivalent hardware,
(iii) how to write C-code for efficient hardware generation and (iv) how the common software compiler optimization can help to
improve the circuit performance. Also, advanced topics like HLS for security, optimizations at RTL level and verification challenges of HLS will be covered.
The overall EDA tool flow will also be covered briefly. 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.
Instructors
Class Timing and Venue:
TAs with their Responsibilities:
Priyanka Panigrahi - priya176101006@iitg.ac.in - Evaluation of Quizzes
Ramanuj Chouksey - r.chouksey@iitg.ac.in – Mentor for Verification related Projects
Debabrata Senapati - debab176101003@iitg.ac.in – Scribe management
Modammed Abderahman - ma.adem@iitg.ac.in – Mentor for HLS related projects
Oza Jay - oza@iitg.ac.in – Mentor for HLS related projects
Yom Nigam - yom@iitg.ac.in – Mentor for HLS related projects
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;
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.
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
Quizzes + Scribe/Class Participation | 20% |
Projects/Research Studies | 20% |
MidSem | 20% |
End Sem | 40%
|
Classes
Sl No | Date | Topic | Resources |
1 | 3rd Jan 2020 | Course Overview, Introduction to EDA Flow | Scribe |
2 | 8th Jan 2020 | HLS flow with an example | Scribe |
3. | 9th Jan 2020 | HLS flow with an example | Scribe |
4. | 10th Jan 2020 | HLS Steps | Scribe |
5. | 16th Jan 2020 | Scheduling Problem formulations, ASAP, ALAP | Micheli: Ch 5, Scribe |
6. | 17th Jan 2020 | ILP formulation of ML-RC and MR-LC | Micheli: Ch 5, Scribe |
7. | 20th Jan 2020 | Multiprocessor Scheduling, Lower bound of resource | Micheli: Ch 5, Scribe |
8. | 22th Jan 2020 | HUs’ algorithm, List Scheduling | Micheli: Ch 5, Scribe |
9. | 23rd Jan 2020 | List Scheduling for ML_RC and MR_LC | Micheli: Ch 5, Scribe |
10. | 24th Jan 2020 | Path Based Scheduling | Scribe, Paper |
11. | 29th Jan 2020 | Path Based Scheduling | Scribe |
12. | 30th Jan 2020 | HLS Tool Demo | Resource |
13. | 5th Feb 2020 | Resource Allocation and Binding | Micheli: Ch 6, Scribe |
14. | 5th Feb 2020 | Guest Lecture by Deepraj Soni, NYU | Slides |
15. | 12th Feb 2020 | Resource Allocation and Binding | Micheli: Ch 6, Scribe |
16. | 13th Feb 2020 | Verilog Basic | Slides |
17. | 14th Feb 2020 | Resource Allocation and Binding | Scribe |
18. | 14th Feb 2020 | HLS for Security by Prof. Ramesh Karri, NYU | Paper |
19. | 19th Feb 2020 | Class Test 1 | |
20. | 20th Feb 2020 | HLS of Arrays | Manual, Scribe |
21. | 25th Feb 2020 | HLS of Loops | Scribe |
| 4th March 2020 | Mid-Semester Examination | |
22. | 5th March 2020 | HLS of Loops | Scribe |
23. | 6th March 2020 | Compiler Optimization for HLS | Scribe |
24. | 11th March 2020 | Retiming | |
25. | 13th March 2020 | Retiming | Video Lecture (YouTube) |
26. | 18th March 2020 | RTL Optimizations for Timing | Video Lecture (YouTube) |
27. | 19th March 2020 | RTL Optimizations for Area | Video Lecture (YouTube) |
28. | 20th March 2020 | RTL Optimizations for Power | Video Lecture (YouTube) |
29. | 25th March 2020 | Introduction to Logic Synthesis | Video Lecture (YouTube) |
30. | 26th March 2020 | Introduction to FPGA Mapping | Video Lecture (YouTube) |
31. | 27th March 2020 | Introduction to Physical Synthesis | Video Lecture (YouTube) |
32. | 1st April 2020 | Verification: LTL-CTL Based Verification | Video Lecture (YouTube) |
33. | 2nd April 2020 | Verification of Large Systems | Video Lecture (YouTube) |
34. | 3rd April 2020 | BDD Based Verification | Video Lecture (YouTube) |
35. | 8th April 2020 | ADD, HDD Based Verification | Video Lecture (YouTube) |
36. | 9th April 2020 | Symbolic Model Checking | Video Lecture (YouTube) |
37. | 16th April 2020 | Bounded Model Checking | Video Lecture (YouTube) |
|
|