0
1
00:00:01,280 --> 00:00:07,070
Now that we know the LED board configuration as one of the board output mechanisms, we should be 
1

2
00:00:07,070 --> 00:00:13,560
able to describe a simple logic circuit in HLS for driving these LEDs. In the following slides,
2

3
00:00:13,580 --> 00:00:17,270
I’m going to talk about the concept of the structure of this driver.
3

4
00:00:18,200 --> 00:00:25,220
This picture shows the Basys3 board, which contains an FPGA and 16 LEDs and the connections between 
4

5
00:00:25,220 --> 00:00:33,200
LEDs and some of the FPGA pins. Our goal is to design a simple logic circuit to derive the corresponding pins 
5

6
00:00:33,200 --> 00:00:36,530
with the proper data to turn ON/OFF LEDs. 
6

7
00:00:38,300 --> 00:00:43,720
To control the illumination of an LED, the design, inside the FPGA, should send the logic value 
7

8
00:00:43,730 --> 00:00:46,070
“1” or “0” to the corresponding pin.
8

9
00:00:47,090 --> 00:00:54,740
The design that generates these “1”s and “0”s would be a C function. This design is inside the FPGA and 
9

10
00:00:54,740 --> 00:00:57,180
is not connected to the FPGA pins.
10

11
00:00:57,350 --> 00:01:03,200
Therefore, we need another part that represents the connections between the design outputs and the FPGA 
11

12
00:01:03,200 --> 00:01:03,660
pins.
12

13
00:01:04,610 --> 00:01:09,920
These connections cannot be defined inside the C function and should be denoted in a separate file 
13

14
00:01:10,310 --> 00:01:14,240
by using some instructions that are known as physical constraints. 
14

15
00:01:15,170 --> 00:01:21,680
I will explain the constrains later in this section. Now, after being familiar with the board and having 
15

16
00:01:21,680 --> 00:01:23,330
a big picture of our design, 
16

17
00:01:23,480 --> 00:01:28,970
The question is how we can start implementing the functional blocks and their corresponding connections.
17

18
00:01:29,600 --> 00:01:36,020
For this purpose, we should know more details about the design flow and the tools suitable for implementing 
18

19
00:01:36,020 --> 00:01:37,280
each part of a design.
19

20
00:01:37,820 --> 00:01:44,270
The takeaway from this video is that an FPGA design controlling a peripheral has two main parts: A functional 
20

21
00:01:44,270 --> 00:01:50,750
block inside the FPGA that can be described by HLS techniques. And the connections between the functional 
21

22
00:01:50,750 --> 00:01:57,200
block ports and FPGA pins. Notice that both these parts are located inside the FPGA.
22

23
00:02:00,680 --> 00:02:06,890
Now the quiz question. Which part can be implemented with an HLS C/C++ function? 1.	The logic circuit 
23

24
00:02:06,890 --> 00:02:14,360
functionality inside the FPGA2. Connections between the logic circuit inside the FPGA and the FPGA pins 3. Connections 
24

25
00:02:14,360 --> 00:02:16,930
between the FPGA pins and the LEDs on the board
