What is the necessary information that we should know to start designing with HLS for FPGA? In this 1
video, 2
I am going to answer this question. 3
Designing logic circuits and algorithms with HLS requires two types of skills: 4
first, you should know the basic concepts and skills of software coding, 5
then you should also understand the basic hardware design concepts. In this course, 6
I assume that you have the basic knowledge of C/C++ language. 7
However, I presume that you don’t know about the FPGA hardware. 8
Therefore, along the course, I will try to build such a knowledge that is suitable for the HLS design approach. 9
Based on my experience, I've realised it is valuable if students have a big picture of the course or 10
or the hardware environment used along the course. 11
So, in this section, I am giving you a big picture of the FPGA structure and its design flow. 12
The goal of this section is to illustrate a big picture of the FPGA structure and the role of high-level 13
synthesis in configuring this structure. 14
I have organised the rest of this section in nine short lectures through which I will define the FPGA basic 15
elements. Then, I will explain the reasons for using HLS. 16
And finally, I will compare a C function written for a CPU with the one written for an FPGA. 17
This is the question to start the section with: What are the unique features and applications of FPGAs 18
that motivate us to learn them? 19
I will handle this question in the next lecture. 20
These are the takeaway messages: You should know the basic of the C/C++ programming, But you don’t 21
need to have any specific knowledge about FPGA 22
Now the quiz for this lecture.1) Explain the structure of a function in C/C++. 2) What are different 23
ways to describe a call-by-value or call-by-reference argument in a C/C++ function?