0
1
00:00:01,450 --> 00:00:08,170
In this video, I am going to clarify why we should spend our time to learn HLS and FPGA while there are other 
1

2
00:00:08,170 --> 00:00:14,710
new computing platforms such as GPUs and multi-core CPUs. We should find the answer in the efficiency 
2

3
00:00:14,710 --> 00:00:17,830
of FPGAs in implementing several new applications.
3

4
00:00:19,700 --> 00:00:26,000
With the recent advancements in deep machine learning, cloud computing, edge computing and mobile platforms, 
4

5
00:00:26,270 --> 00:00:32,450
new compute-intensive applications (such as image and video processing) on the end devices are ubiquitous.
5

6
00:00:33,200 --> 00:00:39,110
We use these applications many times during the day when we use our mobile phones or the online services 
6

7
00:00:39,110 --> 00:00:46,220
around us, such as smart and online shopping apps, tracking software apps, and reservation systems,
7

8
00:00:46,430 --> 00:00:47,480
just to name a few.
8

9
00:00:47,960 --> 00:00:54,020
One of the main features of these new applications is their requirement for a large data processing 
9

10
00:00:54,050 --> 00:00:58,580
under minimal time and energy budget of the battery-operated end devices. 
10

11
00:00:59,910 --> 00:01:05,910
To cope with this high processing demand, industry and researchers have proposed powerful computing platforms 
11

12
00:01:06,060 --> 00:01:08,650
from multi-core CPUs to many-core GPUs.
12

13
00:01:09,060 --> 00:01:14,160
The architecture of these computing platforms is relatively general and fixed during the manufacturing 
13

14
00:01:14,160 --> 00:01:14,680
process.
14

15
00:01:15,090 --> 00:01:20,730
They can be found in any computing systems from servers in clouds to your smartphones. 
15

16
00:01:21,950 --> 00:01:27,440
There are three main issues with these fixed computing architectures: Firstly, they consume lots of 
16

17
00:01:27,440 --> 00:01:28,350
power and energy. 
17

18
00:01:29,150 --> 00:01:35,600
One of the results of this issue is the need for recharging your mobile system almost every day or spending 
18

19
00:01:35,600 --> 00:01:39,410
a lot of money to cool down the servers in a cloud computing station.
19

20
00:01:40,160 --> 00:01:45,530
Secondly, they are not so efficient in implementing a specific algorithm or control systems. 
20

21
00:01:45,680 --> 00:01:51,530
And finally, with the emergence of new use cases as well as introducing new applications, these 
21

22
00:01:51,530 --> 00:01:55,820
computing platforms should be redesigned, which may take a couple of years.
22

23
00:01:57,170 --> 00:02:03,650
All these issues can be addressed by using FPGAs integrated into the computing platforms.
23

24
00:02:03,650 --> 00:02:10,940
FPGAs consume less energy compared to the CPU and GPU platforms in performing the same tasks. FPGAs provide 
24

25
00:02:10,940 --> 00:02:16,580
a high degree of parallelism to implement an algorithm so they can give highly-efficient hardware 
25

26
00:02:16,580 --> 00:02:18,260
for a wide range of applications.
26

27
00:02:18,830 --> 00:02:24,500
FPGAs can be configured easily and quickly (around a few hundred ms) to implement new applications or 
27

28
00:02:24,500 --> 00:02:27,320
adapt previous applications for the new use cases. 
28

29
00:02:28,250 --> 00:02:34,260
However, one of the drawbacks of FPGA was its tedious and time-consuming design and debugging process. 
29

30
00:02:34,610 --> 00:02:41,360
In addition, the lack of availability of a wide range of libraries makes using the FPGA very limited.
30

31
00:02:41,900 --> 00:02:42,950
Developing and testing 
31

32
00:02:42,960 --> 00:02:50,280
real complex applications might take more than a year.
To address these issues, HLS is proposed to ease 
32

33
00:02:50,280 --> 00:02:53,210
the development process and to shorten the time to market.
33

34
00:02:53,210 --> 00:02:59,390
The main idea behind the HLS is using software-based languages to develop hardware modules, automatically 
34

35
00:02:59,420 --> 00:03:02,550
or just with a minor modification to the original C-function.
35

36
00:03:03,200 --> 00:03:09,350
Not only this approach facilitates the design process, but it also supports providing and reusing libraries.
36

37
00:03:10,890 --> 00:03:17,340
Using HLS has enabled several companies and design groups to utilise FPGAs in their products
37

38
00:03:17,640 --> 00:03:23,640
in different areas such as video and image processing, computational storage, financial technology, 
38

39
00:03:23,850 --> 00:03:25,860
automotive, just to name a few.
39

40
00:03:27,540 --> 00:03:34,040
HLS enables us to use software languages to describe a hardware module, but what is the analogy between 
40

41
00:03:34,050 --> 00:03:36,960
a software function and its corresponding hardware module?
41

42
00:03:37,680 --> 00:03:40,670
The goal of the next lecture is answering this question. 
42

43
00:03:41,310 --> 00:03:46,850
Answering this question helps us to have a big picture of the hardware description in a software language.
43

44
00:03:48,020 --> 00:03:54,680
This is the takeaway message from this lecture. Compared to the CPUs and GPUs, FPGAs can provide:  lower 
44

45
00:03:54,680 --> 00:03:59,030
energy consumption,  higher performance,  and shorter time to market.
45

46
00:04:00,600 --> 00:04:05,760
Now the quiz for this lecture. By connecting to the Xilinx website, find a couple of companies that 
46

47
00:04:05,760 --> 00:04:07,800
use FPGAs in their products.
