OpenCores
URL https://opencores.org/ocsvn/lfsr_randgen/lfsr_randgen/trunk

Subversion Repositories lfsr_randgen

[/] [lfsr_randgen/] [trunk/] [lfsr_pkg.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 lal87
----------------------------------------------------------------------------
2
---- Create Date:    14:30:08 07/28/2010                                                                                        ----            
3
---- Design Name: lfsr_pkg                                                                                                                      ----                            
4
---- Project Name: lfsr_randgen                                                                                                    ---- 
5
---- Description:                                                                                                                                               ----    
6
----  This is the package file used in the lfsr_randgen project.The     ----
7
----  package contain the function for XORing bits from various tap     ----
8
----  locations depending on the generic parameter(width of lfsr )      ----    
9
----                                                                                                                                                                                    ----    
10
----------------------------------------------------------------------------
11
----                                                                    ----
12
---- This file is a part of the lfsr_randgen project at                 ----
13
---- http://www.opencores.org/                                                                  ----
14
----                                                                    ----
15
---- Author(s):                                                         ----
16
----   Vipin Lal, lalnitt@gmail.com                                     ----
17
----                                                                    ----
18
----------------------------------------------------------------------------
19
----                                                                    ----
20
---- Copyright (C) 2010 Authors and OPENCORES.ORG                       ----
21
----                                                                    ----
22
---- This source file may be used and distributed without               ----
23
---- restriction provided that this copyright statement is not          ----
24
---- removed from the file and that any derivative work contains        ----
25
---- the original copyright notice and the associated disclaimer.       ----
26
----                                                                    ----
27
---- This source file is free software; you can redistribute it         ----
28
---- and/or modify it under the terms of the GNU Lesser General         ----
29
---- Public License as published by the Free Software Foundation;       ----
30
---- either version 2.1 of the License, or (at your option) any         ----
31
---- later version.                                                     ----
32
----                                                                    ----
33
---- This source is distributed in the hope that it will be             ----
34
---- useful, but WITHOUT ANY WARRANTY; without even the implied         ----
35
---- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR            ----
36
---- PURPOSE. See the GNU Lesser General Public License for more        ----
37
---- details.                                                           ----
38
----                                                                    ----
39
---- You should have received a copy of the GNU Lesser General          ----
40
---- Public License along with this source; if not, download it         ----
41
---- from http://www.opencores.org/lgpl.shtml                           ----
42
----                                                                    ----
43
----------------------------------------------------------------------------
44
 
45
library ieee;
46
use ieee.std_logic_1164.all;
47
use ieee.std_logic_arith.all;
48
use ieee.std_logic_unsigned.all;
49
 
50
package lfsr_pkg is
51
 
52
function xor_gates( random : std_logic_vector) return std_logic;
53
 
54
end lfsr_pkg;
55
 
56
--Package body starts from here.
57
package body lfsr_pkg is
58
 
59
--function for XORing from tap values.
60
function xor_gates( random : std_logic_vector ) return std_logic is
61
 
62
variable xor_out : std_logic:='0';
63
variable rand : std_logic_vector(random'length-1 downto 0):=random;
64
 
65
begin
66
if(rand'length = 3) then           --3
67
xor_out := rand(2) xor rand(1);
68
elsif(rand'length = 4) then               --4   
69
xor_out := rand(3) xor rand(2);
70
elsif(rand'length = 5) then               --5
71
xor_out := rand(4) xor rand(2);
72
elsif(rand'length = 6) then               --6
73
xor_out := rand(5) xor rand(4);
74
elsif(rand'length = 7) then               --7   
75
xor_out := rand(6) xor rand(5);
76
elsif(rand'length = 8) then               --8
77
xor_out := rand(7) xor rand(5) xor rand(4) xor rand(3);
78
elsif(rand'length = 9) then               --9   
79
xor_out := rand(8) xor rand(4);
80
elsif(rand'length = 10)then               --10  
81
xor_out := rand(9) xor rand(6);
82
elsif(rand'length =11) then               --11
83
xor_out := rand(10) xor rand(8);
84
elsif(rand'length = 12) then              --12
85
xor_out := rand(11) xor rand(5) xor rand(3) xor rand(0);
86
elsif(rand'length = 13) then              --13  
87
xor_out := rand(12) xor rand(3) xor rand(2) xor rand(0);
88
elsif(rand'length = 14) then              --14  
89
xor_out := rand(13) xor rand(4) xor rand(2) xor rand(0);
90
elsif(rand'length = 15) then              --15
91
xor_out := rand(14) xor rand(13);
92
elsif(rand'length = 16) then              --16
93
xor_out := rand(15) xor rand(14) xor rand(12) xor rand(3);
94
elsif(rand'length = 17) then              --17
95
xor_out := rand(16) xor rand(13);
96
elsif(rand'length = 18) then              --18
97
xor_out := rand(17) xor rand(10);
98
elsif(rand'length = 19) then              --19
99
xor_out := rand(18) xor rand(5) xor rand(1) xor rand(0);
100
elsif(rand'length = 20) then              --20
101
xor_out := rand(19) xor rand(16);
102
elsif(rand'length = 21) then              --21
103
xor_out := rand(20) xor rand(18);
104
elsif(rand'length = 22) then              --22
105
xor_out := rand(21) xor rand(20);
106
elsif(rand'length = 23) then              --23
107
xor_out := rand(22) xor rand(17);
108
elsif(rand'length = 24) then              --24
109
xor_out := rand(23) xor rand(22) xor rand(21) xor rand(16);
110
elsif(rand'length = 25) then              --25
111
xor_out := rand(24) xor rand(21);
112
elsif(rand'length = 26) then              --26
113
xor_out := rand(25) xor rand(5) xor rand(1) xor rand(0);
114
elsif(rand'length = 27) then              --27
115
xor_out := rand(26) xor rand(4) xor rand(1) xor rand(0);
116
elsif(rand'length = 28) then              --28
117
xor_out := rand(27) xor rand(24);
118
elsif(rand'length = 29) then              --29
119
xor_out := rand(28) xor rand(26);
120
elsif(rand'length = 30) then              --30
121
xor_out := rand(29) xor rand(5) xor rand(3) xor rand(0);
122
elsif(rand'length = 31) then              --31
123
xor_out := rand(30) xor rand(27);
124
elsif(rand'length = 32) then              --32
125
xor_out := rand(31) xor rand(21) xor rand(1) xor rand(0);
126
elsif(rand'length = 33) then              --33
127
xor_out := rand(32) xor rand(19);
128
elsif(rand'length = 34) then              --34
129
xor_out := rand(33) xor rand(26) xor rand(1) xor rand(0);
130
elsif(rand'length = 35) then              --35
131
xor_out := rand(34) xor rand(32);
132
elsif(rand'length = 36) then              --36
133
xor_out := rand(35) xor rand(24);
134
elsif(rand'length = 37) then              --37
135
xor_out := rand(36) xor rand(4) xor rand(3) xor rand(2) xor rand(1) xor rand(0);
136
elsif(rand'length = 38) then              --38
137
xor_out := rand(37) xor rand(5) xor rand(4) xor rand(0);
138
elsif(rand'length = 39) then              --39
139
xor_out := rand(38) xor rand(34);
140
elsif(rand'length = 40) then              --40
141
xor_out := rand(39) xor rand(37) xor rand(20) xor rand(18);
142
elsif(rand'length = 41) then              --41
143
xor_out := rand(40) xor rand(37);
144
elsif(rand'length = 42) then              --42
145
xor_out := rand(41) xor rand(40) xor rand(19) xor rand(18);
146
elsif(rand'length = 43) then              --43
147
xor_out := rand(42) xor rand(41) xor rand(37) xor rand(36);
148
elsif(rand'length = 44) then              --44
149
xor_out := rand(43) xor rand(42) xor rand(17) xor rand(16);
150
elsif(rand'length = 45) then              --45
151
xor_out := rand(44) xor rand(43) xor rand(41) xor rand(40);
152
elsif(rand'length = 46) then              --46
153
xor_out := rand(45) xor rand(44) xor rand(25) xor rand(24);
154
elsif(rand'length = 47) then              --47
155
xor_out := rand(46) xor rand(41);
156
elsif(rand'length = 48) then              --48
157
xor_out := rand(47) xor rand(46) xor rand(20) xor rand(19);
158
elsif(rand'length = 49) then              --49
159
xor_out := rand(48) xor rand(39);
160
elsif(rand'length = 50) then              --50
161
xor_out := rand(49) xor rand(48) xor rand(23) xor rand(22);
162
elsif(rand'length = 51) then              --51
163
xor_out := rand(50) xor rand(49) xor rand(35) xor rand(34);
164
elsif(rand'length = 52) then              --52
165
xor_out := rand(51) xor rand(48);
166
elsif(rand'length = 53) then              --53
167
xor_out := rand(52) xor rand(51) xor rand(37) xor rand(36);
168
elsif(rand'length = 54) then              --54
169
xor_out := rand(53) xor rand(52) xor rand(17) xor rand(16);
170
elsif(rand'length = 55) then              --55
171
xor_out := rand(54) xor rand(30);
172
elsif(rand'length = 56) then              --56
173
xor_out := rand(55) xor rand(54) xor rand(34) xor rand(33);
174
elsif(rand'length = 57) then              --57
175
xor_out := rand(56) xor rand(49);
176
elsif(rand'length = 58) then              --58
177
xor_out := rand(57) xor rand(38);
178
elsif(rand'length = 59) then              --59
179
xor_out := rand(58) xor rand(57) xor rand(37) xor rand(36);
180
elsif(rand'length = 60) then              --60
181
xor_out := rand(59) xor rand(58);
182
elsif(rand'length = 61) then              --61
183
xor_out := rand(60) xor rand(59) xor rand(45) xor rand(44);
184
elsif(rand'length = 62) then              --62
185
xor_out := rand(61) xor rand(60) xor rand(5) xor rand(4);
186
elsif(rand'length = 63) then              --63
187
xor_out := rand(62) xor rand(61);
188
elsif(rand'length = 64) then              --64
189
xor_out := rand(63) xor rand(62) xor rand(60) xor rand(59);
190
elsif(rand'length = 65) then              --65
191
xor_out := rand(64) xor rand(46);
192
elsif(rand'length = 66) then              --66
193
xor_out := rand(65) xor rand(64) xor rand(56) xor rand(55);
194
elsif(rand'length = 67) then              --67
195
xor_out := rand(66) xor rand(65) xor rand(57) xor rand(56);
196
elsif(rand'length = 68) then              --68
197
xor_out := rand(67) xor rand(58);
198
elsif(rand'length = 69) then              --69
199
xor_out := rand(68) xor rand(66) xor rand(41) xor rand(39);
200
elsif(rand'length = 70) then              --70
201
xor_out := rand(69) xor rand(68) xor rand(54) xor rand(53);
202
elsif(rand'length = 71) then              --71
203
xor_out := rand(70) xor rand(64);
204
elsif(rand'length = 72) then              --72
205
xor_out := rand(71) xor rand(65) xor rand(24) xor rand(18);
206
elsif(rand'length = 73) then              --73
207
xor_out := rand(72) xor rand(47);
208
elsif(rand'length = 74) then              --74
209
xor_out := rand(73) xor rand(72) xor rand(58) xor rand(57);
210
elsif(rand'length = 75) then              --75
211
xor_out := rand(74) xor rand(73) xor rand(64) xor rand(63);
212
elsif(rand'length = 76) then              --76
213
xor_out := rand(75) xor rand(74) xor rand(40) xor rand(39);
214
elsif(rand'length = 77) then              --77
215
xor_out := rand(76) xor rand(75) xor rand(46) xor rand(45);
216
elsif(rand'length = 78) then              --78
217
xor_out := rand(77) xor rand(76) xor rand(58) xor rand(57);
218
elsif(rand'length = 79) then              --79
219
xor_out := rand(78) xor rand(69);
220
elsif(rand'length = 80) then              --80
221
xor_out := rand(79) xor rand(78) xor rand(42) xor rand(41);
222
elsif(rand'length = 81) then              --81
223
xor_out := rand(80) xor rand(76);
224
elsif(rand'length = 82) then              --82
225
xor_out := rand(81) xor rand(78) xor rand(46) xor rand(43);
226
elsif(rand'length = 83) then              --83
227
xor_out := rand(82) xor rand(81) xor rand(37) xor rand(36);
228
elsif(rand'length = 84) then              --84
229
xor_out := rand(83) xor rand(70);
230
elsif(rand'length = 85) then              --85
231
xor_out := rand(84) xor rand(83) xor rand(57) xor rand(56);
232
elsif(rand'length = 86) then              --86
233
xor_out := rand(85) xor rand(84) xor rand(73) xor rand(72);
234
elsif(rand'length = 87) then              --87
235
xor_out := rand(86) xor rand(73);
236
elsif(rand'length = 88) then              --88
237
xor_out := rand(87) xor rand(86) xor rand(16) xor rand(15);
238
elsif(rand'length = 89) then              --89
239
xor_out := rand(88) xor rand(50);
240
elsif(rand'length = 90) then              --90
241
xor_out := rand(89) xor rand(88) xor rand(71) xor rand(70);
242
elsif(rand'length = 91) then              --91
243
xor_out := rand(90) xor rand(89) xor rand(7) xor rand(6);
244
elsif(rand'length = 92) then              --92
245
xor_out := rand(91) xor rand(90) xor rand(79) xor rand(78);
246
elsif(rand'length = 93) then              --93
247
xor_out := rand(92) xor rand(90);
248
elsif(rand'length = 94) then              --94
249
xor_out := rand(93) xor rand(72);
250
elsif(rand'length = 95) then              --95
251
xor_out := rand(94) xor rand(83);
252
elsif(rand'length = 96) then              --96
253
xor_out := rand(95) xor rand(93) xor rand(48) xor rand(46);
254
elsif(rand'length = 97) then              --97
255
xor_out := rand(96) xor rand(90);
256
elsif(rand'length = 98) then              --98
257
xor_out := rand(97) xor rand(86);
258
elsif(rand'length = 99) then              --99
259
xor_out := rand(98) xor rand(96) xor rand(53) xor rand(51);
260
elsif(rand'length = 100) then             --100
261
xor_out := rand(99) xor rand(62);
262
elsif(rand'length = 101) then             --101
263
xor_out := rand(100) xor rand(99) xor rand(94) xor rand(93);
264
elsif(rand'length = 102) then             --102
265
xor_out := rand(101) xor rand(100) xor rand(35) xor rand(34);
266
elsif(rand'length = 103) then             --103
267
xor_out := rand(102) xor rand(93);
268
elsif(rand'length = 104) then             --104 
269
xor_out := rand(103) xor rand(102) xor rand(93) xor rand(92);
270
elsif(rand'length = 105) then             --105
271
xor_out := rand(104) xor rand(88);
272
elsif(rand'length = 106) then             --106
273
xor_out := rand(105) xor rand(90);
274
elsif(rand'length = 107) then             --107 
275
xor_out := rand(106) xor rand(104) xor rand(43) xor rand(41);
276
elsif(rand'length = 108) then             --108
277
xor_out := rand(107) xor rand(76);
278
elsif(rand'length = 109) then             --109 
279
xor_out := rand(108) xor rand(107) xor rand(102) xor rand(101);
280
elsif(rand'length = 110)then              --110 
281
xor_out := rand(109) xor rand(108) xor rand(97) xor rand(96);
282
elsif(rand'length = 111) then             --111
283
xor_out := rand(110) xor rand(100);
284
elsif(rand'length = 112) then             --112
285
xor_out := rand(111) xor rand(109) xor rand(68) xor rand(66);
286
elsif(rand'length = 113) then             --113 
287
xor_out := rand(112) xor rand(103);
288
elsif(rand'length = 114) then             --114 
289
xor_out := rand(113) xor rand(112) xor rand(32) xor rand(31);
290
elsif(rand'length = 115) then             --115
291
xor_out := rand(114) xor rand(113) xor rand(100) xor rand(99);
292
elsif(rand'length = 116) then             --116
293
xor_out := rand(115) xor rand(114) xor rand(45) xor rand(44);
294
elsif(rand'length = 117) then             --117
295
xor_out := rand(116) xor rand(114) xor rand(98) xor rand(96);
296
elsif(rand'length = 118) then             --118
297
xor_out := rand(117) xor rand(84);
298
elsif(rand'length = 119) then             --119
299
xor_out := rand(118) xor rand(110);
300
elsif(rand'length = 120) then             --120
301
xor_out := rand(119) xor rand(112) xor rand(8) xor rand(1);
302
elsif(rand'length = 121) then             --121
303
xor_out := rand(120) xor rand(102);
304
elsif(rand'length = 122) then             --122
305
xor_out := rand(121) xor rand(120) xor rand(62) xor rand(61);
306
elsif(rand'length = 123) then             --123
307
xor_out := rand(122) xor rand(120);
308
elsif(rand'length = 124) then             --124
309
xor_out := rand(123) xor rand(86);
310
elsif(rand'length = 125) then             --125
311
xor_out := rand(124) xor rand(123) xor rand(17) xor rand(16);
312
elsif(rand'length = 126) then             --126
313
xor_out := rand(125) xor rand(124) xor rand(89) xor rand(88);
314
elsif(rand'length = 127) then             --127
315
xor_out := rand(126) xor rand(125);
316
elsif(rand'length = 128) then             --128
317
xor_out := rand(127) xor rand(125) xor rand(100) xor rand(98);
318
elsif(rand'length = 129) then             --129
319
xor_out := rand(128) xor rand(123);
320
elsif(rand'length = 130) then             --130
321
xor_out := rand(129) xor rand(126);
322
elsif(rand'length = 131) then             --131
323
xor_out := rand(130) xor rand(129) xor rand(83) xor rand(82);
324
elsif(rand'length = 132) then             --132
325
xor_out := rand(131) xor rand(102);
326
elsif(rand'length = 133) then             --133
327
xor_out := rand(132) xor rand(131) xor rand(81) xor rand(80);
328
elsif(rand'length = 134) then             --134
329
xor_out := rand(133) xor rand(76);
330
elsif(rand'length = 135) then             --135
331
xor_out := rand(134) xor rand(123);
332
elsif(rand'length = 136) then             --136
333
xor_out := rand(135) xor rand(134) xor rand(10) xor rand(9);
334
elsif(rand'length = 137) then             --137
335
xor_out := rand(136) xor rand(115);
336
elsif(rand'length = 138) then             --138
337
xor_out := rand(137) xor rand(136) xor rand(130) xor rand(129);
338
elsif(rand'length = 139) then             --139
339
xor_out := rand(138) xor rand(135) xor rand(133) xor rand(130);
340
elsif(rand'length = 140) then             --140
341
xor_out := rand(139) xor rand(110);
342
elsif(rand'length = 141) then             --141
343
xor_out := rand(140) xor rand(139) xor rand(109) xor rand(108);
344
elsif(rand'length = 142) then             --142
345
xor_out := rand(141) xor rand(120);
346
elsif(rand'length = 143) then             --143
347
xor_out := rand(142) xor rand(141) xor rand(122) xor rand(121);
348
elsif(rand'length = 144) then             --144
349
xor_out := rand(143) xor rand(142) xor rand(74) xor rand(73);
350
elsif(rand'length = 145) then             --145
351
xor_out := rand(144) xor rand(92);
352
elsif(rand'length = 146) then             --146
353
xor_out := rand(145) xor rand(144) xor rand(86) xor rand(85);
354
elsif(rand'length = 147) then             --147
355
xor_out := rand(146) xor rand(145) xor rand(109) xor rand(108);
356
elsif(rand'length = 148) then             --148
357
xor_out := rand(147) xor rand(120);
358
elsif(rand'length = 149) then             --149
359
xor_out := rand(148) xor rand(147) xor rand(39) xor rand(38);
360
elsif(rand'length = 150) then             --150
361
xor_out := rand(149) xor rand(96);
362
elsif(rand'length = 151) then             --151
363
xor_out := rand(150) xor rand(147);
364
elsif(rand'length = 152) then             --152
365
xor_out := rand(151) xor rand(150) xor rand(86) xor rand(85);
366
elsif(rand'length = 153) then             --153
367
xor_out := rand(152) xor rand(151);
368
elsif(rand'length = 154) then             --154
369
xor_out := rand(153) xor rand(151) xor rand(26) xor rand(24);
370
elsif(rand'length = 155) then             --155
371
xor_out := rand(154) xor rand(153) xor rand(123) xor rand(122);
372
elsif(rand'length = 156) then             --156
373
xor_out := rand(155) xor rand(154) xor rand(40) xor rand(39);
374
elsif(rand'length = 157) then             --157
375
xor_out := rand(156) xor rand(155) xor rand(130) xor rand(129);
376
elsif(rand'length = 158) then             --158
377
xor_out := rand(157) xor rand(156) xor rand(131) xor rand(130);
378
elsif(rand'length = 159) then             --159
379
xor_out := rand(158) xor rand(127);
380
elsif(rand'length = 160) then             --160
381
xor_out := rand(159) xor rand(158) xor rand(141) xor rand(140);
382
elsif(rand'length = 161) then             --161
383
xor_out := rand(160) xor rand(142);
384
elsif(rand'length = 162) then             --162
385
xor_out := rand(161) xor rand(160) xor rand(74) xor rand(73);
386
elsif(rand'length = 163) then             --163
387
xor_out := rand(162) xor rand(161) xor rand(103) xor rand(102);
388
elsif(rand'length = 164) then             --164
389
xor_out := rand(163) xor rand(162) xor rand(150) xor rand(149);
390
elsif(rand'length = 165) then             --165
391
xor_out := rand(164) xor rand(163) xor rand(134) xor rand(133);
392
elsif(rand'length = 166) then             --166
393
xor_out := rand(165) xor rand(164) xor rand(127) xor rand(126);
394
elsif(rand'length = 167) then             --167
395
xor_out := rand(166) xor rand(160);
396
elsif(rand'length = 168) then             --168
397
xor_out := rand(167) xor rand(165) xor rand(152) xor rand(150);
398
end if;
399
 
400
return xor_out;
401
end xor_gates;
402
--END function for XORing using tap values.
403
 
404
end lfsr_pkg;
405
--End of the package.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.