From eb40f1ba277a9e6af07241985869b2be1cfdde01 Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Wed, 24 Jan 2024 11:17:05 +0800 Subject: [PATCH] [WIP] polyphase qpsk transmitter --- .../sources_1/ip/coe/hrc_256_12_025.coe | 3080 +++++++++ .../sources_1/ip/coe/hrc_512_12_025.coe | 6152 +++++++++++++++++ .../sources_1/ip/coe/hrc_64_12_025.coe | 776 +++ .../ip/hrc_256_12_025/hrc_256_12_025.xci | 349 + .../ip/hrc_512_12_025/hrc_512_12_025.xci | 349 + .../ip/hrc_64_12_025/hrc_64_12_025.xci | 349 + .../sources_1/new/tx_qpsk_poly.v | 627 ++ .../tx_qpsk_poly/tx_qpsk_poly.xpr | 395 ++ 8 files changed, 12077 insertions(+) create mode 100644 modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_256_12_025.coe create mode 100644 modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_512_12_025.coe create mode 100644 modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_64_12_025.coe create mode 100644 modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_256_12_025/hrc_256_12_025.xci create mode 100644 modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_512_12_025/hrc_512_12_025.xci create mode 100644 modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_64_12_025/hrc_64_12_025.xci create mode 100644 modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/new/tx_qpsk_poly.v create mode 100644 modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.xpr diff --git a/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_256_12_025.coe b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_256_12_025.coe new file mode 100644 index 00000000..0b2f9a65 --- /dev/null +++ b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_256_12_025.coe @@ -0,0 +1,3080 @@ +; XILINX CORE Generator v1.0 +; Copyright 2023 Gatsby Van +; generated by MATLAB 23.2 (R2023b) +; generated at: 15-Jan-2024 11:08:12 +0800 + +RADIX = 10; +COEFDATA = + -46, + -42, + -38, + -34, + -30, + -25, + -21, + -17, + -13, + -8, + -4, + 0, + 5, + 9, + 13, + 17, + 22, + 26, + 30, + 35, + 39, + 43, + 48, + 52, + 56, + 60, + 65, + 69, + 73, + 77, + 82, + 86, + 90, + 94, + 98, + 102, + 106, + 110, + 115, + 119, + 123, + 127, + 131, + 134, + 138, + 142, + 146, + 150, + 154, + 157, + 161, + 165, + 168, + 172, + 176, + 179, + 183, + 186, + 190, + 193, + 196, + 200, + 203, + 206, + 209, + 212, + 215, + 218, + 221, + 224, + 227, + 230, + 233, + 235, + 238, + 241, + 243, + 246, + 248, + 250, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 272, + 274, + 276, + 277, + 279, + 280, + 281, + 282, + 284, + 285, + 286, + 287, + 287, + 288, + 289, + 290, + 290, + 291, + 291, + 292, + 292, + 292, + 292, + 293, + 293, + 292, + 292, + 292, + 292, + 292, + 291, + 291, + 290, + 289, + 289, + 288, + 287, + 286, + 285, + 284, + 283, + 282, + 280, + 279, + 278, + 276, + 274, + 273, + 271, + 269, + 267, + 265, + 263, + 261, + 259, + 257, + 255, + 252, + 250, + 247, + 245, + 242, + 240, + 237, + 234, + 231, + 228, + 225, + 222, + 219, + 216, + 212, + 209, + 206, + 202, + 199, + 195, + 192, + 188, + 184, + 180, + 177, + 173, + 169, + 165, + 161, + 157, + 153, + 148, + 144, + 140, + 136, + 131, + 127, + 122, + 118, + 113, + 109, + 104, + 99, + 95, + 90, + 85, + 81, + 76, + 71, + 66, + 61, + 56, + 51, + 46, + 41, + 36, + 31, + 26, + 21, + 16, + 11, + 6, + 1, + -4, + -9, + -15, + -20, + -25, + -30, + -35, + -40, + -46, + -51, + -56, + -61, + -66, + -71, + -77, + -82, + -87, + -92, + -97, + -102, + -107, + -112, + -117, + -123, + -128, + -133, + -138, + -142, + -147, + -152, + -157, + -162, + -167, + -172, + -176, + -181, + -186, + -190, + -195, + -199, + -204, + -208, + -213, + -217, + -222, + -226, + -230, + -234, + -238, + -243, + -247, + -251, + -254, + -258, + -262, + -266, + -270, + -273, + -277, + -280, + -284, + -287, + -290, + -293, + -297, + -300, + -303, + -306, + -309, + -311, + -314, + -317, + -319, + -322, + -324, + -326, + -329, + -331, + -333, + -335, + -337, + -338, + -340, + -342, + -343, + -345, + -346, + -347, + -349, + -350, + -351, + -352, + -352, + -353, + -354, + -354, + -355, + -355, + -355, + -356, + -356, + -356, + -355, + -355, + -355, + -354, + -354, + -353, + -352, + -352, + -351, + -350, + -348, + -347, + -346, + -344, + -343, + -341, + -339, + -337, + -336, + -333, + -331, + -329, + -327, + -324, + -322, + -319, + -316, + -313, + -310, + -307, + -304, + -301, + -297, + -294, + -290, + -287, + -283, + -279, + -275, + -271, + -267, + -263, + -259, + -254, + -250, + -245, + -240, + -236, + -231, + -226, + -221, + -216, + -210, + -205, + -200, + -194, + -189, + -183, + -177, + -172, + -166, + -160, + -154, + -148, + -142, + -135, + -129, + -123, + -116, + -110, + -103, + -97, + -90, + -83, + -76, + -70, + -63, + -56, + -49, + -42, + -34, + -27, + -20, + -13, + -5, + 2, + 9, + 17, + 24, + 32, + 39, + 47, + 55, + 62, + 70, + 78, + 85, + 93, + 101, + 109, + 116, + 124, + 132, + 140, + 148, + 156, + 164, + 171, + 179, + 187, + 195, + 203, + 211, + 219, + 227, + 234, + 242, + 250, + 258, + 266, + 273, + 281, + 289, + 296, + 304, + 312, + 319, + 327, + 334, + 342, + 349, + 357, + 364, + 371, + 378, + 386, + 393, + 400, + 407, + 414, + 421, + 427, + 434, + 441, + 448, + 454, + 461, + 467, + 473, + 480, + 486, + 492, + 498, + 504, + 510, + 515, + 521, + 526, + 532, + 537, + 542, + 548, + 553, + 558, + 562, + 567, + 572, + 576, + 581, + 585, + 589, + 593, + 597, + 601, + 604, + 608, + 611, + 614, + 618, + 621, + 623, + 626, + 629, + 631, + 634, + 636, + 638, + 640, + 641, + 643, + 645, + 646, + 647, + 648, + 649, + 650, + 650, + 651, + 651, + 651, + 651, + 651, + 650, + 650, + 649, + 648, + 647, + 646, + 645, + 643, + 641, + 640, + 638, + 635, + 633, + 631, + 628, + 625, + 622, + 619, + 616, + 612, + 608, + 604, + 600, + 596, + 592, + 587, + 583, + 578, + 573, + 568, + 562, + 557, + 551, + 545, + 539, + 533, + 526, + 520, + 513, + 506, + 499, + 492, + 485, + 477, + 469, + 462, + 454, + 445, + 437, + 429, + 420, + 411, + 402, + 393, + 384, + 374, + 365, + 355, + 345, + 335, + 325, + 315, + 305, + 294, + 283, + 272, + 261, + 250, + 239, + 228, + 216, + 205, + 193, + 181, + 169, + 157, + 145, + 132, + 120, + 107, + 95, + 82, + 69, + 56, + 43, + 30, + 17, + 3, + -10, + -24, + -37, + -51, + -65, + -79, + -93, + -107, + -121, + -135, + -149, + -163, + -178, + -192, + -207, + -221, + -236, + -250, + -265, + -279, + -294, + -309, + -324, + -338, + -353, + -368, + -383, + -398, + -413, + -427, + -442, + -457, + -472, + -487, + -502, + -517, + -532, + -546, + -561, + -576, + -591, + -605, + -620, + -635, + -649, + -664, + -678, + -693, + -707, + -722, + -736, + -750, + -764, + -778, + -792, + -806, + -820, + -834, + -848, + -861, + -875, + -888, + -901, + -914, + -928, + -940, + -953, + -966, + -979, + -991, +-1003, +-1016, +-1028, +-1040, +-1051, +-1063, +-1074, +-1086, +-1097, +-1108, +-1119, +-1129, +-1140, +-1150, +-1160, +-1170, +-1180, +-1190, +-1199, +-1208, +-1217, +-1226, +-1235, +-1243, +-1252, +-1260, +-1267, +-1275, +-1282, +-1289, +-1296, +-1303, +-1309, +-1316, +-1322, +-1327, +-1333, +-1338, +-1343, +-1348, +-1353, +-1357, +-1361, +-1365, +-1368, +-1371, +-1374, +-1377, +-1379, +-1382, +-1383, +-1385, +-1386, +-1387, +-1388, +-1389, +-1389, +-1389, +-1388, +-1388, +-1387, +-1386, +-1384, +-1382, +-1380, +-1378, +-1375, +-1372, +-1369, +-1365, +-1361, +-1357, +-1352, +-1348, +-1342, +-1337, +-1331, +-1325, +-1319, +-1312, +-1305, +-1298, +-1290, +-1282, +-1274, +-1265, +-1256, +-1247, +-1238, +-1228, +-1218, +-1207, +-1197, +-1186, +-1174, +-1163, +-1151, +-1138, +-1126, +-1113, +-1100, +-1086, +-1072, +-1058, +-1044, +-1029, +-1014, + -999, + -983, + -967, + -951, + -934, + -917, + -900, + -883, + -865, + -847, + -829, + -811, + -792, + -773, + -753, + -734, + -714, + -694, + -673, + -653, + -632, + -610, + -589, + -567, + -545, + -523, + -501, + -478, + -455, + -432, + -408, + -385, + -361, + -337, + -313, + -288, + -263, + -239, + -213, + -188, + -163, + -137, + -111, + -85, + -59, + -32, + -6, + 21, + 48, + 75, + 102, + 130, + 157, + 185, + 212, + 240, + 268, + 297, + 325, + 353, + 382, + 410, + 439, + 468, + 497, + 526, + 555, + 584, + 613, + 642, + 671, + 701, + 730, + 760, + 789, + 818, + 848, + 877, + 907, + 936, + 966, + 995, + 1025, + 1054, + 1084, + 1113, + 1143, + 1172, + 1201, + 1231, + 1260, + 1289, + 1318, + 1347, + 1376, + 1405, + 1433, + 1462, + 1490, + 1519, + 1547, + 1575, + 1603, + 1631, + 1659, + 1686, + 1714, + 1741, + 1768, + 1795, + 1821, + 1848, + 1874, + 1900, + 1926, + 1952, + 1977, + 2003, + 2028, + 2053, + 2077, + 2101, + 2125, + 2149, + 2173, + 2196, + 2219, + 2242, + 2264, + 2286, + 2308, + 2329, + 2350, + 2371, + 2392, + 2412, + 2432, + 2451, + 2470, + 2489, + 2507, + 2525, + 2543, + 2560, + 2577, + 2594, + 2610, + 2625, + 2641, + 2656, + 2670, + 2684, + 2698, + 2711, + 2724, + 2736, + 2748, + 2759, + 2770, + 2781, + 2791, + 2800, + 2809, + 2818, + 2826, + 2834, + 2841, + 2848, + 2854, + 2859, + 2865, + 2869, + 2873, + 2877, + 2880, + 2882, + 2884, + 2886, + 2887, + 2887, + 2887, + 2886, + 2885, + 2883, + 2881, + 2878, + 2874, + 2870, + 2866, + 2861, + 2855, + 2848, + 2841, + 2834, + 2826, + 2817, + 2808, + 2798, + 2788, + 2777, + 2765, + 2753, + 2740, + 2727, + 2713, + 2698, + 2683, + 2667, + 2651, + 2634, + 2616, + 2598, + 2579, + 2560, + 2540, + 2519, + 2498, + 2476, + 2454, + 2431, + 2407, + 2383, + 2358, + 2333, + 2307, + 2280, + 2253, + 2225, + 2197, + 2168, + 2139, + 2108, + 2078, + 2047, + 2015, + 1982, + 1949, + 1916, + 1882, + 1847, + 1812, + 1776, + 1740, + 1703, + 1665, + 1627, + 1589, + 1550, + 1510, + 1470, + 1429, + 1388, + 1346, + 1304, + 1261, + 1218, + 1174, + 1130, + 1086, + 1040, + 995, + 949, + 902, + 855, + 807, + 759, + 711, + 662, + 613, + 563, + 513, + 463, + 412, + 360, + 309, + 257, + 204, + 151, + 98, + 44, + -9, + -64, + -118, + -173, + -228, + -284, + -340, + -396, + -452, + -509, + -566, + -623, + -681, + -738, + -796, + -854, + -913, + -971, +-1030, +-1089, +-1148, +-1208, +-1267, +-1327, +-1386, +-1446, +-1506, +-1566, +-1627, +-1687, +-1747, +-1808, +-1868, +-1929, +-1989, +-2050, +-2110, +-2171, +-2232, +-2292, +-2353, +-2413, +-2474, +-2534, +-2595, +-2655, +-2715, +-2775, +-2835, +-2895, +-2955, +-3014, +-3074, +-3133, +-3192, +-3251, +-3309, +-3368, +-3426, +-3484, +-3542, +-3599, +-3656, +-3713, +-3770, +-3826, +-3882, +-3937, +-3992, +-4047, +-4102, +-4156, +-4209, +-4263, +-4316, +-4368, +-4420, +-4471, +-4522, +-4573, +-4623, +-4673, +-4722, +-4770, +-4818, +-4866, +-4912, +-4959, +-5004, +-5049, +-5094, +-5138, +-5181, +-5223, +-5265, +-5306, +-5347, +-5387, +-5426, +-5464, +-5502, +-5539, +-5575, +-5610, +-5645, +-5679, +-5712, +-5744, +-5775, +-5806, +-5836, +-5865, +-5893, +-5920, +-5946, +-5971, +-5996, +-6019, +-6042, +-6063, +-6084, +-6104, +-6123, +-6140, +-6157, +-6173, +-6188, +-6201, +-6214, +-6226, +-6236, +-6246, +-6254, +-6262, +-6268, +-6273, +-6278, +-6281, +-6282, +-6283, +-6283, +-6281, +-6279, +-6275, +-6270, +-6264, +-6256, +-6248, +-6238, +-6227, +-6215, +-6201, +-6187, +-6171, +-6154, +-6136, +-6116, +-6095, +-6073, +-6049, +-6025, +-5999, +-5972, +-5943, +-5913, +-5882, +-5849, +-5816, +-5781, +-5744, +-5706, +-5667, +-5627, +-5585, +-5542, +-5497, +-5452, +-5404, +-5356, +-5306, +-5255, +-5202, +-5148, +-5093, +-5036, +-4978, +-4918, +-4858, +-4795, +-4732, +-4667, +-4600, +-4533, +-4463, +-4393, +-4321, +-4248, +-4173, +-4097, +-4020, +-3941, +-3861, +-3779, +-3696, +-3612, +-3526, +-3439, +-3351, +-3261, +-3170, +-3077, +-2983, +-2888, +-2791, +-2693, +-2594, +-2493, +-2391, +-2288, +-2184, +-2078, +-1970, +-1862, +-1752, +-1641, +-1528, +-1414, +-1299, +-1183, +-1065, + -946, + -826, + -704, + -582, + -458, + -333, + -206, + -79, + 50, + 180, + 312, + 444, + 578, + 713, + 849, + 986, + 1124, + 1263, + 1404, + 1546, + 1688, + 1832, + 1977, + 2123, + 2270, + 2418, + 2568, + 2718, + 2869, + 3021, + 3175, + 3329, + 3484, + 3640, + 3798, + 3956, + 4115, + 4275, + 4436, + 4597, + 4760, + 4923, + 5088, + 5253, + 5419, + 5586, + 5753, + 5922, + 6091, + 6261, + 6432, + 6603, + 6775, + 6948, + 7121, + 7296, + 7470, + 7646, + 7822, + 7999, + 8176, + 8354, + 8532, + 8711, + 8891, + 9071, + 9251, + 9432, + 9614, + 9795, + 9978, +10160, +10344, +10527, +10711, +10895, +11080, +11265, +11450, +11635, +11821, +12007, +12193, +12379, +12566, +12752, +12939, +13126, +13313, +13501, +13688, +13875, +14063, +14250, +14437, +14625, +14812, +15000, +15187, +15374, +15561, +15748, +15935, +16122, +16308, +16494, +16681, +16866, +17052, +17237, +17422, +17607, +17791, +17976, +18159, +18343, +18525, +18708, +18890, +19072, +19253, +19433, +19614, +19793, +19972, +20151, +20329, +20506, +20682, +20859, +21034, +21209, +21383, +21556, +21728, +21900, +22071, +22241, +22411, +22579, +22747, +22914, +23080, +23245, +23409, +23573, +23735, +23897, +24057, +24216, +24375, +24532, +24688, +24844, +24998, +25151, +25303, +25454, +25604, +25752, +25899, +26046, +26191, +26334, +26477, +26618, +26758, +26897, +27034, +27170, +27305, +27438, +27570, +27701, +27830, +27958, +28084, +28209, +28333, +28455, +28576, +28695, +28812, +28929, +29043, +29156, +29268, +29378, +29486, +29593, +29698, +29802, +29904, +30004, +30103, +30200, +30295, +30389, +30481, +30572, +30660, +30747, +30832, +30916, +30998, +31078, +31156, +31232, +31307, +31380, +31451, +31520, +31588, +31654, +31718, +31780, +31840, +31898, +31955, +32009, +32062, +32113, +32162, +32209, +32255, +32298, +32339, +32379, +32417, +32453, +32486, +32518, +32548, +32577, +32603, +32627, +32649, +32670, +32688, +32705, +32719, +32732, +32743, +32751, +32758, +32763, +32766, +32767, +32766, +32763, +32758, +32751, +32743, +32732, +32719, +32705, +32688, +32670, +32649, +32627, +32603, +32577, +32548, +32518, +32486, +32453, +32417, +32379, +32339, +32298, +32255, +32209, +32162, +32113, +32062, +32009, +31955, +31898, +31840, +31780, +31718, +31654, +31588, +31520, +31451, +31380, +31307, +31232, +31156, +31078, +30998, +30916, +30832, +30747, +30660, +30572, +30481, +30389, +30295, +30200, +30103, +30004, +29904, +29802, +29698, +29593, +29486, +29378, +29268, +29156, +29043, +28929, +28812, +28695, +28576, +28455, +28333, +28209, +28084, +27958, +27830, +27701, +27570, +27438, +27305, +27170, +27034, +26897, +26758, +26618, +26477, +26334, +26191, +26046, +25899, +25752, +25604, +25454, +25303, +25151, +24998, +24844, +24688, +24532, +24375, +24216, +24057, +23897, +23735, +23573, +23409, +23245, +23080, +22914, +22747, +22579, +22411, +22241, +22071, +21900, +21728, +21556, +21383, +21209, +21034, +20859, +20682, +20506, +20329, +20151, +19972, +19793, +19614, +19433, +19253, +19072, +18890, +18708, +18525, +18343, +18159, +17976, +17791, +17607, +17422, +17237, +17052, +16866, +16681, +16494, +16308, +16122, +15935, +15748, +15561, +15374, +15187, +15000, +14812, +14625, +14437, +14250, +14063, +13875, +13688, +13501, +13313, +13126, +12939, +12752, +12566, +12379, +12193, +12007, +11821, +11635, +11450, +11265, +11080, +10895, +10711, +10527, +10344, +10160, + 9978, + 9795, + 9614, + 9432, + 9251, + 9071, + 8891, + 8711, + 8532, + 8354, + 8176, + 7999, + 7822, + 7646, + 7470, + 7296, + 7121, + 6948, + 6775, + 6603, + 6432, + 6261, + 6091, + 5922, + 5753, + 5586, + 5419, + 5253, + 5088, + 4923, + 4760, + 4597, + 4436, + 4275, + 4115, + 3956, + 3798, + 3640, + 3484, + 3329, + 3175, + 3021, + 2869, + 2718, + 2568, + 2418, + 2270, + 2123, + 1977, + 1832, + 1688, + 1546, + 1404, + 1263, + 1124, + 986, + 849, + 713, + 578, + 444, + 312, + 180, + 50, + -79, + -206, + -333, + -458, + -582, + -704, + -826, + -946, +-1065, +-1183, +-1299, +-1414, +-1528, +-1641, +-1752, +-1862, +-1970, +-2078, +-2184, +-2288, +-2391, +-2493, +-2594, +-2693, +-2791, +-2888, +-2983, +-3077, +-3170, +-3261, +-3351, +-3439, +-3526, +-3612, +-3696, +-3779, +-3861, +-3941, +-4020, +-4097, +-4173, +-4248, +-4321, +-4393, +-4463, +-4533, +-4600, +-4667, +-4732, +-4795, +-4858, +-4918, +-4978, +-5036, +-5093, +-5148, +-5202, +-5255, +-5306, +-5356, +-5404, +-5452, +-5497, +-5542, +-5585, +-5627, +-5667, +-5706, +-5744, +-5781, +-5816, +-5849, +-5882, +-5913, +-5943, +-5972, +-5999, +-6025, +-6049, +-6073, +-6095, +-6116, +-6136, +-6154, +-6171, +-6187, +-6201, +-6215, +-6227, +-6238, +-6248, +-6256, +-6264, +-6270, +-6275, +-6279, +-6281, +-6283, +-6283, +-6282, +-6281, +-6278, +-6273, +-6268, +-6262, +-6254, +-6246, +-6236, +-6226, +-6214, +-6201, +-6188, +-6173, +-6157, +-6140, +-6123, +-6104, +-6084, +-6063, +-6042, +-6019, +-5996, +-5971, +-5946, +-5920, +-5893, +-5865, +-5836, +-5806, +-5775, +-5744, +-5712, +-5679, +-5645, +-5610, +-5575, +-5539, +-5502, +-5464, +-5426, +-5387, +-5347, +-5306, +-5265, +-5223, +-5181, +-5138, +-5094, +-5049, +-5004, +-4959, +-4912, +-4866, +-4818, +-4770, +-4722, +-4673, +-4623, +-4573, +-4522, +-4471, +-4420, +-4368, +-4316, +-4263, +-4209, +-4156, +-4102, +-4047, +-3992, +-3937, +-3882, +-3826, +-3770, +-3713, +-3656, +-3599, +-3542, +-3484, +-3426, +-3368, +-3309, +-3251, +-3192, +-3133, +-3074, +-3014, +-2955, +-2895, +-2835, +-2775, +-2715, +-2655, +-2595, +-2534, +-2474, +-2413, +-2353, +-2292, +-2232, +-2171, +-2110, +-2050, +-1989, +-1929, +-1868, +-1808, +-1747, +-1687, +-1627, +-1566, +-1506, +-1446, +-1386, +-1327, +-1267, +-1208, +-1148, +-1089, +-1030, + -971, + -913, + -854, + -796, + -738, + -681, + -623, + -566, + -509, + -452, + -396, + -340, + -284, + -228, + -173, + -118, + -64, + -9, + 44, + 98, + 151, + 204, + 257, + 309, + 360, + 412, + 463, + 513, + 563, + 613, + 662, + 711, + 759, + 807, + 855, + 902, + 949, + 995, + 1040, + 1086, + 1130, + 1174, + 1218, + 1261, + 1304, + 1346, + 1388, + 1429, + 1470, + 1510, + 1550, + 1589, + 1627, + 1665, + 1703, + 1740, + 1776, + 1812, + 1847, + 1882, + 1916, + 1949, + 1982, + 2015, + 2047, + 2078, + 2108, + 2139, + 2168, + 2197, + 2225, + 2253, + 2280, + 2307, + 2333, + 2358, + 2383, + 2407, + 2431, + 2454, + 2476, + 2498, + 2519, + 2540, + 2560, + 2579, + 2598, + 2616, + 2634, + 2651, + 2667, + 2683, + 2698, + 2713, + 2727, + 2740, + 2753, + 2765, + 2777, + 2788, + 2798, + 2808, + 2817, + 2826, + 2834, + 2841, + 2848, + 2855, + 2861, + 2866, + 2870, + 2874, + 2878, + 2881, + 2883, + 2885, + 2886, + 2887, + 2887, + 2887, + 2886, + 2884, + 2882, + 2880, + 2877, + 2873, + 2869, + 2865, + 2859, + 2854, + 2848, + 2841, + 2834, + 2826, + 2818, + 2809, + 2800, + 2791, + 2781, + 2770, + 2759, + 2748, + 2736, + 2724, + 2711, + 2698, + 2684, + 2670, + 2656, + 2641, + 2625, + 2610, + 2594, + 2577, + 2560, + 2543, + 2525, + 2507, + 2489, + 2470, + 2451, + 2432, + 2412, + 2392, + 2371, + 2350, + 2329, + 2308, + 2286, + 2264, + 2242, + 2219, + 2196, + 2173, + 2149, + 2125, + 2101, + 2077, + 2053, + 2028, + 2003, + 1977, + 1952, + 1926, + 1900, + 1874, + 1848, + 1821, + 1795, + 1768, + 1741, + 1714, + 1686, + 1659, + 1631, + 1603, + 1575, + 1547, + 1519, + 1490, + 1462, + 1433, + 1405, + 1376, + 1347, + 1318, + 1289, + 1260, + 1231, + 1201, + 1172, + 1143, + 1113, + 1084, + 1054, + 1025, + 995, + 966, + 936, + 907, + 877, + 848, + 818, + 789, + 760, + 730, + 701, + 671, + 642, + 613, + 584, + 555, + 526, + 497, + 468, + 439, + 410, + 382, + 353, + 325, + 297, + 268, + 240, + 212, + 185, + 157, + 130, + 102, + 75, + 48, + 21, + -6, + -32, + -59, + -85, + -111, + -137, + -163, + -188, + -213, + -239, + -263, + -288, + -313, + -337, + -361, + -385, + -408, + -432, + -455, + -478, + -501, + -523, + -545, + -567, + -589, + -610, + -632, + -653, + -673, + -694, + -714, + -734, + -753, + -773, + -792, + -811, + -829, + -847, + -865, + -883, + -900, + -917, + -934, + -951, + -967, + -983, + -999, +-1014, +-1029, +-1044, +-1058, +-1072, +-1086, +-1100, +-1113, +-1126, +-1138, +-1151, +-1163, +-1174, +-1186, +-1197, +-1207, +-1218, +-1228, +-1238, +-1247, +-1256, +-1265, +-1274, +-1282, +-1290, +-1298, +-1305, +-1312, +-1319, +-1325, +-1331, +-1337, +-1342, +-1348, +-1352, +-1357, +-1361, +-1365, +-1369, +-1372, +-1375, +-1378, +-1380, +-1382, +-1384, +-1386, +-1387, +-1388, +-1388, +-1389, +-1389, +-1389, +-1388, +-1387, +-1386, +-1385, +-1383, +-1382, +-1379, +-1377, +-1374, +-1371, +-1368, +-1365, +-1361, +-1357, +-1353, +-1348, +-1343, +-1338, +-1333, +-1327, +-1322, +-1316, +-1309, +-1303, +-1296, +-1289, +-1282, +-1275, +-1267, +-1260, +-1252, +-1243, +-1235, +-1226, +-1217, +-1208, +-1199, +-1190, +-1180, +-1170, +-1160, +-1150, +-1140, +-1129, +-1119, +-1108, +-1097, +-1086, +-1074, +-1063, +-1051, +-1040, +-1028, +-1016, +-1003, + -991, + -979, + -966, + -953, + -940, + -928, + -914, + -901, + -888, + -875, + -861, + -848, + -834, + -820, + -806, + -792, + -778, + -764, + -750, + -736, + -722, + -707, + -693, + -678, + -664, + -649, + -635, + -620, + -605, + -591, + -576, + -561, + -546, + -532, + -517, + -502, + -487, + -472, + -457, + -442, + -427, + -413, + -398, + -383, + -368, + -353, + -338, + -324, + -309, + -294, + -279, + -265, + -250, + -236, + -221, + -207, + -192, + -178, + -163, + -149, + -135, + -121, + -107, + -93, + -79, + -65, + -51, + -37, + -24, + -10, + 3, + 17, + 30, + 43, + 56, + 69, + 82, + 95, + 107, + 120, + 132, + 145, + 157, + 169, + 181, + 193, + 205, + 216, + 228, + 239, + 250, + 261, + 272, + 283, + 294, + 305, + 315, + 325, + 335, + 345, + 355, + 365, + 374, + 384, + 393, + 402, + 411, + 420, + 429, + 437, + 445, + 454, + 462, + 469, + 477, + 485, + 492, + 499, + 506, + 513, + 520, + 526, + 533, + 539, + 545, + 551, + 557, + 562, + 568, + 573, + 578, + 583, + 587, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 619, + 622, + 625, + 628, + 631, + 633, + 635, + 638, + 640, + 641, + 643, + 645, + 646, + 647, + 648, + 649, + 650, + 650, + 651, + 651, + 651, + 651, + 651, + 650, + 650, + 649, + 648, + 647, + 646, + 645, + 643, + 641, + 640, + 638, + 636, + 634, + 631, + 629, + 626, + 623, + 621, + 618, + 614, + 611, + 608, + 604, + 601, + 597, + 593, + 589, + 585, + 581, + 576, + 572, + 567, + 562, + 558, + 553, + 548, + 542, + 537, + 532, + 526, + 521, + 515, + 510, + 504, + 498, + 492, + 486, + 480, + 473, + 467, + 461, + 454, + 448, + 441, + 434, + 427, + 421, + 414, + 407, + 400, + 393, + 386, + 378, + 371, + 364, + 357, + 349, + 342, + 334, + 327, + 319, + 312, + 304, + 296, + 289, + 281, + 273, + 266, + 258, + 250, + 242, + 234, + 227, + 219, + 211, + 203, + 195, + 187, + 179, + 171, + 164, + 156, + 148, + 140, + 132, + 124, + 116, + 109, + 101, + 93, + 85, + 78, + 70, + 62, + 55, + 47, + 39, + 32, + 24, + 17, + 9, + 2, + -5, + -13, + -20, + -27, + -34, + -42, + -49, + -56, + -63, + -70, + -76, + -83, + -90, + -97, + -103, + -110, + -116, + -123, + -129, + -135, + -142, + -148, + -154, + -160, + -166, + -172, + -177, + -183, + -189, + -194, + -200, + -205, + -210, + -216, + -221, + -226, + -231, + -236, + -240, + -245, + -250, + -254, + -259, + -263, + -267, + -271, + -275, + -279, + -283, + -287, + -290, + -294, + -297, + -301, + -304, + -307, + -310, + -313, + -316, + -319, + -322, + -324, + -327, + -329, + -331, + -333, + -336, + -337, + -339, + -341, + -343, + -344, + -346, + -347, + -348, + -350, + -351, + -352, + -352, + -353, + -354, + -354, + -355, + -355, + -355, + -356, + -356, + -356, + -355, + -355, + -355, + -354, + -354, + -353, + -352, + -352, + -351, + -350, + -349, + -347, + -346, + -345, + -343, + -342, + -340, + -338, + -337, + -335, + -333, + -331, + -329, + -326, + -324, + -322, + -319, + -317, + -314, + -311, + -309, + -306, + -303, + -300, + -297, + -293, + -290, + -287, + -284, + -280, + -277, + -273, + -270, + -266, + -262, + -258, + -254, + -251, + -247, + -243, + -238, + -234, + -230, + -226, + -222, + -217, + -213, + -208, + -204, + -199, + -195, + -190, + -186, + -181, + -176, + -172, + -167, + -162, + -157, + -152, + -147, + -142, + -138, + -133, + -128, + -123, + -117, + -112, + -107, + -102, + -97, + -92, + -87, + -82, + -77, + -71, + -66, + -61, + -56, + -51, + -46, + -40, + -35, + -30, + -25, + -20, + -15, + -9, + -4, + 1, + 6, + 11, + 16, + 21, + 26, + 31, + 36, + 41, + 46, + 51, + 56, + 61, + 66, + 71, + 76, + 81, + 85, + 90, + 95, + 99, + 104, + 109, + 113, + 118, + 122, + 127, + 131, + 136, + 140, + 144, + 148, + 153, + 157, + 161, + 165, + 169, + 173, + 177, + 180, + 184, + 188, + 192, + 195, + 199, + 202, + 206, + 209, + 212, + 216, + 219, + 222, + 225, + 228, + 231, + 234, + 237, + 240, + 242, + 245, + 247, + 250, + 252, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 274, + 276, + 278, + 279, + 280, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 289, + 290, + 291, + 291, + 292, + 292, + 292, + 292, + 292, + 293, + 293, + 292, + 292, + 292, + 292, + 291, + 291, + 290, + 290, + 289, + 288, + 287, + 287, + 286, + 285, + 284, + 282, + 281, + 280, + 279, + 277, + 276, + 274, + 272, + 271, + 269, + 267, + 265, + 263, + 261, + 259, + 257, + 255, + 253, + 250, + 248, + 246, + 243, + 241, + 238, + 235, + 233, + 230, + 227, + 224, + 221, + 218, + 215, + 212, + 209, + 206, + 203, + 200, + 196, + 193, + 190, + 186, + 183, + 179, + 176, + 172, + 168, + 165, + 161, + 157, + 154, + 150, + 146, + 142, + 138, + 134, + 131, + 127, + 123, + 119, + 115, + 110, + 106, + 102, + 98, + 94, + 90, + 86, + 82, + 77, + 73, + 69, + 65, + 60, + 56, + 52, + 48, + 43, + 39, + 35, + 30, + 26, + 22, + 17, + 13, + 9, + 5, + 0, + -4, + -8, + -13, + -17, + -21, + -25, + -30, + -34, + -38, + -42, + -46; diff --git a/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_512_12_025.coe b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_512_12_025.coe new file mode 100644 index 00000000..159b8d84 --- /dev/null +++ b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_512_12_025.coe @@ -0,0 +1,6152 @@ +; XILINX CORE Generator v1.0 +; Copyright 2023 Gatsby Van +; generated by MATLAB 23.2 (R2023b) +; generated at: 15-Jan-2024 11:08:28 +0800 + +RADIX = 10; +COEFDATA = + -46, + -44, + -42, + -40, + -38, + -36, + -34, + -32, + -30, + -28, + -25, + -23, + -21, + -19, + -17, + -15, + -13, + -10, + -8, + -6, + -4, + -2, + 0, + 2, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 20, + 22, + 24, + 26, + 28, + 30, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 48, + 50, + 52, + 54, + 56, + 58, + 60, + 62, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 82, + 84, + 86, + 88, + 90, + 92, + 94, + 96, + 98, + 100, + 102, + 104, + 106, + 108, + 110, + 112, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 132, + 134, + 136, + 138, + 140, + 142, + 144, + 146, + 148, + 150, + 152, + 154, + 156, + 157, + 159, + 161, + 163, + 165, + 167, + 168, + 170, + 172, + 174, + 176, + 177, + 179, + 181, + 183, + 184, + 186, + 188, + 190, + 191, + 193, + 195, + 196, + 198, + 200, + 201, + 203, + 204, + 206, + 208, + 209, + 211, + 212, + 214, + 215, + 217, + 218, + 220, + 221, + 223, + 224, + 226, + 227, + 228, + 230, + 231, + 233, + 234, + 235, + 237, + 238, + 239, + 241, + 242, + 243, + 244, + 246, + 247, + 248, + 249, + 250, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 272, + 273, + 274, + 275, + 276, + 276, + 277, + 278, + 279, + 279, + 280, + 281, + 281, + 282, + 282, + 283, + 284, + 284, + 285, + 285, + 286, + 286, + 287, + 287, + 287, + 288, + 288, + 289, + 289, + 289, + 290, + 290, + 290, + 291, + 291, + 291, + 291, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 293, + 293, + 293, + 293, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 291, + 291, + 291, + 291, + 290, + 290, + 290, + 289, + 289, + 289, + 288, + 288, + 288, + 287, + 287, + 286, + 286, + 285, + 285, + 284, + 284, + 283, + 282, + 282, + 281, + 280, + 280, + 279, + 278, + 278, + 277, + 276, + 275, + 274, + 274, + 273, + 272, + 271, + 270, + 269, + 268, + 267, + 266, + 265, + 264, + 263, + 262, + 261, + 260, + 259, + 258, + 257, + 256, + 255, + 254, + 252, + 251, + 250, + 249, + 247, + 246, + 245, + 244, + 242, + 241, + 240, + 238, + 237, + 235, + 234, + 233, + 231, + 230, + 228, + 227, + 225, + 224, + 222, + 220, + 219, + 217, + 216, + 214, + 212, + 211, + 209, + 207, + 206, + 204, + 202, + 201, + 199, + 197, + 195, + 193, + 192, + 190, + 188, + 186, + 184, + 182, + 180, + 179, + 177, + 175, + 173, + 171, + 169, + 167, + 165, + 163, + 161, + 159, + 157, + 155, + 153, + 150, + 148, + 146, + 144, + 142, + 140, + 138, + 136, + 133, + 131, + 129, + 127, + 125, + 122, + 120, + 118, + 116, + 113, + 111, + 109, + 106, + 104, + 102, + 99, + 97, + 95, + 92, + 90, + 88, + 85, + 83, + 81, + 78, + 76, + 73, + 71, + 69, + 66, + 64, + 61, + 59, + 56, + 54, + 51, + 49, + 46, + 44, + 41, + 39, + 36, + 34, + 31, + 29, + 26, + 24, + 21, + 19, + 16, + 14, + 11, + 9, + 6, + 3, + 1, + -2, + -4, + -7, + -9, + -12, + -15, + -17, + -20, + -22, + -25, + -27, + -30, + -33, + -35, + -38, + -40, + -43, + -46, + -48, + -51, + -53, + -56, + -59, + -61, + -64, + -66, + -69, + -71, + -74, + -77, + -79, + -82, + -84, + -87, + -89, + -92, + -95, + -97, + -100, + -102, + -105, + -107, + -110, + -112, + -115, + -117, + -120, + -123, + -125, + -128, + -130, + -133, + -135, + -138, + -140, + -142, + -145, + -147, + -150, + -152, + -155, + -157, + -160, + -162, + -164, + -167, + -169, + -172, + -174, + -176, + -179, + -181, + -183, + -186, + -188, + -190, + -193, + -195, + -197, + -199, + -202, + -204, + -206, + -208, + -211, + -213, + -215, + -217, + -219, + -222, + -224, + -226, + -228, + -230, + -232, + -234, + -236, + -238, + -240, + -243, + -245, + -247, + -249, + -251, + -252, + -254, + -256, + -258, + -260, + -262, + -264, + -266, + -268, + -270, + -271, + -273, + -275, + -277, + -278, + -280, + -282, + -284, + -285, + -287, + -289, + -290, + -292, + -293, + -295, + -297, + -298, + -300, + -301, + -303, + -304, + -306, + -307, + -309, + -310, + -311, + -313, + -314, + -315, + -317, + -318, + -319, + -320, + -322, + -323, + -324, + -325, + -326, + -327, + -329, + -330, + -331, + -332, + -333, + -334, + -335, + -336, + -337, + -338, + -338, + -339, + -340, + -341, + -342, + -343, + -343, + -344, + -345, + -346, + -346, + -347, + -347, + -348, + -349, + -349, + -350, + -350, + -351, + -351, + -352, + -352, + -352, + -353, + -353, + -354, + -354, + -354, + -354, + -355, + -355, + -355, + -355, + -355, + -355, + -355, + -356, + -356, + -356, + -356, + -356, + -355, + -355, + -355, + -355, + -355, + -355, + -355, + -354, + -354, + -354, + -353, + -353, + -353, + -352, + -352, + -352, + -351, + -351, + -350, + -350, + -349, + -348, + -348, + -347, + -346, + -346, + -345, + -344, + -344, + -343, + -342, + -341, + -340, + -339, + -338, + -337, + -337, + -336, + -335, + -333, + -332, + -331, + -330, + -329, + -328, + -327, + -325, + -324, + -323, + -322, + -320, + -319, + -318, + -316, + -315, + -313, + -312, + -310, + -309, + -307, + -306, + -304, + -302, + -301, + -299, + -297, + -296, + -294, + -292, + -290, + -289, + -287, + -285, + -283, + -281, + -279, + -277, + -275, + -273, + -271, + -269, + -267, + -265, + -263, + -261, + -259, + -256, + -254, + -252, + -250, + -247, + -245, + -243, + -240, + -238, + -236, + -233, + -231, + -228, + -226, + -223, + -221, + -218, + -216, + -213, + -210, + -208, + -205, + -202, + -200, + -197, + -194, + -192, + -189, + -186, + -183, + -180, + -177, + -175, + -172, + -169, + -166, + -163, + -160, + -157, + -154, + -151, + -148, + -145, + -142, + -139, + -135, + -132, + -129, + -126, + -123, + -120, + -116, + -113, + -110, + -107, + -103, + -100, + -97, + -93, + -90, + -87, + -83, + -80, + -76, + -73, + -70, + -66, + -63, + -59, + -56, + -52, + -49, + -45, + -42, + -38, + -34, + -31, + -27, + -24, + -20, + -16, + -13, + -9, + -5, + -2, + 2, + 6, + 9, + 13, + 17, + 21, + 24, + 28, + 32, + 36, + 39, + 43, + 47, + 51, + 55, + 58, + 62, + 66, + 70, + 74, + 78, + 81, + 85, + 89, + 93, + 97, + 101, + 105, + 109, + 113, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 171, + 175, + 179, + 183, + 187, + 191, + 195, + 199, + 203, + 207, + 211, + 215, + 219, + 223, + 227, + 230, + 234, + 238, + 242, + 246, + 250, + 254, + 258, + 262, + 266, + 269, + 273, + 277, + 281, + 285, + 289, + 293, + 296, + 300, + 304, + 308, + 312, + 315, + 319, + 323, + 327, + 331, + 334, + 338, + 342, + 345, + 349, + 353, + 357, + 360, + 364, + 368, + 371, + 375, + 378, + 382, + 386, + 389, + 393, + 396, + 400, + 403, + 407, + 410, + 414, + 417, + 421, + 424, + 427, + 431, + 434, + 438, + 441, + 444, + 448, + 451, + 454, + 457, + 461, + 464, + 467, + 470, + 473, + 476, + 480, + 483, + 486, + 489, + 492, + 495, + 498, + 501, + 504, + 507, + 510, + 512, + 515, + 518, + 521, + 524, + 526, + 529, + 532, + 535, + 537, + 540, + 542, + 545, + 548, + 550, + 553, + 555, + 558, + 560, + 562, + 565, + 567, + 569, + 572, + 574, + 576, + 578, + 581, + 583, + 585, + 587, + 589, + 591, + 593, + 595, + 597, + 599, + 601, + 602, + 604, + 606, + 608, + 609, + 611, + 613, + 614, + 616, + 618, + 619, + 621, + 622, + 623, + 625, + 626, + 628, + 629, + 630, + 631, + 632, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 641, + 642, + 643, + 644, + 645, + 645, + 646, + 646, + 647, + 648, + 648, + 649, + 649, + 649, + 650, + 650, + 650, + 650, + 651, + 651, + 651, + 651, + 651, + 651, + 651, + 651, + 651, + 650, + 650, + 650, + 650, + 649, + 649, + 649, + 648, + 648, + 647, + 647, + 646, + 645, + 645, + 644, + 643, + 642, + 641, + 641, + 640, + 639, + 638, + 637, + 635, + 634, + 633, + 632, + 631, + 629, + 628, + 626, + 625, + 624, + 622, + 620, + 619, + 617, + 616, + 614, + 612, + 610, + 608, + 606, + 604, + 602, + 600, + 598, + 596, + 594, + 592, + 590, + 587, + 585, + 583, + 580, + 578, + 575, + 573, + 570, + 568, + 565, + 562, + 559, + 557, + 554, + 551, + 548, + 545, + 542, + 539, + 536, + 533, + 530, + 526, + 523, + 520, + 517, + 513, + 510, + 506, + 503, + 499, + 496, + 492, + 488, + 485, + 481, + 477, + 473, + 469, + 466, + 462, + 458, + 454, + 450, + 445, + 441, + 437, + 433, + 429, + 424, + 420, + 416, + 411, + 407, + 402, + 398, + 393, + 388, + 384, + 379, + 374, + 370, + 365, + 360, + 355, + 350, + 345, + 340, + 335, + 330, + 325, + 320, + 315, + 310, + 305, + 299, + 294, + 289, + 283, + 278, + 272, + 267, + 261, + 256, + 250, + 245, + 239, + 233, + 228, + 222, + 216, + 210, + 205, + 199, + 193, + 187, + 181, + 175, + 169, + 163, + 157, + 151, + 145, + 139, + 132, + 126, + 120, + 114, + 107, + 101, + 95, + 88, + 82, + 76, + 69, + 63, + 56, + 50, + 43, + 36, + 30, + 23, + 17, + 10, + 3, + -3, + -10, + -17, + -24, + -31, + -37, + -44, + -51, + -58, + -65, + -72, + -79, + -86, + -93, + -100, + -107, + -114, + -121, + -128, + -135, + -142, + -149, + -156, + -163, + -171, + -178, + -185, + -192, + -199, + -207, + -214, + -221, + -228, + -236, + -243, + -250, + -257, + -265, + -272, + -279, + -287, + -294, + -301, + -309, + -316, + -324, + -331, + -338, + -346, + -353, + -361, + -368, + -375, + -383, + -390, + -398, + -405, + -413, + -420, + -427, + -435, + -442, + -450, + -457, + -465, + -472, + -480, + -487, + -494, + -502, + -509, + -517, + -524, + -532, + -539, + -546, + -554, + -561, + -569, + -576, + -583, + -591, + -598, + -605, + -613, + -620, + -627, + -635, + -642, + -649, + -657, + -664, + -671, + -678, + -686, + -693, + -700, + -707, + -714, + -722, + -729, + -736, + -743, + -750, + -757, + -764, + -771, + -778, + -785, + -792, + -799, + -806, + -813, + -820, + -827, + -834, + -841, + -848, + -854, + -861, + -868, + -875, + -881, + -888, + -895, + -901, + -908, + -914, + -921, + -928, + -934, + -940, + -947, + -953, + -960, + -966, + -972, + -979, + -985, + -991, + -997, +-1003, +-1010, +-1016, +-1022, +-1028, +-1034, +-1040, +-1045, +-1051, +-1057, +-1063, +-1069, +-1074, +-1080, +-1086, +-1091, +-1097, +-1102, +-1108, +-1113, +-1119, +-1124, +-1129, +-1135, +-1140, +-1145, +-1150, +-1155, +-1160, +-1165, +-1170, +-1175, +-1180, +-1185, +-1190, +-1195, +-1199, +-1204, +-1208, +-1213, +-1217, +-1222, +-1226, +-1231, +-1235, +-1239, +-1243, +-1247, +-1252, +-1256, +-1260, +-1263, +-1267, +-1271, +-1275, +-1279, +-1282, +-1286, +-1289, +-1293, +-1296, +-1300, +-1303, +-1306, +-1309, +-1313, +-1316, +-1319, +-1322, +-1325, +-1327, +-1330, +-1333, +-1336, +-1338, +-1341, +-1343, +-1346, +-1348, +-1350, +-1353, +-1355, +-1357, +-1359, +-1361, +-1363, +-1365, +-1366, +-1368, +-1370, +-1371, +-1373, +-1374, +-1376, +-1377, +-1378, +-1379, +-1380, +-1382, +-1383, +-1383, +-1384, +-1385, +-1386, +-1386, +-1387, +-1387, +-1388, +-1388, +-1388, +-1389, +-1389, +-1389, +-1389, +-1389, +-1389, +-1388, +-1388, +-1388, +-1387, +-1387, +-1386, +-1386, +-1385, +-1384, +-1383, +-1382, +-1381, +-1380, +-1379, +-1378, +-1376, +-1375, +-1374, +-1372, +-1370, +-1369, +-1367, +-1365, +-1363, +-1361, +-1359, +-1357, +-1355, +-1352, +-1350, +-1348, +-1345, +-1342, +-1340, +-1337, +-1334, +-1331, +-1328, +-1325, +-1322, +-1319, +-1315, +-1312, +-1309, +-1305, +-1301, +-1298, +-1294, +-1290, +-1286, +-1282, +-1278, +-1274, +-1270, +-1265, +-1261, +-1256, +-1252, +-1247, +-1243, +-1238, +-1233, +-1228, +-1223, +-1218, +-1213, +-1207, +-1202, +-1197, +-1191, +-1186, +-1180, +-1174, +-1168, +-1163, +-1157, +-1151, +-1144, +-1138, +-1132, +-1126, +-1119, +-1113, +-1106, +-1100, +-1093, +-1086, +-1079, +-1072, +-1065, +-1058, +-1051, +-1044, +-1036, +-1029, +-1021, +-1014, +-1006, + -999, + -991, + -983, + -975, + -967, + -959, + -951, + -943, + -934, + -926, + -917, + -909, + -900, + -892, + -883, + -874, + -865, + -856, + -847, + -838, + -829, + -820, + -811, + -801, + -792, + -782, + -773, + -763, + -753, + -744, + -734, + -724, + -714, + -704, + -694, + -683, + -673, + -663, + -653, + -642, + -632, + -621, + -610, + -600, + -589, + -578, + -567, + -556, + -545, + -534, + -523, + -512, + -501, + -489, + -478, + -466, + -455, + -443, + -432, + -420, + -408, + -397, + -385, + -373, + -361, + -349, + -337, + -325, + -313, + -300, + -288, + -276, + -263, + -251, + -239, + -226, + -213, + -201, + -188, + -175, + -163, + -150, + -137, + -124, + -111, + -98, + -85, + -72, + -59, + -46, + -32, + -19, + -6, + 8, + 21, + 34, + 48, + 61, + 75, + 89, + 102, + 116, + 130, + 143, + 157, + 171, + 185, + 199, + 212, + 226, + 240, + 254, + 268, + 283, + 297, + 311, + 325, + 339, + 353, + 368, + 382, + 396, + 410, + 425, + 439, + 453, + 468, + 482, + 497, + 511, + 526, + 540, + 555, + 569, + 584, + 598, + 613, + 628, + 642, + 657, + 671, + 686, + 701, + 715, + 730, + 745, + 760, + 774, + 789, + 804, + 818, + 833, + 848, + 863, + 877, + 892, + 907, + 922, + 936, + 951, + 966, + 981, + 995, + 1010, + 1025, + 1040, + 1054, + 1069, + 1084, + 1099, + 1113, + 1128, + 1143, + 1157, + 1172, + 1187, + 1201, + 1216, + 1231, + 1245, + 1260, + 1274, + 1289, + 1303, + 1318, + 1332, + 1347, + 1361, + 1376, + 1390, + 1405, + 1419, + 1433, + 1448, + 1462, + 1476, + 1490, + 1505, + 1519, + 1533, + 1547, + 1561, + 1575, + 1589, + 1603, + 1617, + 1631, + 1645, + 1659, + 1672, + 1686, + 1700, + 1714, + 1727, + 1741, + 1754, + 1768, + 1781, + 1795, + 1808, + 1821, + 1835, + 1848, + 1861, + 1874, + 1887, + 1900, + 1913, + 1926, + 1939, + 1952, + 1965, + 1977, + 1990, + 2003, + 2015, + 2028, + 2040, + 2053, + 2065, + 2077, + 2089, + 2101, + 2113, + 2125, + 2137, + 2149, + 2161, + 2173, + 2184, + 2196, + 2207, + 2219, + 2230, + 2242, + 2253, + 2264, + 2275, + 2286, + 2297, + 2308, + 2318, + 2329, + 2340, + 2350, + 2361, + 2371, + 2381, + 2392, + 2402, + 2412, + 2422, + 2432, + 2441, + 2451, + 2461, + 2470, + 2480, + 2489, + 2498, + 2507, + 2516, + 2525, + 2534, + 2543, + 2552, + 2560, + 2569, + 2577, + 2585, + 2594, + 2602, + 2610, + 2618, + 2625, + 2633, + 2641, + 2648, + 2656, + 2663, + 2670, + 2677, + 2684, + 2691, + 2698, + 2704, + 2711, + 2717, + 2724, + 2730, + 2736, + 2742, + 2748, + 2754, + 2759, + 2765, + 2770, + 2776, + 2781, + 2786, + 2791, + 2796, + 2800, + 2805, + 2809, + 2814, + 2818, + 2822, + 2826, + 2830, + 2834, + 2837, + 2841, + 2844, + 2848, + 2851, + 2854, + 2857, + 2859, + 2862, + 2865, + 2867, + 2869, + 2871, + 2873, + 2875, + 2877, + 2878, + 2880, + 2881, + 2882, + 2883, + 2884, + 2885, + 2886, + 2886, + 2887, + 2887, + 2887, + 2887, + 2887, + 2887, + 2886, + 2886, + 2885, + 2884, + 2883, + 2882, + 2881, + 2879, + 2878, + 2876, + 2874, + 2872, + 2870, + 2868, + 2866, + 2863, + 2861, + 2858, + 2855, + 2852, + 2848, + 2845, + 2841, + 2838, + 2834, + 2830, + 2826, + 2822, + 2817, + 2813, + 2808, + 2803, + 2798, + 2793, + 2788, + 2782, + 2777, + 2771, + 2765, + 2759, + 2753, + 2746, + 2740, + 2733, + 2727, + 2720, + 2713, + 2705, + 2698, + 2690, + 2683, + 2675, + 2667, + 2659, + 2651, + 2642, + 2634, + 2625, + 2616, + 2607, + 2598, + 2589, + 2579, + 2569, + 2560, + 2550, + 2540, + 2529, + 2519, + 2509, + 2498, + 2487, + 2476, + 2465, + 2454, + 2442, + 2431, + 2419, + 2407, + 2395, + 2383, + 2371, + 2358, + 2346, + 2333, + 2320, + 2307, + 2294, + 2280, + 2267, + 2253, + 2239, + 2225, + 2211, + 2197, + 2183, + 2168, + 2153, + 2139, + 2124, + 2108, + 2093, + 2078, + 2062, + 2047, + 2031, + 2015, + 1999, + 1982, + 1966, + 1949, + 1933, + 1916, + 1899, + 1882, + 1864, + 1847, + 1829, + 1812, + 1794, + 1776, + 1758, + 1740, + 1721, + 1703, + 1684, + 1665, + 1646, + 1627, + 1608, + 1589, + 1569, + 1550, + 1530, + 1510, + 1490, + 1470, + 1450, + 1429, + 1409, + 1388, + 1367, + 1346, + 1325, + 1304, + 1283, + 1261, + 1240, + 1218, + 1196, + 1174, + 1152, + 1130, + 1108, + 1086, + 1063, + 1040, + 1018, + 995, + 972, + 949, + 925, + 902, + 878, + 855, + 831, + 807, + 783, + 759, + 735, + 711, + 687, + 662, + 638, + 613, + 588, + 563, + 538, + 513, + 488, + 463, + 437, + 412, + 386, + 360, + 335, + 309, + 283, + 257, + 230, + 204, + 178, + 151, + 125, + 98, + 71, + 44, + 18, + -9, + -37, + -64, + -91, + -118, + -146, + -173, + -201, + -228, + -256, + -284, + -312, + -340, + -368, + -396, + -424, + -452, + -481, + -509, + -537, + -566, + -595, + -623, + -652, + -681, + -709, + -738, + -767, + -796, + -825, + -854, + -884, + -913, + -942, + -971, +-1001, +-1030, +-1060, +-1089, +-1119, +-1148, +-1178, +-1208, +-1237, +-1267, +-1297, +-1327, +-1356, +-1386, +-1416, +-1446, +-1476, +-1506, +-1536, +-1566, +-1596, +-1627, +-1657, +-1687, +-1717, +-1747, +-1777, +-1808, +-1838, +-1868, +-1898, +-1929, +-1959, +-1989, +-2020, +-2050, +-2080, +-2110, +-2141, +-2171, +-2201, +-2232, +-2262, +-2292, +-2323, +-2353, +-2383, +-2413, +-2444, +-2474, +-2504, +-2534, +-2565, +-2595, +-2625, +-2655, +-2685, +-2715, +-2745, +-2775, +-2805, +-2835, +-2865, +-2895, +-2925, +-2955, +-2985, +-3014, +-3044, +-3074, +-3103, +-3133, +-3162, +-3192, +-3221, +-3251, +-3280, +-3309, +-3339, +-3368, +-3397, +-3426, +-3455, +-3484, +-3513, +-3542, +-3570, +-3599, +-3628, +-3656, +-3685, +-3713, +-3741, +-3770, +-3798, +-3826, +-3854, +-3882, +-3909, +-3937, +-3965, +-3992, +-4020, +-4047, +-4074, +-4102, +-4129, +-4156, +-4183, +-4209, +-4236, +-4263, +-4289, +-4316, +-4342, +-4368, +-4394, +-4420, +-4446, +-4471, +-4497, +-4522, +-4548, +-4573, +-4598, +-4623, +-4648, +-4673, +-4697, +-4722, +-4746, +-4770, +-4794, +-4818, +-4842, +-4866, +-4889, +-4912, +-4936, +-4959, +-4982, +-5004, +-5027, +-5049, +-5072, +-5094, +-5116, +-5138, +-5159, +-5181, +-5202, +-5223, +-5244, +-5265, +-5286, +-5306, +-5327, +-5347, +-5367, +-5387, +-5406, +-5426, +-5445, +-5464, +-5483, +-5502, +-5520, +-5539, +-5557, +-5575, +-5593, +-5610, +-5628, +-5645, +-5662, +-5679, +-5695, +-5712, +-5728, +-5744, +-5760, +-5775, +-5791, +-5806, +-5821, +-5836, +-5850, +-5865, +-5879, +-5893, +-5906, +-5920, +-5933, +-5946, +-5959, +-5971, +-5984, +-5996, +-6008, +-6019, +-6031, +-6042, +-6053, +-6063, +-6074, +-6084, +-6094, +-6104, +-6113, +-6123, +-6132, +-6140, +-6149, +-6157, +-6165, +-6173, +-6180, +-6188, +-6195, +-6201, +-6208, +-6214, +-6220, +-6226, +-6231, +-6236, +-6241, +-6246, +-6250, +-6254, +-6258, +-6262, +-6265, +-6268, +-6271, +-6273, +-6276, +-6278, +-6279, +-6281, +-6282, +-6282, +-6283, +-6283, +-6283, +-6283, +-6282, +-6281, +-6280, +-6279, +-6277, +-6275, +-6273, +-6270, +-6267, +-6264, +-6260, +-6256, +-6252, +-6248, +-6243, +-6238, +-6233, +-6227, +-6221, +-6215, +-6208, +-6201, +-6194, +-6187, +-6179, +-6171, +-6163, +-6154, +-6145, +-6136, +-6126, +-6116, +-6106, +-6095, +-6084, +-6073, +-6061, +-6049, +-6037, +-6025, +-6012, +-5999, +-5985, +-5972, +-5957, +-5943, +-5928, +-5913, +-5898, +-5882, +-5866, +-5849, +-5833, +-5816, +-5798, +-5781, +-5762, +-5744, +-5725, +-5706, +-5687, +-5667, +-5647, +-5627, +-5606, +-5585, +-5564, +-5542, +-5520, +-5497, +-5475, +-5452, +-5428, +-5404, +-5380, +-5356, +-5331, +-5306, +-5280, +-5255, +-5229, +-5202, +-5175, +-5148, +-5121, +-5093, +-5065, +-5036, +-5007, +-4978, +-4948, +-4918, +-4888, +-4858, +-4827, +-4795, +-4764, +-4732, +-4699, +-4667, +-4634, +-4600, +-4567, +-4533, +-4498, +-4463, +-4428, +-4393, +-4357, +-4321, +-4285, +-4248, +-4211, +-4173, +-4135, +-4097, +-4058, +-4020, +-3980, +-3941, +-3901, +-3861, +-3820, +-3779, +-3738, +-3696, +-3654, +-3612, +-3569, +-3526, +-3483, +-3439, +-3395, +-3351, +-3306, +-3261, +-3215, +-3170, +-3123, +-3077, +-3030, +-2983, +-2936, +-2888, +-2840, +-2791, +-2743, +-2693, +-2644, +-2594, +-2544, +-2493, +-2443, +-2391, +-2340, +-2288, +-2236, +-2184, +-2131, +-2078, +-2024, +-1970, +-1916, +-1862, +-1807, +-1752, +-1696, +-1641, +-1584, +-1528, +-1471, +-1414, +-1357, +-1299, +-1241, +-1183, +-1124, +-1065, +-1006, + -946, + -886, + -826, + -765, + -704, + -643, + -582, + -520, + -458, + -395, + -333, + -270, + -206, + -142, + -79, + -14, + 50, + 115, + 180, + 246, + 312, + 378, + 444, + 511, + 578, + 645, + 713, + 780, + 849, + 917, + 986, + 1055, + 1124, + 1194, + 1263, + 1333, + 1404, + 1475, + 1546, + 1617, + 1688, + 1760, + 1832, + 1905, + 1977, + 2050, + 2123, + 2197, + 2270, + 2344, + 2418, + 2493, + 2568, + 2643, + 2718, + 2793, + 2869, + 2945, + 3021, + 3098, + 3175, + 3252, + 3329, + 3406, + 3484, + 3562, + 3640, + 3719, + 3798, + 3877, + 3956, + 4035, + 4115, + 4195, + 4275, + 4355, + 4436, + 4516, + 4597, + 4679, + 4760, + 4842, + 4923, + 5006, + 5088, + 5170, + 5253, + 5336, + 5419, + 5502, + 5586, + 5670, + 5753, + 5838, + 5922, + 6006, + 6091, + 6176, + 6261, + 6346, + 6432, + 6517, + 6603, + 6689, + 6775, + 6862, + 6948, + 7035, + 7121, + 7208, + 7296, + 7383, + 7470, + 7558, + 7646, + 7734, + 7822, + 7910, + 7999, + 8087, + 8176, + 8265, + 8354, + 8443, + 8532, + 8622, + 8711, + 8801, + 8891, + 8981, + 9071, + 9161, + 9251, + 9342, + 9432, + 9523, + 9614, + 9704, + 9795, + 9887, + 9978, +10069, +10160, +10252, +10344, +10435, +10527, +10619, +10711, +10803, +10895, +10987, +11080, +11172, +11265, +11357, +11450, +11542, +11635, +11728, +11821, +11914, +12007, +12100, +12193, +12286, +12379, +12472, +12566, +12659, +12752, +12846, +12939, +13033, +13126, +13220, +13313, +13407, +13501, +13594, +13688, +13782, +13875, +13969, +14063, +14156, +14250, +14344, +14437, +14531, +14625, +14719, +14812, +14906, +15000, +15093, +15187, +15280, +15374, +15468, +15561, +15655, +15748, +15842, +15935, +16028, +16122, +16215, +16308, +16401, +16494, +16587, +16681, +16773, +16866, +16959, +17052, +17145, +17237, +17330, +17422, +17515, +17607, +17699, +17791, +17884, +17976, +18067, +18159, +18251, +18343, +18434, +18525, +18617, +18708, +18799, +18890, +18981, +19072, +19162, +19253, +19343, +19433, +19524, +19614, +19703, +19793, +19883, +19972, +20061, +20151, +20240, +20329, +20417, +20506, +20594, +20682, +20771, +20859, +20946, +21034, +21121, +21209, +21296, +21383, +21469, +21556, +21642, +21728, +21814, +21900, +21986, +22071, +22156, +22241, +22326, +22411, +22495, +22579, +22663, +22747, +22831, +22914, +22997, +23080, +23163, +23245, +23327, +23409, +23491, +23573, +23654, +23735, +23816, +23897, +23977, +24057, +24137, +24216, +24296, +24375, +24454, +24532, +24610, +24688, +24766, +24844, +24921, +24998, +25075, +25151, +25227, +25303, +25379, +25454, +25529, +25604, +25678, +25752, +25826, +25899, +25973, +26046, +26118, +26191, +26263, +26334, +26406, +26477, +26548, +26618, +26688, +26758, +26827, +26897, +26965, +27034, +27102, +27170, +27238, +27305, +27372, +27438, +27504, +27570, +27636, +27701, +27766, +27830, +27894, +27958, +28021, +28084, +28147, +28209, +28271, +28333, +28394, +28455, +28516, +28576, +28635, +28695, +28754, +28812, +28871, +28929, +28986, +29043, +29100, +29156, +29212, +29268, +29323, +29378, +29432, +29486, +29540, +29593, +29646, +29698, +29750, +29802, +29853, +29904, +29954, +30004, +30054, +30103, +30152, +30200, +30248, +30295, +30343, +30389, +30435, +30481, +30527, +30572, +30616, +30660, +30704, +30747, +30790, +30832, +30874, +30916, +30957, +30998, +31038, +31078, +31117, +31156, +31194, +31232, +31270, +31307, +31344, +31380, +31416, +31451, +31486, +31520, +31554, +31588, +31621, +31654, +31686, +31718, +31749, +31780, +31810, +31840, +31869, +31898, +31927, +31955, +31982, +32009, +32036, +32062, +32088, +32113, +32138, +32162, +32186, +32209, +32232, +32255, +32276, +32298, +32319, +32339, +32359, +32379, +32398, +32417, +32435, +32453, +32470, +32486, +32503, +32518, +32534, +32548, +32563, +32577, +32590, +32603, +32615, +32627, +32638, +32649, +32660, +32670, +32679, +32688, +32697, +32705, +32712, +32719, +32726, +32732, +32738, +32743, +32747, +32751, +32755, +32758, +32761, +32763, +32765, +32766, +32767, +32767, +32767, +32766, +32765, +32763, +32761, +32758, +32755, +32751, +32747, +32743, +32738, +32732, +32726, +32719, +32712, +32705, +32697, +32688, +32679, +32670, +32660, +32649, +32638, +32627, +32615, +32603, +32590, +32577, +32563, +32548, +32534, +32518, +32503, +32486, +32470, +32453, +32435, +32417, +32398, +32379, +32359, +32339, +32319, +32298, +32276, +32255, +32232, +32209, +32186, +32162, +32138, +32113, +32088, +32062, +32036, +32009, +31982, +31955, +31927, +31898, +31869, +31840, +31810, +31780, +31749, +31718, +31686, +31654, +31621, +31588, +31554, +31520, +31486, +31451, +31416, +31380, +31344, +31307, +31270, +31232, +31194, +31156, +31117, +31078, +31038, +30998, +30957, +30916, +30874, +30832, +30790, +30747, +30704, +30660, +30616, +30572, +30527, +30481, +30435, +30389, +30343, +30295, +30248, +30200, +30152, +30103, +30054, +30004, +29954, +29904, +29853, +29802, +29750, +29698, +29646, +29593, +29540, +29486, +29432, +29378, +29323, +29268, +29212, +29156, +29100, +29043, +28986, +28929, +28871, +28812, +28754, +28695, +28635, +28576, +28516, +28455, +28394, +28333, +28271, +28209, +28147, +28084, +28021, +27958, +27894, +27830, +27766, +27701, +27636, +27570, +27504, +27438, +27372, +27305, +27238, +27170, +27102, +27034, +26965, +26897, +26827, +26758, +26688, +26618, +26548, +26477, +26406, +26334, +26263, +26191, +26118, +26046, +25973, +25899, +25826, +25752, +25678, +25604, +25529, +25454, +25379, +25303, +25227, +25151, +25075, +24998, +24921, +24844, +24766, +24688, +24610, +24532, +24454, +24375, +24296, +24216, +24137, +24057, +23977, +23897, +23816, +23735, +23654, +23573, +23491, +23409, +23327, +23245, +23163, +23080, +22997, +22914, +22831, +22747, +22663, +22579, +22495, +22411, +22326, +22241, +22156, +22071, +21986, +21900, +21814, +21728, +21642, +21556, +21469, +21383, +21296, +21209, +21121, +21034, +20946, +20859, +20771, +20682, +20594, +20506, +20417, +20329, +20240, +20151, +20061, +19972, +19883, +19793, +19703, +19614, +19524, +19433, +19343, +19253, +19162, +19072, +18981, +18890, +18799, +18708, +18617, +18525, +18434, +18343, +18251, +18159, +18067, +17976, +17884, +17791, +17699, +17607, +17515, +17422, +17330, +17237, +17145, +17052, +16959, +16866, +16773, +16681, +16587, +16494, +16401, +16308, +16215, +16122, +16028, +15935, +15842, +15748, +15655, +15561, +15468, +15374, +15280, +15187, +15093, +15000, +14906, +14812, +14719, +14625, +14531, +14437, +14344, +14250, +14156, +14063, +13969, +13875, +13782, +13688, +13594, +13501, +13407, +13313, +13220, +13126, +13033, +12939, +12846, +12752, +12659, +12566, +12472, +12379, +12286, +12193, +12100, +12007, +11914, +11821, +11728, +11635, +11542, +11450, +11357, +11265, +11172, +11080, +10987, +10895, +10803, +10711, +10619, +10527, +10435, +10344, +10252, +10160, +10069, + 9978, + 9887, + 9795, + 9704, + 9614, + 9523, + 9432, + 9342, + 9251, + 9161, + 9071, + 8981, + 8891, + 8801, + 8711, + 8622, + 8532, + 8443, + 8354, + 8265, + 8176, + 8087, + 7999, + 7910, + 7822, + 7734, + 7646, + 7558, + 7470, + 7383, + 7296, + 7208, + 7121, + 7035, + 6948, + 6862, + 6775, + 6689, + 6603, + 6517, + 6432, + 6346, + 6261, + 6176, + 6091, + 6006, + 5922, + 5838, + 5753, + 5670, + 5586, + 5502, + 5419, + 5336, + 5253, + 5170, + 5088, + 5006, + 4923, + 4842, + 4760, + 4679, + 4597, + 4516, + 4436, + 4355, + 4275, + 4195, + 4115, + 4035, + 3956, + 3877, + 3798, + 3719, + 3640, + 3562, + 3484, + 3406, + 3329, + 3252, + 3175, + 3098, + 3021, + 2945, + 2869, + 2793, + 2718, + 2643, + 2568, + 2493, + 2418, + 2344, + 2270, + 2197, + 2123, + 2050, + 1977, + 1905, + 1832, + 1760, + 1688, + 1617, + 1546, + 1475, + 1404, + 1333, + 1263, + 1194, + 1124, + 1055, + 986, + 917, + 849, + 780, + 713, + 645, + 578, + 511, + 444, + 378, + 312, + 246, + 180, + 115, + 50, + -14, + -79, + -142, + -206, + -270, + -333, + -395, + -458, + -520, + -582, + -643, + -704, + -765, + -826, + -886, + -946, +-1006, +-1065, +-1124, +-1183, +-1241, +-1299, +-1357, +-1414, +-1471, +-1528, +-1584, +-1641, +-1696, +-1752, +-1807, +-1862, +-1916, +-1970, +-2024, +-2078, +-2131, +-2184, +-2236, +-2288, +-2340, +-2391, +-2443, +-2493, +-2544, +-2594, +-2644, +-2693, +-2743, +-2791, +-2840, +-2888, +-2936, +-2983, +-3030, +-3077, +-3123, +-3170, +-3215, +-3261, +-3306, +-3351, +-3395, +-3439, +-3483, +-3526, +-3569, +-3612, +-3654, +-3696, +-3738, +-3779, +-3820, +-3861, +-3901, +-3941, +-3980, +-4020, +-4058, +-4097, +-4135, +-4173, +-4211, +-4248, +-4285, +-4321, +-4357, +-4393, +-4428, +-4463, +-4498, +-4533, +-4567, +-4600, +-4634, +-4667, +-4699, +-4732, +-4764, +-4795, +-4827, +-4858, +-4888, +-4918, +-4948, +-4978, +-5007, +-5036, +-5065, +-5093, +-5121, +-5148, +-5175, +-5202, +-5229, +-5255, +-5280, +-5306, +-5331, +-5356, +-5380, +-5404, +-5428, +-5452, +-5475, +-5497, +-5520, +-5542, +-5564, +-5585, +-5606, +-5627, +-5647, +-5667, +-5687, +-5706, +-5725, +-5744, +-5762, +-5781, +-5798, +-5816, +-5833, +-5849, +-5866, +-5882, +-5898, +-5913, +-5928, +-5943, +-5957, +-5972, +-5985, +-5999, +-6012, +-6025, +-6037, +-6049, +-6061, +-6073, +-6084, +-6095, +-6106, +-6116, +-6126, +-6136, +-6145, +-6154, +-6163, +-6171, +-6179, +-6187, +-6194, +-6201, +-6208, +-6215, +-6221, +-6227, +-6233, +-6238, +-6243, +-6248, +-6252, +-6256, +-6260, +-6264, +-6267, +-6270, +-6273, +-6275, +-6277, +-6279, +-6280, +-6281, +-6282, +-6283, +-6283, +-6283, +-6283, +-6282, +-6282, +-6281, +-6279, +-6278, +-6276, +-6273, +-6271, +-6268, +-6265, +-6262, +-6258, +-6254, +-6250, +-6246, +-6241, +-6236, +-6231, +-6226, +-6220, +-6214, +-6208, +-6201, +-6195, +-6188, +-6180, +-6173, +-6165, +-6157, +-6149, +-6140, +-6132, +-6123, +-6113, +-6104, +-6094, +-6084, +-6074, +-6063, +-6053, +-6042, +-6031, +-6019, +-6008, +-5996, +-5984, +-5971, +-5959, +-5946, +-5933, +-5920, +-5906, +-5893, +-5879, +-5865, +-5850, +-5836, +-5821, +-5806, +-5791, +-5775, +-5760, +-5744, +-5728, +-5712, +-5695, +-5679, +-5662, +-5645, +-5628, +-5610, +-5593, +-5575, +-5557, +-5539, +-5520, +-5502, +-5483, +-5464, +-5445, +-5426, +-5406, +-5387, +-5367, +-5347, +-5327, +-5306, +-5286, +-5265, +-5244, +-5223, +-5202, +-5181, +-5159, +-5138, +-5116, +-5094, +-5072, +-5049, +-5027, +-5004, +-4982, +-4959, +-4936, +-4912, +-4889, +-4866, +-4842, +-4818, +-4794, +-4770, +-4746, +-4722, +-4697, +-4673, +-4648, +-4623, +-4598, +-4573, +-4548, +-4522, +-4497, +-4471, +-4446, +-4420, +-4394, +-4368, +-4342, +-4316, +-4289, +-4263, +-4236, +-4209, +-4183, +-4156, +-4129, +-4102, +-4074, +-4047, +-4020, +-3992, +-3965, +-3937, +-3909, +-3882, +-3854, +-3826, +-3798, +-3770, +-3741, +-3713, +-3685, +-3656, +-3628, +-3599, +-3570, +-3542, +-3513, +-3484, +-3455, +-3426, +-3397, +-3368, +-3339, +-3309, +-3280, +-3251, +-3221, +-3192, +-3162, +-3133, +-3103, +-3074, +-3044, +-3014, +-2985, +-2955, +-2925, +-2895, +-2865, +-2835, +-2805, +-2775, +-2745, +-2715, +-2685, +-2655, +-2625, +-2595, +-2565, +-2534, +-2504, +-2474, +-2444, +-2413, +-2383, +-2353, +-2323, +-2292, +-2262, +-2232, +-2201, +-2171, +-2141, +-2110, +-2080, +-2050, +-2020, +-1989, +-1959, +-1929, +-1898, +-1868, +-1838, +-1808, +-1777, +-1747, +-1717, +-1687, +-1657, +-1627, +-1596, +-1566, +-1536, +-1506, +-1476, +-1446, +-1416, +-1386, +-1356, +-1327, +-1297, +-1267, +-1237, +-1208, +-1178, +-1148, +-1119, +-1089, +-1060, +-1030, +-1001, + -971, + -942, + -913, + -884, + -854, + -825, + -796, + -767, + -738, + -709, + -681, + -652, + -623, + -595, + -566, + -537, + -509, + -481, + -452, + -424, + -396, + -368, + -340, + -312, + -284, + -256, + -228, + -201, + -173, + -146, + -118, + -91, + -64, + -37, + -9, + 18, + 44, + 71, + 98, + 125, + 151, + 178, + 204, + 230, + 257, + 283, + 309, + 335, + 360, + 386, + 412, + 437, + 463, + 488, + 513, + 538, + 563, + 588, + 613, + 638, + 662, + 687, + 711, + 735, + 759, + 783, + 807, + 831, + 855, + 878, + 902, + 925, + 949, + 972, + 995, + 1018, + 1040, + 1063, + 1086, + 1108, + 1130, + 1152, + 1174, + 1196, + 1218, + 1240, + 1261, + 1283, + 1304, + 1325, + 1346, + 1367, + 1388, + 1409, + 1429, + 1450, + 1470, + 1490, + 1510, + 1530, + 1550, + 1569, + 1589, + 1608, + 1627, + 1646, + 1665, + 1684, + 1703, + 1721, + 1740, + 1758, + 1776, + 1794, + 1812, + 1829, + 1847, + 1864, + 1882, + 1899, + 1916, + 1933, + 1949, + 1966, + 1982, + 1999, + 2015, + 2031, + 2047, + 2062, + 2078, + 2093, + 2108, + 2124, + 2139, + 2153, + 2168, + 2183, + 2197, + 2211, + 2225, + 2239, + 2253, + 2267, + 2280, + 2294, + 2307, + 2320, + 2333, + 2346, + 2358, + 2371, + 2383, + 2395, + 2407, + 2419, + 2431, + 2442, + 2454, + 2465, + 2476, + 2487, + 2498, + 2509, + 2519, + 2529, + 2540, + 2550, + 2560, + 2569, + 2579, + 2589, + 2598, + 2607, + 2616, + 2625, + 2634, + 2642, + 2651, + 2659, + 2667, + 2675, + 2683, + 2690, + 2698, + 2705, + 2713, + 2720, + 2727, + 2733, + 2740, + 2746, + 2753, + 2759, + 2765, + 2771, + 2777, + 2782, + 2788, + 2793, + 2798, + 2803, + 2808, + 2813, + 2817, + 2822, + 2826, + 2830, + 2834, + 2838, + 2841, + 2845, + 2848, + 2852, + 2855, + 2858, + 2861, + 2863, + 2866, + 2868, + 2870, + 2872, + 2874, + 2876, + 2878, + 2879, + 2881, + 2882, + 2883, + 2884, + 2885, + 2886, + 2886, + 2887, + 2887, + 2887, + 2887, + 2887, + 2887, + 2886, + 2886, + 2885, + 2884, + 2883, + 2882, + 2881, + 2880, + 2878, + 2877, + 2875, + 2873, + 2871, + 2869, + 2867, + 2865, + 2862, + 2859, + 2857, + 2854, + 2851, + 2848, + 2844, + 2841, + 2837, + 2834, + 2830, + 2826, + 2822, + 2818, + 2814, + 2809, + 2805, + 2800, + 2796, + 2791, + 2786, + 2781, + 2776, + 2770, + 2765, + 2759, + 2754, + 2748, + 2742, + 2736, + 2730, + 2724, + 2717, + 2711, + 2704, + 2698, + 2691, + 2684, + 2677, + 2670, + 2663, + 2656, + 2648, + 2641, + 2633, + 2625, + 2618, + 2610, + 2602, + 2594, + 2585, + 2577, + 2569, + 2560, + 2552, + 2543, + 2534, + 2525, + 2516, + 2507, + 2498, + 2489, + 2480, + 2470, + 2461, + 2451, + 2441, + 2432, + 2422, + 2412, + 2402, + 2392, + 2381, + 2371, + 2361, + 2350, + 2340, + 2329, + 2318, + 2308, + 2297, + 2286, + 2275, + 2264, + 2253, + 2242, + 2230, + 2219, + 2207, + 2196, + 2184, + 2173, + 2161, + 2149, + 2137, + 2125, + 2113, + 2101, + 2089, + 2077, + 2065, + 2053, + 2040, + 2028, + 2015, + 2003, + 1990, + 1977, + 1965, + 1952, + 1939, + 1926, + 1913, + 1900, + 1887, + 1874, + 1861, + 1848, + 1835, + 1821, + 1808, + 1795, + 1781, + 1768, + 1754, + 1741, + 1727, + 1714, + 1700, + 1686, + 1672, + 1659, + 1645, + 1631, + 1617, + 1603, + 1589, + 1575, + 1561, + 1547, + 1533, + 1519, + 1505, + 1490, + 1476, + 1462, + 1448, + 1433, + 1419, + 1405, + 1390, + 1376, + 1361, + 1347, + 1332, + 1318, + 1303, + 1289, + 1274, + 1260, + 1245, + 1231, + 1216, + 1201, + 1187, + 1172, + 1157, + 1143, + 1128, + 1113, + 1099, + 1084, + 1069, + 1054, + 1040, + 1025, + 1010, + 995, + 981, + 966, + 951, + 936, + 922, + 907, + 892, + 877, + 863, + 848, + 833, + 818, + 804, + 789, + 774, + 760, + 745, + 730, + 715, + 701, + 686, + 671, + 657, + 642, + 628, + 613, + 598, + 584, + 569, + 555, + 540, + 526, + 511, + 497, + 482, + 468, + 453, + 439, + 425, + 410, + 396, + 382, + 368, + 353, + 339, + 325, + 311, + 297, + 283, + 268, + 254, + 240, + 226, + 212, + 199, + 185, + 171, + 157, + 143, + 130, + 116, + 102, + 89, + 75, + 61, + 48, + 34, + 21, + 8, + -6, + -19, + -32, + -46, + -59, + -72, + -85, + -98, + -111, + -124, + -137, + -150, + -163, + -175, + -188, + -201, + -213, + -226, + -239, + -251, + -263, + -276, + -288, + -300, + -313, + -325, + -337, + -349, + -361, + -373, + -385, + -397, + -408, + -420, + -432, + -443, + -455, + -466, + -478, + -489, + -501, + -512, + -523, + -534, + -545, + -556, + -567, + -578, + -589, + -600, + -610, + -621, + -632, + -642, + -653, + -663, + -673, + -683, + -694, + -704, + -714, + -724, + -734, + -744, + -753, + -763, + -773, + -782, + -792, + -801, + -811, + -820, + -829, + -838, + -847, + -856, + -865, + -874, + -883, + -892, + -900, + -909, + -917, + -926, + -934, + -943, + -951, + -959, + -967, + -975, + -983, + -991, + -999, +-1006, +-1014, +-1021, +-1029, +-1036, +-1044, +-1051, +-1058, +-1065, +-1072, +-1079, +-1086, +-1093, +-1100, +-1106, +-1113, +-1119, +-1126, +-1132, +-1138, +-1144, +-1151, +-1157, +-1163, +-1168, +-1174, +-1180, +-1186, +-1191, +-1197, +-1202, +-1207, +-1213, +-1218, +-1223, +-1228, +-1233, +-1238, +-1243, +-1247, +-1252, +-1256, +-1261, +-1265, +-1270, +-1274, +-1278, +-1282, +-1286, +-1290, +-1294, +-1298, +-1301, +-1305, +-1309, +-1312, +-1315, +-1319, +-1322, +-1325, +-1328, +-1331, +-1334, +-1337, +-1340, +-1342, +-1345, +-1348, +-1350, +-1352, +-1355, +-1357, +-1359, +-1361, +-1363, +-1365, +-1367, +-1369, +-1370, +-1372, +-1374, +-1375, +-1376, +-1378, +-1379, +-1380, +-1381, +-1382, +-1383, +-1384, +-1385, +-1386, +-1386, +-1387, +-1387, +-1388, +-1388, +-1388, +-1389, +-1389, +-1389, +-1389, +-1389, +-1389, +-1388, +-1388, +-1388, +-1387, +-1387, +-1386, +-1386, +-1385, +-1384, +-1383, +-1383, +-1382, +-1380, +-1379, +-1378, +-1377, +-1376, +-1374, +-1373, +-1371, +-1370, +-1368, +-1366, +-1365, +-1363, +-1361, +-1359, +-1357, +-1355, +-1353, +-1350, +-1348, +-1346, +-1343, +-1341, +-1338, +-1336, +-1333, +-1330, +-1327, +-1325, +-1322, +-1319, +-1316, +-1313, +-1309, +-1306, +-1303, +-1300, +-1296, +-1293, +-1289, +-1286, +-1282, +-1279, +-1275, +-1271, +-1267, +-1263, +-1260, +-1256, +-1252, +-1247, +-1243, +-1239, +-1235, +-1231, +-1226, +-1222, +-1217, +-1213, +-1208, +-1204, +-1199, +-1195, +-1190, +-1185, +-1180, +-1175, +-1170, +-1165, +-1160, +-1155, +-1150, +-1145, +-1140, +-1135, +-1129, +-1124, +-1119, +-1113, +-1108, +-1102, +-1097, +-1091, +-1086, +-1080, +-1074, +-1069, +-1063, +-1057, +-1051, +-1045, +-1040, +-1034, +-1028, +-1022, +-1016, +-1010, +-1003, + -997, + -991, + -985, + -979, + -972, + -966, + -960, + -953, + -947, + -940, + -934, + -928, + -921, + -914, + -908, + -901, + -895, + -888, + -881, + -875, + -868, + -861, + -854, + -848, + -841, + -834, + -827, + -820, + -813, + -806, + -799, + -792, + -785, + -778, + -771, + -764, + -757, + -750, + -743, + -736, + -729, + -722, + -714, + -707, + -700, + -693, + -686, + -678, + -671, + -664, + -657, + -649, + -642, + -635, + -627, + -620, + -613, + -605, + -598, + -591, + -583, + -576, + -569, + -561, + -554, + -546, + -539, + -532, + -524, + -517, + -509, + -502, + -494, + -487, + -480, + -472, + -465, + -457, + -450, + -442, + -435, + -427, + -420, + -413, + -405, + -398, + -390, + -383, + -375, + -368, + -361, + -353, + -346, + -338, + -331, + -324, + -316, + -309, + -301, + -294, + -287, + -279, + -272, + -265, + -257, + -250, + -243, + -236, + -228, + -221, + -214, + -207, + -199, + -192, + -185, + -178, + -171, + -163, + -156, + -149, + -142, + -135, + -128, + -121, + -114, + -107, + -100, + -93, + -86, + -79, + -72, + -65, + -58, + -51, + -44, + -37, + -31, + -24, + -17, + -10, + -3, + 3, + 10, + 17, + 23, + 30, + 36, + 43, + 50, + 56, + 63, + 69, + 76, + 82, + 88, + 95, + 101, + 107, + 114, + 120, + 126, + 132, + 139, + 145, + 151, + 157, + 163, + 169, + 175, + 181, + 187, + 193, + 199, + 205, + 210, + 216, + 222, + 228, + 233, + 239, + 245, + 250, + 256, + 261, + 267, + 272, + 278, + 283, + 289, + 294, + 299, + 305, + 310, + 315, + 320, + 325, + 330, + 335, + 340, + 345, + 350, + 355, + 360, + 365, + 370, + 374, + 379, + 384, + 388, + 393, + 398, + 402, + 407, + 411, + 416, + 420, + 424, + 429, + 433, + 437, + 441, + 445, + 450, + 454, + 458, + 462, + 466, + 469, + 473, + 477, + 481, + 485, + 488, + 492, + 496, + 499, + 503, + 506, + 510, + 513, + 517, + 520, + 523, + 526, + 530, + 533, + 536, + 539, + 542, + 545, + 548, + 551, + 554, + 557, + 559, + 562, + 565, + 568, + 570, + 573, + 575, + 578, + 580, + 583, + 585, + 587, + 590, + 592, + 594, + 596, + 598, + 600, + 602, + 604, + 606, + 608, + 610, + 612, + 614, + 616, + 617, + 619, + 620, + 622, + 624, + 625, + 626, + 628, + 629, + 631, + 632, + 633, + 634, + 635, + 637, + 638, + 639, + 640, + 641, + 641, + 642, + 643, + 644, + 645, + 645, + 646, + 647, + 647, + 648, + 648, + 649, + 649, + 649, + 650, + 650, + 650, + 650, + 651, + 651, + 651, + 651, + 651, + 651, + 651, + 651, + 651, + 650, + 650, + 650, + 650, + 649, + 649, + 649, + 648, + 648, + 647, + 646, + 646, + 645, + 645, + 644, + 643, + 642, + 641, + 641, + 640, + 639, + 638, + 637, + 636, + 635, + 634, + 632, + 631, + 630, + 629, + 628, + 626, + 625, + 623, + 622, + 621, + 619, + 618, + 616, + 614, + 613, + 611, + 609, + 608, + 606, + 604, + 602, + 601, + 599, + 597, + 595, + 593, + 591, + 589, + 587, + 585, + 583, + 581, + 578, + 576, + 574, + 572, + 569, + 567, + 565, + 562, + 560, + 558, + 555, + 553, + 550, + 548, + 545, + 542, + 540, + 537, + 535, + 532, + 529, + 526, + 524, + 521, + 518, + 515, + 512, + 510, + 507, + 504, + 501, + 498, + 495, + 492, + 489, + 486, + 483, + 480, + 476, + 473, + 470, + 467, + 464, + 461, + 457, + 454, + 451, + 448, + 444, + 441, + 438, + 434, + 431, + 427, + 424, + 421, + 417, + 414, + 410, + 407, + 403, + 400, + 396, + 393, + 389, + 386, + 382, + 378, + 375, + 371, + 368, + 364, + 360, + 357, + 353, + 349, + 345, + 342, + 338, + 334, + 331, + 327, + 323, + 319, + 315, + 312, + 308, + 304, + 300, + 296, + 293, + 289, + 285, + 281, + 277, + 273, + 269, + 266, + 262, + 258, + 254, + 250, + 246, + 242, + 238, + 234, + 230, + 227, + 223, + 219, + 215, + 211, + 207, + 203, + 199, + 195, + 191, + 187, + 183, + 179, + 175, + 171, + 168, + 164, + 160, + 156, + 152, + 148, + 144, + 140, + 136, + 132, + 128, + 124, + 120, + 116, + 113, + 109, + 105, + 101, + 97, + 93, + 89, + 85, + 81, + 78, + 74, + 70, + 66, + 62, + 58, + 55, + 51, + 47, + 43, + 39, + 36, + 32, + 28, + 24, + 21, + 17, + 13, + 9, + 6, + 2, + -2, + -5, + -9, + -13, + -16, + -20, + -24, + -27, + -31, + -34, + -38, + -42, + -45, + -49, + -52, + -56, + -59, + -63, + -66, + -70, + -73, + -76, + -80, + -83, + -87, + -90, + -93, + -97, + -100, + -103, + -107, + -110, + -113, + -116, + -120, + -123, + -126, + -129, + -132, + -135, + -139, + -142, + -145, + -148, + -151, + -154, + -157, + -160, + -163, + -166, + -169, + -172, + -175, + -177, + -180, + -183, + -186, + -189, + -192, + -194, + -197, + -200, + -202, + -205, + -208, + -210, + -213, + -216, + -218, + -221, + -223, + -226, + -228, + -231, + -233, + -236, + -238, + -240, + -243, + -245, + -247, + -250, + -252, + -254, + -256, + -259, + -261, + -263, + -265, + -267, + -269, + -271, + -273, + -275, + -277, + -279, + -281, + -283, + -285, + -287, + -289, + -290, + -292, + -294, + -296, + -297, + -299, + -301, + -302, + -304, + -306, + -307, + -309, + -310, + -312, + -313, + -315, + -316, + -318, + -319, + -320, + -322, + -323, + -324, + -325, + -327, + -328, + -329, + -330, + -331, + -332, + -333, + -335, + -336, + -337, + -337, + -338, + -339, + -340, + -341, + -342, + -343, + -344, + -344, + -345, + -346, + -346, + -347, + -348, + -348, + -349, + -350, + -350, + -351, + -351, + -352, + -352, + -352, + -353, + -353, + -353, + -354, + -354, + -354, + -355, + -355, + -355, + -355, + -355, + -355, + -355, + -356, + -356, + -356, + -356, + -356, + -355, + -355, + -355, + -355, + -355, + -355, + -355, + -354, + -354, + -354, + -354, + -353, + -353, + -352, + -352, + -352, + -351, + -351, + -350, + -350, + -349, + -349, + -348, + -347, + -347, + -346, + -346, + -345, + -344, + -343, + -343, + -342, + -341, + -340, + -339, + -338, + -338, + -337, + -336, + -335, + -334, + -333, + -332, + -331, + -330, + -329, + -327, + -326, + -325, + -324, + -323, + -322, + -320, + -319, + -318, + -317, + -315, + -314, + -313, + -311, + -310, + -309, + -307, + -306, + -304, + -303, + -301, + -300, + -298, + -297, + -295, + -293, + -292, + -290, + -289, + -287, + -285, + -284, + -282, + -280, + -278, + -277, + -275, + -273, + -271, + -270, + -268, + -266, + -264, + -262, + -260, + -258, + -256, + -254, + -252, + -251, + -249, + -247, + -245, + -243, + -240, + -238, + -236, + -234, + -232, + -230, + -228, + -226, + -224, + -222, + -219, + -217, + -215, + -213, + -211, + -208, + -206, + -204, + -202, + -199, + -197, + -195, + -193, + -190, + -188, + -186, + -183, + -181, + -179, + -176, + -174, + -172, + -169, + -167, + -164, + -162, + -160, + -157, + -155, + -152, + -150, + -147, + -145, + -142, + -140, + -138, + -135, + -133, + -130, + -128, + -125, + -123, + -120, + -117, + -115, + -112, + -110, + -107, + -105, + -102, + -100, + -97, + -95, + -92, + -89, + -87, + -84, + -82, + -79, + -77, + -74, + -71, + -69, + -66, + -64, + -61, + -59, + -56, + -53, + -51, + -48, + -46, + -43, + -40, + -38, + -35, + -33, + -30, + -27, + -25, + -22, + -20, + -17, + -15, + -12, + -9, + -7, + -4, + -2, + 1, + 3, + 6, + 9, + 11, + 14, + 16, + 19, + 21, + 24, + 26, + 29, + 31, + 34, + 36, + 39, + 41, + 44, + 46, + 49, + 51, + 54, + 56, + 59, + 61, + 64, + 66, + 69, + 71, + 73, + 76, + 78, + 81, + 83, + 85, + 88, + 90, + 92, + 95, + 97, + 99, + 102, + 104, + 106, + 109, + 111, + 113, + 116, + 118, + 120, + 122, + 125, + 127, + 129, + 131, + 133, + 136, + 138, + 140, + 142, + 144, + 146, + 148, + 150, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 180, + 182, + 184, + 186, + 188, + 190, + 192, + 193, + 195, + 197, + 199, + 201, + 202, + 204, + 206, + 207, + 209, + 211, + 212, + 214, + 216, + 217, + 219, + 220, + 222, + 224, + 225, + 227, + 228, + 230, + 231, + 233, + 234, + 235, + 237, + 238, + 240, + 241, + 242, + 244, + 245, + 246, + 247, + 249, + 250, + 251, + 252, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 274, + 275, + 276, + 277, + 278, + 278, + 279, + 280, + 280, + 281, + 282, + 282, + 283, + 284, + 284, + 285, + 285, + 286, + 286, + 287, + 287, + 288, + 288, + 288, + 289, + 289, + 289, + 290, + 290, + 290, + 291, + 291, + 291, + 291, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 293, + 293, + 293, + 293, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 292, + 291, + 291, + 291, + 291, + 290, + 290, + 290, + 289, + 289, + 289, + 288, + 288, + 287, + 287, + 287, + 286, + 286, + 285, + 285, + 284, + 284, + 283, + 282, + 282, + 281, + 281, + 280, + 279, + 279, + 278, + 277, + 276, + 276, + 275, + 274, + 273, + 272, + 272, + 271, + 270, + 269, + 268, + 267, + 266, + 265, + 264, + 263, + 262, + 261, + 260, + 259, + 258, + 257, + 256, + 255, + 254, + 253, + 252, + 250, + 249, + 248, + 247, + 246, + 244, + 243, + 242, + 241, + 239, + 238, + 237, + 235, + 234, + 233, + 231, + 230, + 228, + 227, + 226, + 224, + 223, + 221, + 220, + 218, + 217, + 215, + 214, + 212, + 211, + 209, + 208, + 206, + 204, + 203, + 201, + 200, + 198, + 196, + 195, + 193, + 191, + 190, + 188, + 186, + 184, + 183, + 181, + 179, + 177, + 176, + 174, + 172, + 170, + 168, + 167, + 165, + 163, + 161, + 159, + 157, + 156, + 154, + 152, + 150, + 148, + 146, + 144, + 142, + 140, + 138, + 136, + 134, + 132, + 131, + 129, + 127, + 125, + 123, + 121, + 119, + 117, + 115, + 112, + 110, + 108, + 106, + 104, + 102, + 100, + 98, + 96, + 94, + 92, + 90, + 88, + 86, + 84, + 82, + 79, + 77, + 75, + 73, + 71, + 69, + 67, + 65, + 62, + 60, + 58, + 56, + 54, + 52, + 50, + 48, + 45, + 43, + 41, + 39, + 37, + 35, + 33, + 30, + 28, + 26, + 24, + 22, + 20, + 17, + 15, + 13, + 11, + 9, + 7, + 5, + 2, + 0, + -2, + -4, + -6, + -8, + -10, + -13, + -15, + -17, + -19, + -21, + -23, + -25, + -28, + -30, + -32, + -34, + -36, + -38, + -40, + -42, + -44, + -46; diff --git a/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_64_12_025.coe b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_64_12_025.coe new file mode 100644 index 00000000..e59425d3 --- /dev/null +++ b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/coe/hrc_64_12_025.coe @@ -0,0 +1,776 @@ +; XILINX CORE Generator v1.0 +; Copyright 2023 Gatsby Van +; generated by MATLAB 23.2 (R2023b) +; generated at: 15-Jan-2024 11:07:53 +0800 + +RADIX = 10; +COEFDATA = + -46, + -30, + -13, + 5, + 22, + 39, + 56, + 73, + 90, + 106, + 123, + 138, + 154, + 168, + 183, + 196, + 209, + 221, + 233, + 243, + 253, + 261, + 269, + 276, + 281, + 286, + 289, + 291, + 292, + 292, + 291, + 289, + 285, + 280, + 274, + 267, + 259, + 250, + 240, + 228, + 216, + 202, + 188, + 173, + 157, + 140, + 122, + 104, + 85, + 66, + 46, + 26, + 6, + -15, + -35, + -56, + -77, + -97, + -117, + -138, + -157, + -176, + -195, + -213, + -230, + -247, + -262, + -277, + -290, + -303, + -314, + -324, + -333, + -340, + -346, + -351, + -354, + -355, + -355, + -354, + -351, + -346, + -339, + -331, + -322, + -310, + -297, + -283, + -267, + -250, + -231, + -210, + -189, + -166, + -142, + -116, + -90, + -63, + -34, + -5, + 24, + 55, + 85, + 116, + 148, + 179, + 211, + 242, + 273, + 304, + 334, + 364, + 393, + 421, + 448, + 473, + 498, + 521, + 542, + 562, + 581, + 597, + 611, + 623, + 634, + 641, + 647, + 650, + 651, + 649, + 645, + 638, + 628, + 616, + 600, + 583, + 562, + 539, + 513, + 485, + 454, + 420, + 384, + 345, + 305, + 261, + 216, + 169, + 120, + 69, + 17, + -37, + -93, + -149, + -207, + -265, + -324, + -383, + -442, + -502, + -561, + -620, + -678, + -736, + -792, + -848, + -901, + -953, +-1003, +-1051, +-1097, +-1140, +-1180, +-1217, +-1252, +-1282, +-1309, +-1333, +-1353, +-1368, +-1379, +-1386, +-1389, +-1387, +-1380, +-1369, +-1352, +-1331, +-1305, +-1274, +-1238, +-1197, +-1151, +-1100, +-1044, + -983, + -917, + -847, + -773, + -694, + -610, + -523, + -432, + -337, + -239, + -137, + -32, + 75, + 185, + 297, + 410, + 526, + 642, + 760, + 877, + 995, + 1113, + 1231, + 1347, + 1462, + 1575, + 1686, + 1795, + 1900, + 2003, + 2101, + 2196, + 2286, + 2371, + 2451, + 2525, + 2594, + 2656, + 2711, + 2759, + 2800, + 2834, + 2859, + 2877, + 2886, + 2886, + 2878, + 2861, + 2834, + 2798, + 2753, + 2698, + 2634, + 2560, + 2476, + 2383, + 2280, + 2168, + 2047, + 1916, + 1776, + 1627, + 1470, + 1304, + 1130, + 949, + 759, + 563, + 360, + 151, + -64, + -284, + -509, + -738, + -971, +-1208, +-1446, +-1687, +-1929, +-2171, +-2413, +-2655, +-2895, +-3133, +-3368, +-3599, +-3826, +-4047, +-4263, +-4471, +-4673, +-4866, +-5049, +-5223, +-5387, +-5539, +-5679, +-5806, +-5920, +-6019, +-6104, +-6173, +-6226, +-6262, +-6281, +-6281, +-6264, +-6227, +-6171, +-6095, +-5999, +-5882, +-5744, +-5585, +-5404, +-5202, +-4978, +-4732, +-4463, +-4173, +-3861, +-3526, +-3170, +-2791, +-2391, +-1970, +-1528, +-1065, + -582, + -79, + 444, + 986, + 1546, + 2123, + 2718, + 3329, + 3956, + 4597, + 5253, + 5922, + 6603, + 7296, + 7999, + 8711, + 9432, +10160, +10895, +11635, +12379, +13126, +13875, +14625, +15374, +16122, +16866, +17607, +18343, +19072, +19793, +20506, +21209, +21900, +22579, +23245, +23897, +24532, +25151, +25752, +26334, +26897, +27438, +27958, +28455, +28929, +29378, +29802, +30200, +30572, +30916, +31232, +31520, +31780, +32009, +32209, +32379, +32518, +32627, +32705, +32751, +32767, +32751, +32705, +32627, +32518, +32379, +32209, +32009, +31780, +31520, +31232, +30916, +30572, +30200, +29802, +29378, +28929, +28455, +27958, +27438, +26897, +26334, +25752, +25151, +24532, +23897, +23245, +22579, +21900, +21209, +20506, +19793, +19072, +18343, +17607, +16866, +16122, +15374, +14625, +13875, +13126, +12379, +11635, +10895, +10160, + 9432, + 8711, + 7999, + 7296, + 6603, + 5922, + 5253, + 4597, + 3956, + 3329, + 2718, + 2123, + 1546, + 986, + 444, + -79, + -582, +-1065, +-1528, +-1970, +-2391, +-2791, +-3170, +-3526, +-3861, +-4173, +-4463, +-4732, +-4978, +-5202, +-5404, +-5585, +-5744, +-5882, +-5999, +-6095, +-6171, +-6227, +-6264, +-6281, +-6281, +-6262, +-6226, +-6173, +-6104, +-6019, +-5920, +-5806, +-5679, +-5539, +-5387, +-5223, +-5049, +-4866, +-4673, +-4471, +-4263, +-4047, +-3826, +-3599, +-3368, +-3133, +-2895, +-2655, +-2413, +-2171, +-1929, +-1687, +-1446, +-1208, + -971, + -738, + -509, + -284, + -64, + 151, + 360, + 563, + 759, + 949, + 1130, + 1304, + 1470, + 1627, + 1776, + 1916, + 2047, + 2168, + 2280, + 2383, + 2476, + 2560, + 2634, + 2698, + 2753, + 2798, + 2834, + 2861, + 2878, + 2886, + 2886, + 2877, + 2859, + 2834, + 2800, + 2759, + 2711, + 2656, + 2594, + 2525, + 2451, + 2371, + 2286, + 2196, + 2101, + 2003, + 1900, + 1795, + 1686, + 1575, + 1462, + 1347, + 1231, + 1113, + 995, + 877, + 760, + 642, + 526, + 410, + 297, + 185, + 75, + -32, + -137, + -239, + -337, + -432, + -523, + -610, + -694, + -773, + -847, + -917, + -983, +-1044, +-1100, +-1151, +-1197, +-1238, +-1274, +-1305, +-1331, +-1352, +-1369, +-1380, +-1387, +-1389, +-1386, +-1379, +-1368, +-1353, +-1333, +-1309, +-1282, +-1252, +-1217, +-1180, +-1140, +-1097, +-1051, +-1003, + -953, + -901, + -848, + -792, + -736, + -678, + -620, + -561, + -502, + -442, + -383, + -324, + -265, + -207, + -149, + -93, + -37, + 17, + 69, + 120, + 169, + 216, + 261, + 305, + 345, + 384, + 420, + 454, + 485, + 513, + 539, + 562, + 583, + 600, + 616, + 628, + 638, + 645, + 649, + 651, + 650, + 647, + 641, + 634, + 623, + 611, + 597, + 581, + 562, + 542, + 521, + 498, + 473, + 448, + 421, + 393, + 364, + 334, + 304, + 273, + 242, + 211, + 179, + 148, + 116, + 85, + 55, + 24, + -5, + -34, + -63, + -90, + -116, + -142, + -166, + -189, + -210, + -231, + -250, + -267, + -283, + -297, + -310, + -322, + -331, + -339, + -346, + -351, + -354, + -355, + -355, + -354, + -351, + -346, + -340, + -333, + -324, + -314, + -303, + -290, + -277, + -262, + -247, + -230, + -213, + -195, + -176, + -157, + -138, + -117, + -97, + -77, + -56, + -35, + -15, + 6, + 26, + 46, + 66, + 85, + 104, + 122, + 140, + 157, + 173, + 188, + 202, + 216, + 228, + 240, + 250, + 259, + 267, + 274, + 280, + 285, + 289, + 291, + 292, + 292, + 291, + 289, + 286, + 281, + 276, + 269, + 261, + 253, + 243, + 233, + 221, + 209, + 196, + 183, + 168, + 154, + 138, + 123, + 106, + 90, + 73, + 56, + 39, + 22, + 5, + -13, + -30, + -46; diff --git a/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_256_12_025/hrc_256_12_025.xci b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_256_12_025/hrc_256_12_025.xci new file mode 100644 index 00000000..5ada81c6 --- /dev/null +++ b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_256_12_025/hrc_256_12_025.xci @@ -0,0 +1,349 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "hrc_256_12_025", + "component_reference": "xilinx.com:ip:fir_compiler:7.2", + "ip_revision": "20", + "gen_directory": "../../../../tx_qpsk_poly.gen/sources_1/ip/hrc_256_12_025", + "parameters": { + "component_parameters": { + "Component_Name": [ { "value": "hrc_256_12_025", "resolve_type": "user", "usage": "all" } ], + "GUI_Behaviour": [ { "value": "Coregen", "resolve_type": "user", "usage": "all" } ], + "CoefficientSource": [ { "value": "COE_File", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "CoefficientVector": [ { "value": "6,0,-4,-3,5,6,-6,-13,7,44,64,44,7,-13,-6,6,5,-3,-4,0,6", "resolve_type": "user", "usage": "all" } ], + "Coefficient_File": [ { "value": "../coe/hrc_256_12_025.coe", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Sets": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Coefficient_Reload": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Filter_Type": [ { "value": "Interpolation", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Rate_Change_Type": [ { "value": "Integer", "resolve_type": "user", "usage": "all" } ], + "Interpolation_Rate": [ { "value": "256", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Decimation_Rate": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Zero_Pack_Factor": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Channel_Sequence": [ { "value": "Basic", "resolve_type": "user", "usage": "all" } ], + "Number_Channels": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Select_Pattern": [ { "value": "All", "resolve_type": "user", "usage": "all" } ], + "Pattern_List": [ { "value": "P4-0,P4-1,P4-2,P4-3,P4-4", "resolve_type": "user", "usage": "all" } ], + "Number_Paths": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "RateSpecification": [ { "value": "Input_Sample_Period", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "HardwareOversamplingRate": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "SamplePeriod": [ { "value": "64", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Sample_Frequency": [ { "value": "0.001", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Clock_Frequency": [ { "value": "300.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Coefficient_Sign": [ { "value": "Signed", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Quantization": [ { "value": "Integer_Coefficients", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Width": [ { "value": "16", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "BestPrecision": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Coefficient_Fractional_Bits": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Coefficient_Structure": [ { "value": "Inferred", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Data_Sign": [ { "value": "Signed", "resolve_type": "user", "usage": "all" } ], + "Data_Width": [ { "value": "2", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Data_Fractional_Bits": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Output_Rounding_Mode": [ { "value": "Full_Precision", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Output_Width": [ { "value": "18", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Filter_Architecture": [ { "value": "Systolic_Multiply_Accumulate", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Optimization_Goal": [ { "value": "Area", "resolve_type": "user", "usage": "all" } ], + "Optimization_Selection": [ { "value": "None", "resolve_type": "user", "usage": "all" } ], + "Data_Path_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Pre_Adder_Pipeline": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Coefficient_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Path_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Column_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Broadcast_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_LUT_Pipeline": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "No_BRAM_Read_First_Mode": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Optimal_Column_Lengths": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Data_Path_Broadcast": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Disable_Half_Band_Centre_Tap": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "No_SRL_Attributes": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Other": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Optimization_List": [ { "value": "None", "resolve_type": "user", "usage": "all" } ], + "Data_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Input_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Output_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Preference_For_Other_Storage": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Multi_Column_Support": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Inter_Column_Pipe_Length": [ { "value": "4", "resolve_type": "user", "format": "long", "usage": "all" } ], + "ColumnConfig": [ { "value": "13", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "DATA_Has_TLAST": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "M_DATA_Has_TREADY": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "S_DATA_Has_FIFO": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "S_DATA_Has_TUSER": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "M_DATA_Has_TUSER": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "DATA_TUSER_Width": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "S_CONFIG_Sync_Mode": [ { "value": "On_Vector", "resolve_type": "user", "usage": "all" } ], + "S_CONFIG_Method": [ { "value": "Single", "resolve_type": "user", "usage": "all" } ], + "Num_Reload_Slots": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Has_ACLKEN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Has_ARESETn": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Reset_Data_Vector": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Blank_Output": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Gen_MIF_from_Spec": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Gen_MIF_from_COE": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Reload_File": [ { "value": "no_coe_file_loaded", "resolve_type": "user", "usage": "all" } ], + "Gen_MIF_Files": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "DisplayReloadOrder": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Passband_Min": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Passband_Max": [ { "value": "0.5", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Stopband_Min": [ { "value": "0.5", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Stopband_Max": [ { "value": "1.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Filter_Selection": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ] + }, + "model_parameters": { + "C_XDEVICEFAMILY": [ { "value": "zynquplus", "resolve_type": "generated", "usage": "all" } ], + "C_ELABORATION_DIR": [ { "value": "./", "resolve_type": "generated", "usage": "all" } ], + "C_COMPONENT_NAME": [ { "value": "hrc_256_12_025", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_FILE": [ { "value": "hrc_256_12_025.mif", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_FILE_LINES": [ { "value": "3328", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_FILTER_TYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INTERP_RATE": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DECIM_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ZERO_PACKING_FACTOR": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_SYMMETRY": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_FILTS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_TAPS": [ { "value": "3073", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_CHANNELS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CHANNEL_PATTERN": [ { "value": "fixed", "resolve_type": "generated", "usage": "all" } ], + "C_ROUND_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_RELOAD": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_RELOAD_SLOTS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_MODE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_PIPE_LEN": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_CONFIG": [ { "value": "13", "resolve_type": "generated", "usage": "all" } ], + "C_OPTIMIZATION": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_PATH_WIDTHS": [ { "value": "2,2,2,2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_IP_PATH_WIDTHS": [ { "value": "2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PX_PATH_WIDTHS": [ { "value": "2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_WIDTH": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_PATH_WIDTHS": [ { "value": "16,16,16,16", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_WIDTH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_PATH_SRC": [ { "value": "0,0,0,0", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_PATH_SRC": [ { "value": "0,1,2,3", "resolve_type": "generated", "usage": "all" } ], + "C_PX_PATH_SRC": [ { "value": "0,1,2,3", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PATH_SIGN": [ { "value": "0,0,0,0", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_PATH_SIGN": [ { "value": "0,0,0,0", "resolve_type": "generated", "usage": "all" } ], + "C_ACCUM_PATH_WIDTHS": [ { "value": "18,18,18,18", "resolve_type": "generated", "usage": "all" } ], + "C_OUTPUT_WIDTH": [ { "value": "18", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUTPUT_PATH_WIDTHS": [ { "value": "18,18,18,18", "resolve_type": "generated", "usage": "all" } ], + "C_ACCUM_OP_PATH_WIDTHS": [ { "value": "18,18,18,18", "resolve_type": "generated", "usage": "all" } ], + "C_EXT_MULT_CNFG": [ { "value": "none", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PATH_PSAMP_SRC": [ { "value": "-0;-0;-0;-0", "resolve_type": "generated", "usage": "all" } ], + "C_OP_PATH_PSAMP_SRC": [ { "value": "-0;-0;-0;-0", "resolve_type": "generated", "usage": "all" } ], + "C_NUM_MADDS": [ { "value": "13", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OPT_MADDS": [ { "value": "none;none;none;none", "resolve_type": "generated", "usage": "all" } ], + "C_OVERSAMPLING_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INPUT_RATE": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUTPUT_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_MEMTYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IPBUFF_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OPBUFF_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATAPATH_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MEM_ARRANGEMENT": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_MEM_PACKING": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_MEM_PACKING": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_FILTS_PACKED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_LATENCY": [ { "value": "19", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ARESETn": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ACLKEN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_HAS_FIFO": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_HAS_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_TDATA_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_HAS_TREADY": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_HAS_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_TDATA_WIDTH": [ { "value": "96", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_CONFIG_CHANNEL": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_SYNC_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_PACKET_SIZE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_TDATA_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RELOAD_TDATA_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynquplusRFSOC" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xczu48dr" } ], + "PACKAGE": [ { "value": "fsvg1517" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "I" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Flow" } ], + "IPREVISION": [ { "value": "20" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../tx_qpsk_poly.gen/sources_1/ip/hrc_256_12_025" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "." } ], + "SWVERSION": [ { "value": "2023.2.1" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "aclk": [ { "direction": "in" } ], + "s_axis_data_tvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axis_data_tready": [ { "direction": "out", "driver_value": "0x1" } ], + "s_axis_data_tdata": [ { "direction": "in", "size_left": "7", "size_right": "0", "driver_value": "0" } ], + "m_axis_data_tvalid": [ { "direction": "out", "driver_value": "0x0" } ], + "m_axis_data_tdata": [ { "direction": "out", "size_left": "95", "size_right": "0", "driver_value": "0" } ] + }, + "interfaces": { + "event_s_data_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_data_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_data_chanid_incorrect_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_config_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_config_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_reload_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_reload_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "aclk_intf": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "ASSOCIATED_BUSIF": [ { "value": "S_AXIS_CONFIG:M_AXIS_DATA:S_AXIS_DATA:S_AXIS_RELOAD", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_RESET": [ { "value": "aresetn", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_CLKEN": [ { "value": "aclken", "value_src": "constant", "usage": "all" } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "user", "format": "long", "usage": "all" } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "aclk" } ] + } + }, + "aresetn_intf": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "aclken_intf": { + "vlnv": "xilinx.com:signal:clockenable:1.0", + "abstraction_type": "xilinx.com:signal:clockenable_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "usage": "all" } ] + } + }, + "S_AXIS_DATA": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "slave", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "1", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "1", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "s_axis_data_tdata" } ], + "TREADY": [ { "physical_name": "s_axis_data_tready" } ], + "TVALID": [ { "physical_name": "s_axis_data_tvalid" } ] + } + }, + "M_AXIS_DATA": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "master", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "12", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "0", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "m_axis_data_tdata" } ], + "TVALID": [ { "physical_name": "m_axis_data_tvalid" } ] + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_512_12_025/hrc_512_12_025.xci b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_512_12_025/hrc_512_12_025.xci new file mode 100644 index 00000000..1f69581c --- /dev/null +++ b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_512_12_025/hrc_512_12_025.xci @@ -0,0 +1,349 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "hrc_512_12_025", + "component_reference": "xilinx.com:ip:fir_compiler:7.2", + "ip_revision": "20", + "gen_directory": "../../../../tx_qpsk_poly.gen/sources_1/ip/hrc_512_12_025", + "parameters": { + "component_parameters": { + "Component_Name": [ { "value": "hrc_512_12_025", "resolve_type": "user", "usage": "all" } ], + "GUI_Behaviour": [ { "value": "Coregen", "resolve_type": "user", "usage": "all" } ], + "CoefficientSource": [ { "value": "COE_File", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "CoefficientVector": [ { "value": "6,0,-4,-3,5,6,-6,-13,7,44,64,44,7,-13,-6,6,5,-3,-4,0,6", "resolve_type": "user", "usage": "all" } ], + "Coefficient_File": [ { "value": "../coe/hrc_512_12_025.coe", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Sets": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Coefficient_Reload": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Filter_Type": [ { "value": "Interpolation", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Rate_Change_Type": [ { "value": "Integer", "resolve_type": "user", "usage": "all" } ], + "Interpolation_Rate": [ { "value": "512", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Decimation_Rate": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Zero_Pack_Factor": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Channel_Sequence": [ { "value": "Basic", "resolve_type": "user", "usage": "all" } ], + "Number_Channels": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Select_Pattern": [ { "value": "All", "resolve_type": "user", "usage": "all" } ], + "Pattern_List": [ { "value": "P4-0,P4-1,P4-2,P4-3,P4-4", "resolve_type": "user", "usage": "all" } ], + "Number_Paths": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "RateSpecification": [ { "value": "Input_Sample_Period", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "HardwareOversamplingRate": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "SamplePeriod": [ { "value": "64", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Sample_Frequency": [ { "value": "0.001", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Clock_Frequency": [ { "value": "300.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Coefficient_Sign": [ { "value": "Signed", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Quantization": [ { "value": "Integer_Coefficients", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Width": [ { "value": "16", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "BestPrecision": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Coefficient_Fractional_Bits": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Coefficient_Structure": [ { "value": "Inferred", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Data_Sign": [ { "value": "Signed", "resolve_type": "user", "usage": "all" } ], + "Data_Width": [ { "value": "2", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Data_Fractional_Bits": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Output_Rounding_Mode": [ { "value": "Full_Precision", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Output_Width": [ { "value": "18", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Filter_Architecture": [ { "value": "Systolic_Multiply_Accumulate", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Optimization_Goal": [ { "value": "Area", "resolve_type": "user", "usage": "all" } ], + "Optimization_Selection": [ { "value": "None", "resolve_type": "user", "usage": "all" } ], + "Data_Path_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Pre_Adder_Pipeline": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Coefficient_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Path_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Column_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Broadcast_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_LUT_Pipeline": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "No_BRAM_Read_First_Mode": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Optimal_Column_Lengths": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Data_Path_Broadcast": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Disable_Half_Band_Centre_Tap": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "No_SRL_Attributes": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Other": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Optimization_List": [ { "value": "None", "resolve_type": "user", "usage": "all" } ], + "Data_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Input_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Output_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Preference_For_Other_Storage": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Multi_Column_Support": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Inter_Column_Pipe_Length": [ { "value": "4", "resolve_type": "user", "format": "long", "usage": "all" } ], + "ColumnConfig": [ { "value": "13", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "DATA_Has_TLAST": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "M_DATA_Has_TREADY": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "S_DATA_Has_FIFO": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "S_DATA_Has_TUSER": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "M_DATA_Has_TUSER": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "DATA_TUSER_Width": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "S_CONFIG_Sync_Mode": [ { "value": "On_Vector", "resolve_type": "user", "usage": "all" } ], + "S_CONFIG_Method": [ { "value": "Single", "resolve_type": "user", "usage": "all" } ], + "Num_Reload_Slots": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Has_ACLKEN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Has_ARESETn": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Reset_Data_Vector": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Blank_Output": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Gen_MIF_from_Spec": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Gen_MIF_from_COE": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Reload_File": [ { "value": "no_coe_file_loaded", "resolve_type": "user", "usage": "all" } ], + "Gen_MIF_Files": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "DisplayReloadOrder": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Passband_Min": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Passband_Max": [ { "value": "0.5", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Stopband_Min": [ { "value": "0.5", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Stopband_Max": [ { "value": "1.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Filter_Selection": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ] + }, + "model_parameters": { + "C_XDEVICEFAMILY": [ { "value": "zynquplus", "resolve_type": "generated", "usage": "all" } ], + "C_ELABORATION_DIR": [ { "value": "./", "resolve_type": "generated", "usage": "all" } ], + "C_COMPONENT_NAME": [ { "value": "hrc_512_12_025", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_FILE": [ { "value": "hrc_512_12_025.mif", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_FILE_LINES": [ { "value": "6656", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_FILTER_TYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INTERP_RATE": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DECIM_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ZERO_PACKING_FACTOR": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_SYMMETRY": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_FILTS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_TAPS": [ { "value": "6145", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_CHANNELS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CHANNEL_PATTERN": [ { "value": "fixed", "resolve_type": "generated", "usage": "all" } ], + "C_ROUND_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_RELOAD": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_RELOAD_SLOTS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_MODE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_PIPE_LEN": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_CONFIG": [ { "value": "13", "resolve_type": "generated", "usage": "all" } ], + "C_OPTIMIZATION": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_PATH_WIDTHS": [ { "value": "2,2,2,2,2,2,2,2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_IP_PATH_WIDTHS": [ { "value": "2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PX_PATH_WIDTHS": [ { "value": "2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_WIDTH": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_PATH_WIDTHS": [ { "value": "16,16,16,16,16,16,16,16", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_WIDTH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_PATH_SRC": [ { "value": "0,0,0,0,0,0,0,0", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_PATH_SRC": [ { "value": "0,1,2,3,4,5,6,7", "resolve_type": "generated", "usage": "all" } ], + "C_PX_PATH_SRC": [ { "value": "0,1,2,3,4,5,6,7", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PATH_SIGN": [ { "value": "0,0,0,0,0,0,0,0", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_PATH_SIGN": [ { "value": "0,0,0,0,0,0,0,0", "resolve_type": "generated", "usage": "all" } ], + "C_ACCUM_PATH_WIDTHS": [ { "value": "18,18,18,18,18,18,18,18", "resolve_type": "generated", "usage": "all" } ], + "C_OUTPUT_WIDTH": [ { "value": "18", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUTPUT_PATH_WIDTHS": [ { "value": "18,18,18,18,18,18,18,18", "resolve_type": "generated", "usage": "all" } ], + "C_ACCUM_OP_PATH_WIDTHS": [ { "value": "18,18,18,18,18,18,18,18", "resolve_type": "generated", "usage": "all" } ], + "C_EXT_MULT_CNFG": [ { "value": "none", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PATH_PSAMP_SRC": [ { "value": "-0;-0;-0;-0;-0;-0;-0;-0", "resolve_type": "generated", "usage": "all" } ], + "C_OP_PATH_PSAMP_SRC": [ { "value": "-0;-0;-0;-0;-0;-0;-0;-0", "resolve_type": "generated", "usage": "all" } ], + "C_NUM_MADDS": [ { "value": "13", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OPT_MADDS": [ { "value": "none;none;none;none;none;none;none;none", "resolve_type": "generated", "usage": "all" } ], + "C_OVERSAMPLING_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INPUT_RATE": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUTPUT_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_MEMTYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IPBUFF_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OPBUFF_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATAPATH_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MEM_ARRANGEMENT": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_MEM_PACKING": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_MEM_PACKING": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_FILTS_PACKED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_LATENCY": [ { "value": "19", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ARESETn": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ACLKEN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_HAS_FIFO": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_HAS_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_TDATA_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_HAS_TREADY": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_HAS_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_TDATA_WIDTH": [ { "value": "192", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_CONFIG_CHANNEL": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_SYNC_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_PACKET_SIZE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_TDATA_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RELOAD_TDATA_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynquplusRFSOC" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xczu48dr" } ], + "PACKAGE": [ { "value": "fsvg1517" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "I" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Flow" } ], + "IPREVISION": [ { "value": "20" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../tx_qpsk_poly.gen/sources_1/ip/hrc_512_12_025" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "." } ], + "SWVERSION": [ { "value": "2023.2.1" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "aclk": [ { "direction": "in" } ], + "s_axis_data_tvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axis_data_tready": [ { "direction": "out", "driver_value": "0x1" } ], + "s_axis_data_tdata": [ { "direction": "in", "size_left": "7", "size_right": "0", "driver_value": "0" } ], + "m_axis_data_tvalid": [ { "direction": "out", "driver_value": "0x0" } ], + "m_axis_data_tdata": [ { "direction": "out", "size_left": "191", "size_right": "0", "driver_value": "0" } ] + }, + "interfaces": { + "event_s_data_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_data_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_data_chanid_incorrect_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_config_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_config_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_reload_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_reload_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "aclk_intf": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "ASSOCIATED_BUSIF": [ { "value": "S_AXIS_CONFIG:M_AXIS_DATA:S_AXIS_DATA:S_AXIS_RELOAD", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_RESET": [ { "value": "aresetn", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_CLKEN": [ { "value": "aclken", "value_src": "constant", "usage": "all" } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "user", "format": "long", "usage": "all" } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "aclk" } ] + } + }, + "aresetn_intf": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "aclken_intf": { + "vlnv": "xilinx.com:signal:clockenable:1.0", + "abstraction_type": "xilinx.com:signal:clockenable_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "usage": "all" } ] + } + }, + "S_AXIS_DATA": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "slave", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "1", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "s_axis_data_tdata" } ], + "TREADY": [ { "physical_name": "s_axis_data_tready" } ], + "TVALID": [ { "physical_name": "s_axis_data_tvalid" } ] + } + }, + "M_AXIS_DATA": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "master", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "24", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "0", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "m_axis_data_tdata" } ], + "TVALID": [ { "physical_name": "m_axis_data_tvalid" } ] + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_64_12_025/hrc_64_12_025.xci b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_64_12_025/hrc_64_12_025.xci new file mode 100644 index 00000000..7517cb14 --- /dev/null +++ b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/ip/hrc_64_12_025/hrc_64_12_025.xci @@ -0,0 +1,349 @@ +{ + "schema": "xilinx.com:schema:json_instance:1.0", + "ip_inst": { + "xci_name": "hrc_64_12_025", + "component_reference": "xilinx.com:ip:fir_compiler:7.2", + "ip_revision": "20", + "gen_directory": "../../../../tx_qpsk_poly.gen/sources_1/ip/hrc_64_12_025", + "parameters": { + "component_parameters": { + "Component_Name": [ { "value": "hrc_64_12_025", "resolve_type": "user", "usage": "all" } ], + "GUI_Behaviour": [ { "value": "Coregen", "resolve_type": "user", "usage": "all" } ], + "CoefficientSource": [ { "value": "COE_File", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "CoefficientVector": [ { "value": "6,0,-4,-3,5,6,-6,-13,7,44,64,44,7,-13,-6,6,5,-3,-4,0,6", "resolve_type": "user", "usage": "all" } ], + "Coefficient_File": [ { "value": "../coe/hrc_64_12_025.coe", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Sets": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Coefficient_Reload": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Filter_Type": [ { "value": "Interpolation", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Rate_Change_Type": [ { "value": "Integer", "resolve_type": "user", "usage": "all" } ], + "Interpolation_Rate": [ { "value": "64", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Decimation_Rate": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Zero_Pack_Factor": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Channel_Sequence": [ { "value": "Basic", "resolve_type": "user", "usage": "all" } ], + "Number_Channels": [ { "value": "1", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Select_Pattern": [ { "value": "All", "resolve_type": "user", "usage": "all" } ], + "Pattern_List": [ { "value": "P4-0,P4-1,P4-2,P4-3,P4-4", "resolve_type": "user", "usage": "all" } ], + "Number_Paths": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "RateSpecification": [ { "value": "Input_Sample_Period", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "HardwareOversamplingRate": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "SamplePeriod": [ { "value": "64", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Sample_Frequency": [ { "value": "0.001", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Clock_Frequency": [ { "value": "300.0", "value_src": "user", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Coefficient_Sign": [ { "value": "Signed", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Quantization": [ { "value": "Integer_Coefficients", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Width": [ { "value": "16", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "BestPrecision": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Coefficient_Fractional_Bits": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Coefficient_Structure": [ { "value": "Inferred", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Data_Sign": [ { "value": "Signed", "resolve_type": "user", "usage": "all" } ], + "Data_Width": [ { "value": "2", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Data_Fractional_Bits": [ { "value": "0", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Output_Rounding_Mode": [ { "value": "Full_Precision", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Output_Width": [ { "value": "18", "value_src": "user", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Filter_Architecture": [ { "value": "Systolic_Multiply_Accumulate", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "Optimization_Goal": [ { "value": "Area", "resolve_type": "user", "usage": "all" } ], + "Optimization_Selection": [ { "value": "None", "resolve_type": "user", "usage": "all" } ], + "Data_Path_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Pre_Adder_Pipeline": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Coefficient_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Path_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Column_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_Broadcast_Fanout": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Control_LUT_Pipeline": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "No_BRAM_Read_First_Mode": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Optimal_Column_Lengths": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Data_Path_Broadcast": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Disable_Half_Band_Centre_Tap": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "No_SRL_Attributes": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Other": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Optimization_List": [ { "value": "None", "resolve_type": "user", "usage": "all" } ], + "Data_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Coefficient_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Input_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Output_Buffer_Type": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Preference_For_Other_Storage": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Multi_Column_Support": [ { "value": "Automatic", "resolve_type": "user", "usage": "all" } ], + "Inter_Column_Pipe_Length": [ { "value": "4", "resolve_type": "user", "format": "long", "usage": "all" } ], + "ColumnConfig": [ { "value": "7", "value_src": "user", "resolve_type": "user", "usage": "all" } ], + "DATA_Has_TLAST": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "M_DATA_Has_TREADY": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "S_DATA_Has_FIFO": [ { "value": "false", "value_src": "user", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "S_DATA_Has_TUSER": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "M_DATA_Has_TUSER": [ { "value": "Not_Required", "resolve_type": "user", "usage": "all" } ], + "DATA_TUSER_Width": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "S_CONFIG_Sync_Mode": [ { "value": "On_Vector", "resolve_type": "user", "usage": "all" } ], + "S_CONFIG_Method": [ { "value": "Single", "resolve_type": "user", "usage": "all" } ], + "Num_Reload_Slots": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ], + "Has_ACLKEN": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Has_ARESETn": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Reset_Data_Vector": [ { "value": "true", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Blank_Output": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Gen_MIF_from_Spec": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Gen_MIF_from_COE": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Reload_File": [ { "value": "no_coe_file_loaded", "resolve_type": "user", "usage": "all" } ], + "Gen_MIF_Files": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "DisplayReloadOrder": [ { "value": "false", "resolve_type": "user", "format": "bool", "usage": "all" } ], + "Passband_Min": [ { "value": "0.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Passband_Max": [ { "value": "0.5", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Stopband_Min": [ { "value": "0.5", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Stopband_Max": [ { "value": "1.0", "resolve_type": "user", "format": "float", "usage": "all" } ], + "Filter_Selection": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ] + }, + "model_parameters": { + "C_XDEVICEFAMILY": [ { "value": "zynquplus", "resolve_type": "generated", "usage": "all" } ], + "C_ELABORATION_DIR": [ { "value": "./", "resolve_type": "generated", "usage": "all" } ], + "C_COMPONENT_NAME": [ { "value": "hrc_64_12_025", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_FILE": [ { "value": "hrc_64_12_025.mif", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_FILE_LINES": [ { "value": "448", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_FILTER_TYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INTERP_RATE": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DECIM_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_ZERO_PACKING_FACTOR": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_SYMMETRY": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_FILTS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_TAPS": [ { "value": "769", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_CHANNELS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CHANNEL_PATTERN": [ { "value": "fixed", "resolve_type": "generated", "usage": "all" } ], + "C_ROUND_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_RELOAD": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_NUM_RELOAD_SLOTS": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_MODE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_PIPE_LEN": [ { "value": "4", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COL_CONFIG": [ { "value": "7", "resolve_type": "generated", "usage": "all" } ], + "C_OPTIMIZATION": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_PATH_WIDTHS": [ { "value": "2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_IP_PATH_WIDTHS": [ { "value": "2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PX_PATH_WIDTHS": [ { "value": "2", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_WIDTH": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_PATH_WIDTHS": [ { "value": "17", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_WIDTH": [ { "value": "16", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_PATH_SRC": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_PATH_SRC": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_PX_PATH_SRC": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PATH_SIGN": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_COEF_PATH_SIGN": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_ACCUM_PATH_WIDTHS": [ { "value": "19", "resolve_type": "generated", "usage": "all" } ], + "C_OUTPUT_WIDTH": [ { "value": "18", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUTPUT_PATH_WIDTHS": [ { "value": "18", "resolve_type": "generated", "usage": "all" } ], + "C_ACCUM_OP_PATH_WIDTHS": [ { "value": "18", "resolve_type": "generated", "usage": "all" } ], + "C_EXT_MULT_CNFG": [ { "value": "none", "resolve_type": "generated", "usage": "all" } ], + "C_DATA_PATH_PSAMP_SRC": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_OP_PATH_PSAMP_SRC": [ { "value": "0", "resolve_type": "generated", "usage": "all" } ], + "C_NUM_MADDS": [ { "value": "7", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OPT_MADDS": [ { "value": "none", "resolve_type": "generated", "usage": "all" } ], + "C_OVERSAMPLING_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_INPUT_RATE": [ { "value": "64", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OUTPUT_RATE": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_MEMTYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_IPBUFF_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_OPBUFF_MEMTYPE": [ { "value": "2", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATAPATH_MEMTYPE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_MEM_ARRANGEMENT": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_MEM_PACKING": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_COEF_MEM_PACKING": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_FILTS_PACKED": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_LATENCY": [ { "value": "17", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ARESETn": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_ACLKEN": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_DATA_HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_HAS_FIFO": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_HAS_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_TDATA_WIDTH": [ { "value": "8", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_S_DATA_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_HAS_TREADY": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_HAS_TUSER": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_TDATA_WIDTH": [ { "value": "24", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_M_DATA_TUSER_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_HAS_CONFIG_CHANNEL": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_SYNC_MODE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_PACKET_SIZE": [ { "value": "0", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_CONFIG_TDATA_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ], + "C_RELOAD_TDATA_WIDTH": [ { "value": "1", "resolve_type": "generated", "format": "long", "usage": "all" } ] + }, + "project_parameters": { + "ARCHITECTURE": [ { "value": "zynquplusRFSOC" } ], + "BASE_BOARD_PART": [ { "value": "" } ], + "BOARD_CONNECTIONS": [ { "value": "" } ], + "DEVICE": [ { "value": "xczu48dr" } ], + "PACKAGE": [ { "value": "fsvg1517" } ], + "PREFHDL": [ { "value": "VERILOG" } ], + "SILICON_REVISION": [ { "value": "" } ], + "SIMULATOR_LANGUAGE": [ { "value": "MIXED" } ], + "SPEEDGRADE": [ { "value": "-2" } ], + "STATIC_POWER": [ { "value": "" } ], + "TEMPERATURE_GRADE": [ { "value": "I" } ] + }, + "runtime_parameters": { + "IPCONTEXT": [ { "value": "IP_Flow" } ], + "IPREVISION": [ { "value": "20" } ], + "MANAGED": [ { "value": "TRUE" } ], + "OUTPUTDIR": [ { "value": "../../../../tx_qpsk_poly.gen/sources_1/ip/hrc_64_12_025" } ], + "SELECTEDSIMMODEL": [ { "value": "" } ], + "SHAREDDIR": [ { "value": "." } ], + "SWVERSION": [ { "value": "2023.2.1" } ], + "SYNTHESISFLOW": [ { "value": "OUT_OF_CONTEXT" } ] + } + }, + "boundary": { + "ports": { + "aclk": [ { "direction": "in" } ], + "s_axis_data_tvalid": [ { "direction": "in", "driver_value": "0x0" } ], + "s_axis_data_tready": [ { "direction": "out", "driver_value": "0x1" } ], + "s_axis_data_tdata": [ { "direction": "in", "size_left": "7", "size_right": "0", "driver_value": "0" } ], + "m_axis_data_tvalid": [ { "direction": "out", "driver_value": "0x0" } ], + "m_axis_data_tdata": [ { "direction": "out", "size_left": "23", "size_right": "0", "driver_value": "0" } ] + }, + "interfaces": { + "event_s_data_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_data_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_data_chanid_incorrect_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_config_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_config_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_reload_tlast_missing_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "event_s_reload_tlast_unexpected_intf": { + "vlnv": "xilinx.com:signal:interrupt:1.0", + "abstraction_type": "xilinx.com:signal:interrupt_rtl:1.0", + "mode": "master", + "parameters": { + "SENSITIVITY": [ { "value": "EDGE_RISING", "value_src": "constant", "usage": "all" } ], + "PortWidth": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "aclk_intf": { + "vlnv": "xilinx.com:signal:clock:1.0", + "abstraction_type": "xilinx.com:signal:clock_rtl:1.0", + "mode": "slave", + "parameters": { + "ASSOCIATED_BUSIF": [ { "value": "S_AXIS_CONFIG:M_AXIS_DATA:S_AXIS_DATA:S_AXIS_RELOAD", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_RESET": [ { "value": "aresetn", "value_src": "constant", "usage": "all" } ], + "ASSOCIATED_CLKEN": [ { "value": "aclken", "value_src": "constant", "usage": "all" } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "user", "format": "long", "usage": "all" } ], + "FREQ_TOLERANCE_HZ": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "ASSOCIATED_PORT": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "CLK": [ { "physical_name": "aclk" } ] + } + }, + "aresetn_intf": { + "vlnv": "xilinx.com:signal:reset:1.0", + "abstraction_type": "xilinx.com:signal:reset_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_LOW", "value_src": "constant", "usage": "all" } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + } + }, + "aclken_intf": { + "vlnv": "xilinx.com:signal:clockenable:1.0", + "abstraction_type": "xilinx.com:signal:clockenable_rtl:1.0", + "mode": "slave", + "parameters": { + "POLARITY": [ { "value": "ACTIVE_HIGH", "value_src": "constant", "usage": "all" } ] + } + }, + "S_AXIS_DATA": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "slave", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "1", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "1", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "s_axis_data_tdata" } ], + "TREADY": [ { "physical_name": "s_axis_data_tready" } ], + "TVALID": [ { "physical_name": "s_axis_data_tvalid" } ] + } + }, + "M_AXIS_DATA": { + "vlnv": "xilinx.com:interface:axis:1.0", + "abstraction_type": "xilinx.com:interface:axis_rtl:1.0", + "mode": "master", + "parameters": { + "TDATA_NUM_BYTES": [ { "value": "3", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TDEST_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TID_WIDTH": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "TUSER_WIDTH": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TREADY": [ { "value": "0", "value_src": "auto", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TSTRB": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TKEEP": [ { "value": "0", "value_src": "constant", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "HAS_TLAST": [ { "value": "0", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "FREQ_HZ": [ { "value": "100000000", "resolve_type": "generated", "format": "long", "is_ips_inferred": true, "is_static_object": false } ], + "PHASE": [ { "value": "0.0", "resolve_type": "generated", "format": "float", "is_ips_inferred": true, "is_static_object": false } ], + "CLK_DOMAIN": [ { "value": "", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "LAYERED_METADATA": [ { "value": "undef", "resolve_type": "generated", "is_ips_inferred": true, "is_static_object": false } ], + "INSERT_VIP": [ { "value": "0", "resolve_type": "user", "format": "long", "usage": "simulation.rtl", "is_ips_inferred": true, "is_static_object": false } ] + }, + "port_maps": { + "TDATA": [ { "physical_name": "m_axis_data_tdata" } ], + "TVALID": [ { "physical_name": "m_axis_data_tvalid" } ] + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/new/tx_qpsk_poly.v b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/new/tx_qpsk_poly.v new file mode 100644 index 00000000..4dee0530 --- /dev/null +++ b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.srcs/sources_1/new/tx_qpsk_poly.v @@ -0,0 +1,627 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// _ _ ____ +// | | ___ ___| |__ / ___| __ _ ___ +// _ | |/ _ \/ __| '_ \ | | _ / _` |/ _ \ +// | |_| | (_) \__ \ | | | | |_| | (_| | (_) | +// \___/ \___/|___/_| |_| \____|\__,_|\___/ +// +// Create Date: 2022/03/23 20:17:56 +// Last Modified Date: 2023/03/10 15:41 +// Design Name: +// Module Name: tx_qpsk_poly +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// 20230228-1541 - 修改不扫频、无基带频偏时 [baseband_i/q] 的数据输出,原来从 +// 乘法器引出,会导致频率为 0 时输出数据错误,现在直接从基带数据引出。 +// 20230310-1542 - 增加输入参数,发送数据更改为直接由参数输入,发送方波改为 8 +// 倍过采样,发送双音信号中 1MHz 信号的频率控制字可以根据参数中的时钟频率计 +// 算得出。 +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module tx_qpsk_poly +#( + parameter DATA_WIDTH = 12, // need to be <= 16 + parameter BIT_DATA = 128'b00000011000010100011110010001011001110101001111101000011100010010011011010110111101100011010010111011100110010101011111110000001, // inverse pseudorandom bit sequence, [0,flip(PRSB7)] + parameter BIT_DATA_LEN = 128, + parameter SQUARE_INTERP = 8, + parameter CLK_FREQ = 245_760_000*8, // in Hertz + parameter PARALLEL_NUM = 8 +) +( + input clk , + input rst , + output [DATA_WIDTH-1:0] tx_data_i , + output [DATA_WIDTH-1:0] tx_data_q , + // debug ports + input [ 1:0] waveform_sel , + input sweep_on , + input [31:0] freq_set , + input [ 1:0] iq_sel , + input [ 3:0] bb_rshift +); + +localparam RCOS_INTERP = 64*PARALLEL_NUM; +localparam INTERP = (RCOS_INTERP > SQUARE_INTERP) ? RCOS_INTERP : SQUARE_INTERP; +localparam FREQ_WORD_1M = (64'd2)**(64'd16)*(64'd1_000_000)/CLK_FREQ; + +integer i; +genvar m; + +//////////////////////////////////////////////////////////////////////////////// +///////////////////////////////// Data Counter ///////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +// symbol & interpolation counter +reg [$clog2(INTERP*BIT_DATA_LEN)-1 : 0] cnt = 'b0; + +always @(posedge clk) begin + if (rst) begin + cnt <= 'b0; + end + else begin + cnt <= (cnt == INTERP*BIT_DATA_LEN - 1) ? 'b0 : cnt + 16'b1; + end +end + +// address +reg [$clog2(BIT_DATA_LEN)-1 : 0] bit_data_addr_i = 'b0; +reg [$clog2(BIT_DATA_LEN)-1 : 0] bit_data_addr_q = 'b1; + +always @(posedge clk) begin + if (rst) begin + bit_data_addr_i <= 'b0; + bit_data_addr_q <= 'b1; + end + else begin + bit_data_addr_i <= {cnt[$clog2(RCOS_INTERP) +: ($clog2(BIT_DATA_LEN)-1)],1'b0}; + bit_data_addr_q <= {cnt[$clog2(RCOS_INTERP) +: ($clog2(BIT_DATA_LEN)-1)],1'b1}; + end +end + +// bit data +reg bit_data_i = 'b0; +reg bit_data_q = 'b0; + +always @(posedge clk) begin + if (rst) begin + bit_data_i <= 'b0; + bit_data_q <= 'b0; + end + else begin + bit_data_i <= BIT_DATA[bit_data_addr_i]; + bit_data_q <= BIT_DATA[bit_data_addr_q]; + end +end + +//////////////////////////////////////////////////////////////////////////////// +////////////////////// Root-Rasied Cosine Shaping Filter /////////////////////// +//////////////////////////////////////////////////////////////////////////////// + +// polarization +wire [7:0] hrc_data_polar_i; +wire [7:0] hrc_data_polar_q; + +assign hrc_data_polar_i = {{7{bit_data_i}},1'b1}; +assign hrc_data_polar_q = {{7{bit_data_q}},1'b1}; + +// root raised cosine shaping-filter +wire [24*PARALLEL_NUM-1 : 0] hrc_wave_i; +wire [24*PARALLEL_NUM-1 : 0] hrc_wave_q; + +wire [23:0] hrc_wave_i_par [0 : PARALLEL_NUM-1]; +wire [23:0] hrc_wave_q_par [0 : PARALLEL_NUM-1]; + +generate + +for (m = 0; m < PARALLEL_NUM; m = m + 1) begin + assign hrc_wave_i_par[m] = hrc_wave_i[24*m +: 24]; + assign hrc_wave_q_par[m] = hrc_wave_q[24*m +: 24]; +end + +case (PARALLEL_NUM) + 1: begin + hrc_64_12_025 u_hrc_i + ( + .aclk (clk ), // input wire aclk + .s_axis_data_tvalid (~rst ), // input wire s_axis_data_tvalid + .s_axis_data_tready ( ), // output wire s_axis_data_tready + .s_axis_data_tdata (hrc_data_polar_i ), // input wire [7 : 0] s_axis_data_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata (hrc_wave_i ) // output wire [23 : 0] m_axis_data_tdata + ); + + hrc_64_12_025 u_hrc_q + ( + .aclk (clk ), // input wire aclk + .s_axis_data_tvalid (~rst ), // input wire s_axis_data_tvalid + .s_axis_data_tready ( ), // output wire s_axis_data_tready + .s_axis_data_tdata (hrc_data_polar_q ), // input wire [7 : 0] s_axis_data_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata (hrc_wave_q ) // output wire [23 : 0] m_axis_data_tdata + ); + end + 4: begin + hrc_256_12_025 u_hrc_i + ( + .aclk (clk ), // input wire aclk + .s_axis_data_tvalid (~rst ), // input wire s_axis_data_tvalid + .s_axis_data_tready ( ), // output wire s_axis_data_tready + .s_axis_data_tdata (hrc_data_polar_i ), // input wire [7 : 0] s_axis_data_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata (hrc_wave_i ) // output wire [95 : 0] m_axis_data_tdata + ); + + hrc_256_12_025 u_hrc_q + ( + .aclk (clk ), // input wire aclk + .s_axis_data_tvalid (~rst ), // input wire s_axis_data_tvalid + .s_axis_data_tready ( ), // output wire s_axis_data_tready + .s_axis_data_tdata (hrc_data_polar_q ), // input wire [7 : 0] s_axis_data_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata (hrc_wave_q ) // output wire [95 : 0] m_axis_data_tdata + ); + end + 8: begin + hrc_512_12_025 u_hrc_i + ( + .aclk (clk ), // input wire aclk + .s_axis_data_tvalid (~rst ), // input wire s_axis_data_tvalid + .s_axis_data_tready ( ), // output wire s_axis_data_tready + .s_axis_data_tdata (hrc_data_polar_i ), // input wire [7 : 0] s_axis_data_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata (hrc_wave_i ) // output wire [191 : 0] m_axis_data_tdata + ); + + hrc_512_12_025 u_hrc_q + ( + .aclk (clk ), // input wire aclk + .s_axis_data_tvalid (~rst ), // input wire s_axis_data_tvalid + .s_axis_data_tready ( ), // output wire s_axis_data_tready + .s_axis_data_tdata (hrc_data_polar_q ), // input wire [7 : 0] s_axis_data_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata (hrc_wave_q ) // output wire [191 : 0] m_axis_data_tdata + ); + end + default: begin + hrc_64_12_025 u_hrc_i + ( + .aclk (clk ), // input wire aclk + .s_axis_data_tvalid (~rst ), // input wire s_axis_data_tvalid + .s_axis_data_tready ( ), // output wire s_axis_data_tready + .s_axis_data_tdata (hrc_data_polar_i ), // input wire [7 : 0] s_axis_data_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata (hrc_wave_i ) // output wire [23 : 0] m_axis_data_tdata + ); + + hrc_64_12_025 u_hrc_q + ( + .aclk (clk ), // input wire aclk + .s_axis_data_tvalid (~rst ), // input wire s_axis_data_tvalid + .s_axis_data_tready ( ), // output wire s_axis_data_tready + .s_axis_data_tdata (hrc_data_polar_q ), // input wire [7 : 0] s_axis_data_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata (hrc_wave_q ) // output wire [23 : 0] m_axis_data_tdata + ); + end +endcase + +endgenerate + + +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Square Shaping Filter ///////////////////////////// +//////////////////////////////////////////////////////////////////////////////// + +// square shaping-filter +reg [17:0] hsq_wave_i ='b0; +reg [17:0] hsq_wave_q ='b0; + +always @(posedge clk) begin + if (rst) begin + hsq_wave_i <= 'b0; + hsq_wave_q <= 'b0; + end + else begin + hsq_wave_i <= bit_data_i ? 18'b01_1111_1111_1111_1111 : 18'b10_0000_0000_0000_0001; + hsq_wave_q <= bit_data_q ? 18'b10_0000_0000_0000_0001 : 18'b01_1111_1111_1111_1111; + end +end + + +//////////////////////////////////////////////////////////////////////////////// +/////////////////////////////// Two Tone Signal //////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +// cosine wave with freq of 1 MHz +wire signed [16*PARALLEL_NUM-1 : 0] cos_1m; +wire signed [16*PARALLEL_NUM-1 : 0] sin_1m; + +wire signed [15 : 0] cos_1m_par [0 : PARALLEL_NUM-1]; +wire signed [15 : 0] sin_1m_par [0 : PARALLEL_NUM-1]; + +generate +for (m = 0; m < PARALLEL_NUM; m = m + 1) begin + assign cos_1m_par[m] = cos_1m[16*m +: 16]; + assign sin_1m_par[m] = sin_1m[16*m +: 16]; +end +endgenerate + +dds_par #( + .PHASE_WIDTH (16 ), + .WAVE_WIDTH (16 ), + .PARALLEL_NUM (PARALLEL_NUM ) +) +( + .clk (clk ), + .rst (rst ), + + .phase_inc(FREQ_WORD_1M ), + + .cos_wave (cos_1m ), + .sin_wave (sin_1m ) +); + +// two-tone signal +reg signed [15:0] two_tone_wave_i [0 : PARALLEL_NUM-1]; +reg signed [15:0] two_tone_wave_q [0 : PARALLEL_NUM-1]; + +always @(posedge clk) begin + if (rst) begin + for (i = 0; i < PARALLEL_NUM; i = i + 1) begin + two_tone_wave_i[i] <= 'b0; + two_tone_wave_q[i] <= 'b0; + end + end + else begin + for (i = 0; i < PARALLEL_NUM; i = i + 1) begin + two_tone_wave_i[i] <= (cos_1m[i] >>> 1) + 16'h3fff; + two_tone_wave_q[i] <= (sin_1m[i] >>> 1) + 16'b0; + end + end +end + + +//////////////////////////////////////////////////////////////////////////////// +///////////////////// Waveform Selection & Hopping Control ///////////////////// +//////////////////////////////////////////////////////////////////////////////// +// baseband signal select +reg [15:0] baseband_sel_i [0 : PARALLEL_NUM-1]; +reg [15:0] baseband_sel_q [0 : PARALLEL_NUM-1]; + +always @(posedge clk) begin + if (rst) begin + for (i = 0; i < PARALLEL_NUM; i = i + 1) begin + baseband_sel_i[i] <= 'b0; + baseband_sel_q[i] <= 'b0; + end + end + else begin + for (i = 0; i < PARALLEL_NUM; i = i + 1) begin + case (waveform_sel[1:0]) + 2'd0: begin + baseband_sel_i[i] <= hrc_wave_i_par[i][0 +: 16]; + baseband_sel_q[i] <= hrc_wave_q_par[i][0 +: 16]; + end + 2'd1: begin + baseband_sel_i[i] <= hsq_wave_i[17:0]; + baseband_sel_q[i] <= hsq_wave_q[17:0]; + end + 2'd2: begin + baseband_sel_i[i] <= 16'h7fff; + baseband_sel_q[i] <= 16'b0; + end + 2'd3: begin + baseband_sel_i[i] <= two_tone_wave_i[i]; + baseband_sel_q[i] <= two_tone_wave_q[i]; + end + default: begin + baseband_sel_i[i] <= hrc_wave_i_par[i][0 +: 16]; + baseband_sel_q[i] <= hrc_wave_q_par[i][0 +: 16]; + end + endcase + end + end +end + +// hopping control, 3750hop/s +reg [23:0] sweep_rom_addr = 'b0; +wire [31:0] freq_sweep; + +always @(posedge clk) begin + if (rst) begin + sweep_rom_addr <= 'b0; + end + else if (sweep_on) begin + sweep_rom_addr <= sweep_rom_addr + 24'b1; + end + else begin + sweep_rom_addr <= 'b0; + end +end + +hop_rom u_sweep_rom +( + .clka (clk ), // input wire clka + .addra (sweep_rom_addr[23:16] ), // input wire [7 : 0] addra + .douta (freq_sweep ) // output wire [31 : 0] douta +); + +// choose the actual frequency word +reg [31:0] freq_word = 'b0; + +always @(posedge clk) begin + if (rst) begin + freq_word <= 'b0; + end + else if (sweep_on) begin + // frequency sweep + freq_word <= freq_sweep; + end + else begin + // normal operation + freq_word <= freq_set; + end +end + +// baseband frequency shift carrier generation +wire [ 7:0] cos_dds; +wire [ 7:0] sin_dds; +reg [ 7:0] cos = 'b0; +reg [ 7:0] sin = 'b0; + +dds_32b_8b u_dds_bb_shift ( + .aclk (clk ), // input wire aclk + .s_axis_config_tvalid (~rst ), // input wire s_axis_config_tvalid + .s_axis_config_tdata (freq_word ), // input wire [31 : 0] s_axis_config_tdata + .m_axis_data_tvalid ( ), // output wire m_axis_data_tvalid + .m_axis_data_tdata ({sin_dds,cos_dds}) // output wire [31 : 0] m_axis_data_tdata +); + +always @(posedge clk) begin + if (rst) begin + cos <= 'b0; + sin <= 'b0; + end + else if (freq_word == 'b0) begin + // to make sure the carriers stay at the right position when freq = 0 + cos <= 8'b0111_1111; + sin <= 8'b0111_1111; + end + else begin + cos <= cos_dds; + sin <= sin_dds; + end +end + +// baseband frequency shift modulation +wire [47:0] mod_cmpy_a; +wire [15:0] mod_cmpy_b; +wire [63:0] mod_cmpy_out; + +wire [26:0] baseband_mult_i; +wire [26:0] baseband_mult_q; + +assign mod_cmpy_a = {6'b0,baseband_sel_q,6'b0,baseband_sel_i}; +assign mod_cmpy_b = {-sin,cos}; + +assign baseband_mult_i = mod_cmpy_out[58:32]; +assign baseband_mult_q = mod_cmpy_out[26: 0]; + +cmpy_18x8 u_cmpy_18x8 +( + .aclk (clk ), // input wire aclk + .s_axis_a_tvalid (1'b1 ), // input wire s_axis_a_tvalid + .s_axis_a_tdata (mod_cmpy_a ), // input wire [47 : 0] s_axis_a_tdata + .s_axis_b_tvalid (1'b1 ), // input wire s_axis_b_tvalid + .s_axis_b_tdata (mod_cmpy_b ), // input wire [15 : 0] s_axis_b_tdata + .m_axis_dout_tvalid ( ), // output wire m_axis_dout_tvalid + .m_axis_dout_tdata (mod_cmpy_out ) // output wire [63 : 0] m_axis_dout_tdata +); + +// truncate to 16-bit +reg signed [15:0] baseband_i = 'b0; +reg signed [15:0] baseband_q = 'b0; + +always @(posedge clk) begin + if (rst) begin + baseband_i <= 'b0; + baseband_q <= 'b0; + end + else begin + case (waveform_sel[1:0]) + 2'd0: begin + // scale rasied-cosine-shaped bpsk signal by 1.125 or 1.625 + baseband_i <= (sweep_on == 0 && freq_set == 0) ? (baseband_sel_i[17 -: 16] + {{3{baseband_sel_i[17]}},baseband_sel_i[17 -: 13]}) : (baseband_mult_i[25:10] + {baseband_mult_i[25],baseband_mult_i[25:11]} + {{3{baseband_mult_i[25]}},baseband_mult_i[25:13]}); + baseband_q <= (sweep_on == 0 && freq_set == 0) ? (baseband_sel_q[17 -: 16] + {{3{baseband_sel_q[17]}},baseband_sel_q[17 -: 13]}) : (baseband_mult_q[25:10] + {baseband_mult_q[25],baseband_mult_q[25:11]} + {{3{baseband_mult_q[25]}},baseband_mult_q[25:13]}); + end + 2'd1: begin + baseband_i <= (sweep_on == 0 && freq_set == 0) ? baseband_sel_i[17 -: 16] : (baseband_mult_i[25:10] + {{2{baseband_mult_i[25]}},baseband_mult_i[25:12]}); + baseband_q <= (sweep_on == 0 && freq_set == 0) ? baseband_sel_q[17 -: 16] : (baseband_mult_q[25:10] + {{2{baseband_mult_q[25]}},baseband_mult_q[25:12]}); + end + 2'd2: begin + baseband_i <= baseband_mult_i[24:9]; + baseband_q <= baseband_mult_q[24:9]; + end + 2'd3: begin + baseband_i <= (sweep_on == 0 && freq_set == 0) ? baseband_sel_i[17 -: 16] : baseband_mult_i[24:9]; + baseband_q <= (sweep_on == 0 && freq_set == 0) ? baseband_sel_q[17 -: 16] : baseband_mult_q[24:9]; + end + default: begin + // scale rasied-cosine-shaped bpsk signal by 1.125 + baseband_i <= baseband_mult_i[25:10] + {{3{baseband_mult_i[25]}},baseband_mult_i[25:13]}; + baseband_q <= baseband_mult_q[25:10] + {{3{baseband_mult_q[25]}},baseband_mult_q[25:13]}; + end + endcase + end +end + +// iq selection & baseband right shift +reg signed [15:0] baseband_data_i = 'b0; +reg signed [15:0] baseband_data_q = 'b0; + +always @(posedge clk) begin + if (rst) begin + baseband_data_i <= 'b0; + baseband_data_q <= 'b0; + end + else begin + // inphase selection + if (iq_sel[1]) begin + baseband_data_i <= baseband_i >>> bb_rshift; + end + else begin + baseband_data_i <= 'b0; + end + // quadrature selection + if (iq_sel[0]) begin + baseband_data_q <= baseband_q >>> bb_rshift; + end + else begin + baseband_data_q <= 'b0; + end + end +end + +// output data to ports +assign tx_data_i = baseband_data_i[15 -: DATA_WIDTH]; +assign tx_data_q = baseband_data_q[15 -: DATA_WIDTH]; + +endmodule + + +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 2020/12/08 12:43:46 +// Design Name: +// Module Name: tb_tx_qpsk +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +// module tb_tx_qpsk; + +// reg clk = 1'b0 ; +// reg rst = 1'b1 ; +// reg tx_on = 1'b1 ; +// reg [31:0] freq_set ; +// reg [ 1:0] waveform_sel = 2'b00; +// reg [ 1:0] iq_sel = 2'b11 ; +// wire [11:0] tx_data_i ; +// wire [11:0] tx_data_q ; +// reg [ 3:0] bb_rshift = 5'b0 ; + +// tx_qpsk u_tx_qpsk +// ( +// .clk (clk ), +// .rst (rst ), +// .tx_data_i (tx_data_i ), +// .tx_data_q (tx_data_q ), +// .waveform_sel (waveform_sel ), +// .sweep_on (1'b0 ), +// // .freq_set (32'd447392426 ), +// .freq_set (32'd0 ), +// .iq_sel (iq_sel ), +// .bb_rshift (bb_rshift ) +// ); + +// initial begin +// #102 +// rst = 1'b0; +// // freq_set = 32'd873813333; +// // waveform_sel = 2'b00; +// // bb_rshift = 5'd0; +// // #5000 +// // bb_rshift = 5'd1; +// // #5000 +// // bb_rshift = 5'd2; +// // #5000 +// // bb_rshift = 5'd3; +// // #5000 +// // bb_rshift = 5'd4; +// // #5000 +// // bb_rshift = 5'd5; +// // #5000 +// // bb_rshift = 5'd6; +// // #5000 +// // bb_rshift = 5'd7; +// // #5000 +// // bb_rshift = 5'd8; +// // #5000 +// // bb_rshift = 5'd9; +// // #5000 +// // bb_rshift = 5'd14; +// // #5000 +// // bb_rshift = 5'd15; +// // #5000 +// // bb_rshift = 5'd16; +// // freq_set = 32'd0; +// // func_sel = 3'b010; +// // #7777 +// // freq_set = 32'd536870912; +// // func_sel = 3'b100; +// // #7777 +// // freq_set = 32'd0; +// // func_sel = 3'b100; +// // #7777 +// // freq_set = 32'd536870912; +// // func_sel = 3'b010; +// // #7777 +// // freq_set = 32'd0; +// // func_sel = 3'b010; +// // freq_set = 32'd536870912; +// // iq_sel = 2'b00; +// // #7777 +// // freq_set = 32'd536870912; +// // iq_sel = 2'b01; +// // #7777 +// // freq_set = 32'd536870912; +// // iq_sel = 2'b10; +// // #7777 +// // freq_set = 32'd536870912; +// // iq_sel = 2'b11; +// end + +// always #5 clk = ~clk; + +// // integer i; +// // integer w_file; + +// // initial begin +// // w_file = $fopen("D:\\qpsk_josh.txt","w"); +// // for (i = 0; i <= 35000; i = i + 1) begin +// // wait(clk); +// // #10; +// // $fdisplay(w_file,"%d %d",$signed(tx_data_i), +// // $signed(tx_data_q)); +// // if (i == 35000) begin +// // $fclose(w_file); +// // $stop; +// // end +// // end +// // end + +// endmodule diff --git a/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.xpr b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.xpr new file mode 100644 index 00000000..821c7a41 --- /dev/null +++ b/modules/xczu48dr-fsvg1517-2-i/tx_qpsk_poly/tx_qpsk_poly.xpr @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Vivado Synthesis Defaults + + + + + + + + + + + Vivado Synthesis Defaults + + + + + + + + + + + + Vivado Synthesis Defaults + + + + + + + + + + + + Vivado Synthesis Defaults + + + + + + + + + + + + Default settings for Implementation. + + + + + + + + + + + + + + + + + + + Default settings for Implementation. + + + + + + + + + + + + + + + + + + + Default settings for Implementation. + + + + + + + + + + + + + + + + + + + Default settings for Implementation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default_dashboard + + +