0
1
00:00:00,720 --> 00:00:06,210
Iteration statements or loops in a software language repeat a group of statements a certain number 
1

2
00:00:06,210 --> 00:00:08,670
of times, or while a condition is fulfilled. 
2

3
00:00:09,800 --> 00:00:16,730
These statements make the programming much more manageable and reduce the program code size. 
3

4
00:00:16,730 --> 00:00:20,030
Using iteration statements are also very useful in hardware design. 
4

5
00:00:21,060 --> 00:00:26,670
In this section, I will explain how to use parallel iteration statements in coding combinational hardware 
5

6
00:00:26,670 --> 00:00:27,300
designs.
6

7
00:00:29,280 --> 00:00:35,760
Iteration statemen	ts are part of the control flow in a software program. They help tasks execute several
7

8
00:00:35,760 --> 00:00:38,550
times, sequentially on a different data set. 
8

9
00:00:39,030 --> 00:00:41,900
These statements are introduced by the keywords 
9

10
00:00:41,940 --> 00:00:43,410
while, do, and for.
10

11
00:00:44,750 --> 00:00:50,570
Repetitive patterns can be seen in many hardware designs in which the same task should be applied to 
11

12
00:00:50,570 --> 00:00:54,760
a set of data, for example to all the bits in an n-bit data.
12

13
00:00:55,520 --> 00:01:00,440
However, there are differences between the execution of a software loop and a hardware loop. 
13

14
00:01:01,250 --> 00:01:06,860
The main difference is the parallelism execution in the combinational hardware circuits that is modelled 
14

15
00:01:06,860 --> 00:01:12,920
by dataflow, in contrast to the concept of sequential execution in software programs that is modelled 
15

16
00:01:12,920 --> 00:01:14,300
by control flow techniques.
16

17
00:01:15,450 --> 00:01:21,330
This section focuses on the techniques to use loop statements in describing combinational hardware circuits.
17

18
00:01:23,710 --> 00:01:30,100
This section consists of 10 lectures. This lecture introduces the section. The next lecture 
18

19
00:01:30,100 --> 00:01:36,280
gives you a big picture of a repetitive hardware structure to be used later throughout this section. Lecture
19

20
00:01:36,280 --> 00:01:44,530
three explains using a for-loop statement to describe a repetitive combinational pattern in HLS. The section 
20

21
00:01:44,560 --> 00:01:47,620
also introduces the loop unrolling optimisation technique.
21

22
00:01:48,130 --> 00:01:54,130
The loop unrolling technique cannot be applied to all loop statements in a code. Lecture four explains 
22

23
00:01:54,130 --> 00:01:58,610
a specific coding style for a loop to be synthesised into a combinational circuit.
23

24
00:01:59,640 --> 00:02:05,250
To demonstrate the combinational loop coding style, Lecture five will introduce the parity-bit generator 
24

25
00:02:05,250 --> 00:02:06,210
design example.
25

26
00:02:07,090 --> 00:02:11,010
Then Lecture six will explain its implementation in HLS.
26

27
00:02:11,940 --> 00:02:17,730
An optimisation technique to reduce the propagation delay of the parity generator digital circuit is 
27

28
00:02:17,730 --> 00:02:19,400
explained in the seventh lecture.
28

29
00:02:20,390 --> 00:02:27,800
Describing the optimised parity-bit generator in HLS would be the topic of the eighth lecture.  Lecture nine implements
29

30
00:02:27,800 --> 00:02:29,630
the optimised design in the Vivado-HLS.
30

31
00:02:30,740 --> 00:02:35,270
Finally, the last lecture will give you a couple of exercises to practise 
31

32
00:02:35,270 --> 00:02:38,060
all the concepts have been explained throughout this section. 
