0
1
00:00:00,530 --> 00:00:07,160
What is the necessary information that we should know to start designing with HLS for FPGA? In this 
1

2
00:00:07,160 --> 00:00:07,530
video, 
2

3
00:00:07,670 --> 00:00:09,290
I am going to answer this question. 
3

4
00:00:10,790 --> 00:00:15,650
Designing logic circuits and algorithms with HLS requires two types of skills: 
4

5
00:00:15,890 --> 00:00:19,760
first, you should know the basic concepts and skills of software coding, 
5

6
00:00:20,000 --> 00:00:24,850
then you should also understand the basic hardware design concepts. In this course, 
6

7
00:00:25,040 --> 00:00:29,010
I assume that you have the basic knowledge of C/C++ language. 
7

8
00:00:29,480 --> 00:00:33,970
However, I presume that you don’t know about the FPGA hardware. 
8

9
00:00:34,400 --> 00:00:40,180
Therefore, along the course, I will try to build such a knowledge that is suitable for the HLS design approach. 
9

10
00:00:40,940 --> 00:00:46,730
Based on my experience, I've realised it is valuable if students have a big picture of the course or 
10

11
00:00:46,730 --> 00:00:49,720
or the hardware environment used along the course. 
11

12
00:00:49,850 --> 00:00:55,360
So, in this section, I am giving you a big picture of the FPGA structure and its design flow. 
12

13
00:00:56,880 --> 00:01:03,450
The goal of this section is to illustrate a big picture of the FPGA structure and the role of high-level 
13

14
00:01:03,450 --> 00:01:06,000
synthesis in configuring this structure. 
14

15
00:01:07,190 --> 00:01:13,460
I have organised the rest of this section in nine short lectures through which I will define the FPGA basic 
15

16
00:01:13,460 --> 00:01:17,880
elements. Then, I will explain the reasons for using HLS. 
16

17
00:01:17,900 --> 00:01:24,410
And finally, I will compare a C function written for a CPU with the one written for an FPGA. 
17

18
00:01:25,510 --> 00:01:30,910
This is the question to start the section with: What are the unique features and applications of FPGAs 
18

19
00:01:30,940 --> 00:01:32,350
that motivate us to learn them?
19

20
00:01:33,070 --> 00:01:35,050
I will handle this question in the next lecture.
20

21
00:01:36,340 --> 00:01:42,220
These are the takeaway messages: You should know the basic of the C/C++ programming, But you don’t 
21

22
00:01:42,220 --> 00:01:44,620
need to have any specific knowledge about FPGA
22

23
00:01:46,110 --> 00:01:51,450
Now the quiz for this lecture.1) Explain the structure of a function in C/C++. 2) What are different 
23

24
00:01:51,450 --> 00:01:56,420
ways to describe a call-by-value or call-by-reference argument in a C/C++ function?
