DDS.vhd
1 | -- reference: "DDFS mit BROM" by Lothar Miller ( http://lothar-miller.de/s9y/archives/37-DDFS-mit-BROM.html)
| 2 |
| 3 | library IEEE;
| 4 | use IEEE.std_logic_1164.all;
| 5 | use IEEE.numeric_std.all;
| 6 | --------------------------------------------------
| 7 | Entity DDS is
| 8 |
| 9 | generic (clock_frequency: integer:= 49152000 -- Hz : here enter main clock frequency
| 10 |
| 11 | );
| 12 | --------------------------------------------------
| 13 | Port (
| 14 | CLK : in std_logic;
| 15 | FREQ_INC : in std_logic_vector (11 downto 0);
| 16 | BCK : in std_logic;
| 17 | DIN_CNT : in integer;
| 18 | DIN_CNT_MAX: in integer;
| 19 | PHASE_INC : in std_logic_vector (11 downto 0);
| 20 | DOUT : out std_logic_vector (31 downto 0) := (others => '0')
| 21 | );
| 22 | end DDS;
| 23 | --------------------------------------------------
| 24 | Architecture BEHAVIOUR of DDS is
| 25 | --------------------------------------------------
| 26 | signal RESULT : signed (31 downto 0):= (others=>'0');
| 27 | --signal RESULT_TMP : signed (31 downto 0);
| 28 | signal ACCUM : unsigned (11 downto 0) := (others=>'0');
| 29 | signal ADDRESS : integer range 0 to 4095 := 0;
| 30 | signal ADDRESS_TMP : integer range 0 to 4095;
| 31 | signal ROMADDR : integer range 0 to 4095 := 0;
| 32 | signal QUADRANT : std_logic := '0';
| 33 | signal QUADRANT_TMP : std_logic := '0';
| 34 | signal SIGN : std_logic := '0';
| 35 | signal SIGN_TMP : std_logic := '0';
| 36 | signal ACCUM_TMP: unsigned (11 downto 0) := (others=>'0');
| 37 |
| 38 | signal DOUT_TMP : std_logic_vector(31 downto 0):= (others=>'0');
| 39 |
| 40 | type signal_shape_LUT is array(1023 downto 0) of std_logic_vector(31 downto 0); -- generated by MatLab-Script
| 41 | constant sine_LUT: signal_shape_LUT := (
| 42 |
| 43 | 0 => x"00000000",
| 44 | 1 => x"002CCA1F",
| 45 | 2 => x"00599438",
| 46 | 3 => x"00865E43",
| 47 | 4 => x"00B3283A",
| 48 | 5 => x"00DFF214",
| 49 | 6 => x"010CBBCC",
| 50 | 7 => x"0139855B",
| 51 | 8 => x"01664EB9",
| 52 | 9 => x"019317E0",
| 53 | 10 => x"01BFE0C9",
| 54 | 11 => x"01ECA96C",
| 55 | 12 => x"021971C4",
| 56 | 13 => x"024639C8",
| 57 | 14 => x"02730173",
| 58 | 15 => x"029FC8BD",
| 59 | 16 => x"02CC8F9F",
| 60 | 17 => x"02F95612",
| 61 | 18 => x"03261C11",
| 62 | 19 => x"0352E192",
| 63 | 20 => x"037FA690",
| 64 | 21 => x"03AC6B04",
| 65 | 22 => x"03D92EE7",
| 66 | 23 => x"0405F232",
| 67 | 24 => x"0432B4DE",
| 68 | 25 => x"045F76E4",
| 69 | 26 => x"048C383D",
| 70 | 27 => x"04B8F8E2",
| 71 | 28 => x"04E5B8CD",
| 72 | 29 => x"051277F6",
| 73 | 30 => x"053F3657",
| 74 | 31 => x"056BF3E8",
| 75 | 32 => x"0598B0A3",
| 76 | 33 => x"05C56C81",
| 77 | 34 => x"05F2277B",
| 78 | 35 => x"061EE18A",
| 79 | 36 => x"064B9AA8",
| 80 | 37 => x"067852CC",
| 81 | 38 => x"06A509F1",
| 82 | 39 => x"06D1C00F",
| 83 | 40 => x"06FE751F",
| 84 | 41 => x"072B291C",
| 85 | 42 => x"0757DBFD",
| 86 | 43 => x"07848DBB",
| 87 | 44 => x"07B13E51",
| 88 | 45 => x"07DDEDB7",
| 89 | 46 => x"080A9BE6",
| 90 | 47 => x"083748D7",
| 91 | 48 => x"0863F483",
| 92 | 49 => x"08909EE4",
| 93 | 50 => x"08BD47F2",
| 94 | 51 => x"08E9EFA7",
| 95 | 52 => x"091695FC",
| 96 | 53 => x"09433AEA",
| 97 | 54 => x"096FDE69",
| 98 | 55 => x"099C8074",
| 99 | 56 => x"09C92103",
| 100 | 57 => x"09F5C00F",
| 101 | 58 => x"0A225D92",
| 102 | 59 => x"0A4EF984",
| 103 | 60 => x"0A7B93DF",
| 104 | 61 => x"0AA82C9B",
| 105 | 62 => x"0AD4C3B3",
| 106 | 63 => x"0B01591E",
| 107 | 64 => x"0B2DECD6",
| 108 | 65 => x"0B5A7ED5",
| 109 | 66 => x"0B870F13",
| 110 | 67 => x"0BB39D8A",
| 111 | 68 => x"0BE02A32",
| 112 | 69 => x"0C0CB505",
| 113 | 70 => x"0C393DFB",
| 114 | 71 => x"0C65C50F",
| 115 | 72 => x"0C924A38",
| 116 | 73 => x"0CBECD71",
| 117 | 74 => x"0CEB4EB3",
| 118 | 75 => x"0D17CDF5",
| 119 | 76 => x"0D444B33",
| 120 | 77 => x"0D70C664",
| 121 | 78 => x"0D9D3F82",
| 122 | 79 => x"0DC9B686",
| 123 | 80 => x"0DF62B69",
| 124 | 81 => x"0E229E24",
| 125 | 82 => x"0E4F0EB1",
| 126 | 83 => x"0E7B7D08",
| 127 | 84 => x"0EA7E923",
| 128 | 85 => x"0ED452FB",
| 129 | 86 => x"0F00BA89",
| 130 | 87 => x"0F2D1FC6",
| 131 | 88 => x"0F5982AB",
| 132 | 89 => x"0F85E332",
| 133 | 90 => x"0FB24153",
| 134 | 91 => x"0FDE9D08",
| 135 | 92 => x"100AF64A",
| 136 | 93 => x"10374D12",
| 137 | 94 => x"1063A159",
| 138 | 95 => x"108FF319",
| 139 | 96 => x"10BC424A",
| 140 | 97 => x"10E88EE5",
| 141 | 98 => x"1114D8E5",
| 142 | 99 => x"11412041",
| 143 | 100 => x"116D64F4",
| 144 | 101 => x"1199A6F6",
| 145 | 102 => x"11C5E640",
| 146 | 103 => x"11F222CC",
| 147 | 104 => x"121E5C93",
| 148 | 105 => x"124A938E",
| 149 | 106 => x"1276C7B6",
| 150 | 107 => x"12A2F905",
| 151 | 108 => x"12CF2773",
| 152 | 109 => x"12FB52FA",
| 153 | 110 => x"13277B92",
| 154 | 111 => x"1353A136",
| 155 | 112 => x"137FC3DE",
| 156 | 113 => x"13ABE383",
| 157 | 114 => x"13D8001F",
| 158 | 115 => x"140419AB",
| 159 | 116 => x"14303020",
| 160 | 117 => x"145C4377",
| 161 | 118 => x"148853AA",
| 162 | 119 => x"14B460B1",
| 163 | 120 => x"14E06A86",
| 164 | 121 => x"150C7122",
| 165 | 122 => x"1538747F",
| 166 | 123 => x"15647494",
| 167 | 124 => x"1590715D",
| 168 | 125 => x"15BC6AD1",
| 169 | 126 => x"15E860EA",
| 170 | 127 => x"161453A2",
| 171 | 128 => x"164042F1",
| 172 | 129 => x"166C2ED0",
| 173 | 130 => x"1698173A",
| 174 | 131 => x"16C3FC27",
| 175 | 132 => x"16EFDD90",
| 176 | 133 => x"171BBB6F",
| 177 | 134 => x"174795BC",
| 178 | 135 => x"17736C72",
| 179 | 136 => x"179F3F89",
| 180 | 137 => x"17CB0EFA",
| 181 | 138 => x"17F6DABF",
| 182 | 139 => x"1822A2D2",
| 183 | 140 => x"184E672A",
| 184 | 141 => x"187A27C2",
| 185 | 142 => x"18A5E493",
| 186 | 143 => x"18D19D95",
| 187 | 144 => x"18FD52C3",
| 188 | 145 => x"19290416",
| 189 | 146 => x"1954B186",
| 190 | 147 => x"19805B0D",
| 191 | 148 => x"19AC00A5",
| 192 | 149 => x"19D7A245",
| 193 | 150 => x"1A033FE9",
| 194 | 151 => x"1A2ED989",
| 195 | 152 => x"1A5A6F1E",
| 196 | 153 => x"1A8600A2",
| 197 | 154 => x"1AB18E0D",
| 198 | 155 => x"1ADD175A",
| 199 | 156 => x"1B089C81",
| 200 | 157 => x"1B341D7C",
| 201 | 158 => x"1B5F9A44",
| 202 | 159 => x"1B8B12D2",
| 203 | 160 => x"1BB68720",
| 204 | 161 => x"1BE1F726",
| 205 | 162 => x"1C0D62DF",
| 206 | 163 => x"1C38CA43",
| 207 | 164 => x"1C642D4C",
| 208 | 165 => x"1C8F8BF3",
| 209 | 166 => x"1CBAE632",
| 210 | 167 => x"1CE63C01",
| 211 | 168 => x"1D118D5A",
| 212 | 169 => x"1D3CDA36",
| 213 | 170 => x"1D68228F",
| 214 | 171 => x"1D93665E",
| 215 | 172 => x"1DBEA59C",
| 216 | 173 => x"1DE9E043",
| 217 | 174 => x"1E15164C",
| 218 | 175 => x"1E4047B0",
| 219 | 176 => x"1E6B7468",
| 220 | 177 => x"1E969C6E",
| 221 | 178 => x"1EC1BFBC",
| 222 | 179 => x"1EECDE4A",
| 223 | 180 => x"1F17F812",
| 224 | 181 => x"1F430D0E",
| 225 | 182 => x"1F6E1D36",
| 226 | 183 => x"1F992884",
| 227 | 184 => x"1FC42EF1",
| 228 | 185 => x"1FEF3077",
| 229 | 186 => x"201A2D0F",
| 230 | 187 => x"204524B2",
| 231 | 188 => x"2070175B",
| 232 | 189 => x"209B0501",
| 233 | 190 => x"20C5ED9F",
| 234 | 191 => x"20F0D12E",
| 235 | 192 => x"211BAFA7",
| 236 | 193 => x"21468904",
| 237 | 194 => x"21715D3D",
| 238 | 195 => x"219C2C4E",
| 239 | 196 => x"21C6F62E",
| 240 | 197 => x"21F1BAD7",
| 241 | 198 => x"221C7A43",
| 242 | 199 => x"2247346B",
| 243 | 200 => x"2271E948",
| 244 | 201 => x"229C98D5",
| 245 | 202 => x"22C74309",
| 246 | 203 => x"22F1E7DF",
| 247 | 204 => x"231C8751",
| 248 | 205 => x"23472156",
| 249 | 206 => x"2371B5EA",
| 250 | 207 => x"239C4505",
| 251 | 208 => x"23C6CEA1",
| 252 | 209 => x"23F152B7",
| 253 | 210 => x"241BD140",
| 254 | 211 => x"24464A37",
| 255 | 212 => x"2470BD94",
| 256 | 213 => x"249B2B52",
| 257 | 214 => x"24C59368",
| 258 | 215 => x"24EFF5D2",
| 259 | 216 => x"251A5288",
| 260 | 217 => x"2544A984",
| 261 | 218 => x"256EFABF",
| 262 | 219 => x"25994633",
| 263 | 220 => x"25C38BD9",
| 264 | 221 => x"25EDCBAA",
| 265 | 222 => x"261805A1",
| 266 | 223 => x"264239B7",
| 267 | 224 => x"266C67E4",
| 268 | 225 => x"26969023",
| 269 | 226 => x"26C0B26E",
| 270 | 227 => x"26EACEBD",
| 271 | 228 => x"2714E50A",
| 272 | 229 => x"273EF54F",
| 273 | 230 => x"2768FF84",
| 274 | 231 => x"279303A5",
| 275 | 232 => x"27BD01A9",
| 276 | 233 => x"27E6F98C",
| 277 | 234 => x"2810EB45",
| 278 | 235 => x"283AD6CF",
| 279 | 236 => x"2864BC24",
| 280 | 237 => x"288E9B3C",
| 281 | 238 => x"28B87411",
| 282 | 239 => x"28E2469D",
| 283 | 240 => x"290C12DA",
| 284 | 241 => x"2935D8C1",
| 285 | 242 => x"295F984B",
| 286 | 243 => x"29895172",
| 287 | 244 => x"29B30430",
| 288 | 245 => x"29DCB07E",
| 289 | 246 => x"2A065655",
| 290 | 247 => x"2A2FF5B0",
| 291 | 248 => x"2A598E88",
| 292 | 249 => x"2A8320D7",
| 293 | 250 => x"2AACAC95",
| 294 | 251 => x"2AD631BD",
| 295 | 252 => x"2AFFB048",
| 296 | 253 => x"2B292830",
| 297 | 254 => x"2B52996F",
| 298 | 255 => x"2B7C03FD",
| 299 | 256 => x"2BA567D5",
| 300 | 257 => x"2BCEC4F1",
| 301 | 258 => x"2BF81B49",
| 302 | 259 => x"2C216AD7",
| 303 | 260 => x"2C4AB396",
| 304 | 261 => x"2C73F57F",
| 305 | 262 => x"2C9D308B",
| 306 | 263 => x"2CC664B3",
| 307 | 264 => x"2CEF91F3",
| 308 | 265 => x"2D18B842",
| 309 | 266 => x"2D41D79C",
| 310 | 267 => x"2D6AEFF9",
| 311 | 268 => x"2D940154",
| 312 | 269 => x"2DBD0BA5",
| 313 | 270 => x"2DE60EE7",
| 314 | 271 => x"2E0F0B13",
| 315 | 272 => x"2E380023",
| 316 | 273 => x"2E60EE11",
| 317 | 274 => x"2E89D4D6",
| 318 | 275 => x"2EB2B46B",
| 319 | 276 => x"2EDB8CCC",
| 320 | 277 => x"2F045DF0",
| 321 | 278 => x"2F2D27D3",
| 322 | 279 => x"2F55EA6E",
| 323 | 280 => x"2F7EA5BA",
| 324 | 281 => x"2FA759B1",
| 325 | 282 => x"2FD0064D",
| 326 | 283 => x"2FF8AB87",
| 327 | 284 => x"3021495A",
| 328 | 285 => x"3049DFBF",
| 329 | 286 => x"30726EB0",
| 330 | 287 => x"309AF626",
| 331 | 288 => x"30C3761B",
| 332 | 289 => x"30EBEE8A",
| 333 | 290 => x"31145F6B",
| 334 | 291 => x"313CC8B9",
| 335 | 292 => x"31652A6D",
| 336 | 293 => x"318D8481",
| 337 | 294 => x"31B5D6EF",
| 338 | 295 => x"31DE21B0",
| 339 | 296 => x"320664BF",
| 340 | 297 => x"322EA015",
| 341 | 298 => x"3256D3AC",
| 342 | 299 => x"327EFF7E",
| 343 | 300 => x"32A72385",
| 344 | 301 => x"32CF3FB9",
| 345 | 302 => x"32F75416",
| 346 | 303 => x"331F6095",
| 347 | 304 => x"3347652F",
| 348 | 305 => x"336F61E0",
| 349 | 306 => x"3397569F",
| 350 | 307 => x"33BF4368",
| 351 | 308 => x"33E72834",
| 352 | 309 => x"340F04FD",
| 353 | 310 => x"3436D9BD",
| 354 | 311 => x"345EA66D",
| 355 | 312 => x"34866B08",
| 356 | 313 => x"34AE2788",
| 357 | 314 => x"34D5DBE5",
| 358 | 315 => x"34FD881B",
| 359 | 316 => x"35252C22",
| 360 | 317 => x"354CC7F6",
| 361 | 318 => x"35745B8F",
| 362 | 319 => x"359BE6E8",
| 363 | 320 => x"35C369FA",
| 364 | 321 => x"35EAE4C0",
| 365 | 322 => x"36125733",
| 366 | 323 => x"3639C14E",
| 367 | 324 => x"36612309",
| 368 | 325 => x"36887C60",
| 369 | 326 => x"36AFCD4C",
| 370 | 327 => x"36D715C6",
| 371 | 328 => x"36FE55CA",
| 372 | 329 => x"37258D50",
| 373 | 330 => x"374CBC53",
| 374 | 331 => x"3773E2CD",
| 375 | 332 => x"379B00B8",
| 376 | 333 => x"37C2160D",
| 377 | 334 => x"37E922C6",
| 378 | 335 => x"381026DF",
| 379 | 336 => x"38372250",
| 380 | 337 => x"385E1513",
| 381 | 338 => x"3884FF23",
| 382 | 339 => x"38ABE079",
| 383 | 340 => x"38D2B910",
| 384 | 341 => x"38F988E2",
| 385 | 342 => x"39204FE8",
| 386 | 343 => x"39470E1D",
| 387 | 344 => x"396DC37A",
| 388 | 345 => x"39946FF9",
| 389 | 346 => x"39BB1396",
| 390 | 347 => x"39E1AE49",
| 391 | 348 => x"3A08400C",
| 392 | 349 => x"3A2EC8DB",
| 393 | 350 => x"3A5548AE",
| 394 | 351 => x"3A7BBF80",
| 395 | 352 => x"3AA22D4B",
| 396 | 353 => x"3AC89209",
| 397 | 354 => x"3AEEEDB4",
| 398 | 355 => x"3B154046",
| 399 | 356 => x"3B3B89BA",
| 400 | 357 => x"3B61CA08",
| 401 | 358 => x"3B88012C",
| 402 | 359 => x"3BAE2F20",
| 403 | 360 => x"3BD453DD",
| 404 | 361 => x"3BFA6F5E",
| 405 | 362 => x"3C20819D",
| 406 | 363 => x"3C468A94",
| 407 | 364 => x"3C6C8A3C",
| 408 | 365 => x"3C928092",
| 409 | 366 => x"3CB86D8D",
| 410 | 367 => x"3CDE5129",
| 411 | 368 => x"3D042B5F",
| 412 | 369 => x"3D29FC2B",
| 413 | 370 => x"3D4FC385",
| 414 | 371 => x"3D758169",
| 415 | 372 => x"3D9B35D0",
| 416 | 373 => x"3DC0E0B4",
| 417 | 374 => x"3DE68210",
| 418 | 375 => x"3E0C19DE",
| 419 | 376 => x"3E31A818",
| 420 | 377 => x"3E572CB8",
| 421 | 378 => x"3E7CA7B9",
| 422 | 379 => x"3EA21914",
| 423 | 380 => x"3EC780C5",
| 424 | 381 => x"3EECDEC4",
| 425 | 382 => x"3F12330D",
| 426 | 383 => x"3F377D9A",
| 427 | 384 => x"3F5CBE64",
| 428 | 385 => x"3F81F567",
| 429 | 386 => x"3FA7229C",
| 430 | 387 => x"3FCC45FD",
| 431 | 388 => x"3FF15F86",
| 432 | 389 => x"40166F2F",
| 433 | 390 => x"403B74F4",
| 434 | 391 => x"406070CF",
| 435 | 392 => x"408562BA",
| 436 | 393 => x"40AA4AAF",
| 437 | 394 => x"40CF28A9",
| 438 | 395 => x"40F3FCA2",
| 439 | 396 => x"4118C694",
| 440 | 397 => x"413D8679",
| 441 | 398 => x"41623C4D",
| 442 | 399 => x"4186E808",
| 443 | 400 => x"41AB89A6",
| 444 | 401 => x"41D02122",
| 445 | 402 => x"41F4AE74",
| 446 | 403 => x"42193198",
| 447 | 404 => x"423DAA88",
| 448 | 405 => x"4262193E",
| 449 | 406 => x"42867DB6",
| 450 | 407 => x"42AAD7E8",
| 451 | 408 => x"42CF27D0",
| 452 | 409 => x"42F36D67",
| 453 | 410 => x"4317A8A9",
| 454 | 411 => x"433BD990",
| 455 | 412 => x"43600016",
| 456 | 413 => x"43841C35",
| 457 | 414 => x"43A82DE8",
| 458 | 415 => x"43CC352A",
| 459 | 416 => x"43F031F4",
| 460 | 417 => x"44142442",
| 461 | 418 => x"44380C0E",
| 462 | 419 => x"445BE952",
| 463 | 420 => x"447FBC08",
| 464 | 421 => x"44A3842B",
| 465 | 422 => x"44C741B7",
| 466 | 423 => x"44EAF4A4",
| 467 | 424 => x"450E9CEE",
| 468 | 425 => x"45323A8E",
| 469 | 426 => x"4555CD81",
| 470 | 427 => x"457955BF",
| 471 | 428 => x"459CD345",
| 472 | 429 => x"45C0460B",
| 473 | 430 => x"45E3AE0D",
| 474 | 431 => x"46070B45",
| 475 | 432 => x"462A5DAE",
| 476 | 433 => x"464DA542",
| 477 | 434 => x"4670E1FC",
| 478 | 435 => x"469413D6",
| 479 | 436 => x"46B73ACB",
| 480 | 437 => x"46DA56D6",
| 481 | 438 => x"46FD67F1",
| 482 | 439 => x"47206E16",
| 483 | 440 => x"47436941",
| 484 | 441 => x"4766596C",
| 485 | 442 => x"47893E91",
| 486 | 443 => x"47AC18AB",
| 487 | 444 => x"47CEE7B5",
| 488 | 445 => x"47F1ABAA",
| 489 | 446 => x"48146483",
| 490 | 447 => x"4837123C",
| 491 | 448 => x"4859B4D0",
| 492 | 449 => x"487C4C38",
| 493 | 450 => x"489ED870",
| 494 | 451 => x"48C15972",
| 495 | 452 => x"48E3CF39",
| 496 | 453 => x"490639BF",
| 497 | 454 => x"49289900",
| 498 | 455 => x"494AECF6",
| 499 | 456 => x"496D359C",
| 500 | 457 => x"498F72EC",
| 501 | 458 => x"49B1A4E1",
| 502 | 459 => x"49D3CB76",
| 503 | 460 => x"49F5E6A5",
| 504 | 461 => x"4A17F66A",
| 505 | 462 => x"4A39FABF",
| 506 | 463 => x"4A5BF39F",
| 507 | 464 => x"4A7DE104",
| 508 | 465 => x"4A9FC2EA",
| 509 | 466 => x"4AC1994A",
| 510 | 467 => x"4AE36421",
| 511 | 468 => x"4B052368",
| 512 | 469 => x"4B26D71A",
| 513 | 470 => x"4B487F33",
| 514 | 471 => x"4B6A1BAD",
| 515 | 472 => x"4B8BAC83",
| 516 | 473 => x"4BAD31AF",
| 517 | 474 => x"4BCEAB2D",
| 518 | 475 => x"4BF018F7",
| 519 | 476 => x"4C117B08",
| 520 | 477 => x"4C32D15B",
| 521 | 478 => x"4C541BEC",
| 522 | 479 => x"4C755AB4",
| 523 | 480 => x"4C968DAE",
| 524 | 481 => x"4CB7B4D6",
| 525 | 482 => x"4CD8D026",
| 526 | 483 => x"4CF9DF9A",
| 527 | 484 => x"4D1AE32C",
| 528 | 485 => x"4D3BDAD6",
| 529 | 486 => x"4D5CC695",
| 530 | 487 => x"4D7DA663",
| 531 | 488 => x"4D9E7A3A",
| 532 | 489 => x"4DBF4216",
| 533 | 490 => x"4DDFFDF2",
| 534 | 491 => x"4E00ADC8",
| 535 | 492 => x"4E215194",
| 536 | 493 => x"4E41E951",
| 537 | 494 => x"4E6274F8",
| 538 | 495 => x"4E82F487",
| 539 | 496 => x"4EA367F7",
| 540 | 497 => x"4EC3CF43",
| 541 | 498 => x"4EE42A67",
| 542 | 499 => x"4F04795D",
| 543 | 500 => x"4F24BC21",
| 544 | 501 => x"4F44F2AD",
| 545 | 502 => x"4F651CFD",
| 546 | 503 => x"4F853B0B",
| 547 | 504 => x"4FA54CD3",
| 548 | 505 => x"4FC55250",
| 549 | 506 => x"4FE54B7C",
| 550 | 507 => x"50053853",
| 551 | 508 => x"502518D0",
| 552 | 509 => x"5044ECED",
| 553 | 510 => x"5064B4A7",
| 554 | 511 => x"50846FF8",
| 555 | 512 => x"50A41EDB",
| 556 | 513 => x"50C3C14B",
| 557 | 514 => x"50E35744",
| 558 | 515 => x"5102E0C0",
| 559 | 516 => x"51225DBB",
| 560 | 517 => x"5141CE30",
| 561 | 518 => x"5161321A",
| 562 | 519 => x"51808974",
| 563 | 520 => x"519FD439",
| 564 | 521 => x"51BF1264",
| 565 | 522 => x"51DE43F2",
| 566 | 523 => x"51FD68DC",
| 567 | 524 => x"521C811E",
| 568 | 525 => x"523B8CB3",
| 569 | 526 => x"525A8B97",
| 570 | 527 => x"52797DC4",
| 571 | 528 => x"52986336",
| 572 | 529 => x"52B73BE8",
| 573 | 530 => x"52D607D6",
| 574 | 531 => x"52F4C6FA",
| 575 | 532 => x"53137950",
| 576 | 533 => x"53321ED3",
| 577 | 534 => x"5350B77E",
| 578 | 535 => x"536F434E",
| 579 | 536 => x"538DC23B",
| 580 | 537 => x"53AC3444",
| 581 | 538 => x"53CA9961",
| 582 | 539 => x"53E8F190",
| 583 | 540 => x"54073CCA",
| 584 | 541 => x"54257B0C",
| 585 | 542 => x"5443AC51",
| 586 | 543 => x"5461D094",
| 587 | 544 => x"547FE7D1",
| 588 | 545 => x"549DF202",
| 589 | 546 => x"54BBEF23",
| 590 | 547 => x"54D9DF30",
| 591 | 548 => x"54F7C224",
| 592 | 549 => x"551597FB",
| 593 | 550 => x"553360AF",
| 594 | 551 => x"55511C3C",
| 595 | 552 => x"556ECA9E",
| 596 | 553 => x"558C6BCF",
| 597 | 554 => x"55A9FFCC",
| 598 | 555 => x"55C78690",
| 599 | 556 => x"55E50016",
| 600 | 557 => x"56026C5A",
| 601 | 558 => x"561FCB57",
| 602 | 559 => x"563D1D08",
| 603 | 560 => x"565A616A",
| 604 | 561 => x"56779877",
| 605 | 562 => x"5694C22C",
| 606 | 563 => x"56B1DE83",
| 607 | 564 => x"56CEED78",
| 608 | 565 => x"56EBEF06",
| 609 | 566 => x"5708E32A",
| 610 | 567 => x"5725C9DE",
| 611 | 568 => x"5742A31F",
| 612 | 569 => x"575F6EE7",
| 613 | 570 => x"577C2D33",
| 614 | 571 => x"5798DDFD",
| 615 | 572 => x"57B58142",
| 616 | 573 => x"57D216FD",
| 617 | 574 => x"57EE9F2A",
| 618 | 575 => x"580B19C3",
| 619 | 576 => x"582786C6",
| 620 | 577 => x"5843E62D",
| 621 | 578 => x"586037F3",
| 622 | 579 => x"587C7C16",
| 623 | 580 => x"5898B290",
| 624 | 581 => x"58B4DB5D",
| 625 | 582 => x"58D0F678",
| 626 | 583 => x"58ED03DE",
| 627 | 584 => x"59090389",
| 628 | 585 => x"5924F576",
| 629 | 586 => x"5940D9A1",
| 630 | 587 => x"595CB004",
| 631 | 588 => x"5978789C",
| 632 | 589 => x"59943364",
| 633 | 590 => x"59AFE059",
| 634 | 591 => x"59CB7F75",
| 635 | 592 => x"59E710B5",
| 636 | 593 => x"5A029415",
| 637 | 594 => x"5A1E098F",
| 638 | 595 => x"5A397120",
| 639 | 596 => x"5A54CAC4",
| 640 | 597 => x"5A701676",
| 641 | 598 => x"5A8B5432",
| 642 | 599 => x"5AA683F5",
| 643 | 600 => x"5AC1A5B9",
| 644 | 601 => x"5ADCB97A",
| 645 | 602 => x"5AF7BF35",
| 646 | 603 => x"5B12B6E6",
| 647 | 604 => x"5B2DA087",
| 648 | 605 => x"5B487C15",
| 649 | 606 => x"5B63498C",
| 650 | 607 => x"5B7E08E8",
| 651 | 608 => x"5B98BA24",
| 652 | 609 => x"5BB35D3D",
| 653 | 610 => x"5BCDF22D",
| 654 | 611 => x"5BE878F2",
| 655 | 612 => x"5C02F187",
| 656 | 613 => x"5C1D5BE8",
| 657 | 614 => x"5C37B811",
| 658 | 615 => x"5C5205FE",
| 659 | 616 => x"5C6C45AB",
| 660 | 617 => x"5C867713",
| 661 | 618 => x"5CA09A33",
| 662 | 619 => x"5CBAAF06",
| 663 | 620 => x"5CD4B589",
| 664 | 621 => x"5CEEADB8",
| 665 | 622 => x"5D08978F",
| 666 | 623 => x"5D227309",
| 667 | 624 => x"5D3C4022",
| 668 | 625 => x"5D55FED7",
| 669 | 626 => x"5D6FAF24",
| 670 | 627 => x"5D895105",
| 671 | 628 => x"5DA2E475",
| 672 | 629 => x"5DBC6971",
| 673 | 630 => x"5DD5DFF5",
| 674 | 631 => x"5DEF47FD",
| 675 | 632 => x"5E08A184",
| 676 | 633 => x"5E21EC88",
| 677 | 634 => x"5E3B2904",
| 678 | 635 => x"5E5456F4",
| 679 | 636 => x"5E6D7655",
| 680 | 637 => x"5E868722",
| 681 | 638 => x"5E9F8958",
| 682 | 639 => x"5EB87CF3",
| 683 | 640 => x"5ED161EE",
| 684 | 641 => x"5EEA3847",
| 685 | 642 => x"5F02FFF8",
| 686 | 643 => x"5F1BB900",
| 687 | 644 => x"5F346358",
| 688 | 645 => x"5F4CFEFF",
| 689 | 646 => x"5F658BF0",
| 690 | 647 => x"5F7E0A27",
| 691 | 648 => x"5F9679A0",
| 692 | 649 => x"5FAEDA58",
| 693 | 650 => x"5FC72C4B",
| 694 | 651 => x"5FDF6F75",
| 695 | 652 => x"5FF7A3D2",
| 696 | 653 => x"600FC95F",
| 697 | 654 => x"6027E018",
| 698 | 655 => x"603FE7F9",
| 699 | 656 => x"6057E0FF",
| 700 | 657 => x"606FCB25",
| 701 | 658 => x"6087A669",
| 702 | 659 => x"609F72C6",
| 703 | 660 => x"60B73039",
| 704 | 661 => x"60CEDEBE",
| 705 | 662 => x"60E67E51",
| 706 | 663 => x"60FE0EEF",
| 707 | 664 => x"61159094",
| 708 | 665 => x"612D033D",
| 709 | 666 => x"614466E6",
| 710 | 667 => x"615BBB8B",
| 711 | 668 => x"61730128",
| 712 | 669 => x"618A37BB",
| 713 | 670 => x"61A15F3F",
| 714 | 671 => x"61B877B2",
| 715 | 672 => x"61CF810E",
| 716 | 673 => x"61E67B52",
| 717 | 674 => x"61FD6678",
| 718 | 675 => x"6214427F",
| 719 | 676 => x"622B0F61",
| 720 | 677 => x"6241CD1D",
| 721 | 678 => x"62587BAD",
| 722 | 679 => x"626F1B0F",
| 723 | 680 => x"6285AB40",
| 724 | 681 => x"629C2C3B",
| 725 | 682 => x"62B29DFD",
| 726 | 683 => x"62C90083",
| 727 | 684 => x"62DF53C9",
| 728 | 685 => x"62F597CD",
| 729 | 686 => x"630BCC89",
| 730 | 687 => x"6321F1FC",
| 731 | 688 => x"63380821",
| 732 | 689 => x"634E0EF6",
| 733 | 690 => x"63640676",
| 734 | 691 => x"6379EE9E",
| 735 | 692 => x"638FC76C",
| 736 | 693 => x"63A590DB",
| 737 | 694 => x"63BB4AE8",
| 738 | 695 => x"63D0F591",
| 739 | 696 => x"63E690D1",
| 740 | 697 => x"63FC1CA5",
| 741 | 698 => x"6411990A",
| 742 | 699 => x"642705FC",
| 743 | 700 => x"643C6379",
| 744 | 701 => x"6451B17D",
| 745 | 702 => x"6466F004",
| 746 | 703 => x"647C1F0C",
| 747 | 704 => x"64913E92",
| 748 | 705 => x"64A64E90",
| 749 | 706 => x"64BB4F06",
| 750 | 707 => x"64D03FEF",
| 751 | 708 => x"64E52148",
| 752 | 709 => x"64F9F30E",
| 753 | 710 => x"650EB53E",
| 754 | 711 => x"652367D4",
| 755 | 712 => x"65380ACE",
| 756 | 713 => x"654C9E28",
| 757 | 714 => x"656121DF",
| 758 | 715 => x"657595EF",
| 759 | 716 => x"6589FA56",
| 760 | 717 => x"659E4F11",
| 761 | 718 => x"65B2941C",
| 762 | 719 => x"65C6C974",
| 763 | 720 => x"65DAEF16",
| 764 | 721 => x"65EF04FF",
| 765 | 722 => x"66030B2D",
| 766 | 723 => x"6617019B",
| 767 | 724 => x"662AE846",
| 768 | 725 => x"663EBF2D",
| 769 | 726 => x"6652864B",
| 770 | 727 => x"66663D9D",
| 771 | 728 => x"6679E521",
| 772 | 729 => x"668D7CD3",
| 773 | 730 => x"66A104B1",
| 774 | 731 => x"66B47CB7",
| 775 | 732 => x"66C7E4E3",
| 776 | 733 => x"66DB3D31",
| 777 | 734 => x"66EE859E",
| 778 | 735 => x"6701BE28",
| 779 | 736 => x"6714E6CC",
| 780 | 737 => x"6727FF85",
| 781 | 738 => x"673B0853",
| 782 | 739 => x"674E0131",
| 783 | 740 => x"6760EA1D",
| 784 | 741 => x"6773C313",
| 785 | 742 => x"67868C12",
| 786 | 743 => x"67994515",
| 787 | 744 => x"67ABEE1B",
| 788 | 745 => x"67BE8720",
| 789 | 746 => x"67D11021",
| 790 | 747 => x"67E3891B",
| 791 | 748 => x"67F5F20D",
| 792 | 749 => x"68084AF2",
| 793 | 750 => x"681A93C8",
| 794 | 751 => x"682CCC8C",
| 795 | 752 => x"683EF53B",
| 796 | 753 => x"68510DD3",
| 797 | 754 => x"68631651",
| 798 | 755 => x"68750EB1",
| 799 | 756 => x"6886F6F2",
| 800 | 757 => x"6898CF10",
| 801 | 758 => x"68AA9709",
| 802 | 759 => x"68BC4EDA",
| 803 | 760 => x"68CDF67F",
| 804 | 761 => x"68DF8DF8",
| 805 | 762 => x"68F11540",
| 806 | 763 => x"69028C55",
| 807 | 764 => x"6913F334",
| 808 | 765 => x"692549DB",
| 809 | 766 => x"69369047",
| 810 | 767 => x"6947C675",
| 811 | 768 => x"6958EC63",
| 812 | 769 => x"696A020E",
| 813 | 770 => x"697B0773",
| 814 | 771 => x"698BFC90",
| 815 | 772 => x"699CE162",
| 816 | 773 => x"69ADB5E7",
| 817 | 774 => x"69BE7A1B",
| 818 | 775 => x"69CF2DFD",
| 819 | 776 => x"69DFD189",
| 820 | 777 => x"69F064BE",
| 821 | 778 => x"6A00E798",
| 822 | 779 => x"6A115A16",
| 823 | 780 => x"6A21BC34",
| 824 | 781 => x"6A320DEF",
| 825 | 782 => x"6A424F47",
| 826 | 783 => x"6A528037",
| 827 | 784 => x"6A62A0BE",
| 828 | 785 => x"6A72B0D9",
| 829 | 786 => x"6A82B085",
| 830 | 787 => x"6A929FC0",
| 831 | 788 => x"6AA27E88",
| 832 | 789 => x"6AB24CDA",
| 833 | 790 => x"6AC20AB3",
| 834 | 791 => x"6AD1B812",
| 835 | 792 => x"6AE154F4",
| 836 | 793 => x"6AF0E156",
| 837 | 794 => x"6B005D36",
| 838 | 795 => x"6B0FC892",
| 839 | 796 => x"6B1F2367",
| 840 | 797 => x"6B2E6DB3",
| 841 | 798 => x"6B3DA773",
| 842 | 799 => x"6B4CD0A5",
| 843 | 800 => x"6B5BE948",
| 844 | 801 => x"6B6AF158",
| 845 | 802 => x"6B79E8D3",
| 846 | 803 => x"6B88CFB7",
| 847 | 804 => x"6B97A601",
| 848 | 805 => x"6BA66BB0",
| 849 | 806 => x"6BB520C0",
| 850 | 807 => x"6BC3C531",
| 851 | 808 => x"6BD258FF",
| 852 | 809 => x"6BE0DC28",
| 853 | 810 => x"6BEF4EAA",
| 854 | 811 => x"6BFDB083",
| 855 | 812 => x"6C0C01B0",
| 856 | 813 => x"6C1A4230",
| 857 | 814 => x"6C287200",
| 858 | 815 => x"6C36911D",
| 859 | 816 => x"6C449F87",
| 860 | 817 => x"6C529D3A",
| 861 | 818 => x"6C608A34",
| 862 | 819 => x"6C6E6674",
| 863 | 820 => x"6C7C31F7",
| 864 | 821 => x"6C89ECBA",
| 865 | 822 => x"6C9796BD",
| 866 | 823 => x"6CA52FFC",
| 867 | 824 => x"6CB2B877",
| 868 | 825 => x"6CC03029",
| 869 | 826 => x"6CCD9712",
| 870 | 827 => x"6CDAED30",
| 871 | 828 => x"6CE83280",
| 872 | 829 => x"6CF56700",
| 873 | 830 => x"6D028AAF",
| 874 | 831 => x"6D0F9D8A",
| 875 | 832 => x"6D1C9F8F",
| 876 | 833 => x"6D2990BC",
| 877 | 834 => x"6D367110",
| 878 | 835 => x"6D434087",
| 879 | 836 => x"6D4FFF21",
| 880 | 837 => x"6D5CACDC",
| 881 | 838 => x"6D6949B4",
| 882 | 839 => x"6D75D5AA",
| 883 | 840 => x"6D8250B9",
| 884 | 841 => x"6D8EBAE1",
| 885 | 842 => x"6D9B1420",
| 886 | 843 => x"6DA75C73",
| 887 | 844 => x"6DB393DA",
| 888 | 845 => x"6DBFBA51",
| 889 | 846 => x"6DCBCFD7",
| 890 | 847 => x"6DD7D46A",
| 891 | 848 => x"6DE3C809",
| 892 | 849 => x"6DEFAAB1",
| 893 | 850 => x"6DFB7C61",
| 894 | 851 => x"6E073D17",
| 895 | 852 => x"6E12ECD0",
| 896 | 853 => x"6E1E8B8C",
| 897 | 854 => x"6E2A1949",
| 898 | 855 => x"6E359604",
| 899 | 856 => x"6E4101BB",
| 900 | 857 => x"6E4C5C6E",
| 901 | 858 => x"6E57A61A",
| 902 | 859 => x"6E62DEBE",
| 903 | 860 => x"6E6E0658",
| 904 | 861 => x"6E791CE6",
| 905 | 862 => x"6E842266",
| 906 | 863 => x"6E8F16D7",
| 907 | 864 => x"6E99FA37",
| 908 | 865 => x"6EA4CC85",
| 909 | 866 => x"6EAF8DBE",
| 910 | 867 => x"6EBA3DE1",
| 911 | 868 => x"6EC4DCED",
| 912 | 869 => x"6ECF6ADF",
| 913 | 870 => x"6ED9E7B6",
| 914 | 871 => x"6EE45371",
| 915 | 872 => x"6EEEAE0E",
| 916 | 873 => x"6EF8F78B",
| 917 | 874 => x"6F032FE7",
| 918 | 875 => x"6F0D5720",
| 919 | 876 => x"6F176D34",
| 920 | 877 => x"6F217223",
| 921 | 878 => x"6F2B65EA",
| 922 | 879 => x"6F354887",
| 923 | 880 => x"6F3F19FB",
| 924 | 881 => x"6F48DA42",
| 925 | 882 => x"6F52895B",
| 926 | 883 => x"6F5C2745",
| 927 | 884 => x"6F65B3FF",
| 928 | 885 => x"6F6F2F87",
| 929 | 886 => x"6F7899DB",
| 930 | 887 => x"6F81F2FA",
| 931 | 888 => x"6F8B3AE3",
| 932 | 889 => x"6F947193",
| 933 | 890 => x"6F9D970B",
| 934 | 891 => x"6FA6AB47",
| 935 | 892 => x"6FAFAE48",
| 936 | 893 => x"6FB8A00B",
| 937 | 894 => x"6FC1808F",
| 938 | 895 => x"6FCA4FD3",
| 939 | 896 => x"6FD30DD6",
| 940 | 897 => x"6FDBBA95",
| 941 | 898 => x"6FE45610",
| 942 | 899 => x"6FECE046",
| 943 | 900 => x"6FF55934",
| 944 | 901 => x"6FFDC0DA",
| 945 | 902 => x"70061737",
| 946 | 903 => x"700E5C49",
| 947 | 904 => x"7016900F",
| 948 | 905 => x"701EB287",
| 949 | 906 => x"7026C3B1",
| 950 | 907 => x"702EC38B",
| 951 | 908 => x"7036B213",
| 952 | 909 => x"703E8F4A",
| 953 | 910 => x"70465B2C",
| 954 | 911 => x"704E15BA",
| 955 | 912 => x"7055BEF2",
| 956 | 913 => x"705D56D3",
| 957 | 914 => x"7064DD5C",
| 958 | 915 => x"706C528B",
| 959 | 916 => x"7073B660",
| 960 | 917 => x"707B08D8",
| 961 | 918 => x"708249F4",
| 962 | 919 => x"708979B2",
| 963 | 920 => x"70909811",
| 964 | 921 => x"7097A50F",
| 965 | 922 => x"709EA0AD",
| 966 | 923 => x"70A58AE7",
| 967 | 924 => x"70AC63BF",
| 968 | 925 => x"70B32B32",
| 969 | 926 => x"70B9E13F",
| 970 | 927 => x"70C085E5",
| 971 | 928 => x"70C71925",
| 972 | 929 => x"70CD9AFB",
| 973 | 930 => x"70D40B68",
| 974 | 931 => x"70DA6A6A",
| 975 | 932 => x"70E0B800",
| 976 | 933 => x"70E6F42A",
| 977 | 934 => x"70ED1EE7",
| 978 | 935 => x"70F33835",
| 979 | 936 => x"70F94013",
| 980 | 937 => x"70FF3681",
| 981 | 938 => x"71051B7E",
| 982 | 939 => x"710AEF08",
| 983 | 940 => x"7110B120",
| 984 | 941 => x"711661C3",
| 985 | 942 => x"711C00F2",
| 986 | 943 => x"71218EAA",
| 987 | 944 => x"71270AED",
| 988 | 945 => x"712C75B7",
| 989 | 946 => x"7131CF0A",
| 990 | 947 => x"713716E3",
| 991 | 948 => x"713C4D43",
| 992 | 949 => x"71417227",
| 993 | 950 => x"71468591",
| 994 | 951 => x"714B877E",
| 995 | 952 => x"715077ED",
| 996 | 953 => x"715556DF",
| 997 | 954 => x"715A2453",
| 998 | 955 => x"715EE047",
| 999 | 956 => x"71638ABB",
| 1000 | 957 => x"716823AE",
| 1001 | 958 => x"716CAB20",
| 1002 | 959 => x"7171210F",
| 1003 | 960 => x"7175857C",
| 1004 | 961 => x"7179D865",
| 1005 | 962 => x"717E19CA",
| 1006 | 963 => x"718249AA",
| 1007 | 964 => x"71866804",
| 1008 | 965 => x"718A74D8",
| 1009 | 966 => x"718E7026",
| 1010 | 967 => x"719259EC",
| 1011 | 968 => x"7196322A",
| 1012 | 969 => x"7199F8DF",
| 1013 | 970 => x"719DAE0C",
| 1014 | 971 => x"71A151AE",
| 1015 | 972 => x"71A4E3C6",
| 1016 | 973 => x"71A86453",
| 1017 | 974 => x"71ABD355",
| 1018 | 975 => x"71AF30CB",
| 1019 | 976 => x"71B27CB5",
| 1020 | 977 => x"71B5B711",
| 1021 | 978 => x"71B8DFE0",
| 1022 | 979 => x"71BBF721",
| 1023 | 980 => x"71BEFCD4",
| 1024 | 981 => x"71C1F0F8",
| 1025 | 982 => x"71C4D38C",
| 1026 | 983 => x"71C7A491",
| 1027 | 984 => x"71CA6405",
| 1028 | 985 => x"71CD11E9",
| 1029 | 986 => x"71CFAE3B",
| 1030 | 987 => x"71D238FC",
| 1031 | 988 => x"71D4B22C",
| 1032 | 989 => x"71D719C9",
| 1033 | 990 => x"71D96FD3",
| 1034 | 991 => x"71DBB44A",
| 1035 | 992 => x"71DDE72E",
| 1036 | 993 => x"71E0087F",
| 1037 | 994 => x"71E2183B",
| 1038 | 995 => x"71E41663",
| 1039 | 996 => x"71E602F7",
| 1040 | 997 => x"71E7DDF5",
| 1041 | 998 => x"71E9A75F",
| 1042 | 999 => x"71EB5F32",
| 1043 | 1000 => x"71ED0570",
| 1044 | 1001 => x"71EE9A18",
| 1045 | 1002 => x"71F01D2A",
| 1046 | 1003 => x"71F18EA6",
| 1047 | 1004 => x"71F2EE8A",
| 1048 | 1005 => x"71F43CD8",
| 1049 | 1006 => x"71F5798E",
| 1050 | 1007 => x"71F6A4AE",
| 1051 | 1008 => x"71F7BE35",
| 1052 | 1009 => x"71F8C625",
| 1053 | 1010 => x"71F9BC7E",
| 1054 | 1011 => x"71FAA13E",
| 1055 | 1012 => x"71FB7466",
| 1056 | 1013 => x"71FC35F6",
| 1057 | 1014 => x"71FCE5EE",
| 1058 | 1015 => x"71FD844D",
| 1059 | 1016 => x"71FE1114",
| 1060 | 1017 => x"71FE8C41",
| 1061 | 1018 => x"71FEF5D7",
| 1062 | 1019 => x"71FF4DD3",
| 1063 | 1020 => x"71FF9437",
| 1064 | 1021 => x"71FFC902",
| 1065 | 1022 => x"71FFEC33",
| 1066 | 1023 => x"71FFFDCC",
| 1067 | others => x"00000000"
| 1068 | );
| 1069 |
| 1070 | begin
| 1071 | -- phase accumulator
| 1072 | process begin
| 1073 | wait until rising_edge(CLK);
| 1074 | if BCK = '1'then
| 1075 | if (DIN_CNT = DIN_CNT_MAX-1) then
| 1076 | ACCUM_TMP <= ACCUM_TMP + unsigned(FREQ_INC);
| 1077 | ACCUM <= ACCUM_TMP + unsigned(PHASE_INC);
| 1078 | end if;
| 1079 | end if;
| 1080 | end process;
| 1081 |
| 1082 | -- BROM
| 1083 | process begin
| 1084 | wait until rising_edge(CLK);
| 1085 | if BCK = '1' then
| 1086 | if (DIN_CNT = DIN_CNT_MAX-1) then
| 1087 | ROMADDR <= ADDRESS; -- clocked address --> BRAM
| 1088 | end if;
| 1089 | end if;
| 1090 | end process;
| 1091 |
| 1092 | -- 1 clock cycle latency caused by BROM
| 1093 | process begin
| 1094 | wait until rising_edge(CLK);
| 1095 | if BCK = '1' then
| 1096 | if (DIN_CNT = DIN_CNT_MAX-1) then
| 1097 | SIGN <= ACCUM(ACCUM'left);
| 1098 | end if;
| 1099 | end if;
| 1100 | end process;
| 1101 |
| 1102 |
| 1103 | QUADRANT <= ACCUM(ACCUM'left-1);
| 1104 | RESULT <= signed(sine_LUT(ROMADDR));
| 1105 |
| 1106 | ADDRESS <= to_integer(ACCUM(ACCUM'high-2 downto ACCUM'high-11)) when (QUADRANT = '0') else
| 1107 | 1023-to_integer(ACCUM(ACCUM'high-2 downto ACCUM'high-11));
| 1108 |
| 1109 | DOUT <= std_logic_vector(RESULT) when (SIGN = '1') else
| 1110 | std_logic_vector(0-RESULT) ;
| 1111 |
| 1112 |
| 1113 | end BEHAVIOUR;
|
|