0
1
00:00:01,140 --> 00:00:06,750
How can we develop a simple hardware description in C to control a few LEDs? This controller would 
1

2
00:00:06,750 --> 00:00:13,830
be the “Hello World!” example in HLS, through which I demonstrate essential steps of the HLS hardware development 
2

3
00:00:13,830 --> 00:00:14,460
process.
3

4
00:00:15,500 --> 00:00:22,160
Primary goals of logic circuits are processing data and controlling a wide range of systems. To achieve 
4

5
00:00:22,160 --> 00:00:30,830
these goals, a logic circuit should perform three tasks: receive or generate data, process data and 
5

6
00:00:30,830 --> 00:00:32,200
send the results out.
6

7
00:00:33,080 --> 00:00:40,880
The data can be received from different sources such as memories, sensors, data stream sources or other 
7

8
00:00:40,880 --> 00:00:41,780
logic circuits.
8

9
00:00:42,410 --> 00:00:45,200
These data can be in various shapes or formats. 
9

10
00:00:45,900 --> 00:00:52,070
The data processing can be as simple as transferring data with minor modification or performing several 
10

11
00:00:52,070 --> 00:00:54,270
computational operations on data. 
11

12
00:00:55,100 --> 00:01:01,940
The resulted data can be used to change the environment via actuators, displays or used by other logic
12

13
00:01:01,940 --> 00:01:05,420
circuits or be saved in memories for later usage. 
13

14
00:01:08,810 --> 00:01:16,640
Our target design in this course is a simple logic circuit that turns on/off LEDs based on a predefined 
14

15
00:01:16,640 --> 00:01:17,090
pattern.
15

16
00:01:17,390 --> 00:01:21,860
Therefore it has no input but has an output connected to LEDs.
16

17
00:01:25,480 --> 00:01:33,010
In this section, you will learn: What the HLS design-flow is, How to describe a design in C/C++,
17

18
00:01:33,670 --> 00:01:40,990
How to use Vivado-HLS and Vivado to create a design,  How to program the Basys-3 board with a simple 
18

19
00:01:40,990 --> 00:01:43,330
design to control LEDs on the board.
19

20
00:01:46,620 --> 00:01:52,800
This section consists of 12 lectures. The current lecture, as the first one, explains the goal and the 
20

21
00:01:52,800 --> 00:01:53,940
structure of the section.
21

22
00:01:56,030 --> 00:02:02,540
The next lecture introduces the LED configuration on the Basys-3 board. Lecture three deals with 
22

23
00:02:02,540 --> 00:02:07,910
with the basic concepts behind the HLS design and its relation with the Xilinx toolsets.
23

24
00:02:09,260 --> 00:02:15,890
The overall design flow is explained in lecture four. Lecture five briefly describes the Vivado-HLS design 
24

25
00:02:15,890 --> 00:02:16,230
flow.
25

26
00:02:16,820 --> 00:02:22,430
Then we will be prepared to describe our design in C/C++ in the sixth lecture.
26

27
00:02:23,800 --> 00:02:28,990
The hardware port concept and its description in C/C++ are explained in Lecture seven.
27

28
00:02:30,300 --> 00:02:36,150
Lecture 8 is where we use the Xilinx Vivado-HLS toolset to describe and synthesise 
28

29
00:02:36,150 --> 00:02:37,920
our LED controller code.
29

30
00:02:39,000 --> 00:02:46,230
Lectures 9 and 10 cover the techniques to import the synthesised HLS design into Vivdo toolset for logic 
30

31
00:02:46,230 --> 00:02:46,880
synthesis.
31

32
00:02:47,370 --> 00:02:53,940
After generating the FPGA bitstream, in lecture 11 we will program the board and examine the results 
32

33
00:02:53,940 --> 00:02:55,440
on the real Basys-3 board.
33

34
00:02:56,740 --> 00:03:02,890
Finally, lecture 12 provides some exercises for a better understanding of the topics explained in this 
34

35
00:03:02,890 --> 00:03:03,280
section.
35

36
00:03:05,680 --> 00:03:09,670
What is the Basys3 board configuration for accessing the LEDs?
36

37
00:03:10,790 --> 00:03:12,980
The next lecture will answer this question. 
