OpenCores
URL https://opencores.org/ocsvn/16_qam_qadm/16_qam_qadm/trunk

Subversion Repositories 16_qam_qadm

[/] [16_qam_qadm/] [trunk/] [QAM_16.vhd] - Blame information for rev 7

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 7 iamalien
--*************************************************************************
2
-- Project    : 16 Quadrature Amplitude Modulator                         *
3
--                                                                        *
4
-- File Name  : QAM_16.vhd                                                *
5
--                                                                        *
6
-- Author     : Kaustubh Chaudhari                                        *
7
--                                                                        *
8
-- Email      : kaustubhcha305@gmail.com                                  *
9
--                                                                        *
10
-- Description: 16 QAM, requires 4 bit i/p and gives 10 bit QAM o/p,      *
11
--              1 sample/clk.                                             *
12
--                                                                        *
13
--*************************************************************************
14
--                                                                        *
15
-- Copyright (C) 2016 Author                                              *
16
--                                                                        *
17
-- This program is free software: you can redistribute it and/or modify   *
18
-- it under the terms of the GNU General Public License as published by   *
19
-- the Free Software Foundation, either version 3 of the License, or      *
20
-- (at your option) any later version.                                    *
21
--                                                                        *
22
-- This program is distributed in the hope that it will be useful,        *
23
-- but WITHOUT ANY WARRANTY; without even the implied warranty of         *
24
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
25
-- GNU General Public License for more details.                           *
26
--                                                                        *
27
-- You should have received a copy of the GNU General Public License      *
28
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.  *
29
--*************************************************************************
30
library IEEE;
31
use IEEE.STD_LOGIC_1164.ALL;
32
use IEEE.STD_LOGIC_UNSIGNED.ALL;
33
USE IEEE.NUMERIC_STD.ALL;
34
 
35
ENTITY QAM_16 IS
36
PORT(inp:  IN  std_logic_vector(3 downto 0); --4 bit input
37
     clk:  IN  std_logic; --clock; 1 output sample per clk, can be changed as per use
38
         output: OUT  std_logic_vector(9 downto 0) --output in 10bit resolution
39
    );
40
END QAM_16;
41
 
42
ARCHITECTURE behavior OF QAM_16 IS
43
type sine_array is array (0 to 2047) of integer range 0 to 1023;
44
constant sine1 : sine_array:=(512, 513, 514, 515, 515, 516, 517, 518, 519, 519, 520, 521, 522, 522, 523, 524,
45
525, 526, 526, 527, 528, 529, 529, 530, 531, 532, 533, 533, 534, 535, 536, 536,
46
537, 538, 539, 539, 540, 541, 542, 542, 543, 544, 545, 546, 546, 547, 548, 549,
47
549, 550, 551, 551, 552, 553, 554, 554, 555, 556, 557, 557, 558, 559, 560, 560,
48
561, 562, 562, 563, 564, 565, 565, 566, 567, 567, 568, 569, 570, 570, 571, 572,
49
572, 573, 574, 574, 575, 576, 576, 577, 578, 578, 579, 580, 580, 581, 582, 582,
50
583, 584, 584, 585, 586, 586, 587, 587, 588, 589, 589, 590, 591, 591, 592, 592,
51
593, 594, 594, 595, 595, 596, 597, 597, 598, 598, 599, 599, 600, 601, 601, 602,
52
602, 603, 603, 604, 604, 605, 605, 606, 606, 607, 608, 608, 609, 609, 610, 610,
53
611, 611, 612, 612, 612, 613, 613, 614, 614, 615, 615, 616, 616, 617, 617, 618,
54
618, 618, 619, 619, 620, 620, 620, 621, 621, 622, 622, 622, 623, 623, 624, 624,
55
624, 625, 625, 625, 626, 626, 626, 627, 627, 627, 628, 628, 628, 629, 629, 629,
56
630, 630, 630, 630, 631, 631, 631, 632, 632, 632, 632, 633, 633, 633, 633, 634,
57
634, 634, 634, 634, 635, 635, 635, 635, 635, 636, 636, 636, 636, 636, 636, 637,
58
637, 637, 637, 637, 637, 637, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638,
59
638, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639,
60
639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 638, 638,
61
638, 638, 638, 638, 638, 638, 638, 638, 638, 637, 637, 637, 637, 637, 637, 637,
62
636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 634, 634, 634, 634, 634,
63
633, 633, 633, 633, 632, 632, 632, 632, 631, 631, 631, 630, 630, 630, 630, 629,
64
629, 629, 628, 628, 628, 627, 627, 627, 626, 626, 626, 625, 625, 625, 624, 624,
65
624, 623, 623, 622, 622, 622, 621, 621, 620, 620, 620, 619, 619, 618, 618, 618,
66
617, 617, 616, 616, 615, 615, 614, 614, 613, 613, 612, 612, 612, 611, 611, 610,
67
610, 609, 609, 608, 608, 607, 606, 606, 605, 605, 604, 604, 603, 603, 602, 602,
68
601, 601, 600, 599, 599, 598, 598, 597, 597, 596, 595, 595, 594, 594, 593, 592,
69
592, 591, 591, 590, 589, 589, 588, 587, 587, 586, 586, 585, 584, 584, 583, 582,
70
582, 581, 580, 580, 579, 578, 578, 577, 576, 576, 575, 574, 574, 573, 572, 572,
71
571, 570, 570, 569, 568, 567, 567, 566, 565, 565, 564, 563, 562, 562, 561, 560,
72
560, 559, 558, 557, 557, 556, 555, 554, 554, 553, 552, 551, 551, 550, 549, 549,
73
548, 547, 546, 546, 545, 544, 543, 542, 542, 541, 540, 539, 539, 538, 537, 536,
74
536, 535, 534, 533, 533, 532, 531, 530, 529, 529, 528, 527, 526, 526, 525, 524,
75
523, 522, 522, 521, 520, 519, 519, 518, 517, 516, 515, 515, 514, 513, 512, 512,
76
511, 510, 509, 508, 508, 507, 506, 505, 504, 504, 503, 502, 501, 501, 500, 499,
77
498, 497, 497, 496, 495, 494, 494, 493, 492, 491, 490, 490, 489, 488, 487, 487,
78
486, 485, 484, 484, 483, 482, 481, 481, 480, 479, 478, 477, 477, 476, 475, 474,
79
474, 473, 472, 472, 471, 470, 469, 469, 468, 467, 466, 466, 465, 464, 463, 463,
80
462, 461, 461, 460, 459, 458, 458, 457, 456, 456, 455, 454, 453, 453, 452, 451,
81
451, 450, 449, 449, 448, 447, 447, 446, 445, 445, 444, 443, 443, 442, 441, 441,
82
440, 439, 439, 438, 437, 437, 436, 436, 435, 434, 434, 433, 432, 432, 431, 431,
83
430, 429, 429, 428, 428, 427, 426, 426, 425, 425, 424, 424, 423, 422, 422, 421,
84
421, 420, 420, 419, 419, 418, 418, 417, 417, 416, 415, 415, 414, 414, 413, 413,
85
412, 412, 411, 411, 411, 410, 410, 409, 409, 408, 408, 407, 407, 406, 406, 405,
86
405, 405, 404, 404, 403, 403, 403, 402, 402, 401, 401, 401, 400, 400, 399, 399,
87
399, 398, 398, 398, 397, 397, 397, 396, 396, 396, 395, 395, 395, 394, 394, 394,
88
393, 393, 393, 393, 392, 392, 392, 391, 391, 391, 391, 390, 390, 390, 390, 389,
89
389, 389, 389, 389, 388, 388, 388, 388, 388, 387, 387, 387, 387, 387, 387, 386,
90
386, 386, 386, 386, 386, 386, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385,
91
385, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
92
384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, 385,
93
385, 385, 385, 385, 385, 385, 385, 385, 385, 386, 386, 386, 386, 386, 386, 386,
94
387, 387, 387, 387, 387, 387, 388, 388, 388, 388, 388, 389, 389, 389, 389, 389,
95
390, 390, 390, 390, 391, 391, 391, 391, 392, 392, 392, 393, 393, 393, 393, 394,
96
394, 394, 395, 395, 395, 396, 396, 396, 397, 397, 397, 398, 398, 398, 399, 399,
97
399, 400, 400, 401, 401, 401, 402, 402, 403, 403, 403, 404, 404, 405, 405, 405,
98
406, 406, 407, 407, 408, 408, 409, 409, 410, 410, 411, 411, 411, 412, 412, 413,
99
413, 414, 414, 415, 415, 416, 417, 417, 418, 418, 419, 419, 420, 420, 421, 421,
100
422, 422, 423, 424, 424, 425, 425, 426, 426, 427, 428, 428, 429, 429, 430, 431,
101
431, 432, 432, 433, 434, 434, 435, 436, 436, 437, 437, 438, 439, 439, 440, 441,
102
441, 442, 443, 443, 444, 445, 445, 446, 447, 447, 448, 449, 449, 450, 451, 451,
103
452, 453, 453, 454, 455, 456, 456, 457, 458, 458, 459, 460, 461, 461, 462, 463,
104
463, 464, 465, 466, 466, 467, 468, 469, 469, 470, 471, 472, 472, 473, 474, 474,
105
475, 476, 477, 477, 478, 479, 480, 481, 481, 482, 483, 484, 484, 485, 486, 487,
106
487, 488, 489, 490, 490, 491, 492, 493, 494, 494, 495, 496, 497, 497, 498, 499,
107
500, 501, 501, 502, 503, 504, 504, 505, 506, 507, 508, 508, 509, 510, 511, 512,
108
512, 513, 514, 515, 515, 516, 517, 518, 519, 519, 520, 521, 522, 522, 523, 524,
109
525, 526, 526, 527, 528, 529, 529, 530, 531, 532, 533, 533, 534, 535, 536, 536,
110
537, 538, 539, 539, 540, 541, 542, 542, 543, 544, 545, 546, 546, 547, 548, 549,
111
549, 550, 551, 551, 552, 553, 554, 554, 555, 556, 557, 557, 558, 559, 560, 560,
112
561, 562, 562, 563, 564, 565, 565, 566, 567, 567, 568, 569, 570, 570, 571, 572,
113
572, 573, 574, 574, 575, 576, 576, 577, 578, 578, 579, 580, 580, 581, 582, 582,
114
583, 584, 584, 585, 586, 586, 587, 587, 588, 589, 589, 590, 591, 591, 592, 592,
115
593, 594, 594, 595, 595, 596, 597, 597, 598, 598, 599, 599, 600, 601, 601, 602,
116
602, 603, 603, 604, 604, 605, 605, 606, 606, 607, 608, 608, 609, 609, 610, 610,
117
611, 611, 612, 612, 612, 613, 613, 614, 614, 615, 615, 616, 616, 617, 617, 618,
118
618, 618, 619, 619, 620, 620, 620, 621, 621, 622, 622, 622, 623, 623, 624, 624,
119
624, 625, 625, 625, 626, 626, 626, 627, 627, 627, 628, 628, 628, 629, 629, 629,
120
630, 630, 630, 630, 631, 631, 631, 632, 632, 632, 632, 633, 633, 633, 633, 634,
121
634, 634, 634, 634, 635, 635, 635, 635, 635, 636, 636, 636, 636, 636, 636, 637,
122
637, 637, 637, 637, 637, 637, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638,
123
638, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639,
124
639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 638, 638,
125
638, 638, 638, 638, 638, 638, 638, 638, 638, 637, 637, 637, 637, 637, 637, 637,
126
636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 634, 634, 634, 634, 634,
127
633, 633, 633, 633, 632, 632, 632, 632, 631, 631, 631, 630, 630, 630, 630, 629,
128
629, 629, 628, 628, 628, 627, 627, 627, 626, 626, 626, 625, 625, 625, 624, 624,
129
624, 623, 623, 622, 622, 622, 621, 621, 620, 620, 620, 619, 619, 618, 618, 618,
130
617, 617, 616, 616, 615, 615, 614, 614, 613, 613, 612, 612, 612, 611, 611, 610,
131
610, 609, 609, 608, 608, 607, 606, 606, 605, 605, 604, 604, 603, 603, 602, 602,
132
601, 601, 600, 599, 599, 598, 598, 597, 597, 596, 595, 595, 594, 594, 593, 592,
133
592, 591, 591, 590, 589, 589, 588, 587, 587, 586, 586, 585, 584, 584, 583, 582,
134
582, 581, 580, 580, 579, 578, 578, 577, 576, 576, 575, 574, 574, 573, 572, 572,
135
571, 570, 570, 569, 568, 567, 567, 566, 565, 565, 564, 563, 562, 562, 561, 560,
136
560, 559, 558, 557, 557, 556, 555, 554, 554, 553, 552, 551, 551, 550, 549, 549,
137
548, 547, 546, 546, 545, 544, 543, 542, 542, 541, 540, 539, 539, 538, 537, 536,
138
536, 535, 534, 533, 533, 532, 531, 530, 529, 529, 528, 527, 526, 526, 525, 524,
139
523, 522, 522, 521, 520, 519, 519, 518, 517, 516, 515, 515, 514, 513, 512, 512,
140
511, 510, 509, 508, 508, 507, 506, 505, 504, 504, 503, 502, 501, 501, 500, 499,
141
498, 497, 497, 496, 495, 494, 494, 493, 492, 491, 490, 490, 489, 488, 487, 487,
142
486, 485, 484, 484, 483, 482, 481, 481, 480, 479, 478, 477, 477, 476, 475, 474,
143
474, 473, 472, 472, 471, 470, 469, 469, 468, 467, 466, 466, 465, 464, 463, 463,
144
462, 461, 461, 460, 459, 458, 458, 457, 456, 456, 455, 454, 453, 453, 452, 451,
145
451, 450, 449, 449, 448, 447, 447, 446, 445, 445, 444, 443, 443, 442, 441, 441,
146
440, 439, 439, 438, 437, 437, 436, 436, 435, 434, 434, 433, 432, 432, 431, 431,
147
430, 429, 429, 428, 428, 427, 426, 426, 425, 425, 424, 424, 423, 422, 422, 421,
148
421, 420, 420, 419, 419, 418, 418, 417, 417, 416, 415, 415, 414, 414, 413, 413,
149
412, 412, 411, 411, 411, 410, 410, 409, 409, 408, 408, 407, 407, 406, 406, 405,
150
405, 405, 404, 404, 403, 403, 403, 402, 402, 401, 401, 401, 400, 400, 399, 399,
151
399, 398, 398, 398, 397, 397, 397, 396, 396, 396, 395, 395, 395, 394, 394, 394,
152
393, 393, 393, 393, 392, 392, 392, 391, 391, 391, 391, 390, 390, 390, 390, 389,
153
389, 389, 389, 389, 388, 388, 388, 388, 388, 387, 387, 387, 387, 387, 387, 386,
154
386, 386, 386, 386, 386, 386, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385,
155
385, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
156
384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, 385,
157
385, 385, 385, 385, 385, 385, 385, 385, 385, 386, 386, 386, 386, 386, 386, 386,
158
387, 387, 387, 387, 387, 387, 388, 388, 388, 388, 388, 389, 389, 389, 389, 389,
159
390, 390, 390, 390, 391, 391, 391, 391, 392, 392, 392, 393, 393, 393, 393, 394,
160
394, 394, 395, 395, 395, 396, 396, 396, 397, 397, 397, 398, 398, 398, 399, 399,
161
399, 400, 400, 401, 401, 401, 402, 402, 403, 403, 403, 404, 404, 405, 405, 405,
162
406, 406, 407, 407, 408, 408, 409, 409, 410, 410, 411, 411, 411, 412, 412, 413,
163
413, 414, 414, 415, 415, 416, 417, 417, 418, 418, 419, 419, 420, 420, 421, 421,
164
422, 422, 423, 424, 424, 425, 425, 426, 426, 427, 428, 428, 429, 429, 430, 431,
165
431, 432, 432, 433, 434, 434, 435, 436, 436, 437, 437, 438, 439, 439, 440, 441,
166
441, 442, 443, 443, 444, 445, 445, 446, 447, 447, 448, 449, 449, 450, 451, 451,
167
452, 453, 453, 454, 455, 456, 456, 457, 458, 458, 459, 460, 461, 461, 462, 463,
168
463, 464, 465, 466, 466, 467, 468, 469, 469, 470, 471, 472, 472, 473, 474, 474,
169
475, 476, 477, 477, 478, 479, 480, 481, 481, 482, 483, 484, 484, 485, 486, 487,
170
487, 488, 489, 490, 490, 491, 492, 493, 494, 494, 495, 496, 497, 497, 498, 499,
171
500, 501, 501, 502, 503, 504, 504, 505, 506, 507, 508, 508, 509, 510, 511, 512);
172
constant sine2 : sine_array:=(512, 515, 516, 518, 519, 521, 522, 524, 526, 527, 529, 530, 532, 533, 535, 537,
173
538, 540, 541, 543, 544, 546, 547, 549, 551, 552, 554, 555, 557, 558, 560, 561,
174
563, 564, 566, 567, 569, 571, 572, 574, 575, 577, 578, 580, 581, 583, 584, 586,
175
587, 589, 590, 592, 593, 595, 596, 598, 599, 601, 602, 603, 605, 606, 608, 609,
176
611, 612, 614, 615, 616, 618, 619, 621, 622, 624, 625, 626, 628, 629, 631, 632,
177
633, 635, 636, 637, 639, 640, 642, 643, 644, 646, 647, 648, 650, 651, 652, 653,
178
655, 656, 657, 659, 660, 661, 662, 664, 665, 666, 667, 669, 670, 671, 672, 674,
179
675, 676, 677, 678, 680, 681, 682, 683, 684, 685, 687, 688, 689, 690, 691, 692,
180
693, 694, 695, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709,
181
710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 719, 720, 721, 722, 723, 724,
182
725, 726, 727, 727, 728, 729, 730, 731, 731, 732, 733, 734, 735, 735, 736, 737,
183
738, 738, 739, 740, 740, 741, 742, 742, 743, 744, 744, 745, 746, 746, 747, 748,
184
748, 749, 749, 750, 750, 751, 752, 752, 753, 753, 754, 754, 755, 755, 756, 756,
185
756, 757, 757, 758, 758, 759, 759, 759, 760, 760, 760, 761, 761, 761, 762, 762,
186
762, 763, 763, 763, 764, 764, 764, 764, 764, 765, 765, 765, 765, 765, 766, 766,
187
766, 766, 766, 766, 766, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
188
767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 766, 766, 766, 766, 766, 766,
189
766, 765, 765, 765, 765, 765, 764, 764, 764, 764, 764, 763, 763, 763, 762, 762,
190
762, 761, 761, 761, 760, 760, 760, 759, 759, 759, 758, 758, 757, 757, 756, 756,
191
756, 755, 755, 754, 754, 753, 753, 752, 752, 751, 750, 750, 749, 749, 748, 748,
192
747, 746, 746, 745, 744, 744, 743, 742, 742, 741, 740, 740, 739, 738, 738, 737,
193
736, 735, 735, 734, 733, 732, 731, 731, 730, 729, 728, 727, 727, 726, 725, 724,
194
723, 722, 721, 720, 719, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709,
195
708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 695, 694, 693, 692,
196
691, 690, 689, 688, 687, 685, 684, 683, 682, 681, 680, 678, 677, 676, 675, 674,
197
672, 671, 670, 669, 667, 666, 665, 664, 662, 661, 660, 659, 657, 656, 655, 653,
198
652, 651, 650, 648, 647, 646, 644, 643, 642, 640, 639, 637, 636, 635, 633, 632,
199
631, 629, 628, 626, 625, 624, 622, 621, 619, 618, 616, 615, 614, 612, 611, 609,
200
608, 606, 605, 603, 602, 601, 599, 598, 596, 595, 593, 592, 590, 589, 587, 586,
201
584, 583, 581, 580, 578, 577, 575, 574, 572, 571, 569, 567, 566, 564, 563, 561,
202
560, 558, 557, 555, 554, 552, 551, 549, 547, 546, 544, 543, 541, 540, 538, 537,
203
535, 533, 532, 530, 529, 527, 526, 524, 522, 521, 519, 518, 516, 515, 513, 512,
204
510, 508, 507, 505, 504, 502, 501, 499, 497, 496, 494, 493, 491, 490, 488, 486,
205
485, 483, 482, 480, 479, 477, 476, 474, 472, 471, 469, 468, 466, 465, 463, 462,
206
460, 459, 457, 456, 454, 452, 451, 449, 448, 446, 445, 443, 442, 440, 439, 437,
207
436, 434, 433, 431, 430, 428, 427, 425, 424, 422, 421, 420, 418, 417, 415, 414,
208
412, 411, 409, 408, 407, 405, 404, 402, 401, 399, 398, 397, 395, 394, 392, 391,
209
390, 388, 387, 386, 384, 383, 381, 380, 379, 377, 376, 375, 373, 372, 371, 370,
210
368, 367, 366, 364, 363, 362, 361, 359, 358, 357, 356, 354, 353, 352, 351, 349,
211
348, 347, 346, 345, 343, 342, 341, 340, 339, 338, 336, 335, 334, 333, 332, 331,
212
330, 329, 328, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314,
213
313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 304, 303, 302, 301, 300, 299,
214
298, 297, 296, 296, 295, 294, 293, 292, 292, 291, 290, 289, 288, 288, 287, 286,
215
285, 285, 284, 283, 283, 282, 281, 281, 280, 279, 279, 278, 277, 277, 276, 275,
216
275, 274, 274, 273, 273, 272, 271, 271, 270, 270, 269, 269, 268, 268, 267, 267,
217
267, 266, 266, 265, 265, 264, 264, 264, 263, 263, 263, 262, 262, 262, 261, 261,
218
261, 260, 260, 260, 259, 259, 259, 259, 259, 258, 258, 258, 258, 258, 257, 257,
219
257, 257, 257, 257, 257, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
220
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, 257, 257, 257, 257, 257,
221
257, 258, 258, 258, 258, 258, 259, 259, 259, 259, 259, 260, 260, 260, 261, 261,
222
261, 262, 262, 262, 263, 263, 263, 264, 264, 264, 265, 265, 266, 266, 267, 267,
223
267, 268, 268, 269, 269, 270, 270, 271, 271, 272, 273, 273, 274, 274, 275, 275,
224
276, 277, 277, 278, 279, 279, 280, 281, 281, 282, 283, 283, 284, 285, 285, 286,
225
287, 288, 288, 289, 290, 291, 292, 292, 293, 294, 295, 296, 296, 297, 298, 299,
226
300, 301, 302, 303, 304, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
227
315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 328, 329, 330, 331,
228
332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 345, 346, 347, 348, 349,
229
351, 352, 353, 354, 356, 357, 358, 359, 361, 362, 363, 364, 366, 367, 368, 370,
230
371, 372, 373, 375, 376, 377, 379, 380, 381, 383, 384, 386, 387, 388, 390, 391,
231
392, 394, 395, 397, 398, 399, 401, 402, 404, 405, 407, 408, 409, 411, 412, 414,
232
415, 417, 418, 420, 421, 422, 424, 425, 427, 428, 430, 431, 433, 434, 436, 437,
233
439, 440, 442, 443, 445, 446, 448, 449, 451, 452, 454, 456, 457, 459, 460, 462,
234
463, 465, 466, 468, 469, 471, 472, 474, 476, 477, 479, 480, 482, 483, 485, 486,
235
488, 490, 491, 493, 494, 496, 497, 499, 501, 502, 504, 505, 507, 508, 510, 512,
236
512, 515, 516, 518, 519, 521, 522, 524, 526, 527, 529, 530, 532, 533, 535, 537,
237
538, 540, 541, 543, 544, 546, 547, 549, 551, 552, 554, 555, 557, 558, 560, 561,
238
563, 564, 566, 567, 569, 571, 572, 574, 575, 577, 578, 580, 581, 583, 584, 586,
239
587, 589, 590, 592, 593, 595, 596, 598, 599, 601, 602, 603, 605, 606, 608, 609,
240
611, 612, 614, 615, 616, 618, 619, 621, 622, 624, 625, 626, 628, 629, 631, 632,
241
633, 635, 636, 637, 639, 640, 642, 643, 644, 646, 647, 648, 650, 651, 652, 653,
242
655, 656, 657, 659, 660, 661, 662, 664, 665, 666, 667, 669, 670, 671, 672, 674,
243
675, 676, 677, 678, 680, 681, 682, 683, 684, 685, 687, 688, 689, 690, 691, 692,
244
693, 694, 695, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709,
245
710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 719, 720, 721, 722, 723, 724,
246
725, 726, 727, 727, 728, 729, 730, 731, 731, 732, 733, 734, 735, 735, 736, 737,
247
738, 738, 739, 740, 740, 741, 742, 742, 743, 744, 744, 745, 746, 746, 747, 748,
248
748, 749, 749, 750, 750, 751, 752, 752, 753, 753, 754, 754, 755, 755, 756, 756,
249
756, 757, 757, 758, 758, 759, 759, 759, 760, 760, 760, 761, 761, 761, 762, 762,
250
762, 763, 763, 763, 764, 764, 764, 764, 764, 765, 765, 765, 765, 765, 766, 766,
251
766, 766, 766, 766, 766, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
252
767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 766, 766, 766, 766, 766, 766,
253
766, 765, 765, 765, 765, 765, 764, 764, 764, 764, 764, 763, 763, 763, 762, 762,
254
762, 761, 761, 761, 760, 760, 760, 759, 759, 759, 758, 758, 757, 757, 756, 756,
255
756, 755, 755, 754, 754, 753, 753, 752, 752, 751, 750, 750, 749, 749, 748, 748,
256
747, 746, 746, 745, 744, 744, 743, 742, 742, 741, 740, 740, 739, 738, 738, 737,
257
736, 735, 735, 734, 733, 732, 731, 731, 730, 729, 728, 727, 727, 726, 725, 724,
258
723, 722, 721, 720, 719, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709,
259
708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 695, 694, 693, 692,
260
691, 690, 689, 688, 687, 685, 684, 683, 682, 681, 680, 678, 677, 676, 675, 674,
261
672, 671, 670, 669, 667, 666, 665, 664, 662, 661, 660, 659, 657, 656, 655, 653,
262
652, 651, 650, 648, 647, 646, 644, 643, 642, 640, 639, 637, 636, 635, 633, 632,
263
631, 629, 628, 626, 625, 624, 622, 621, 619, 618, 616, 615, 614, 612, 611, 609,
264
608, 606, 605, 603, 602, 601, 599, 598, 596, 595, 593, 592, 590, 589, 587, 586,
265
584, 583, 581, 580, 578, 577, 575, 574, 572, 571, 569, 567, 566, 564, 563, 561,
266
560, 558, 557, 555, 554, 552, 551, 549, 547, 546, 544, 543, 541, 540, 538, 537,
267
535, 533, 532, 530, 529, 527, 526, 524, 522, 521, 519, 518, 516, 515, 513, 512,
268
510, 508, 507, 505, 504, 502, 501, 499, 497, 496, 494, 493, 491, 490, 488, 486,
269
485, 483, 482, 480, 479, 477, 476, 474, 472, 471, 469, 468, 466, 465, 463, 462,
270
460, 459, 457, 456, 454, 452, 451, 449, 448, 446, 445, 443, 442, 440, 439, 437,
271
436, 434, 433, 431, 430, 428, 427, 425, 424, 422, 421, 420, 418, 417, 415, 414,
272
412, 411, 409, 408, 407, 405, 404, 402, 401, 399, 398, 397, 395, 394, 392, 391,
273
390, 388, 387, 386, 384, 383, 381, 380, 379, 377, 376, 375, 373, 372, 371, 370,
274
368, 367, 366, 364, 363, 362, 361, 359, 358, 357, 356, 354, 353, 352, 351, 349,
275
348, 347, 346, 345, 343, 342, 341, 340, 339, 338, 336, 335, 334, 333, 332, 331,
276
330, 329, 328, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314,
277
313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 304, 303, 302, 301, 300, 299,
278
298, 297, 296, 296, 295, 294, 293, 292, 292, 291, 290, 289, 288, 288, 287, 286,
279
285, 285, 284, 283, 283, 282, 281, 281, 280, 279, 279, 278, 277, 277, 276, 275,
280
275, 274, 274, 273, 273, 272, 271, 271, 270, 270, 269, 269, 268, 268, 267, 267,
281
267, 266, 266, 265, 265, 264, 264, 264, 263, 263, 263, 262, 262, 262, 261, 261,
282
261, 260, 260, 260, 259, 259, 259, 259, 259, 258, 258, 258, 258, 258, 257, 257,
283
257, 257, 257, 257, 257, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
284
256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, 257, 257, 257, 257, 257,
285
257, 258, 258, 258, 258, 258, 259, 259, 259, 259, 259, 260, 260, 260, 261, 261,
286
261, 262, 262, 262, 263, 263, 263, 264, 264, 264, 265, 265, 266, 266, 267, 267,
287
267, 268, 268, 269, 269, 270, 270, 271, 271, 272, 273, 273, 274, 274, 275, 275,
288
276, 277, 277, 278, 279, 279, 280, 281, 281, 282, 283, 283, 284, 285, 285, 286,
289
287, 288, 288, 289, 290, 291, 292, 292, 293, 294, 295, 296, 296, 297, 298, 299,
290
300, 301, 302, 303, 304, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
291
315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 328, 329, 330, 331,
292
332, 333, 334, 335, 336, 338, 339, 340, 341, 342, 343, 345, 346, 347, 348, 349,
293
351, 352, 353, 354, 356, 357, 358, 359, 361, 362, 363, 364, 366, 367, 368, 370,
294
371, 372, 373, 375, 376, 377, 379, 380, 381, 383, 384, 386, 387, 388, 390, 391,
295
392, 394, 395, 397, 398, 399, 401, 402, 404, 405, 407, 408, 409, 411, 412, 414,
296
415, 417, 418, 420, 421, 422, 424, 425, 427, 428, 430, 431, 433, 434, 436, 437,
297
439, 440, 442, 443, 445, 446, 448, 449, 451, 452, 454, 456, 457, 459, 460, 462,
298
463, 465, 466, 468, 469, 471, 472, 474, 476, 477, 479, 480, 482, 483, 485, 486,
299
488, 490, 491, 493, 494, 496, 497, 499, 501, 502, 504, 505, 507, 508, 510, 512);
300
signal ctr : integer range 0 to 1023;
301
BEGIN
302
process(clk)
303
begin
304
if rising_edge(clk) then
305
case inp is
306
 when "0000" =>
307
  if (ctr<1023) then
308
        output <= std_logic_vector(to_unsigned((sine1(ctr)+sine1(ctr+256)-512),10));
309
        ctr<=ctr+1;
310
  else
311
        output <= std_logic_vector(to_unsigned((sine1(ctr)+sine1(ctr+256)-512),10));
312
        ctr<=0;
313
  end if;
314
 when "0001" =>
315
  if (ctr<1023) then
316
        output <= std_logic_vector(to_unsigned((sine1(ctr)+sine2(ctr+256)-512),10));
317
        ctr<=ctr+1;
318
  else
319
        output <= std_logic_vector(to_unsigned((sine1(ctr)+sine2(ctr+256)-512),10));
320
        ctr<=0;
321
  end if;
322
 when "0010" =>
323
  if (ctr<1023) then
324
        output <= std_logic_vector(to_unsigned((sine1(ctr)+sine1(ctr+512+256)-512),10));
325
        ctr<=ctr+1;
326
  else
327
        output <= std_logic_vector(to_unsigned((sine1(ctr)+sine1(ctr+512+256)-512),10));
328
        ctr<=0;
329
  end if;
330
 when "0011" =>
331
  if (ctr<1023) then
332
        output <= std_logic_vector(to_unsigned((sine1(ctr)+sine2(ctr+512+256)-512),10));
333
        ctr<=ctr+1;
334
  else
335
        output <= std_logic_vector(to_unsigned((sine1(ctr)+sine2(ctr+512+256)-512),10));
336
        ctr<=0;
337
  end if;
338
 when "0100" =>
339
  if (ctr<1023) then
340
        output <= std_logic_vector(to_unsigned((sine2(ctr)+sine1(ctr+256)-512),10));
341
        ctr<=ctr+1;
342
  else
343
        output <= std_logic_vector(to_unsigned((sine2(ctr)+sine1(ctr+256)-512),10));
344
        ctr<=0;
345
  end if;
346
 when "0101" =>
347
  if (ctr<1023) then
348
        output <= std_logic_vector(to_unsigned((sine2(ctr)+sine2(ctr+256)-512),10));
349
        ctr<=ctr+1;
350
  else
351
        output <= std_logic_vector(to_unsigned((sine2(ctr)+sine2(ctr+256)-512),10));
352
        ctr<=0;
353
  end if;
354
 when "0110" =>
355
  if (ctr<1023) then
356
        output <= std_logic_vector(to_unsigned((sine2(ctr)+sine1(ctr+512+256)-512),10));
357
        ctr<=ctr+1;
358
  else
359
        output <= std_logic_vector(to_unsigned((sine2(ctr)+sine1(ctr+512+256)-512),10));
360
        ctr<=0;
361
  end if;
362
 when "0111" =>
363
  if (ctr<1023) then
364
        output <= std_logic_vector(to_unsigned((sine2(ctr)+sine2(ctr+512+256)-512),10));
365
        ctr<=ctr+1;
366
  else
367
        output <= std_logic_vector(to_unsigned((sine2(ctr)+sine2(ctr+512+256)-512),10));
368
        ctr<=0;
369
  end if;
370
 when "1000" =>
371
  if (ctr<1023) then
372
        output <= std_logic_vector(to_unsigned((sine1(ctr+512)+sine1(ctr+256)-512),10));
373
        ctr<=ctr+1;
374
  else
375
        output <= std_logic_vector(to_unsigned((sine1(ctr+512)+sine1(ctr+256)-512),10));
376
        ctr<=0;
377
  end if;
378
 when "1001" =>
379
  if (ctr<1023) then
380
        output <= std_logic_vector(to_unsigned((sine1(ctr+512)+sine2(ctr+256)-512),10));
381
        ctr<=ctr+1;
382
  else
383
        output <= std_logic_vector(to_unsigned((sine1(ctr+512)+sine2(ctr+256)-512),10));
384
        ctr<=0;
385
  end if;
386
 when "1010" =>
387
  if (ctr<1023) then
388
        output <= std_logic_vector(to_unsigned((sine1(ctr+512)+sine1(ctr+512+256)-512),10));
389
        ctr<=ctr+1;
390
  else
391
        output <= std_logic_vector(to_unsigned((sine1(ctr+512)+sine1(ctr+512+256)-512),10));
392
        ctr<=0;
393
  end if;
394
 when "1011" =>
395
  if (ctr<1023) then
396
        output <= std_logic_vector(to_unsigned((sine1(ctr+512)+sine2(ctr+512+256)-512),10));
397
        ctr<=ctr+1;
398
  else
399
        output <= std_logic_vector(to_unsigned((sine1(ctr+512)+sine2(ctr+512+256)-512),10));
400
        ctr<=0;
401
  end if;
402
 when "1100" =>
403
  if (ctr<1023) then
404
        output <= std_logic_vector(to_unsigned((sine2(ctr+512)+sine1(ctr+256)-512),10));
405
        ctr<=ctr+1;
406
  else
407
        output <= std_logic_vector(to_unsigned((sine2(ctr+512)+sine1(ctr+256)-512),10));
408
        ctr<=0;
409
  end if;
410
 when "1101" =>
411
  if (ctr<1023) then
412
        output <= std_logic_vector(to_unsigned((sine2(ctr+512)+sine2(ctr+256)-512),10));
413
        ctr<=ctr+1;
414
  else
415
        output <= std_logic_vector(to_unsigned((sine2(ctr+512)+sine2(ctr+256)-512),10));
416
        ctr<=0;
417
  end if;
418
 when "1110" =>
419
  if (ctr<1023) then
420
        output <= std_logic_vector(to_unsigned((sine2(ctr+512)+sine1(ctr+512+256)-512),10));
421
        ctr<=ctr+1;
422
  else
423
        output <= std_logic_vector(to_unsigned((sine2(ctr+512)+sine1(ctr+512+256)-512),10));
424
        ctr<=0;
425
  end if;
426
 when "1111" =>
427
  if (ctr<1023) then
428
        output <= std_logic_vector(to_unsigned((sine2(ctr+512)+sine2(ctr+512+256)-512),10));
429
        ctr<=ctr+1;
430
  else
431
        output <= std_logic_vector(to_unsigned((sine2(ctr+512)+sine2(ctr+512+256)-512),10));
432
        ctr<=0;
433
  end if;
434
 when others => null;
435
end case;
436
end if;
437
end process;
438
END;

powered by: WebSVN 2.1.0

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