1
00:00:00,060 --> 00:00:05,340
So I would assume the nation is successful, so we proceed to its export and hardware file, so we go

2
00:00:05,340 --> 00:00:11,810
to file export export hardware, and this will be including a bitstream right to ventilate included

3
00:00:11,870 --> 00:00:12,180
shrimp.

4
00:00:12,330 --> 00:00:17,070
And then we'll be selecting the theme direct where we have the virus isolate.

5
00:00:17,070 --> 00:00:19,080
So click next and click Finish.

6
00:00:19,530 --> 00:00:25,140
So once we successfully export an hardware platform, look to the directory.

7
00:00:25,140 --> 00:00:29,790
We will be launching an SDK so we go to tools and launch where it is 80.

8
00:00:31,090 --> 00:00:39,010
Now here, as discussed, will be to choosing the same territory where we have created the new vital

9
00:00:39,010 --> 00:00:39,760
project, right?

10
00:00:40,850 --> 00:00:46,820
So we'll go ahead and click on this browse button and then we are onto a project, right?

11
00:00:46,820 --> 00:00:51,500
So we'll just be selecting the same folder and then launching our white society.

12
00:00:52,730 --> 00:00:58,100
So first step is to create a platform project, right, so we go to create platform project.

13
00:00:58,430 --> 00:01:01,570
We'll just be naming this as well, China.

14
00:01:01,940 --> 00:01:02,240
Right.

15
00:01:02,240 --> 00:01:05,420
So click next and then we'll look for the platform.

16
00:01:05,690 --> 00:01:09,220
So we selected a new platform from ICSI.

17
00:01:09,290 --> 00:01:10,650
Click on Browse Button.

18
00:01:11,090 --> 00:01:17,210
We go to the directory where we have our excessive weight, right?

19
00:01:17,210 --> 00:01:19,420
So it is in the folder project fi.

20
00:01:19,460 --> 00:01:21,590
So it will just be selecting an extensive file.

21
00:01:22,010 --> 00:01:24,910
Click Open and then we'll just be clicking on.

22
00:01:25,090 --> 00:01:32,090
And so once platform is ready, we are allowed to create new application rates that will be selecting

23
00:01:32,090 --> 00:01:32,810
the platform.

24
00:01:32,840 --> 00:01:38,720
Now here you could see this viewed as out of date, so a good idea will be to build up our project first

25
00:01:39,530 --> 00:01:42,130
so that out of date status will be gone.

26
00:01:42,140 --> 00:01:49,520
So once that is gone, we are right now ready to create a new application project to select the platform

27
00:01:49,520 --> 00:01:54,560
project, right click and then you have new application project.

28
00:01:55,070 --> 00:01:55,370
Right?

29
00:01:55,760 --> 00:01:57,260
So we'll click next.

30
00:01:57,260 --> 00:01:59,980
And this is the platform that we have, right?

31
00:01:59,990 --> 00:02:04,220
So this is the platform that we have generated in and we will do and I didn't do.

32
00:02:04,220 --> 00:02:08,660
I just click next and we'll just be naming this as dual.

33
00:02:08,810 --> 00:02:14,750
I underscore, I step right click next and we'll be choosing standalone.

34
00:02:15,880 --> 00:02:21,820
And the Hallowell template, so Hallowell template, given access to the API that could be used to use

35
00:02:21,820 --> 00:02:22,720
and you are great.

36
00:02:23,080 --> 00:02:28,810
So once our application project is ready, we go to a school step where we have all the C files, right?

37
00:02:28,810 --> 00:02:35,200
So we go to an to or see which consists of our mean code, which will be executed on an FPGA.

38
00:02:35,200 --> 00:02:43,150
So we'll be going ahead and start hiding the code that allows us to use such API to pay for it and use

39
00:02:43,150 --> 00:02:45,070
both the channel of GPA, right?

40
00:02:46,610 --> 00:02:53,750
Now, if you go to the SBIR flight, OK, so this highlight all the important drivers that we required

41
00:02:54,020 --> 00:02:59,300
OK to correctly use to both go so far as GPIO, we have a TBI right.

42
00:02:59,690 --> 00:03:02,600
There will be including that as a first driver.

43
00:03:02,600 --> 00:03:04,940
So harsh include fluky.

44
00:03:04,940 --> 00:03:08,040
And then we have our next shortage, right?

45
00:03:08,060 --> 00:03:14,150
So we just need to add a prefix to the driver, which is highlighted in that broad support package,

46
00:03:14,150 --> 00:03:14,360
right?

47
00:03:14,370 --> 00:03:21,910
So if you observe the board support package, highlight the driver for our say or zero instance as GPIO,

48
00:03:22,250 --> 00:03:26,170
we will just be adding a Prefixes X and this creates a driver for us.

49
00:03:26,370 --> 00:03:28,070
So this is all those links.

50
00:03:28,070 --> 00:03:29,850
Recognize the driver for different.

51
00:03:30,740 --> 00:03:36,080
The next important thing that we required, which consist of all the hardware related information,

52
00:03:36,080 --> 00:03:43,820
is the X parameter dot h of this two files that are enough to correctly build up the application for

53
00:03:43,820 --> 00:03:44,840
any of that.

54
00:03:44,930 --> 00:03:49,250
So once we are ready with this, we will be exploring GPI.

55
00:03:49,350 --> 00:03:52,790
Now we already know that this consists of two structure, right?

56
00:03:52,790 --> 00:03:56,960
So we required one fixed structure as well as an instance structure.

57
00:03:56,960 --> 00:04:01,580
So we'll be creating a pointer for in config structure.

58
00:04:01,850 --> 00:04:05,820
We'll just be naming this as GPIO config, right?

59
00:04:05,870 --> 00:04:10,880
The next one that we require is an instance structure, so we'll just be adding it over here and we

60
00:04:10,880 --> 00:04:12,410
named it as GPI, right?

61
00:04:12,770 --> 00:04:16,550
Then we will be including an independent GPI init function.

62
00:04:16,670 --> 00:04:17,030
OK.

63
00:04:17,900 --> 00:04:24,320
To initialize our periphery now, if you calculated the number of instances of GPI that we have utilized,

64
00:04:24,320 --> 00:04:27,590
so we only have a single GPI instance, right?

65
00:04:27,590 --> 00:04:32,950
So we just need to create a single instance and config structure.

66
00:04:32,960 --> 00:04:34,370
Remember this fact in mind.

67
00:04:34,610 --> 00:04:41,660
So as we proceed further and add multiple instances of an IP, so there, for each instance of an IP,

68
00:04:41,660 --> 00:04:45,350
you need to declare an independent config, an instance structure.

69
00:04:45,590 --> 00:04:51,920
So here we only have a single IP, so we'll just be declaring single config an instance structure,

70
00:04:51,950 --> 00:04:52,180
right?

71
00:04:52,190 --> 00:04:58,490
So once this is done, we go ahead and will select GPIO config and this to be equal to.

72
00:04:58,830 --> 00:05:02,210
Now the lookup config is something which will be.

73
00:05:03,470 --> 00:05:05,930
Returning the conflict structure for a straight.

74
00:05:07,170 --> 00:05:09,240
So we go to the GPO driver.

75
00:05:10,210 --> 00:05:11,650
And copy look upon.

76
00:05:12,570 --> 00:05:13,740
Delighted over here.

77
00:05:13,980 --> 00:05:20,970
And this just required and device I.D. as the argument rate and device ID could be found out from experimental

78
00:05:20,970 --> 00:05:23,520
daughter, which will be looking forward to pill.

79
00:05:24,090 --> 00:05:29,640
And here we have our device I.D. So this device I.D. will be adding who are here?

80
00:05:29,640 --> 00:05:32,880
And this basically indeed the config structure for us.

81
00:05:34,240 --> 00:05:36,370
So once we have our phone fixed up to ready.

82
00:05:38,040 --> 00:05:40,660
We use The BFG initially, right, so we go ahead.

83
00:05:40,750 --> 00:05:43,200
We copy CFG initials.

84
00:05:43,830 --> 00:05:44,850
And this requires No.

85
00:05:44,850 --> 00:05:45,900
Three argument, right?

86
00:05:45,900 --> 00:05:48,570
So it's just structure, config structure, and they'll be set free.

87
00:05:48,620 --> 00:05:49,730
So we'll be adding it.

88
00:05:49,770 --> 00:05:53,360
We're here and this is again written the status of an initialization.

89
00:05:53,370 --> 00:05:54,600
So we'll just be adding.

90
00:05:56,630 --> 00:05:59,640
Cheetahs will be close to the initial phase.

91
00:06:00,080 --> 00:06:01,430
This requires three things eight.

92
00:06:02,840 --> 00:06:03,950
The instant sector.

93
00:06:05,320 --> 00:06:06,400
Conflict structure.

94
00:06:07,240 --> 00:06:12,990
And the Basic Trust, which could be invoked from a conflict structure, it's such a GPIO fake.

95
00:06:13,180 --> 00:06:15,400
OK, and then you have this operator.

96
00:06:17,250 --> 00:06:19,450
And then we'll just be utilizing be soldiers.

97
00:06:19,690 --> 00:06:24,780
So this complete the process of initialization of our personnel now will just be verifying whether the

98
00:06:24,780 --> 00:06:26,760
initialization is successful or not.

99
00:06:26,760 --> 00:06:32,730
So we just need to make sure that the studios value is equals to excess to success.

100
00:06:32,730 --> 00:06:35,610
And if that is the case, we will just be adding.

101
00:06:37,390 --> 00:06:38,220
GPA, you.

102
00:06:39,510 --> 00:06:42,750
He nicked sexist health.

103
00:06:43,820 --> 00:06:46,910
Nicole just mentioned Dubai, and it's right.

104
00:06:48,620 --> 00:06:54,170
So this completes the process of initialization now we just need to correctly said the direction for

105
00:06:54,170 --> 00:06:57,440
the change and then we are ready to work around with the data, right?

106
00:06:57,830 --> 00:07:05,450
So we will be calling the autopilot function in our main application to go ahead and copy GPI.

107
00:07:05,450 --> 00:07:06,260
We need to wait here.

108
00:07:06,260 --> 00:07:11,180
So we need platform allow us to utilize you without any initialization.

109
00:07:11,180 --> 00:07:14,150
So this will automatically do an initialization for us.

110
00:07:14,840 --> 00:07:19,550
Now we already know that the first channel is where we have our switches, right?

111
00:07:19,550 --> 00:07:22,630
So we need to set that pins as an input port, OK?

112
00:07:22,940 --> 00:07:28,840
And the Channel two is where we have our leads so that all 16 pins should be set as an output.

113
00:07:28,980 --> 00:07:29,290
Great.

114
00:07:29,570 --> 00:07:37,280
So we go to an GPI outage and then we utilize said data detection rate to this required first instance,

115
00:07:37,670 --> 00:07:38,840
then the channel number.

116
00:07:39,080 --> 00:07:41,710
And finally, the number of bits that you want to set.

117
00:07:41,710 --> 00:07:42,020
Great.

118
00:07:42,020 --> 00:07:42,920
So we go ahead.

119
00:07:43,460 --> 00:07:45,050
We use this API.

120
00:07:45,440 --> 00:07:45,770
OK.

121
00:07:45,800 --> 00:07:47,030
Here they instance.

122
00:07:47,030 --> 00:07:49,070
Structure is how you write.

123
00:07:49,370 --> 00:07:53,510
Then the chain and the specification of force channel, we are specifying.

124
00:07:53,780 --> 00:08:03,620
So here we want to set the 16 bit OK as an input because we have a 16s, which is available on the book,

125
00:08:03,620 --> 00:08:03,890
right?

126
00:08:03,890 --> 00:08:06,770
So we just need to add if, if!

127
00:08:06,980 --> 00:08:07,280
Right?

128
00:08:07,280 --> 00:08:11,930
So it's indicate that we are specifying number in and hexadecimal format.

129
00:08:11,930 --> 00:08:15,790
So for hexadecimal digit is equivalent to 16 bit rate.

130
00:08:15,800 --> 00:08:19,490
So this will automatically set Channel one OK as an input.

131
00:08:19,490 --> 00:08:26,630
Bowling alleys b 16 bit out of the 32 bit that this function support will be set as an input rate.

132
00:08:27,020 --> 00:08:34,520
Similarly, we need to set the second channel LSP 16 bit as an output rate, so we'll just be copying

133
00:08:34,520 --> 00:08:35,510
dysfunction again.

134
00:08:36,350 --> 00:08:39,920
Then we will be choosing the channel number to be two.

135
00:08:40,220 --> 00:08:43,700
OK, and this we want to set as an output to set an output.

136
00:08:43,700 --> 00:08:45,380
We just need to apply the right.

137
00:08:45,680 --> 00:08:50,630
So this will dissect Channel one as input.

138
00:08:51,320 --> 00:08:59,810
OK, so that we will be reading the data from this switches and this will state channel to add output

139
00:08:59,810 --> 00:09:04,550
so we could send the data that we need from the switches to NLE.

140
00:09:04,550 --> 00:09:10,720
Right now, what we are going to do is add an interval of one second will be reading the status of switches,

141
00:09:10,730 --> 00:09:15,890
OK, and the value that we get from the switches will be sending on any right.

142
00:09:15,890 --> 00:09:17,360
So this will be our application.

143
00:09:17,660 --> 00:09:18,460
So while one.

144
00:09:19,700 --> 00:09:25,250
Well, first declared one variable, which will be storing the switch evaluates the utility is what

145
00:09:25,820 --> 00:09:27,710
discrete read returns rate.

146
00:09:27,720 --> 00:09:29,990
So if you just explodes UPI, whatever.

147
00:09:30,200 --> 00:09:34,670
So we have a discrete read which basically read the data from an input.

148
00:09:34,670 --> 00:09:36,410
Put this written you thirty two.

149
00:09:36,410 --> 00:09:42,620
So we need to declare you 32, and we'll just be naming this as data read Let it just initialize it

150
00:09:42,620 --> 00:09:43,310
to a zero.

151
00:09:43,790 --> 00:09:46,730
So we proceed with data read.

152
00:09:47,880 --> 00:09:53,550
And we'll be updating it with a value that we get from this, which is right there to do that, you'll

153
00:09:53,550 --> 00:09:55,380
just be calling a discreet read.

154
00:09:55,460 --> 00:09:59,280
OK, here we are required to buy a sentence in structure, right?

155
00:09:59,280 --> 00:10:00,690
So sentence and texture.

156
00:10:01,830 --> 00:10:07,610
They specify the next days you just need to specify the chain ratio for the China list China.

157
00:10:07,900 --> 00:10:08,160
Right?

158
00:10:08,670 --> 00:10:14,420
So once that is done now, we are ready to send the leader that we have on and on to an immediate end.

159
00:10:14,430 --> 00:10:17,580
So to do that, we have discrete write function.

160
00:10:17,850 --> 00:10:18,220
OK.

161
00:10:18,240 --> 00:10:21,170
So we'll be calling this function.

162
00:10:21,180 --> 00:10:24,300
This requires first an instance structure.

163
00:10:24,870 --> 00:10:26,520
Then the China number, right?

164
00:10:26,520 --> 00:10:33,780
So for fortunately, we are having Channel two look OK and the last one represent the data, right?

165
00:10:33,810 --> 00:10:41,130
The data will be the data that we read from a switch get, which is inside it, and we need to repeat

166
00:10:41,130 --> 00:10:44,270
this algorithm after an interval of one second.

167
00:10:44,280 --> 00:10:49,280
So we will be utilizing the sleep function that we have, which indeed that highly.

168
00:10:50,230 --> 00:10:51,310
In second, right?

169
00:10:51,610 --> 00:10:57,350
So depending on the number that you specify as an argument, that will be the delay generated in second

170
00:10:57,350 --> 00:11:01,630
to since here we specify when so this will generate a delay of one second rate.

171
00:11:02,110 --> 00:11:03,580
So this complete our application.

172
00:11:03,580 --> 00:11:06,190
What we did is we perform an initialization.

173
00:11:06,350 --> 00:11:13,810
OK, since we have only a single IP present, we only required to declare a single instance structure

174
00:11:13,810 --> 00:11:15,730
and single config structure.

175
00:11:16,780 --> 00:11:23,050
The initialization process is exactly similar to what we did in the previous case, so we need to first

176
00:11:23,050 --> 00:11:30,130
use look up config where we pass device 80, then the AFGE initialize where we will be adding the conflict

177
00:11:30,130 --> 00:11:32,920
structure, instant structure and the basic rate.

178
00:11:32,920 --> 00:11:37,750
Then we are checking the value of a status, whether it is equal to existing success or not.

179
00:11:37,990 --> 00:11:41,610
If that is the case, we are printing GPI and it is successful else.

180
00:11:41,620 --> 00:11:46,510
We are just printing GPI when it failed and in the mean application, first thing that we are doing

181
00:11:46,510 --> 00:11:48,790
is we are setting up correct detection.

182
00:11:49,000 --> 00:11:51,890
And once that is done, we are ready to play with the data, right?

183
00:11:51,900 --> 00:11:58,510
So we declare you 32 because that is the value that has been written by discrete read function, right?

184
00:11:58,780 --> 00:12:02,890
And this required just an instant structure and channel number, right?

185
00:12:03,400 --> 00:12:08,060
Then we are writing the value that we have and then later added on to an elderly.

186
00:12:08,110 --> 00:12:13,440
So that is on Channel two and this we are doing at an interval of one tick, right?

187
00:12:13,450 --> 00:12:16,660
So let's just go ahead and try to build our entire project.

188
00:12:16,960 --> 00:12:20,890
It will just be clicking on Control B. So this will build up our entire project.

189
00:12:20,890 --> 00:12:22,450
So once, but it is successful.

190
00:12:22,840 --> 00:12:28,780
Now we are ready to perform execution of our code on to an FPGA, right?

191
00:12:28,780 --> 00:12:29,620
So we go ahead.

192
00:12:30,430 --> 00:12:38,670
We select an application project rate right click and then we have a debug as a launch hardware, right?

193
00:12:38,680 --> 00:12:41,590
So this will switch our window to debug perspective.

194
00:12:41,830 --> 00:12:43,900
And then we have a white serial terminated.

195
00:12:43,900 --> 00:12:47,260
Along with that, it will also automatically program our FPGA right.

196
00:12:47,260 --> 00:12:53,170
So once programming is successful and you are in a design debug perspective, you go to a white this

197
00:12:53,170 --> 00:12:53,660
terminal.

198
00:12:53,680 --> 00:12:56,130
Here we will be connecting to serial terminal.

199
00:12:56,140 --> 00:13:02,410
So this helps us to analyze the messages that we are getting OK as we execute our application.

200
00:13:02,420 --> 00:13:03,880
So click on this plus button.

201
00:13:04,900 --> 00:13:05,380
Select.

202
00:13:05,800 --> 00:13:12,430
Com six and then nine six zero zero rate, the discount will be wearing depending on the comfort that

203
00:13:12,430 --> 00:13:13,060
you have.

204
00:13:13,490 --> 00:13:16,270
We'll give you connected your FPGA, right?

205
00:13:16,270 --> 00:13:22,710
So once that is done, then we are ready to click on this resume button to will just be clicking on

206
00:13:22,720 --> 00:13:23,410
resume button.

207
00:13:23,770 --> 00:13:27,820
So here you could really absorb that GPI, you and it is successful.

208
00:13:28,090 --> 00:13:34,980
And now I, as I change the status of the switch, you could absorb that LCD.

209
00:13:35,620 --> 00:13:38,770
So I also your anymore, right?
