1
00:00:01,210 --> 00:00:04,500
How can we show the usage of function pipelining in each of us?

2
00:00:05,700 --> 00:00:11,580
This lecture uses a simple example to demonstrate the benefit of using function pipelining.

3
00:00:14,730 --> 00:00:19,570
Let's consider a one digit B, C, the counter, which counts from zero to nine.

4
00:00:20,130 --> 00:00:22,440
It has one input and two outputs.

5
00:00:23,070 --> 00:00:30,180
It counts when it receives a single cycle pulse on its input and generates the seven segment data and

6
00:00:30,180 --> 00:00:33,300
enables signals to derive a seven segment display.

7
00:00:36,150 --> 00:00:42,110
Let's ascribe the one to the counter with a two cyclogenesis coat and study its behavior.

8
00:00:44,510 --> 00:00:50,240
First, we define a constant air containing all the certain segment codes from zero to nine.

9
00:00:50,720 --> 00:00:55,910
Now we should define the top function that receives an input and generates two outputs.

10
00:00:56,840 --> 00:01:01,230
We should define a static variable to keep the counter value as its current state.

11
00:01:01,910 --> 00:01:07,150
Then we can check the input and when it is one, we should increment the counter state.

12
00:01:07,640 --> 00:01:10,700
If the counter value is nine, we will rewind that.

13
00:01:12,660 --> 00:01:17,160
Finally, we should provide the corresponding seven segment code and enable signals.

14
00:01:21,300 --> 00:01:23,380
Now, let's have a look at the syntheses report.

15
00:01:24,000 --> 00:01:30,440
The design takes two clock cycles to finish, which is against our single cycle design technique.

16
00:01:31,740 --> 00:01:36,820
This means the design can process the received data correctly every two cycles.

17
00:01:37,320 --> 00:01:43,350
Therefore, some of the input pulses may not have a chance to be processed correctly by the count.

18
00:01:48,230 --> 00:01:52,910
Let's synthesize this seven segment driver code and study its behavior on the board.

19
00:01:54,200 --> 00:02:00,350
Creative want such socialist project and add the design and test which parts you can find these files

20
00:02:00,530 --> 00:02:03,350
in the resources folder attached to the selection.

21
00:02:04,220 --> 00:02:07,760
First, examine the code and then synthesize that.

22
00:02:32,030 --> 00:02:33,700
Have a look at the analysis perspective.

23
00:02:34,650 --> 00:02:39,570
And make sure that the design requires two cycles to finish, then generate the corresponding.

24
00:02:45,240 --> 00:02:51,810
Now, creative with the project and of the IP to the design area, in addition, added the bouncer and

25
00:02:51,810 --> 00:02:52,770
the pulse generator.

26
00:02:53,700 --> 00:02:59,700
You can find all the IPIS in the resources folder attached to this lecture after adding the designs

27
00:02:59,700 --> 00:03:03,430
physical constraint generated by the stream and programmed aboard.

28
00:03:55,520 --> 00:03:57,830
Now check the design in action.

29
00:03:58,950 --> 00:04:04,920
By pressing each key, the counters should be incremented, however, as it takes to clock cycles and

30
00:04:04,920 --> 00:04:08,290
only on the first clock edge, it can accept the input.

31
00:04:08,820 --> 00:04:14,970
There is only 50 percent of chance that our Prensky results in and encouragement in the count.

32
00:04:55,330 --> 00:05:01,030
There are three ways to solve this problem try to redesign the counter and follow the single cycle design

33
00:05:01,030 --> 00:05:01,690
methodology.

34
00:05:03,210 --> 00:05:06,650
Provide input data for the design when it's ready.

35
00:05:08,760 --> 00:05:12,000
Using the pipeline MICRA architecture to implement the design.

36
00:05:15,060 --> 00:05:20,540
As we saw before, throughout the course, we can use this function to access the summit segment code

37
00:05:20,670 --> 00:05:27,000
for a given digit, it contains a switch case, a statement to provide a single cycle design for the

38
00:05:27,000 --> 00:05:29,160
one digit some segment driver or second.

39
00:05:31,700 --> 00:05:38,060
The second solution is based on the hand checking mechanism in which we give the input to a design only

40
00:05:38,060 --> 00:05:38,810
when it's ready.

41
00:05:39,950 --> 00:05:45,020
I will talk about this concept and the related features in Etchells in a separate section.

42
00:05:46,730 --> 00:05:51,750
The third solution is employing the function pipelining with the initiation into one on one.

43
00:05:52,430 --> 00:05:56,030
In this case, the design can accept input at all.

44
00:05:59,650 --> 00:06:05,180
How can we apply the function pipelining to our segment driver code the next lecture?

45
00:06:05,290 --> 00:06:06,370
We'll answer this question.

46
00:06:08,510 --> 00:06:10,130
These are our takeaway messages.

47
00:06:11,130 --> 00:06:16,400
A multi psychologic design generally cannot accept inputs at all ages.

48
00:06:18,420 --> 00:06:23,790
There are three ways to solve this issue, modifying the code to follow the single cycle design flaw.

49
00:06:24,950 --> 00:06:30,950
Using the handshaking mechanism between modules, using the pipelining techniques with the initiation

50
00:06:30,950 --> 00:06:32,060
interval of one.

51
00:06:35,160 --> 00:06:40,800
Now, the quiz question utilized the show display function mentioned earlier in this lecture in the

52
00:06:40,800 --> 00:06:46,530
seven segment Reiger code and check the final design on the board and make sure that the counter accepts

53
00:06:47,070 --> 00:06:47,410
its.
