Student Mini Lecture

Each of you will have the opportunity to teach a portion of a class period. You will teach as a group of 2-3. Please sign up for a time/topic on Slack.

Guidelines and Suggestions

  • Each mini-lecture should cover half of the class period. Plan for about 35 minutes, accounting for questions along the way.
  • You can use power-point slides, the white board, handouts, or a combination of any of these.
  • Make sure you prioritize student learning. Your goal is not simply to transfer the chapter text to Powerpoint slides and deliver the content. Consider how to best help students learn about these concepts. For example, you might want to experiment with these concepts in the Vitis HLS tool and share your experiences with the class, or do a live demo.
  • You might not have time to cover all the material in the chapter. It is more important to do a good job covering the basics than to try and cram all of the content into your presentation.
  • Look over the grading scheme below.
  • You should first read “Section I: Introduction, and “Section II, Chapter 1: Design Principles”, before diving into the later chapters.
  • There will inevitibly be some difficulty in “fitting together” the different presentations from the various groups. For example, the earlier chapters sometimes refer to concepts that will be covered in later chapters by other group’s presentations. Likewise, when presenting a later chapter, you may be unsure of what will be fully covered by earlier presentations. Just do your best, don’t feel like you need to cover every detail, and be flexible in your presentations and willing to adapt on the fly.

Topics

This semester the topics will cover materials from the Vitis High-Level Synthesis User Guide (UG1399). Your group should choose one of the following topics from “Section II: HLS Programmers Guide”:

  1. Chapter 2: Abstract Parallel Programming Model for HLS
    • Note: This chapter is somewhat unique from the other chapters. While the other chapters generally focus on programming techniques localized to one function of your code, this chapter discusses the broader architecture of how to parellelize multiple tasks/functions in your system and how to connect them to pass data between them.
  2. Chapter 3: Loops Primer

  3. Chapter 4: Arrays Primer
    • You don’t need to focus on Interfaces, as we will cover “Chapter 8: Interfaces of the HLS Design” in a later lecture.
  4. Chapter 5: Functions Primer & Chapter 6: Data Types
    • Chapter 6 has a lot of information, so focus on the “Standard Types”, “Arbitrary Precision (AP) Data Types”, and “Global Variables”.
    • You may want to discuss pointers briefly, but don’t spend time on the interfaces, as we will cover “Chapter 8: Interfaces of the HLS Design” in a later lecture.

If you aren’t sure if a particular sub-topic is important to cover, please reach out to me and ask.

Note: You are strongly encouraged to consult the textbook: Parallel Programming for FPGAs, which has many concrete examples of how these concepts can be applied to accelerating real-world algorithms. A portion of the grading scheme evaluates whether you have examples in your presentation. You don’t have to use examples from this textbook, but it’s a good place to start.

Schedule

Date Topic Group
March 7: First half of class Chapter 2  
March 7: Second half of class Chapter 3  
March 9: First half of class Chapter 4  
March 9: Second half of class Chapter 5  

Grading Scheme

Grading Scheme