-
Notifications
You must be signed in to change notification settings - Fork 4
/
fake_dac.vhd
8267 lines (8250 loc) · 240 KB
/
fake_dac.vhd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
entity fake_dac is
port (
clock : in STD_LOGIC;
reset : in STD_LOGIC;
data_out : out STD_LOGIC_VECTOR(15 downto 0);
data_out_en : out STD_LOGIC
);
end fake_dac;
architecture Behavioral of fake_dac is
component gen48khz is
generic (
CLKCOUNTER : natural := 1000
);
port (
clock : in std_logic;
reset_n : in std_logic;
enable : out std_logic
);
end component gen48khz;
signal counter : integer;
signal sample_addr : integer range 0 to 8191;
signal sample_value : STD_LOGIC_VECTOR(15 downto 0);
signal tick,reset_n : STD_LOGIC;
begin
reset_n <= not reset;
gen48khz_i1 : gen48khz
generic map (
CLKCOUNTER => 1000 -- 1000
)
port map (
clock => clock,
reset_n => reset_n,
enable => tick
);
process (clock,reset)
begin
if reset='1' then
sample_addr <= 0;
elsif clock='1' and clock'event then
if tick='1' then
data_out <= sample_value;
data_out_en <= '1';
if sample_addr=8191 then
sample_addr <= 0;
else
sample_addr <= sample_addr + 1;
end if;
else
data_out_en <= '0';
end if;
end if;
end process;
with sample_addr select sample_value <=
"0000000000000000" when 0,
"0011001011000110" when 1,
"0011110111010001" when 2,
"0001100001111101" when 3,
"1110000000000001" when 4,
"1100000010001101" when 5,
"1101001010111111" when 6,
"0000100001011010" when 7,
"0011011101101100" when 8,
"0011101100100000" when 9,
"0001000010010000" when 10,
"1101100100001011" when 11,
"1100000000000001" when 12,
"1101100100001011" when 13,
"0001000010010000" when 14,
"0011101100100000" when 15,
"0011011101101100" when 16,
"0000100001011010" when 17,
"1101001010111111" when 18,
"1100000010001101" when 19,
"1110000000000000" when 20,
"0001100001111101" when 21,
"0011110111010001" when 22,
"0011001011000110" when 23,
"0000000000000000" when 24,
"1100110100111010" when 25,
"1100001000101111" when 26,
"1110011110000011" when 27,
"0001111111111111" when 28,
"0011111101110011" when 29,
"0010110101000001" when 30,
"1111011110100110" when 31,
"1100100010010100" when 32,
"1100010011100000" when 33,
"1110111101110000" when 34,
"0010011011110101" when 35,
"0011111111111111" when 36,
"0010011011110110" when 37,
"1110111101110000" when 38,
"1100010011100000" when 39,
"1100100010010011" when 40,
"1111011110100110" when 41,
"0010110101000001" when 42,
"0011111101110011" when 43,
"0010000000000000" when 44,
"1110011110000011" when 45,
"1100001000101111" when 46,
"1100110100111010" when 47,
"0000000000000000" when 48,
"0011001011000110" when 49,
"0011110111010001" when 50,
"0001100001111110" when 51,
"1110000000000001" when 52,
"1100000010001101" when 53,
"1101001010111111" when 54,
"0000100001011010" when 55,
"0011011101101100" when 56,
"0011101100100000" when 57,
"0001000010010000" when 58,
"1101100100001011" when 59,
"1100000000000001" when 60,
"1101100100001010" when 61,
"0001000010010000" when 62,
"0011101100100000" when 63,
"0011011101101101" when 64,
"0000100001011010" when 65,
"1101001010111111" when 66,
"1100000010001101" when 67,
"1110000000000000" when 68,
"0001100001111101" when 69,
"0011110111010001" when 70,
"0011001011000110" when 71,
"0000000000000000" when 72,
"1100110100111010" when 73,
"1100001000101111" when 74,
"1110011110000010" when 75,
"0001111111111111" when 76,
"0011111101110011" when 77,
"0010110101000001" when 78,
"1111011110100110" when 79,
"1100100010010100" when 80,
"1100010011100000" when 81,
"1110111101110000" when 82,
"0010011011110101" when 83,
"0011111111111111" when 84,
"0010011011110110" when 85,
"1110111101110000" when 86,
"1100010011100000" when 87,
"1100100010010011" when 88,
"1111011110100110" when 89,
"0010110101000001" when 90,
"0011111101110011" when 91,
"0010000000000000" when 92,
"1110011110000011" when 93,
"1100001000101111" when 94,
"1100110100111010" when 95,
"0000000000000000" when 96,
"0011001011000110" when 97,
"0011110111010001" when 98,
"0001100001111110" when 99,
"1110000000000001" when 100,
"1100000010001101" when 101,
"1101001010111111" when 102,
"0000100001011010" when 103,
"0011011101101100" when 104,
"0011101100100000" when 105,
"0001000010010000" when 106,
"1101100100001011" when 107,
"1100000000000001" when 108,
"1101100100001010" when 109,
"0001000010010000" when 110,
"0011101100100000" when 111,
"0011011101101101" when 112,
"0000100001011010" when 113,
"1101001011000000" when 114,
"1100000010001101" when 115,
"1110000000000000" when 116,
"0001100001111101" when 117,
"0011110111010001" when 118,
"0011001011000110" when 119,
"0000000000000000" when 120,
"1100110100111010" when 121,
"1100001000101111" when 122,
"1110011110000010" when 123,
"0001111111111111" when 124,
"0011111101110011" when 125,
"0010110101000001" when 126,
"1111011110100110" when 127,
"1100100010010100" when 128,
"1100010011100000" when 129,
"1110111101110000" when 130,
"0010011011110101" when 131,
"0011111111111111" when 132,
"0010011011110110" when 133,
"1110111101110000" when 134,
"1100010011100000" when 135,
"1100100010010011" when 136,
"1111011110100110" when 137,
"0010110101000000" when 138,
"0011111101110011" when 139,
"0010000000000000" when 140,
"1110011110000011" when 141,
"1100001000101111" when 142,
"1100110100111010" when 143,
"0000000000000000" when 144,
"0011001011000110" when 145,
"0011110111010001" when 146,
"0001100001111110" when 147,
"1110000000000001" when 148,
"1100000010001101" when 149,
"1101001010111111" when 150,
"0000100001011010" when 151,
"0011011101101100" when 152,
"0011101100100001" when 153,
"0001000010010000" when 154,
"1101100100001011" when 155,
"1100000000000001" when 156,
"1101100100001010" when 157,
"0001000010010000" when 158,
"0011101100100000" when 159,
"0011011101101101" when 160,
"0000100001011011" when 161,
"1101001011000000" when 162,
"1100000010001101" when 163,
"1110000000000000" when 164,
"0001100001111101" when 165,
"0011110111010001" when 166,
"0011001011000110" when 167,
"0000000000000000" when 168,
"1100110100111011" when 169,
"1100001000101111" when 170,
"1110011110000010" when 171,
"0001111111111111" when 172,
"0011111101110011" when 173,
"0010110101000001" when 174,
"1111011110100111" when 175,
"1100100010010100" when 176,
"1100010011011111" when 177,
"1110111101101111" when 178,
"0010011011110101" when 179,
"0011111111111111" when 180,
"0010011011110110" when 181,
"1110111101110001" when 182,
"1100010011100000" when 183,
"1100100010010011" when 184,
"1111011110100101" when 185,
"0010110101000000" when 186,
"0011111101110011" when 187,
"0010000000000000" when 188,
"1110011110000011" when 189,
"1100001000101111" when 190,
"1100110100111010" when 191,
"0000000000000000" when 192,
"0011001011000101" when 193,
"0011110111010001" when 194,
"0001100001111110" when 195,
"1110000000000001" when 196,
"1100000010001101" when 197,
"1101001010111111" when 198,
"0000100001011001" when 199,
"0011011101101100" when 200,
"0011101100100001" when 201,
"0001000010010001" when 202,
"1101100100001011" when 203,
"1100000000000001" when 204,
"1101100100001010" when 205,
"0001000010001111" when 206,
"0011101100100000" when 207,
"0011011101101101" when 208,
"0000100001011011" when 209,
"1101001011000000" when 210,
"1100000010001101" when 211,
"1110000000000000" when 212,
"0001100001111101" when 213,
"0011110111010001" when 214,
"0011001011000110" when 215,
"0000000000000000" when 216,
"1100110100111011" when 217,
"1100001000101111" when 218,
"1110011110000010" when 219,
"0001111111111111" when 220,
"0011111101110011" when 221,
"0010110101000001" when 222,
"1111011110100111" when 223,
"1100100010010100" when 224,
"1100010011011111" when 225,
"1110111101101111" when 226,
"0010011011110101" when 227,
"0011111111111111" when 228,
"0010011011110110" when 229,
"1110111101110001" when 230,
"1100010011100000" when 231,
"1100100010010011" when 232,
"1111011110100101" when 233,
"0010110101000000" when 234,
"0011111101110011" when 235,
"0010000000000000" when 236,
"1110011110000011" when 237,
"1100001000101111" when 238,
"1100110100111010" when 239,
"0000000000000000" when 240,
"0011001011000101" when 241,
"0011110111010001" when 242,
"0001100001111110" when 243,
"1110000000000001" when 244,
"1100000010001101" when 245,
"1101001010111111" when 246,
"0000100001011001" when 247,
"0011011101101100" when 248,
"0011101100100001" when 249,
"0001000010010001" when 250,
"1101100100001011" when 251,
"1100000000000001" when 252,
"1101100100001010" when 253,
"0001000010001111" when 254,
"0011101100100000" when 255,
"0011011101101101" when 256,
"0000100001011011" when 257,
"1101001011000000" when 258,
"1100000010001101" when 259,
"1110000000000000" when 260,
"0001100001111101" when 261,
"0011110111010001" when 262,
"0011001011000110" when 263,
"0000000000000000" when 264,
"1100110100111011" when 265,
"1100001000101111" when 266,
"1110011110000010" when 267,
"0001111111111111" when 268,
"0011111101110011" when 269,
"0010110101000001" when 270,
"1111011110100111" when 271,
"1100100010010100" when 272,
"1100010011011111" when 273,
"1110111101101111" when 274,
"0010011011110101" when 275,
"0011111111111111" when 276,
"0010011011110110" when 277,
"1110111101110001" when 278,
"1100010011100000" when 279,
"1100100010010011" when 280,
"1111011110100101" when 281,
"0010110101000000" when 282,
"0011111101110011" when 283,
"0010000000000000" when 284,
"1110011110000011" when 285,
"1100001000101111" when 286,
"1100110100111010" when 287,
"0000000000000000" when 288,
"0011001011000101" when 289,
"0011110111010001" when 290,
"0001100001111110" when 291,
"1110000000000001" when 292,
"1100000010001101" when 293,
"1101001010111111" when 294,
"0000100001011001" when 295,
"0011011101101100" when 296,
"0011101100100001" when 297,
"0001000010010001" when 298,
"1101100100001011" when 299,
"1100000000000001" when 300,
"1101100100001010" when 301,
"0001000010001111" when 302,
"0011101100100000" when 303,
"0011011101101101" when 304,
"0000100001011011" when 305,
"1101001011000000" when 306,
"1100000010001101" when 307,
"1110000000000000" when 308,
"0001100001111100" when 309,
"0011110111010001" when 310,
"0011001011000110" when 311,
"0000000000000000" when 312,
"1100110100111011" when 313,
"1100001000101111" when 314,
"1110011110000010" when 315,
"0001111111111111" when 316,
"0011111101110011" when 317,
"0010110101000001" when 318,
"1111011110100111" when 319,
"1100100010010100" when 320,
"1100010011011111" when 321,
"1110111101101111" when 322,
"0010011011110101" when 323,
"0011111111111111" when 324,
"0010011011110110" when 325,
"1110111101110001" when 326,
"1100010011100000" when 327,
"1100100010010011" when 328,
"1111011110100101" when 329,
"0010110101000000" when 330,
"0011111101110011" when 331,
"0010000000000000" when 332,
"1110011110000100" when 333,
"1100001000101111" when 334,
"1100110100111010" when 335,
"1111111111111111" when 336,
"0011001011000101" when 337,
"0011110111010010" when 338,
"0001100001111110" when 339,
"1110000000000001" when 340,
"1100000010001101" when 341,
"1101001010111111" when 342,
"0000100001011001" when 343,
"0011011101101100" when 344,
"0011101100100001" when 345,
"0001000010010001" when 346,
"1101100100001011" when 347,
"1100000000000001" when 348,
"1101100100001010" when 349,
"0001000010001111" when 350,
"0011101100100000" when 351,
"0011011101101101" when 352,
"0000100001011011" when 353,
"1101001011000000" when 354,
"1100000010001101" when 355,
"1110000000000000" when 356,
"0001100001111100" when 357,
"0011110111010001" when 358,
"0011001011000110" when 359,
"0000000000000001" when 360,
"1100110100111011" when 361,
"1100001000101110" when 362,
"1110011110000010" when 363,
"0001111111111111" when 364,
"0011111101110011" when 365,
"0010110101000010" when 366,
"1111011110100111" when 367,
"1100100010010100" when 368,
"1100010011011111" when 369,
"1110111101101111" when 370,
"0010011011110101" when 371,
"0011111111111111" when 372,
"0010011011110110" when 373,
"1110111101110001" when 374,
"1100010011100000" when 375,
"1100100010010011" when 376,
"1111011110100101" when 377,
"0010110101000000" when 378,
"0011111101110011" when 379,
"0010000000000001" when 380,
"1110011110000100" when 381,
"1100001000101111" when 382,
"1100110100111001" when 383,
"1111111111111111" when 384,
"0011001011000101" when 385,
"0011110111010010" when 386,
"0001100001111111" when 387,
"1110000000000010" when 388,
"1100000010001101" when 389,
"1101001010111110" when 390,
"0000100001011001" when 391,
"0011011101101100" when 392,
"0011101100100001" when 393,
"0001000010010001" when 394,
"1101100100001100" when 395,
"1100000000000001" when 396,
"1101100100001010" when 397,
"0001000010001111" when 398,
"0011101100100000" when 399,
"0011011101101101" when 400,
"0000100001011011" when 401,
"1101001011000000" when 402,
"1100000010001101" when 403,
"1101111111111111" when 404,
"0001100001111100" when 405,
"0011110111010001" when 406,
"0011001011000111" when 407,
"0000000000000001" when 408,
"1100110100111011" when 409,
"1100001000101110" when 410,
"1110011110000001" when 411,
"0001111111111110" when 412,
"0011111101110011" when 413,
"0010110101000010" when 414,
"1111011110100111" when 415,
"1100100010010100" when 416,
"1100010011011111" when 417,
"1110111101101111" when 418,
"0010011011110100" when 419,
"0011111111111111" when 420,
"0010011011110110" when 421,
"1110111101110001" when 422,
"1100010011100000" when 423,
"1100100010010011" when 424,
"1111011110100101" when 425,
"0010110101000000" when 426,
"0011111101110100" when 427,
"0010000000000001" when 428,
"1110011110000100" when 429,
"1100001000101111" when 430,
"1100110100111001" when 431,
"1111111111111111" when 432,
"0011001011000101" when 433,
"0011110111010010" when 434,
"0001100001111111" when 435,
"1110000000000010" when 436,
"1100000010001101" when 437,
"1101001010111110" when 438,
"0000100001011001" when 439,
"0011011101101100" when 440,
"0011101100100001" when 441,
"0001000010010001" when 442,
"1101100100001100" when 443,
"1100000000000001" when 444,
"1101100100001001" when 445,
"0001000010001111" when 446,
"0011101100100000" when 447,
"0011011101101101" when 448,
"0000100001011011" when 449,
"1101001011000000" when 450,
"1100000010001100" when 451,
"1101111111111111" when 452,
"0001100001111100" when 453,
"0011110111010001" when 454,
"0011001011000111" when 455,
"0000000000000001" when 456,
"1100110100111011" when 457,
"1100001000101110" when 458,
"1110011110000001" when 459,
"0001111111111110" when 460,
"0011111101110011" when 461,
"0010110101000010" when 462,
"1111011110100111" when 463,
"1100100010010100" when 464,
"1100010011011111" when 465,
"1110111101101111" when 466,
"0010011011110100" when 467,
"0011111111111111" when 468,
"0010011011110111" when 469,
"1110111101110001" when 470,
"1100010011100000" when 471,
"1100100010010011" when 472,
"1111011110100100" when 473,
"0010110101000000" when 474,
"0011111101110100" when 475,
"0010000000000001" when 476,
"1110011110000100" when 477,
"1100001000101111" when 478,
"1100110100111001" when 479,
"1111111111111111" when 480,
"0011001011000101" when 481,
"0011110111010010" when 482,
"0001100001111111" when 483,
"1110000000000010" when 484,
"1100000010001101" when 485,
"1101001010111110" when 486,
"0000100001011001" when 487,
"0011011101101100" when 488,
"0011101100100001" when 489,
"0001000010010001" when 490,
"1101100100001100" when 491,
"1100000000000001" when 492,
"1101100100001001" when 493,
"0001000010001111" when 494,
"0011101100100000" when 495,
"0011011101101101" when 496,
"0000100001011100" when 497,
"1101001011000000" when 498,
"1100000010001100" when 499,
"1101111111111111" when 500,
"0001100001111100" when 501,
"0011110111010001" when 502,
"0011001011000111" when 503,
"0000000000000001" when 504,
"1100110100111011" when 505,
"1100001000101110" when 506,
"1110011110000001" when 507,
"0001111111111110" when 508,
"0011111101110011" when 509,
"0010110101000010" when 510,
"1111011110101000" when 511,
"1100100010010100" when 512,
"1100010011011111" when 513,
"1110111101101110" when 514,
"0010011011110100" when 515,
"0011111111111111" when 516,
"0010011011110111" when 517,
"1110111101110010" when 518,
"1100010011100000" when 519,
"1100100010010011" when 520,
"1111011110100100" when 521,
"0010110101000000" when 522,
"0011111101110100" when 523,
"0010000000000001" when 524,
"1110011110000100" when 525,
"1100001000101111" when 526,
"1100110100111001" when 527,
"1111111111111111" when 528,
"0011001011000101" when 529,
"0011110111010010" when 530,
"0001100001111111" when 531,
"1110000000000010" when 532,
"1100000010001101" when 533,
"1101001010111110" when 534,
"0000100001011000" when 535,
"0011011101101100" when 536,
"0011101100100001" when 537,
"0001000010010010" when 538,
"1101100100001100" when 539,
"1100000000000001" when 540,
"1101100100001001" when 541,
"0001000010001110" when 542,
"0011101100100000" when 543,
"0011011101101101" when 544,
"0000100001011100" when 545,
"1101001011000000" when 546,
"1100000010001100" when 547,
"1101111111111111" when 548,
"0001100001111100" when 549,
"0011110111010001" when 550,
"0011001011000111" when 551,
"0000000000000001" when 552,
"1100110100111011" when 553,
"1100001000101110" when 554,
"1110011110000001" when 555,
"0001111111111110" when 556,
"0011111101110011" when 557,
"0010110101000010" when 558,
"1111011110101000" when 559,
"1100100010010100" when 560,
"1100010011011111" when 561,
"1110111101101110" when 562,
"0010011011110100" when 563,
"0011111111111111" when 564,
"0010011011110111" when 565,
"1110111101110010" when 566,
"1100010011100000" when 567,
"1100100010010011" when 568,
"1111011110100100" when 569,
"0010110100111111" when 570,
"0011111101110100" when 571,
"0010000000000001" when 572,
"1110011110000100" when 573,
"1100001000101111" when 574,
"1100110100111001" when 575,
"1111111111111111" when 576,
"0011001011000101" when 577,
"0011110111010010" when 578,
"0001100001111111" when 579,
"1110000000000010" when 580,
"1100000010001101" when 581,
"1101001010111110" when 582,
"0000100001011000" when 583,
"0011011101101100" when 584,
"0011101100100001" when 585,
"0001000010010010" when 586,
"1101100100001100" when 587,
"1100000000000001" when 588,
"1101100100001001" when 589,
"0001000010001110" when 590,
"0011101100100000" when 591,
"0011011101101101" when 592,
"0000100001011100" when 593,
"1101001011000001" when 594,
"1100000010001100" when 595,
"1101111111111111" when 596,
"0001100001111100" when 597,
"0011110111010001" when 598,
"0011001011000111" when 599,
"0000000000000001" when 600,
"1100110100111011" when 601,
"1100001000101110" when 602,
"1110011110000001" when 603,
"0001111111111110" when 604,
"0011111101110011" when 605,
"0010110101000010" when 606,
"1111011110101000" when 607,
"1100100010010100" when 608,
"1100010011011111" when 609,
"1110111101101110" when 610,
"0010011011110100" when 611,
"0011111111111111" when 612,
"0010011011110111" when 613,
"1110111101110010" when 614,
"1100010011100000" when 615,
"1100100010010011" when 616,
"1111011110100100" when 617,
"0010110100111111" when 618,
"0011111101110100" when 619,
"0010000000000001" when 620,
"1110011110000100" when 621,
"1100001000101111" when 622,
"1100110100111001" when 623,
"1111111111111111" when 624,
"0011001011000101" when 625,
"0011110111010010" when 626,
"0001100001111111" when 627,
"1110000000000010" when 628,
"1100000010001101" when 629,
"1101001010111110" when 630,
"0000100001011000" when 631,
"0011011101101011" when 632,
"0011101100100001" when 633,
"0001000010010010" when 634,
"1101100100001100" when 635,
"1100000000000001" when 636,
"1101100100001001" when 637,
"0001000010001110" when 638,
"0011101100100000" when 639,
"0011011101101101" when 640,
"0000100001011100" when 641,
"1101001011000001" when 642,
"1100000010001100" when 643,
"1101111111111111" when 644,
"0001100001111100" when 645,
"0011110111010001" when 646,
"0011001011000111" when 647,
"0000000000000010" when 648,
"1100110100111011" when 649,
"1100001000101110" when 650,
"1110011110000001" when 651,
"0001111111111110" when 652,
"0011111101110011" when 653,
"0010110101000010" when 654,
"1111011110101000" when 655,
"1100100010010101" when 656,
"1100010011011111" when 657,
"1110111101101110" when 658,
"0010011011110100" when 659,
"0011111111111111" when 660,
"0010011011110111" when 661,
"1110111101110010" when 662,
"1100010011100000" when 663,
"1100100010010011" when 664,
"1111011110100100" when 665,
"0010110100111111" when 666,
"0011111101110100" when 667,
"0010000000000001" when 668,
"1110011110000101" when 669,
"1100001000101111" when 670,
"1100110100111001" when 671,
"1111111111111110" when 672,
"0011001011000101" when 673,
"0011110111010010" when 674,
"0001100001111111" when 675,
"1110000000000010" when 676,
"1100000010001101" when 677,
"1101001010111110" when 678,
"0000100001011000" when 679,
"0011011101101011" when 680,
"0011101100100001" when 681,
"0001000010010010" when 682,
"1101100100001100" when 683,
"1100000000000001" when 684,
"1101100100001001" when 685,
"0001000010001110" when 686,
"0011101100100000" when 687,
"0011011101101110" when 688,
"0000100001011100" when 689,
"1101001011000001" when 690,
"1100000010001100" when 691,
"1101111111111111" when 692,
"0001100001111011" when 693,
"0011110111010001" when 694,
"0011001011000111" when 695,
"0000000000000010" when 696,
"1100110100111100" when 697,
"1100001000101110" when 698,
"1110011110000001" when 699,
"0001111111111110" when 700,
"0011111101110011" when 701,
"0010110101000010" when 702,
"1111011110101000" when 703,
"1100100010010101" when 704,
"1100010011011111" when 705,
"1110111101101110" when 706,
"0010011011110100" when 707,
"0011111111111111" when 708,
"0010011011110111" when 709,
"1110111101110010" when 710,
"1100010011100001" when 711,
"1100100010010010" when 712,
"1111011110100100" when 713,
"0010110100111111" when 714,
"0011111101110100" when 715,
"0010000000000001" when 716,
"1110011110000101" when 717,
"1100001000101111" when 718,
"1100110100111001" when 719,
"1111111111111110" when 720,
"0011001011000100" when 721,
"0011110111010010" when 722,
"0001100001111111" when 723,
"1110000000000010" when 724,
"1100000010001101" when 725,
"1101001010111110" when 726,
"0000100001011000" when 727,
"0011011101101011" when 728,
"0011101100100001" when 729,
"0001000010010010" when 730,
"1101100100001100" when 731,
"1100000000000001" when 732,
"1101100100001001" when 733,
"0001000010001110" when 734,
"0011101100011111" when 735,
"0011011101101110" when 736,
"0000100001011100" when 737,
"1101001011000001" when 738,
"1100000010001100" when 739,
"1101111111111110" when 740,
"0001100001111011" when 741,
"0011110111010001" when 742,
"0011001011000111" when 743,
"0000000000000010" when 744,
"1100110100111100" when 745,
"1100001000101110" when 746,
"1110011110000000" when 747,
"0001111111111101" when 748,
"0011111101110011" when 749,
"0010110101000010" when 750,
"1111011110101000" when 751,
"1100100010010101" when 752,
"1100010011011111" when 753,
"1110111101101110" when 754,
"0010011011110100" when 755,
"0011111111111111" when 756,
"0010011011110111" when 757,
"1110111101110010" when 758,
"1100010011100001" when 759,
"1100100010010010" when 760,
"1111011110100100" when 761,
"0010110100111111" when 762,
"0011111101110100" when 763,
"0010000000000010" when 764,
"1110011110000101" when 765,
"1100001000101111" when 766,
"1100110100111001" when 767,
"1111111111111110" when 768,
"0011001011000100" when 769,
"0011110111010010" when 770,
"0001100010000000" when 771,
"1110000000000011" when 772,
"1100000010001101" when 773,
"1101001010111110" when 774,
"0000100001011000" when 775,
"0011011101101011" when 776,
"0011101100100001" when 777,
"0001000010010010" when 778,
"1101100100001100" when 779,
"1100000000000001" when 780,
"1101100100001001" when 781,
"0001000010001110" when 782,
"0011101100011111" when 783,
"0011011101101110" when 784,
"0000100001011100" when 785,
"1101001011000001" when 786,
"1100000010001100" when 787,
"1101111111111110" when 788,
"0001100001111011" when 789,
"0011110111010001" when 790,
"0011001011000111" when 791,
"0000000000000010" when 792,
"1100110100111100" when 793,
"1100001000101110" when 794,
"1110011110000000" when 795,
"0001111111111101" when 796,
"0011111101110011" when 797,
"0010110101000010" when 798,
"1111011110101000" when 799,
"1100100010010101" when 800,
"1100010011011111" when 801,
"1110111101101110" when 802,
"0010011011110011" when 803,
"0011111111111111" when 804,
"0010011011110111" when 805,
"1110111101110010" when 806,
"1100010011100001" when 807,
"1100100010010010" when 808,
"1111011110100011" when 809,
"0010110100111111" when 810,
"0011111101110100" when 811,
"0010000000000010" when 812,
"1110011110000101" when 813,
"1100001000101111" when 814,
"1100110100111001" when 815,
"1111111111111110" when 816,
"0011001011000100" when 817,
"0011110111010010" when 818,
"0001100010000000" when 819,
"1110000000000011" when 820,
"1100000010001101" when 821,
"1101001010111101" when 822,
"0000100001010111" when 823,
"0011011101101011" when 824,
"0011101100100001" when 825,
"0001000010010010" when 826,
"1101100100001101" when 827,
"1100000000000001" when 828,
"1101100100001000" when 829,
"0001000010001101" when 830,
"0011101100011111" when 831,
"0011011101101110" when 832,
"0000100001011101" when 833,
"1101001011000001" when 834,
"1100000010001100" when 835,
"1101111111111110" when 836,
"0001100001111011" when 837,
"0011110111010001" when 838,
"0011001011000111" when 839,
"0000000000000010" when 840,
"1100110100111100" when 841,
"1100001000101110" when 842,
"1110011110000000" when 843,
"0001111111111101" when 844,
"0011111101110011" when 845,
"0010110101000011" when 846,
"1111011110101001" when 847,
"1100100010010101" when 848,
"1100010011011111" when 849,
"1110111101101101" when 850,
"0010011011110011" when 851,
"0011111111111111" when 852,
"0010011011111000" when 853,
"1110111101110011" when 854,
"1100010011100001" when 855,
"1100100010010010" when 856,
"1111011110100011" when 857,
"0010110100111111" when 858,
"0011111101110100" when 859,
"0010000000000010" when 860,
"1110011110000101" when 861,
"1100001000101111" when 862,
"1100110100111001" when 863,
"1111111111111110" when 864,
"0011001011000100" when 865,
"0011110111010010" when 866,
"0001100010000000" when 867,
"1110000000000011" when 868,
"1100000010001101" when 869,
"1101001010111101" when 870,
"0000100001010111" when 871,
"0011011101101011" when 872,
"0011101100100001" when 873,
"0001000010010011" when 874,
"1101100100001101" when 875,
"1100000000000001" when 876,
"1101100100001000" when 877,
"0001000010001101" when 878,
"0011101100011111" when 879,
"0011011101101110" when 880,
"0000100001011101" when 881,
"1101001011000001" when 882,
"1100000010001100" when 883,
"1101111111111110" when 884,
"0001100001111011" when 885,
"0011110111010001" when 886,
"0011001011000111" when 887,
"0000000000000010" when 888,
"1100110100111100" when 889,
"1100001000101110" when 890,
"1110011110000000" when 891,
"0001111111111101" when 892,
"0011111101110011" when 893,
"0010110101000011" when 894,
"1111011110101001" when 895,
"1100100010010101" when 896,
"1100010011011111" when 897,
"1110111101101101" when 898,
"0010011011110011" when 899,
"0011111111111111" when 900,
"0010011011111000" when 901,
"1110111101110011" when 902,
"1100010011100001" when 903,
"1100100010010010" when 904,
"1111011110100011" when 905,
"0010110100111111" when 906,
"0011111101110100" when 907,
"0010000000000010" when 908,
"1110011110000101" when 909,
"1100001000110000" when 910,
"1100110100111000" when 911,
"1111111111111110" when 912,
"0011001011000100" when 913,
"0011110111010010" when 914,
"0001100010000000" when 915,
"1110000000000011" when 916,
"1100000010001101" when 917,
"1101001010111101" when 918,
"0000100001010111" when 919,
"0011011101101011" when 920,
"0011101100100001" when 921,
"0001000010010011" when 922,
"1101100100001101" when 923,
"1100000000000001" when 924,
"1101100100001000" when 925,
"0001000010001101" when 926,
"0011101100011111" when 927,