0
1
00:00:01,360 --> 00:00:08,340
As the HLS design flow is a new topic, its learning requires a step-by-step approach with several examples. 
1

2
00:00:09,010 --> 00:00:11,900
The structure of this course is based on this assumption.
2

3
00:00:12,470 --> 00:00:19,150
This course is the second step towards using HLS to design logic circuits and accelerators for FPGA-based platforms, which its focus 
3

4
00:00:19,300 --> 00:00:20,890
is on sequential circuits.
4

5
00:00:25,420 --> 00:00:32,050
In this course, I will take the HLS approach to explain the fundamental concepts in designing sequential 
5

6
00:00:32,050 --> 00:00:37,690
circuits. I assume that you are familiar with the HLS-based approach to design combinational 
6

7
00:00:37,690 --> 00:00:40,960
circuits explained in the first course of this series. 
7

8
00:00:42,150 --> 00:00:48,590
This course looks at FPGA from a high-level perspective without going into the low-level hardware details.
8

9
00:00:49,460 --> 00:00:56,070
This course would give you the foundation of using HLS for digital design in Xilinx-based FPGAs 
9

10
00:00:56,880 --> 00:01:01,640
to enhance your productivity compared to the traditional HDL design flow. 
10

11
00:01:06,960 --> 00:01:13,650
The only prerequisite for this course is the “High-Level Synthesis for FPGA, part 1-combinational circuit” 
11

12
00:01:13,650 --> 00:01:17,960
course, and you don’t need to read any specific document.
12

13
00:01:18,540 --> 00:01:25,590
However, referring to Xilinx documents, especially “Vitis High-Level Synthesis User Guide-UG1399” 
13

14
00:01:25,590 --> 00:01:33,540
-UG1399” is recommended. For more examples and discussions about the HLS-based design approaches,
14

15
00:01:34,200 --> 00:01:40,290
you can refer to the highlevel-synthesis.com web-log-site or the course Github site. 
15

16
00:01:41,100 --> 00:01:47,100
If you have any questions or issues regarding the concepts and codes presented in this course, please 
16

17
00:01:47,100 --> 00:01:49,080
refer to the Q&A section.
17

18
00:01:52,510 --> 00:02:00,280
In this course, you’ll learn How to use HLS design flow to implement sequential circuits and how to 
18

19
00:02:00,280 --> 00:02:07,360
work with state-of-the-art HLS software tools to implement arithmetic, logic and control circuits on 
19

20
00:02:07,360 --> 00:02:07,930
hardware.
20

21
00:02:09,790 --> 00:02:12,400
This is a practical course. Throughout the course, 
21

22
00:02:12,550 --> 00:02:18,730
I will explain the concepts of FPGA structure, software tools, HLS techniques, and coding styles 
22

23
00:02:19,060 --> 00:02:21,130
to implement several examples.
23

24
00:02:23,710 --> 00:02:31,150
This course comprises four parts. The first part is called prologue, which introduces the course
24

25
00:02:31,270 --> 00:02:33,970
and its structure throughout two lectures. 
25

26
00:02:35,170 --> 00:02:37,340
The current video is the second lecture.
26

27
00:02:39,410 --> 00:02:41,350
The second part is called “setup”, 
27

28
00:02:42,480 --> 00:02:49,890
which gives a big picture of the HLS for FPGA and its design flow and how to install related software 
28

29
00:02:49,890 --> 00:02:52,740
tools and set up the target FPGA board. 
29

30
00:02:53,680 --> 00:03:02,950
It consists of one section, including five lectures, from lecture 3 to 7. The third part explains 
30

31
00:03:02,950 --> 00:03:06,970
how to develop sequential circuits using C/C++ language in HLS. 
31

32
00:03:08,200 --> 00:03:12,670
This part consists of 11 sections and 77 lectures.
32

33
00:03:13,630 --> 00:03:20,880
Finally, the last part puts all explained techniques together to implement three exciting projects. 
33

34
00:03:21,520 --> 00:03:24,730
It consists of three sections and 18 lectures.
34

35
00:03:26,810 --> 00:03:33,740
The course parts are designed to cover all classical concepts and techniques in sequential logic design 
35

36
00:03:34,430 --> 00:03:35,780
for FPGA implementation.
36

37
00:03:39,920 --> 00:03:45,290
The first project implements a Digital Dice circuit. The corresponding section 
37

38
00:03:45,530 --> 00:03:50,480
will explain two different techniques to generate a random number in hardware.
38

39
00:03:52,120 --> 00:03:59,440
The second project implements UART modules to exchange data serially between the Basys3 board 
39

40
00:03:59,440 --> 00:04:00,130
and a computer. 
40

41
00:04:03,020 --> 00:04:09,050
The last project designs a logic controller to control the rotation of a stepper motor. 
41

42
00:04:14,080 --> 00:04:20,290
Each lecture describes a single idea which is presented through a couple of slides. The first slide 
42

43
00:04:20,470 --> 00:04:22,330
tells the topic and the motivation, 
43

44
00:04:22,900 --> 00:04:27,640
then it follows by a few slides explaining the main ideas and concepts. 
44

45
00:04:27,970 --> 00:04:32,910
After that, a slide gives the motivation of the next lecture by posing a question. 
45

46
00:04:33,520 --> 00:04:38,030
This slide also creates a conceptual link between two consecutive lectures. 
46

47
00:04:38,320 --> 00:04:42,430
Then I summarise the lecture contributions through a few takeaway messages.
47

48
00:04:42,850 --> 00:04:48,750
The last slide in each lecture contains a quiz that helps you to concentrate on the main idea.
48

49
00:04:52,260 --> 00:04:59,550
In this course, I have considered the Xilinx Basys 3 FPGA board as our target platform. Basys 3 is an 
49

50
00:04:59,550 --> 00:05:07,650
entry-level development platform based on the latest Artix-7 Xilinx FPGA designed exclusively for 
50

51
00:05:07,650 --> 00:05:08,900
Vivado Design Suite.
51

52
00:05:09,930 --> 00:05:16,180
This board is cheap and accessible by almost all students, researchers and individuals. 
52

53
00:05:16,500 --> 00:05:23,900
However, the concepts and techniques explained in this course are valid for all other Xilinx FPGAs.
53

54
00:05:28,790 --> 00:05:34,490
What is the structure of the LAB environment that will be used throughout this course? The next lecture 
54

55
00:05:34,610 --> 00:05:35,750
will answer this question.
55

56
00:05:41,880 --> 00:05:43,350
The takeaway messages are.
56

57
00:05:44,410 --> 00:05:51,160
This course explains the fundamentals of sequential digital designs using the Xilinx HLS toolset
57

58
00:05:52,730 --> 00:05:56,690
You don’t need to have in-depth hardware knowledge to follow this course
58

59
00:05:57,790 --> 00:06:01,000
Familiarity with the C/C++ language is necessary
59

60
00:06:02,020 --> 00:06:09,310
The “High-level Synthesis for FPGA, part 1-combinational circuit” course is the prerequisite to this course.
60

61
00:06:14,230 --> 00:06:20,680
Download the “Vitis High-Level Synthesis User Guide (UG1399)” 
61

62
00:06:20,830 --> 00:06:24,130
document and have a look at its Table of Contents. 
