﻿1
00:00:01,490 --> 00:00:05,780
Welcome to live classics the final lab of course the multiplier.

2
00:00:05,930 --> 00:00:09,950
Now at this time you guys are probably pros and I only need to go through describing the shows even

3
00:00:10,070 --> 00:00:12,000
if you probably already have it working on your board.

4
00:00:12,140 --> 00:00:16,320
However I will still go through and show you my version of the multiplier.

5
00:00:16,330 --> 00:00:22,850
Now about you guys but this is a lot of fun for me so I hope that maybe someday we could another course.

6
00:00:22,850 --> 00:00:25,480
I hope you guys go out and start teaching courses of your own.

7
00:00:25,640 --> 00:00:30,200
I don't know that I could VHDL for days if you're really bored let's go.

8
00:00:30,200 --> 00:00:30,550
All right.

9
00:00:30,550 --> 00:00:31,510
Here it is.

10
00:00:31,570 --> 00:00:32,760
Laughs 6.

11
00:00:32,810 --> 00:00:40,170
The final lab multiplier running on bases to board and from the file I gave you.

12
00:00:40,310 --> 00:00:47,480
He will have input 1 and input 2 which are indicated by these by Ace which is divided.

13
00:00:47,480 --> 00:00:53,290
Here is the first four on the right and one second for our input two.

14
00:00:53,290 --> 00:00:59,540
However it doesn't matter because we're multiplying and as you know you must play by the time they get

15
00:00:59,540 --> 00:01:08,190
the same result and the product is all one the occasion is indicated by these eight ladies here.

16
00:01:08,390 --> 00:01:14,600
And then we got this button right here starter which indicates for us to go and do multiplication and

17
00:01:14,690 --> 00:01:17,190
reset here on the far right.

18
00:01:17,780 --> 00:01:22,230
So I'm I going to give you a quick penetration how this should look run on your board.

19
00:01:22,400 --> 00:01:26,800
So for example here right now I've got all zeroes which is zero.

20
00:01:26,840 --> 00:01:28,370
So I should get a 0.

21
00:01:28,370 --> 00:01:31,130
Now what I'm going to get in one.

22
00:01:31,370 --> 00:01:36,080
However my input 2 is still zero one time zero should still be zero.

23
00:01:37,010 --> 00:01:40,710
Which is as we see there now input 2.

24
00:01:40,820 --> 00:01:42,940
I'm going to go ahead and make that one.

25
00:01:43,640 --> 00:01:49,280
And we should see a single Elodie light up right there which is a binary indication of the number one

26
00:01:50,570 --> 00:01:51,420
and we do.

27
00:01:51,680 --> 00:01:54,020
And suffice it to say again it's the same thing.

28
00:01:54,110 --> 00:01:59,060
I can toggle that down which is now zero times when we get to zero.

29
00:01:59,060 --> 00:02:00,550
However if I start it up again.

30
00:02:00,590 --> 00:02:07,490
Give us one our reset is used to clear that so I can go ahead hit the reset button and instantly clear

31
00:02:07,490 --> 00:02:08,090
is that.

32
00:02:08,190 --> 00:02:15,950
Now does the difference between this reset and the resets and the other lapse is that this reset isn't

33
00:02:16,040 --> 00:02:20,280
indicated in the clock process.

34
00:02:20,480 --> 00:02:23,510
We aren't manually inflame the thought process.

35
00:02:23,510 --> 00:02:25,640
The clock is running at 50 megahertz.

36
00:02:25,700 --> 00:02:31,520
So as soon as I hit that it instantly picks it up and knows that OK this is very sad.

37
00:02:31,520 --> 00:02:37,690
So you go through you can do different variations and I'll do two.

38
00:02:37,730 --> 00:02:46,820
Two times one is me evaluate two or two three times one is you guys three sorry three times three which

39
00:02:46,910 --> 00:02:54,660
gives you a value of nine which you see there are binary 1 0 0 1 which is the binary value of 9.

40
00:02:54,980 --> 00:03:02,860
So you can go through it and you can do all of these here and I'll still solve your situation which

41
00:03:02,860 --> 00:03:04,850
is I don't even know what that is on me.

42
00:03:04,930 --> 00:03:05,810
But that's a big number.

43
00:03:05,810 --> 00:03:06,780
So you can go ahead.

44
00:03:06,920 --> 00:03:08,410
This calculator out and test it.

45
00:03:08,420 --> 00:03:13,640
And if the values are multiplying against each other or showing up there in binary you're getting correct

46
00:03:13,640 --> 00:03:16,550
results then your life is working correctly.

47
00:03:16,610 --> 00:03:25,810
And the reason we do this is because FPGA is by nature really are not designed for for most application

48
00:03:26,490 --> 00:03:35,270
that's easy on the bases to board only has four dedicated multipliers and there are 18 bits wide.

49
00:03:35,270 --> 00:03:42,160
So if you have an algorithm you want to run where you've got 20 bets you multiply by 20 bets.

50
00:03:42,350 --> 00:03:48,320
You can't really do that unless you know how to do this type of multiplication which seems a lot more

51
00:03:48,320 --> 00:03:54,170
complicated but because you just keep shifting and adding and shifting and adding But you know we can

52
00:03:54,320 --> 00:03:57,140
based on our generic beer which we set up for.

53
00:03:57,170 --> 00:03:59,180
That's just because we have a mess here.

54
00:03:59,360 --> 00:04:04,970
But you could theoretically set that to 32 and you have a 32 by 32 bit at or you just have to find a

55
00:04:04,970 --> 00:04:06,700
different way displaying it.

56
00:04:06,800 --> 00:04:13,270
But and so you know if you have any problems with this you know feel free to send me an e-mail.

57
00:04:13,270 --> 00:04:17,750
This is this is the toughest lab and I understand it's very difficult.

58
00:04:17,750 --> 00:04:19,700
We're implementing processes.

59
00:04:19,700 --> 00:04:25,280
We've got a state machine there and so it's not it's not an easy thing to go through and it'll take

60
00:04:25,280 --> 00:04:26,030
you some time.

61
00:04:26,030 --> 00:04:31,610
I know when I first went through it it was several hours of tinkering around and going through models

62
00:04:31,640 --> 00:04:33,590
and trying to figure out how to make it work.

63
00:04:33,600 --> 00:04:36,450
Throwing it on the board doesn't seem to be working right.

64
00:04:36,800 --> 00:04:39,590
But you know if you don't just don't give up.

65
00:04:39,590 --> 00:04:44,360
You know if you if you can't get it and you're really stuck send me an email and I'll be more than happy

66
00:04:44,360 --> 00:04:44,860
to help.

