1
00:00:01,320 --> 00:00:06,840
The question of this lecture is, how can we describe an arithmetic expression in class to be synthesized

2
00:00:06,840 --> 00:00:07,760
into a combination?

3
00:00:07,770 --> 00:00:12,120
Alzaga I will focus on the clock time constraint to answer this question.

4
00:00:14,280 --> 00:00:19,650
There is a clock timing constraint attached to each design in place before explaining the role of this

5
00:00:19,650 --> 00:00:25,230
constraint in designing computational circuits, let's get familiar with the clock signal in general.

6
00:00:25,380 --> 00:00:31,350
More details about this signal and how to generate and use that in a design are explained in a separate

7
00:00:31,350 --> 00:00:33,840
course called digital system design.

8
00:00:33,960 --> 00:00:40,860
With high level sentences in FPGA sequential circuits, a clock signal has a square waveform, alternating

9
00:00:40,860 --> 00:00:42,720
between zero and one logic values.

10
00:00:43,560 --> 00:00:46,920
The clock period determines the duration of a cycle of the clock.

11
00:00:47,680 --> 00:00:50,920
In Nevada, this period is denoted by nanosecond.

12
00:00:51,890 --> 00:00:57,200
The clock signal can also be defined by its frequency, which is the number of cycles in a second.

13
00:00:58,150 --> 00:01:00,440
And it is the reciprocal of the clock you.

14
00:01:02,370 --> 00:01:08,400
And they regard HLS new project with a window called Solution Configuration shows a default clock period

15
00:01:08,400 --> 00:01:12,770
constraint assigned to the design and you can change that if it's required.

16
00:01:13,910 --> 00:01:19,580
The the off the clock period is nanosecond, for example, in this figure, the clock period isn't 10

17
00:01:19,580 --> 00:01:26,390
a.m. The clock period also can be determined by the clock frequency, but its unit is megahertz that

18
00:01:26,390 --> 00:01:28,130
should be mentioned explicitly.

19
00:01:28,160 --> 00:01:32,990
For example, in this case, the equivalent frequency is one hundred megahertz.

20
00:01:34,110 --> 00:01:40,680
The clock constraint also has another parameter called uncertainty, which is not our concern in this

21
00:01:40,680 --> 00:01:44,100
course as we are focusing on the combination of circuit design.

22
00:01:45,300 --> 00:01:51,960
The clock of a design can have a direct impact on the final hardware structure if the total design propagation

23
00:01:51,960 --> 00:01:59,670
delay is less than a clock period and the design doesn't use a memory so explicitly that HLS tool drops

24
00:01:59,670 --> 00:02:03,620
the clock signal during the sentences and generates a fully computational circuit.

25
00:02:04,110 --> 00:02:09,750
If the clock period is longer than the design propagation delay, the high level synthesis tool automatically

26
00:02:09,750 --> 00:02:16,080
escargots the operations over more clock cycles, and some operations might need to be implemented by

27
00:02:16,080 --> 00:02:18,010
using multi cycle resources.

28
00:02:18,540 --> 00:02:25,040
In this case, the operations are broken into several steps by adding flipflop memory cells between

29
00:02:25,050 --> 00:02:25,590
systems.

30
00:02:25,860 --> 00:02:31,220
Then the clock signal is used to save the results of each step and pass them to the next.

31
00:02:31,590 --> 00:02:36,630
The result of a circuit structure is called Pipeline, which is the subject of a separate course.

32
00:02:38,010 --> 00:02:43,560
As I mentioned in the previous slide announcement, the entire operation can be synthesized into a single

33
00:02:43,560 --> 00:02:49,180
cycle combination or circuit or a multi cycle sequential circuit using the pipeline structure.

34
00:02:49,380 --> 00:02:54,690
One of the key parameters to decide this election is the relation between the design propagation delay

35
00:02:54,810 --> 00:02:57,690
and the clock timing constraint assigned to the design.

36
00:02:58,230 --> 00:03:01,640
Let's use the evaluation aside to demonstrate this relation.

37
00:03:03,740 --> 00:03:10,430
Firstly, we need to create an Atlas project, choose a name for the project, for example, timing,

38
00:03:10,430 --> 00:03:17,120
underscore constrained vehicles, then choose the name of the design top function, such as timing,

39
00:03:17,120 --> 00:03:23,480
underscore constraint, then accept the ten nanosecond clock period as the design clock constraint.

40
00:03:23,540 --> 00:03:29,300
Don't forget to choose the basic storyboard as the underlying FPGA finally click on the finish button

41
00:03:29,540 --> 00:03:30,830
to generate the project.

42
00:03:33,440 --> 00:03:40,100
Now create a new design, fight a name it timing, underscore constraint that CPPIB then other design,

43
00:03:40,100 --> 00:03:43,670
top function, name timing, underscore constraint as this.

44
00:03:45,520 --> 00:03:49,540
The function receives two integer inputs and returns their multiplication.

45
00:03:51,620 --> 00:03:56,810
After synthesizing the design, the report shows the features of the generated combination of circuits,

46
00:03:57,530 --> 00:04:01,670
the propagation delay is about eight point forty seven nanosecond.

47
00:04:02,030 --> 00:04:08,490
The final circuit only utilizes lookup tables without any memory cells, which means it is a combination

48
00:04:08,490 --> 00:04:09,080
of a circuit.

49
00:04:09,200 --> 00:04:12,980
Also, harder ports only include function arguments.

50
00:04:16,050 --> 00:04:23,340
Let's have a look at the analysis perspective, the design timing shows only one control step, so it

51
00:04:23,340 --> 00:04:28,170
doesn't need any memory cell, such as flip flops to save data transferring between systems.

52
00:04:30,320 --> 00:04:35,920
Now, let's change the design period construct for this purpose, go to the synthesis perspective.

53
00:04:38,650 --> 00:04:44,560
And right, click on the solution one folder and select the solutions settings option now under the

54
00:04:44,560 --> 00:04:50,650
sentosa settings, change the clock period from ten to five, which means the design clock frequency

55
00:04:50,650 --> 00:04:52,390
would be two hundred megahertz.

56
00:04:52,870 --> 00:04:54,520
Then perform the synthesis again.

57
00:04:56,100 --> 00:05:01,050
If you have a look at the synthesis report, we will notice that the generator, the hardware is not

58
00:05:01,050 --> 00:05:08,790
conventional anymore as it utilizes 220 flipflops and there is a clock signal in the hardware portal.

59
00:05:10,570 --> 00:05:16,900
By looking at the analysis perspective, we can see that the design execution spans or five steps.

60
00:05:17,240 --> 00:05:23,140
Therefore, the design requires some memory cells, such as flipflops, to transfer data between steps.

61
00:05:24,800 --> 00:05:30,770
As can be seen, the synthesis process has utilized a pipeline multiplier to implement the multiplication

62
00:05:30,770 --> 00:05:31,850
operator in the code.

63
00:05:34,020 --> 00:05:40,710
The timing constraint is not the only parameter that impact on the result resource constraint is also

64
00:05:40,710 --> 00:05:43,380
another parameter that will be explained in the next election.

65
00:05:44,580 --> 00:05:46,210
These are our takeaway messages.

66
00:05:47,100 --> 00:05:53,150
There's a time constraint attached to each design in each of us choosing a proper clock period supports

67
00:05:53,160 --> 00:05:56,750
the Etchells to synthesize a description into a combination of Circa.

68
00:05:59,290 --> 00:06:04,870
Now, the quest for this election find a proper value for the clock period in which rather rituals to

69
00:06:04,870 --> 00:06:07,600
synthesize the following code into a combination of.
