Post Go back to editing

AD9102: help with Generate waveform use RAM

Hi, All.

I Programing using FPGA.

I entered the trigger after setting the register,

but DAC output dose notthing. i want know wthat is problem in my register setting. 

My code is under. (Set in order from45 to 0)

   assign init_addr_table[45] = `SPICONFIG;
   assign init_addr_table[44] = `POWERCONFIG;
   assign init_addr_table[43] = `CLOCKCONFIG;
   assign init_addr_table[42] = `REFADJ;
   assign init_addr_table[41] = `DACAGAIN;
   assign init_addr_table[40] = `DACRANGE;
   assign init_addr_table[39] = `DACRSET;
   assign init_addr_table[38] = `PAT_STATUS;
   assign init_addr_table[37] = `RAMUPDATE;
   assign init_addr_table[36] = `PAT_TYPE;
   assign init_addr_table[35] = `PATTERN_DLY;
   assign init_addr_table[34] = `DACDOF;
   assign init_addr_table[33] = `WAV_CONFIG;
   assign init_addr_table[32] = `PAT_TIMEBASE;
   assign init_addr_table[31] = `PAT_PERIOD;
   assign init_addr_table[30] = `DAC_PAT;
   assign init_addr_table[29] = `DOUT_START;
   assign init_addr_table[28] = `DOUT_CONFIG;
   assign init_addr_table[27] = `DAC_CST;
   assign init_addr_table[26] = `DAC_DGAIN;
   assign init_addr_table[25] = `SAW_CONFIG;
   assign init_addr_table[24] = `DDS_TW32;
   assign init_addr_table[23] = `DDS_TW1;
   assign init_addr_table[22] = `DDS_PW;
   assign init_addr_table[21] = `TRIG_TW_SEL;
   assign init_addr_table[20] = `DDS_CONFIG;
   assign init_addr_table[19] = `TW_RAM_CONFIG;
   assign init_addr_table[18] = `START_DELAY;
   assign init_addr_table[17] = `START_ADDR;
   assign init_addr_table[16] = `STOP_ADDR;
   assign init_addr_table[15] = `DDS_CYC;
   assign init_addr_table[14] = `RAMUPDATE;
   assign init_addr_table[13] = `PAT_STATUS;
   assign init_addr_table[12] = `RAMUPDATE;
   assign init_addr_table[11] = `SRAM_OFFSET;
   assign init_addr_table[10] = `SRAM_OFFSET + 15'd1;
   assign init_addr_table[9] = `SRAM_OFFSET + 15'd2;
   assign init_addr_table[8] = `SRAM_OFFSET + 15'd3;
   assign init_addr_table[7] = `SRAM_OFFSET + 15'd4;
   assign init_addr_table[6] = `SRAM_OFFSET + 15'd5;
   assign init_addr_table[5] = `SRAM_OFFSET + 15'd6;
   assign init_addr_table[4] = `SRAM_OFFSET + 15'd7;
   assign init_addr_table[3] = `PAT_STATUS;
   assign init_addr_table[2] = `RAMUPDATE;
   assign init_addr_table[1] = `PAT_STATUS;
   assign init_addr_table[0] = `RAMUPDATE;


   assign init_data_table[45] = 16'h0000;
   assign init_data_table[44] = 16'h0107;
   assign init_data_table[43] = 16'h0000;
   assign init_data_table[42] = 16'h0000;
   assign init_data_table[41] = 16'h0000;
   assign init_data_table[40] = 16'h000a;
   assign init_data_table[39] = 16'h0000;
   assign init_data_table[38] = 16'h0000;
   assign init_data_table[37] = 16'h0001;
   assign init_data_table[36] = 16'h0001;
   assign init_data_table[35] = 16'h0000;
   assign init_data_table[34] = 16'h8000;
   assign init_data_table[33] = 16'h0000;
   assign init_data_table[32] = 16'h0111;
   assign init_data_table[31] = 16'h000a;
   assign init_data_table[30] = 16'h0001;
   assign init_data_table[29] = 16'h0001;
   assign init_data_table[28] = 16'h0010;
   assign init_data_table[27] = 16'h8000;
   assign init_data_table[26] = 16'h4000;
   assign init_data_table[25] = 16'h0007;
   assign init_data_table[24] = 16'h0100;
   assign init_data_table[23] = 16'h0000;
   assign init_data_table[22] = 16'h0000;
   assign init_data_table[21] = 16'h0002;
   assign init_data_table[20] = 16'h0003;
   assign init_data_table[19] = 16'h0000;
   assign init_data_table[18] = 16'h0000;
   assign init_data_table[17] = 16'h0000;
   assign init_data_table[16] = 16'h0070;
   assign init_data_table[15] = 16'h0001;
   assign init_data_table[14] = 16'h0001;
   assign init_data_table[13] = 16'h0004; 
   assign init_data_table[12] = 16'h0001;
   assign init_data_table[11] = 16'h1000;
   assign init_data_table[10] = 16'h0000;
   assign init_data_table[9] = 16'h2000;
   assign init_data_table[8] = 16'h0000;
   assign init_data_table[7] = 16'h3000;
   assign init_data_table[6] = 16'h0000;
   assign init_data_table[5] = 16'h4000;
   assign init_data_table[4] = 16'h0000;
   assign init_data_table[3] = 16'h0000;
   assign init_data_table[2] = 16'h0001;
   assign init_data_table[1] = 16'h0001;
   assign init_data_table[0] = 16'h0001;

thanks!

Parents
  • Hi,

    Please compare your register settings to those in the attached file.

    Thanks,
    Shine

    /*****************************************************************************
    * Copyright (c) 2020 Analog Devices, Inc.  
    * 
    * All rights reserved.
    * 
    * Redistribution and use in source and binary forms, with or without 
    * modification, are permitted provided that the following conditions are met:
    *   - Redistributions of source code must retain the above copyright notice, 
    *     this list of conditions and the following disclaimer.
    *   - Redistributions in binary form must reproduce the above copyright notice, 
    *     this list of conditions and the following disclaimer in the documentation 
    *     and/or other materials provided with the distribution.  
    *   - Modified versions of the software must be conspicuously marked as such.
    *   - This software is licensed solely and exclusively for use with 
    *     processors/products manufactured by or for Analog Devices, Inc.
    *   - This software may not be combined or merged with other code in any manner 
    *     that would cause the software to become subject to terms and 
    *     conditions which differ from those listed here.
    *   - Neither the name of Analog Devices, Inc. nor the names of its 
    *     contributors may be used to endorse or promote products derived 
    *     from this software without specific prior written permission.
    *   - The use of this software may or may not infringe the patent rights 
    *     of one or more patent holders. This license does not release you from 
    *     the requirement that you obtain separate licenses from these patent 
    *     holders to use this software.
    * 
    * THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" 
    * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
    * NON-INFRINGEMENT, TITLE, MERCHANTABILITY AND FITNESS FOR A 
    * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, 
    * INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
    * SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES 
    * (INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF 
    * INTELLECTUAL PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF SUBSTITUTE 
    * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
    * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
    * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
    * POSSIBILITY OF SUCH DAMAGE.
    * 
    * 20180927-7CBSD SLA
    *****************************************************************************/
    
    /* 
    The following is an example program showing how to initialise and use SDP 
    connector peripherals (using SPI and GPIOs as an example) on the SDP-K1 in mbed.
    Informtion on the pin name definitions for the SDP connector on the SDP-K1 can 
    be found at https://os.mbed.com/platforms/SDP_K1/.
    The full list of peripherals available on the SDP connector include GPIOs, 
    Timers, SPI, I2C, and UART. For further information on how to enable these 
    peripherals, consult the mbed documentation https://os.mbed.com/docs/mbed-os/v5.15/apis/drivers.html
    */
    #include "mbed.h"
    #include "platform/mbed_thread.h"
    
    /********** Initialization **********/
    DigitalOut TRIGGERB( PG_10, 1 ); 	//Set initial value of Trigger pin to 1.
    DigitalOut CSB( PA_15, 1 );			//Set initial value of CS pin to 1.
    DigitalOut RESETB( PA_10, 1 );		//Set initial value of RESET pin to 1.
    
    Serial pc( USBTX, USBRX );			//Initialization of serial communication with PC
    
    SPI spi( PA_7, PB_4, PB_3 );		//Initialization of SPI pins (MOSI, MISO, SCLK);
    
    
    /********** 12-bit SRAM Data in Arrays **********/
    //For Fout=10MHz, Fdac=156.25MHz
    int16_t SRAM_DATA_10M_156M25[4096]={0, 804, 1478, 1915, 2045, 1846, 1351, 639, -176, -962, -1594, -1970, -2030, -1764, -1214, -470, 350, 1114, 1699, 2011, 2000, 1668, 1068, 297, -522, -1257, -1790, -2036, -1955, -1560, -915, -122, 690, 1391, 1869, 2047, 1896, 1441, 754, -53, -852, -1515, -1934, -2042, -1823, -1311, -588, 229, 1009, 1627, 1984, 2022, 1736, 1171, 418, -402, -1158, -1728, -2020, -1988, -1637, -1023, -244, 573, 1299, 1816, 2041, 1939, 1525, 867, 69, -740, -1430, -1890, -2047, -1875, -1402, -704, 107, 901, 1550, 1950, 2038, 1798, 1269, 537, -282, -1055, -1659, -1997, -2014, -1707, -1127, -365, 455, 1202, 1756, 2028, 1975, 1604, 976, 191, -624, -1339, -1840, -2044, -1921, -1489, -818, -16, 789, 1467, 1910, 2046, 1853, 1363, 654, -160, -948, -1584, -1966, -2032, -1772, -1227, -485, 334, 1100, 1690, 2008, 2003, 1677, 1082, 313, -507, -1244, -1783, -2035, -1960, -1570, -929, -138, 675, 1379, 1862, 2046, 1902, 1452, 769, -38, -838, -1504, -1928, -2043, -1830, -1323, -603, 213, 995, 1618, 1980, 2025, 1744, 1184, 433, -387, -1145, -1719, -2017, -1992, -1646, -1036, -260, 558, 1286, 1808, 2040, 1944, 1536, 881, 85, -725, -1418, -1884, -2047, -1881, -1414, -719, 91, 887, 1540, 1946, 2039, 1805, 1282, 552, -266, -1042, -1650, -1993, -2016, -1716, -1140, -381, 439, 1189, 1748, 2026, 1979, 1614, 990, 207, -609, -1328, -1833, -2044, -1926, -1500, -832, -31, 775, 1456, 1904, 2046, 1860, 1375, 669, -144, -934, -1574, -1962, -2034, -1780, -1239, -500, 319, 1087, 1681, 2005, 2006, 1686, 1095, 328, -491, -1232, -1775, -2033, -1964, -1580, -943, -154, 660, 1368, 1856, 2046, 1908, 1463, 783, -22, -824, -1493, -1923, -2044, -1837, -1335, -618, 198, 982, 1608, 1976, 2027, 1753, 1197, 449, -372, -1132, -1711, -2015, -1995, -1655, -1050, -275, 543, 1274, 1801, 2038, 1949, 1546, 895, 100, -710, -1407, -1878, -2047, -1888, -1425, -734, 75, 872, 1529, 1941, 2040, 1813, 1294, 567, -251, -1028, -1640, -1989, -2019, -1724, -1153, -396, 424, 1176, 1739, 2023, 1983, 1623, 1003, 223, -594, -1316, -1826, -2043, -1932, -1510, -847, -47, 760, 1445, 1898, 2047, 1866, 1386, 684, -129, -920, -1564, -1957, -2036, -1787, -1252, -516, 303, 1074, 1672, 2001, 2009, 1695, 1108, 344, -476, -1219, -1767, -2031, -1969, -1590, -957, -169, 645, 1356, 1849, 2045, 1913, 1474, 798, -6, -809, -1483, -1918, -2045, -1844, -1347, -633, 182, 968, 1598, 1972, 2029, 1761, 1209, 464, -356, -1119, -1702, -2012, -1999, -1665, -1063, -291, 528, 1262, 1793, 2037, 1953, 1556, 909, 116, -696, -1395, -1871, -2047, -1894, -1436, -748, 60, 858, 1519, 1936, 2042, 1820, 1306, 582, -235, -1014, -1631, -1986, -2022, -1733, -1166, -412, 409, 1163, 1731, 2021, 1986, 1633, 1017, 238, -579, -1303, -1818, -2041, -1937, -1521, -861, -63, 745, 1434, 1892, 2047, 1873, 1398, 698, -113, -906, -1554, -1952, -2037, -1795, -1264, -531, 288, 1060, 1663, 1998, 2012, 1704, 1122, 359, -461, -1207, -1759, -2029, -1973, -1600, -970, -185, 630, 1344, 1842, 2045, 1919, 1485, 812, 9, -795, -1472, -1912, -2045, -1850, -1358, -648, 166, 954, 1588, 1968, 2031, 1769, 1222, 479, -341, -1106, -1693, -2009, -2002, -1674, -1077, -307, 513, 1249, 1786, 2035, 1958, 1566, 923, 132, -681, -1384, -1865, -2047, -1899, -1447, -763, 44, 844, 1508, 1930, 2043, 1827, 1318, 597, -219, -1001, -1621, -1982, -2024, -1741, -1179, -427, 393, 1150, 1723, 2018, 1990, 1642, 1031, 254, -564, -1291, -1811, -2040, -1942, -1531, -875, -78, 731, 1423, 1886, 2047, 1879, 1409, 713, -97, -892, -1544, -1948, -2039, -1802, -1277, -546, 272, 1047, 1653, 1994, 2015, 1712, 1135, 375, -445, -1194, -1751, -2027, -1977, -1610, -984, -201, 615, 1332, 1835, 2044, 1924, 1495, 827, 25, -780, -1461, -1906, -2046, -1857, -1370, -663, 151, 940, 1578, 1963, 2033, 1776, 1234, 494, -325, -1092, -1684, -2006, -2005, -1683, -1090, -322, 497, 1237, 1778, 2033, 1962, 1576, 937, 147, -666, -1372, -1858, -2046, -1905, -1459, -778, 28, 830, 1498, 1925, 2044, 1834, 1330, 612, -204, -987, -1612, -1978, -2026, -1749, -1191, -442, 378, 1137, 1714, 2016, 1994, 1652, 1044, 269, -549, -1279, -1804, -2039, -1947, -1542, -889, -94, 716, 1411, 1880, 2047, 1885, 1421, 728, -82, -878, -1533, -1943, -2040, -1810, -1289, -561, 257, 1033, 1644, 1991, 2018, 1721, 1148, 390, -430, -1181, -1743, -2024, -1981, -1620, -998, -216, 600, 1320, 1828, 2043, 1929, 1506, 841, 41, -766, -1450, -1901, -2046, -1864, -1382, -678, 135, 926, 1568, 1959, 2035, 1784, 1247, 510, -310, -1079, -1675, -2003, -2008, -1691, -1103, -338, 482, 1224, 1770, 2032, 1967, 1586, 951, 163, -651, -1361, -1852, -2046, -1911, -1469, -792, 13, 815, 1487, 1920, 2045, 1841, 1342, 627, -188, -973, -1602, -1974, -2028, -1757, -1204, -458, 362, 1124, 1705, 2013, 1997, 1661, 1058, 285, -534, -1267, -1796, -2037, -1951, -1552, -903, -110, 701, 1400, 1874, 2047, 1891, 1432, 743, -66, -864, -1523, -1938, -2041, -1817, -1301, -576, 241, 1020, 1635, 1987, 2021, 1729, 1161, 406, -415, -1168, -1734, -2022, -1985, -1629, -1012, -232, 585, 1308, 1821, 2042, 1935, 1517, 855, 57, -751, -1439, -1895, -2047, -1870, -1393, -693, 119, 912, 1558, 1954, 2037, 1792, 1259, 525, -294, -1066, -1666, -1999, -2011, -1700, -1116, -353, 467, 1212, 1762, 2030, 1971, 1596, 965, 179, -636, -1349, -1845, -2045, -1917, -1480, -807, -3, 801, 1476, 1914, 2045, 1848, 1354, 642, -172, -959, -1592, -1969, -2030, -1765, -1217, -473, 347, 1111, 1697, 2010, 2001, 1670, 1071, 300, -519, -1254, -1789, -2036, -1956, -1562, -918, -126, 687, 1389, 1868, 2047, 1897, 1443, 757, -50, -850, -1513, -1933, -2042, -1824, -1313, -591, 226, 1006, 1625, 1983, 2023, 1738, 1174, 421, -399, -1155, -1726, -2019, -1989, -1639, -1025, -247, 570, 1296, 1814, 2041, 1940, 1527, 870, 72, -737, -1427, -1889, -2047, -1876, -1405, -707, 104, 898, 1548, 1950, 2038, 1799, 1272, 540, -279, -1052, -1657, -1996, -2014, -1709, -1129, -369, 452, 1199, 1754, 2028, 1975, 1606, 979, 194, -621, -1337, -1838, -2044, -1922, -1491, -821, -19, 786, 1465, 1909, 2046, 1854, 1365, 657, -157, -946, -1582, -1965, -2032, -1773, -1229, -488, 331, 1098, 1688, 2007, 2004, 1679, 1085, 316, -503, -1242, -1781, -2034, -1961, -1572, -932, -141, 672, 1377, 1861, 2046, 1903, 1454, 772, -35, -835, -1502, -1927, -2043, -1831, -1325, -606, 210, 993, 1616, 1979, 2025, 1746, 1186, 436, -384, -1142, -1718, -2017, -1992, -1648, -1039, -263, 555, 1284, 1807, 2039, 1945, 1538, 884, 88, -722, -1416, -1883, -2047, -1883, -1416, -722, 88, 884, 1538, 1945, 2039, 1807, 1284, 555, -263, -1039, -1648, -1992, -2017, -1718, -1142, -384, 436, 1186, 1746, 2025, 1979, 1616, 993, 210, -606, -1325, -1831, -2043, -1927, -1502, -835, -35, 772, 1454, 1903, 2046, 1861, 1377, 672, -141, -932, -1572, -1961, -2034, -1781, -1242, -503, 316, 1085, 1679, 2004, 2007, 1688, 1098, 331, -488, -1229, -1773, -2032, -1965, -1582, -946, -157, 657, 1365, 1854, 2046, 1909, 1465, 786, -19, -821, -1491, -1922, -2044, -1838, -1337, -621, 194, 979, 1606, 1975, 2028, 1754, 1199, 452, -369, -1129, -1709, -2014, -1996, -1657, -1052, -279, 540, 1272, 1799, 2038, 1950, 1548, 898, 104, -707, -1405, -1876, -2047, -1889, -1427, -737, 72, 870, 1527, 1940, 2041, 1814, 1296, 570, -247, -1025, -1639, -1989, -2019, -1726, -1155, -399, 421, 1174, 1738, 2023, 1983, 1625, 1006, 226, -591, -1313, -1824, -2042, -1933, -1513, -850, -50, 757, 1443, 1897, 2047, 1868, 1389, 687, -126, -918, -1562, -1956, -2036, -1789, -1254, -519, 300, 1071, 1670, 2001, 2010, 1697, 1111, 347, -473, -1217, -1765, -2030, -1969, -1592, -959, -172, 642, 1354, 1848, 2045, 1914, 1476, 801, -3, -807, -1480, -1917, -2045, -1845, -1349, -636, 179, 965, 1596, 1971, 2030, 1762, 1212, 467, -353, -1116, -1700, -2011, -1999, -1666, -1066, -294, 525, 1259, 1792, 2037, 1954, 1558, 912, 119, -693, -1393, -1870, -2047, -1895, -1439, -751, 57, 855, 1517, 1935, 2042, 1821, 1308, 585, -232, -1012, -1629, -1985, -2022, -1734, -1168, -415, 406, 1161, 1729, 2021, 1987, 1635, 1020, 241, -576, -1301, -1817, -2041, -1938, -1523, -864, -66, 743, 1432, 1891, 2047, 1874, 1400, 701, -110, -903, -1552, -1951, -2037, -1796, -1267, -534, 285, 1058, 1661, 1997, 2013, 1705, 1124, 362, -458, -1204, -1757, -2028, -1974, -1602, -973, -188, 627, 1342, 1841, 2045, 1920, 1487, 815, 13, -792, -1469, -1911, -2046, -1852, -1361, -651, 163, 951, 1586, 1967, 2032, 1770, 1224, 482, -338, -1103, -1691, -2008, -2003, -1675, -1079, -310, 510, 1247, 1784, 2035, 1959, 1568, 926, 135, -678, -1382, -1864, -2046, -1901, -1450, -766, 41, 841, 1506, 1929, 2043, 1828, 1320, 600, -216, -998, -1620, -1981, -2024, -1743, -1181, -430, 390, 1148, 1721, 2018, 1991, 1644, 1033, 257, -561, -1289, -1810, -2040, -1943, -1533, -878, -82, 728, 1421, 1885, 2047, 1880, 1411, 716, -94, -889, -1542, -1947, -2039, -1804, -1279, -549, 269, 1044, 1652, 1994, 2016, 1714, 1137, 378, -442, -1191, -1749, -2026, -1978, -1612, -987, -204, 612, 1330, 1834, 2044, 1925, 1498, 830, 28, -778, -1459, -1905, -2046, -1858, -1372, -666, 147, 937, 1576, 1962, 2033, 1778, 1237, 497, -322, -1090, -1683, -2005, -2006, -1684, -1092, -325, 494, 1234, 1776, 2033, 1963, 1578, 940, 151, -663, -1370, -1857, -2046, -1906, -1461, -780, 25, 827, 1495, 1924, 2044, 1835, 1332, 615, -201, -984, -1610, -1977, -2027, -1751, -1194, -445, 375, 1135, 1712, 2015, 1994, 1653, 1047, 272, -546, -1277, -1802, -2039, -1948, -1544, -892, -97, 713, 1409, 1879, 2047, 1886, 1423, 731, -78, -875, -1531, -1942, -2040, -1811, -1291, -564, 254, 1031, 1642, 1990, 2018, 1723, 1150, 393, -427, -1179, -1741, -2024, -1982, -1621, -1001, -219, 597, 1318, 1827, 2043, 1930, 1508, 844, 44, -763, -1447, -1899, -2047, -1865, -1384, -681, 132, 923, 1566, 1958, 2035, 1786, 1249, 513, -307, -1077, -1674, -2002, -2009, -1693, -1106, -341, 479, 1222, 1769, 2031, 1968, 1588, 954, 166, -648, -1358, -1850, -2045, -1912, -1472, -795, 9, 812, 1485, 1919, 2045, 1842, 1344, 630, -185, -970, -1600, -1973, -2029, -1759, -1207, -461, 359, 1122, 1704, 2012, 1998, 1663, 1060, 288, -531, -1264, -1795, -2037, -1952, -1554, -906, -113, 698, 1398, 1873, 2047, 1892, 1434, 745, -63, -861, -1521, -1937, -2041, -1818, -1303, -579, 238, 1017, 1633, 1986, 2021, 1731, 1163, 409, -412, -1166, -1733, -2022, -1986, -1631, -1014, -235, 582, 1306, 1820, 2042, 1936, 1519, 858, 60, -748, -1436, -1894, -2047, -1871, -1395, -696, 116, 909, 1556, 1953, 2037, 1793, 1262, 528, -291, -1063, -1665, -1999, -2012, -1702, -1119, -356, 464, 1209, 1761, 2029, 1972, 1598, 968, 182, -633, -1347, -1844, -2045, -1918, -1483, -809, -6, 798, 1474, 1913, 2045, 1849, 1356, 645, -169, -957, -1590, -1969, -2031, -1767, -1219, -476, 344, 1108, 1695, 2009, 2001, 1672, 1074, 303, -516, -1252, -1787, -2036, -1957, -1564, -920, -129, 684, 1386, 1866, 2047, 1898, 1445, 760, -47, -847, -1510, -1932, -2043, -1826, -1316, -594, 223, 1003, 1623, 1983, 2023, 1739, 1176, 424, -396, -1153, -1724, -2019, -1989, -1640, -1028, -251, 567, 1294, 1813, 2040, 1941, 1529, 872, 75, -734, -1425, -1888, -2047, -1878, -1407, -710, 100, 895, 1546, 1949, 2038, 1801, 1274, 543, -275, -1050, -1655, -1995, -2015, -1711, -1132, -372, 449, 1197, 1753, 2027, 1976, 1608, 982, 198, -618, -1335, -1837, -2044, -1923, -1493, -824, -22, 783, 1463, 1908, 2046, 1856, 1368, 660, -154, -943, -1580, -1964, -2033, -1775, -1232, -491, 328, 1095, 1686, 2006, 2005, 1681, 1087, 319, -500, -1239, -1780, -2034, -1962, -1574, -934, -144, 669, 1375, 1860, 2046, 1904, 1456, 775, -31, -832, -1500, -1926, -2044, -1833, -1328, -609, 207, 990, 1614, 1979, 2026, 1748, 1189, 439, -381, -1140, -1716, -2016, -1993, -1650, -1042, -266, 552, 1282, 1805, 2039, 1946, 1540, 887, 91, -719, -1414, -1881, -2047, -1884, -1418, -725, 85, 881, 1536, 1944, 2040, 1808, 1286, 558, -260, -1036, -1646, -1992, -2017, -1719, -1145, -387, 433, 1184, 1744, 2025, 1980, 1618, 995, 213, -603, -1323, -1830, -2043, -1928, -1504, -838, -38, 769, 1452, 1902, 2046, 1862, 1379, 675, -138, -929, -1570, -1960, -2035, -1783, -1244, -507, 313, 1082, 1677, 2003, 2008, 1690, 1100, 334, -485, -1227, -1772, -2032, -1966, -1584, -948, -160, 654, 1363, 1853, 2046, 1910, 1467, 789, -16, -818, -1489, -1921, -2044, -1840, -1339, -624, 191, 976, 1604, 1975, 2028, 1756, 1202, 455, -365, -1127, -1707, -2014, -1997, -1659, -1055, -282, 537, 1269, 1798, 2038, 1950, 1550, 901, 107, -704, -1402, -1875, -2047, -1890, -1430, -740, 69, 867, 1525, 1939, 2041, 1816, 1299, 573, -244, -1023, -1637, -1988, -2020, -1728, -1158, -402, 418, 1171, 1736, 2022, 1984, 1627, 1009, 229, -588, -1311, -1823, -2042, -1934, -1515, -852, -53, 754, 1441, 1896, 2047, 1869, 1391, 690, -122, -915, -1560, -1955, -2036, -1790, -1257, -522, 297, 1068, 1668, 2000, 2011, 1699, 1114, 350, -470, -1214, -1764, -2030, -1970, -1594, -962, -176, 639, 1351, 1846, 2045, 1915, 1478, 804, 0, -804, -1478, -1915, -2045, -1846, -1351, -639, 176, 962, 1594, 1970, 2030, 1764, 1214, 470, -350, -1114, -1699, -2011, -2000, -1668, -1068, -297, 522, 1257, 1790, 2036, 1955, 1560, 915, 122, -690, -1391, -1869, -2047, -1896, -1441, -754, 53, 852, 1515, 1934, 2042, 1823, 1311, 588, -229, -1009, -1627, -1984, -2022, -1736, -1171, -418, 402, 1158, 1728, 2020, 1988, 1637, 1023, 244, -573, -1299, -1816, -2041, -1939, -1525, -867, -69, 740, 1430, 1890, 2047, 1875, 1402, 704, -107, -901, -1550, -1950, -2038, -1798, -1269, -537, 282, 1055, 1659, 1997, 2014, 1707, 1127, 365, -455, -1202, -1756, -2028, -1975, -1604, -976, -191, 624, 1339, 1840, 2044, 1921, 1489, 818, 16, -789, -1467, -1910, -2046, -1853, -1363, -654, 160, 948, 1584, 1966, 2032, 1772, 1227, 485, -334, -1100, -1690, -2008, -2003, -1677, -1082, -313, 507, 1244, 1783, 2035, 1960, 1570, 929, 138, -675, -1379, -1862, -2046, -1902, -1452, -769, 38, 838, 1504, 1928, 2043, 1830, 1323, 603, -213, -995, -1618, -1980, -2025, -1744, -1184, -433, 387, 1145, 1719, 2017, 1992, 1646, 1036, 260, -558, -1286, -1808, -2040, -1944, -1536, -881, -85, 725, 1418, 1884, 2047, 1881, 1414, 719, -91, -887, -1540, -1946, -2039, -1805, -1282, -552, 266, 1042, 1650, 1993, 2016, 1716, 1140, 381, -439, -1189, -1748, -2026, -1979, -1614, -990, -207, 609, 1328, 1833, 2044, 1926, 1500, 832, 31, -775, -1456, -1904, -2046, -1860, -1375, -669, 144, 934, 1574, 1962, 2034, 1780, 1239, 500, -319, -1087, -1681, -2005, -2006, -1686, -1095, -328, 491, 1232, 1775, 2033, 1964, 1580, 943, 154, -660, -1368, -1856, -2046, -1908, -1463, -783, 22, 824, 1493, 1923, 2044, 1837, 1335, 618, -198, -982, -1608, -1976, -2027, -1753, -1197, -449, 372, 1132, 1711, 2015, 1995, 1655, 1050, 275, -543, -1274, -1801, -2038, -1949, -1546, -895, -100, 710, 1407, 1878, 2047, 1888, 1425, 734, -75, -872, -1529, -1941, -2040, -1813, -1294, -567, 251, 1028, 1640, 1989, 2019, 1724, 1153, 396, -424, -1176, -1739, -2023, -1983, -1623, -1003, -223, 594, 1316, 1826, 2043, 1932, 1510, 847, 47, -760, -1445, -1898, -2047, -1866, -1386, -684, 129, 920, 1564, 1957, 2036, 1787, 1252, 516, -303, -1074, -1672, -2001, -2009, -1695, -1108, -344, 476, 1219, 1767, 2031, 1969, 1590, 957, 169, -645, -1356, -1849, -2045, -1913, -1474, -798, 6, 809, 1483, 1918, 2045, 1844, 1347, 633, -182, -968, -1598, -1972, -2029, -1761, -1209, -464, 356, 1119, 1702, 2012, 1999, 1665, 1063, 291, -528, -1262, -1793, -2037, -1953, -1556, -909, -116, 696, 1395, 1871, 2047, 1894, 1436, 748, -60, -858, -1519, -1936, -2042, -1820, -1306, -582, 235, 1014, 1631, 1986, 2022, 1733, 1166, 412, -409, -1163, -1731, -2021, -1986, -1633, -1017, -238, 579, 1303, 1818, 2041, 1937, 1521, 861, 63, -745, -1434, -1892, -2047, -1873, -1398, -698, 113, 906, 1554, 1952, 2037, 1795, 1264, 531, -288, -1060, -1663, -1998, -2012, -1704, -1122, -359, 461, 1207, 1759, 2029, 1973, 1600, 970, 185, -630, -1344, -1842, -2045, -1919, -1485, -812, -9, 795, 1472, 1912, 2045, 1850, 1358, 648, -166, -954, -1588, -1968, -2031, -1769, -1222, -479, 341, 1106, 1693, 2009, 2002, 1674, 1077, 307, -513, -1249, -1786, -2035, -1958, -1566, -923, -132, 681, 1384, 1865, 2047, 1899, 1447, 763, -44, -844, -1508, -1930, -2043, -1827, -1318, -597, 219, 1001, 1621, 1982, 2024, 1741, 1179, 427, -393, -1150, -1723, -2018, -1990, -1642, -1031, -254, 564, 1291, 1811, 2040, 1942, 1531, 875, 78, -731, -1423, -1886, -2047, -1879, -1409, -713, 97, 892, 1544, 1948, 2039, 1802, 1277, 546, -272, -1047, -1653, -1994, -2015, -1712, -1135, -375, 445, 1194, 1751, 2027, 1977, 1610, 984, 201, -615, -1332, -1835, -2044, -1924, -1495, -827, -25, 780, 1461, 1906, 2046, 1857, 1370, 663, -151, -940, -1578, -1963, -2033, -1776, -1234, -494, 325, 1092, 1684, 2006, 2005, 1683, 1090, 322, -497, -1237, -1778, -2033, -1962, -1576, -937, -147, 666, 1372, 1858, 2046, 1905, 1459, 778, -28, -830, -1498, -1925, -2044, -1834, -1330, -612, 204, 987, 1612, 1978, 2026, 1749, 1191, 442, -378, -1137, -1714, -2016, -1994, -1652, -1044, -269, 549, 1279, 1804, 2039, 1947, 1542, 889, 94, -716, -1411, -1880, -2047, -1885, -1421, -728, 82, 878, 1533, 1943, 2040, 1810, 1289, 561, -257, -1033, -1644, -1991, -2018, -1721, -1148, -390, 430, 1181, 1743, 2024, 1981, 1620, 998, 216, -600, -1320, -1828, -2043, -1929, -1506, -841, -41, 766, 1450, 1901, 2046, 1864, 1382, 678, -135, -926, -1568, -1959, -2035, -1784, -1247, -510, 310, 1079, 1675, 2003, 2008, 1691, 1103, 338, -482, -1224, -1770, -2032, -1967, -1586, -951, -163, 651, 1361, 1852, 2046, 1911, 1469, 792, -13, -815, -1487, -1920, -2045, -1841, -1342, -627, 188, 973, 1602, 1974, 2028, 1757, 1204, 458, -362, -1124, -1705, -2013, -1997, -1661, -1058, -285, 534, 1267, 1796, 2037, 1951, 1552, 903, 110, -701, -1400, -1874, -2047, -1891, -1432, -743, 66, 864, 1523, 1938, 2041, 1817, 1301, 576, -241, -1020, -1635, -1987, -2021, -1729, -1161, -406, 415, 1168, 1734, 2022, 1985, 1629, 1012, 232, -585, -1308, -1821, -2042, -1935, -1517, -855, -57, 751, 1439, 1895, 2047, 1870, 1393, 693, -119, -912, -1558, -1954, -2037, -1792, -1259, -525, 294, 1066, 1666, 1999, 2011, 1700, 1116, 353, -467, -1212, -1762, -2030, -1971, -1596, -965, -179, 636, 1349, 1845, 2045, 1917, 1480, 807, 3, -801, -1476, -1914, -2045, -1848, -1354, -642, 172, 959, 1592, 1969, 2030, 1765, 1217, 473, -347, -1111, -1697, -2010, -2001, -1670, -1071, -300, 519, 1254, 1789, 2036, 1956, 1562, 918, 126, -687, -1389, -1868, -2047, -1897, -1443, -757, 50, 850, 1513, 1933, 2042, 1824, 1313, 591, -226, -1006, -1625, -1983, -2023, -1738, -1174, -421, 399, 1155, 1726, 2019, 1989, 1639, 1025, 247, -570, -1296, -1814, -2041, -1940, -1527, -870, -72, 737, 1427, 1889, 2047, 1876, 1405, 707, -104, -898, -1548, -1950, -2038, -1799, -1272, -540, 279, 1052, 1657, 1996, 2014, 1709, 1129, 369, -452, -1199, -1754, -2028, -1975, -1606, -979, -194, 621, 1337, 1838, 2044, 1922, 1491, 821, 19, -786, -1465, -1909, -2046, -1854, -1365, -657, 157, 946, 1582, 1965, 2032, 1773, 1229, 488, -331, -1098, -1688, -2007, -2004, -1679, -1085, -316, 503, 1242, 1781, 2034, 1961, 1572, 932, 141, -672, -1377, -1861, -2046, -1903, -1454, -772, 35, 835, 1502, 1927, 2043, 1831, 1325, 606, -210, -993, -1616, -1979, -2025, -1746, -1186, -436, 384, 1142, 1718, 2017, 1992, 1648, 1039, 263, -555, -1284, -1807, -2039, -1945, -1538, -884, -88, 722, 1416, 1883, 2047, 1883, 1416, 722, -88, -884, -1538, -1945, -2039, -1807, -1284, -555, 263, 1039, 1648, 1992, 2017, 1718, 1142, 384, -436, -1186, -1746, -2025, -1979, -1616, -993, -210, 606, 1325, 1831, 2043, 1927, 1502, 835, 35, -772, -1454, -1903, -2046, -1861, -1377, -672, 141, 932, 1572, 1961, 2034, 1781, 1242, 503, -316, -1085, -1679, -2004, -2007, -1688, -1098, -331, 488, 1229, 1773, 2032, 1965, 1582, 946, 157, -657, -1365, -1854, -2046, -1909, -1465, -786, 19, 821, 1491, 1922, 2044, 1838, 1337, 621, -194, -979, -1606, -1975, -2028, -1754, -1199, -452, 369, 1129, 1709, 2014, 1996, 1657, 1052, 279, -540, -1272, -1799, -2038, -1950, -1548, -898, -104, 707, 1405, 1876, 2047, 1889, 1427, 737, -72, -870, -1527, -1940, -2041, -1814, -1296, -570, 247, 1025, 1639, 1989, 2019, 1726, 1155, 399, -421, -1174, -1738, -2023, -1983, -1625, -1006, -226, 591, 1313, 1824, 2042, 1933, 1513, 850, 50, -757, -1443, -1897, -2047, -1868, -1389, -687, 126, 918, 1562, 1956, 2036, 1789, 1254, 519, -300, -1071, -1670, -2001, -2010, -1697, -1111, -347, 473, 1217, 1765, 2030, 1969, 1592, 959, 172, -642, -1354, -1848, -2045, -1914, -1476, -801, 3, 807, 1480, 1917, 2045, 1845, 1349, 636, -179, -965, -1596, -1971, -2030, -1762, -1212, -467, 353, 1116, 1700, 2011, 1999, 1666, 1066, 294, -525, -1259, -1792, -2037, -1954, -1558, -912, -119, 693, 1393, 1870, 2047, 1895, 1439, 751, -57, -855, -1517, -1935, -2042, -1821, -1308, -585, 232, 1012, 1629, 1985, 2022, 1734, 1168, 415, -406, -1161, -1729, -2021, -1987, -1635, -1020, -241, 576, 1301, 1817, 2041, 1938, 1523, 864, 66, -743, -1432, -1891, -2047, -1874, -1400, -701, 110, 903, 1552, 1951, 2037, 1796, 1267, 534, -285, -1058, -1661, -1997, -2013, -1705, -1124, -362, 458, 1204, 1757, 2028, 1974, 1602, 973, 188, -627, -1342, -1841, -2045, -1920, -1487, -815, -13, 792, 1469, 1911, 2046, 1852, 1361, 651, -163, -951, -1586, -1967, -2032, -1770, -1224, -482, 338, 1103, 1691, 2008, 2003, 1675, 1079, 310, -510, -1247, -1784, -2035, -1959, -1568, -926, -135, 678, 1382, 1864, 2046, 1901, 1450, 766, -41, -841, -1506, -1929, -2043, -1828, -1320, -600, 216, 998, 1620, 1981, 2024, 1743, 1181, 430, -390, -1148, -1721, -2018, -1991, -1644, -1033, -257, 561, 1289, 1810, 2040, 1943, 1533, 878, 82, -728, -1421, -1885, -2047, -1880, -1411, -716, 94, 889, 1542, 1947, 2039, 1804, 1279, 549, -269, -1044, -1652, -1994, -2016, -1714, -1137, -378, 442, 1191, 1749, 2026, 1978, 1612, 987, 204, -612, -1330, -1834, -2044, -1925, -1498, -830, -28, 778, 1459, 1905, 2046, 1858, 1372, 666, -147, -937, -1576, -1962, -2033, -1778, -1237, -497, 322, 1090, 1683, 2005, 2006, 1684, 1092, 325, -494, -1234, -1776, -2033, -1963, -1578, -940, -151, 663, 1370, 1857, 2046, 1906, 1461, 780, -25, -827, -1495, -1924, -2044, -1835, -1332, -615, 201, 984, 1610, 1977, 2027, 1751, 1194, 445, -375, -1135, -1712, -2015, -1994, -1653, -1047, -272, 546, 1277, 1802, 2039, 1948, 1544, 892, 97, -713, -1409, -1879, -2047, -1886, -1423, -731, 78, 875, 1531, 1942, 2040, 1811, 1291, 564, -254, -1031, -1642, -1990, -2018, -1723, -1150, -393, 427, 1179, 1741, 2024, 1982, 1621, 1001, 219, -597, -1318, -1827, -2043, -1930, -1508, -844, -44, 763, 1447, 1899, 2047, 1865, 1384, 681, -132, -923, -1566, -1958, -2035, -1786, -1249, -513, 307, 1077, 1674, 2002, 2009, 1693, 1106, 341, -479, -1222, -1769, -2031, -1968, -1588, -954, -166, 648, 1358, 1850, 2045, 1912, 1472, 795, -9, -812, -1485, -1919, -2045, -1842, -1344, -630, 185, 970, 1600, 1973, 2029, 1759, 1207, 461, -359, -1122, -1704, -2012, -1998, -1663, -1060, -288, 531, 1264, 1795, 2037, 1952, 1554, 906, 113, -698, -1398, -1873, -2047, -1892, -1434, -745, 63, 861, 1521, 1937, 2041, 1818, 1303, 579, -238, -1017, -1633, -1986, -2021, -1731, -1163, -409, 412, 1166, 1733, 2022, 1986, 1631, 1014, 235, -582, -1306, -1820, -2042, -1936, -1519, -858, -60, 748, 1436, 1894, 2047, 1871, 1395, 696, -116, -909, -1556, -1953, -2037, -1793, -1262, -528, 291, 1063, 1665, 1999, 2012, 1702, 1119, 356, -464, -1209, -1761, -2029, -1972, -1598, -968, -182, 633, 1347, 1844, 2045, 1918, 1483, 809, 6, -798, -1474, -1913, -2045, -1849, -1356, -645, 169, 957, 1590, 1969, 2031, 1767, 1219, 476, -344, -1108, -1695, -2009, -2001, -1672, -1074, -303, 516, 1252, 1787, 2036, 1957, 1564, 920, 129, -684, -1386, -1866, -2047, -1898, -1445, -760, 47, 847, 1510, 1932, 2043, 1826, 1316, 594, -223, -1003, -1623, -1983, -2023, -1739, -1176, -424, 396, 1153, 1724, 2019, 1989, 1640, 1028, 251, -567, -1294, -1813, -2040, -1941, -1529, -872, -75, 734, 1425, 1888, 2047, 1878, 1407, 710, -100, -895, -1546, -1949, -2038, -1801, -1274, -543, 275, 1050, 1655, 1995, 2015, 1711, 1132, 372, -449, -1197, -1753, -2027, -1976, -1608, -982, -198, 618, 1335, 1837, 2044, 1923, 1493, 824, 22, -783, -1463, -1908, -2046, -1856, -1368, -660, 154, 943, 1580, 1964, 2033, 1775, 1232, 491, -328, -1095, -1686, -2006, -2005, -1681, -1087, -319, 500, 1239, 1780, 2034, 1962, 1574, 934, 144, -669, -1375, -1860, -2046, -1904, -1456, -775, 31, 832, 1500, 1926, 2044, 1833, 1328, 609, -207, -990, -1614, -1979, -2026, -1748, -1189, -439, 381, 1140, 1716, 2016, 1993, 1650, 1042, 266, -552, -1282, -1805, -2039, -1946, -1540, -887, -91, 719, 1414, 1881, 2047, 1884, 1418, 725, -85, -881, -1536, -1944, -2040, -1808, -1286, -558, 260, 1036, 1646, 1992, 2017, 1719, 1145, 387, -433, -1184, -1744, -2025, -1980, -1618, -995, -213, 603, 1323, 1830, 2043, 1928, 1504, 838, 38, -769, -1452, -1902, -2046, -1862, -1379, -675, 138, 929, 1570, 1960, 2035, 1783, 1244, 507, -313, -1082, -1677, -2003, -2008, -1690, -1100, -334, 485, 1227, 1772, 2032, 1966, 1584, 948, 160, -654, -1363, -1853, -2046, -1910, -1467, -789, 16, 818, 1489, 1921, 2044, 1840, 1339, 624, -191, -976, -1604, -1975, -2028, -1756, -1202, -455, 365, 1127, 1707, 2014, 1997, 1659, 1055, 282, -537, -1269, -1798, -2038, -1950, -1550, -901, -107, 704, 1402, 1875, 2047, 1890, 1430, 740, -69, -867, -1525, -1939, -2041, -1816, -1299, -573, 244, 1023, 1637, 1988, 2020, 1728, 1158, 402, -418, -1171, -1736, -2022, -1984, -1627, -1009, -229, 588, 1311, 1823, 2042, 1934, 1515, 852, 53, -754, -1441, -1896, -2047, -1869, -1391, -690, 122, 915, 1560, 1955, 2036, 1790, 1257, 522, -297, -1068, -1668, -2000, -2011, -1699, -1114, -350, 470, 1214, 1764, 2030, 1970, 1594, 962, 176, -639, -1351, -1846, -2045, -1915, -1478, -804};
    //For Fout=10MHz, Fdac=180MHz
    int16_t SRAM_DATA_10M_180M[4096]={0, 698, 1313, 1770, 2015, 2017, 1778, 1325, 713, 16, -684, -1301, -1762, -2012, -2020, -1786, -1337, -728, -31, 669, 1289, 1754, 2009, 2022, 1793, 1349, 743, 47, -654, -1277, -1746, -2006, -2025, -1801, -1361, -757, -63, 639, 1264, 1738, 2003, 2027, 1808, 1372, 772, 78, -624, -1252, -1729, -1999, -2029, -1816, -1384, -786, -94, 609, 1239, 1721, 1996, 2031, 1823, 1395, 801, 110, -594, -1227, -1712, -1992, -2033, -1830, -1407, -815, -126, 579, 1214, 1704, 1989, 2035, 1837, 1418, 830, 141, -564, -1202, -1695, -1985, -2037, -1844, -1430, -844, -157, 549, 1189, 1686, 1981, 2038, 1850, 1441, 858, 172, -534, -1176, -1677, -1977, -2039, -1857, -1452, -872, -188, 519, 1163, 1668, 1973, 2041, 1864, 1463, 887, 204, -503, -1150, -1659, -1969, -2042, -1870, -1474, -901, -219, 488, 1137, 1650, 1964, 2043, 1876, 1485, 915, 235, -473, -1124, -1640, -1960, -2044, -1883, -1495, -929, -251, 458, 1111, 1631, 1955, 2045, 1889, 1506, 943, 266, -442, -1098, -1621, -1950, -2045, -1895, -1517, -957, -282, 427, 1085, 1612, 1946, 2046, 1901, 1527, 970, 297, -412, -1071, -1602, -1941, -2046, -1906, -1538, -984, -313, 396, 1058, 1592, 1936, 2047, 1912, 1548, 998, 328, -381, -1044, -1582, -1930, -2047, -1918, -1558, -1012, -344, 365, 1031, 1572, 1925, 2047, 1923, 1568, 1025, 359, -350, -1017, -1562, -1920, -2047, -1928, -1578, -1039, -375, 334, 1003, 1552, 1914, 2047, 1934, 1588, 1052, 390, -319, -990, -1542, -1909, -2047, -1939, -1598, -1066, -406, 303, 976, 1531, 1903, 2046, 1944, 1608, 1079, 421, -288, -962, -1521, -1897, -2046, -1949, -1618, -1092, -436, 272, 948, 1510, 1891, 2045, 1953, 1627, 1106, 452, -257, -934, -1500, -1885, -2044, -1958, -1637, -1119, -467, 241, 920, 1489, 1879, 2043, 1962, 1646, 1132, 482, -226, -906, -1478, -1873, -2042, -1967, -1655, -1145, -497, 210, 892, 1467, 1866, 2041, 1971, 1665, 1158, 513, -194, -878, -1456, -1860, -2040, -1975, -1674, -1171, -528, 179, 864, 1445, 1853, 2039, 1979, 1683, 1184, 543, -163, -850, -1434, -1846, -2037, -1983, -1691, -1197, -558, 147, 835, 1423, 1840, 2036, 1987, 1700, 1209, 573, -132, -821, -1411, -1833, -2034, -1991, -1709, -1222, -588, 116, 807, 1400, 1826, 2032, 1994, 1718, 1234, 603, -100, -792, -1389, -1818, -2030, -1998, -1726, -1247, -618, 85, 778, 1377, 1811, 2028, 2001, 1734, 1259, 633, -69, -763, -1365, -1804, -2026, -2005, -1743, -1272, -648, 53, 748, 1354, 1796, 2023, 2008, 1751, 1284, 663, -38, -734, -1342, -1789, -2021, -2011, -1759, -1296, -678, 22, 719, 1330, 1781, 2018, 2014, 1767, 1308, 693, -6, -704, -1318, -1773, -2016, -2016, -1775, -1320, -707, -9, 690, 1306, 1765, 2013, 2019, 1783, 1332, 722, 25, -675, -1294, -1757, -2010, -2022, -1790, -1344, -737, -41, 660, 1282, 1749, 2007, 2024, 1798, 1356, 751, 57, -645, -1269, -1741, -2004, -2026, -1805, -1368, -766, -72, 630, 1257, 1733, 2001, 2028, 1813, 1379, 780, 88, -615, -1244, -1724, -1997, -2030, -1820, -1391, -795, -104, 600, 1232, 1716, 1994, 2032, 1827, 1402, 809, 119, -585, -1219, -1707, -1990, -2034, -1834, -1414, -824, -135, 570, 1207, 1699, 1986, 2036, 1841, 1425, 838, 151, -555, -1194, -1690, -1983, -2037, -1848, -1436, -852, -166, 540, 1181, 1681, 1979, 2039, 1854, 1447, 867, 182, -525, -1168, -1672, -1975, -2040, -1861, -1459, -881, -198, 510, 1155, 1663, 1970, 2041, 1868, 1469, 895, 213, -494, -1142, -1653, -1966, -2043, -1874, -1480, -909, -229, 479, 1129, 1644, 1962, 2044, 1880, 1491, 923, 244, -464, -1116, -1635, -1957, -2044, -1886, -1502, -937, -260, 449, 1103, 1625, 1952, 2045, 1892, 1513, 951, 275, -433, -1090, -1616, -1948, -2046, -1898, -1523, -965, -291, 418, 1077, 1606, 1943, 2046, 1904, 1533, 979, 307, -402, -1063, -1596, -1938, -2047, -1910, -1544, -993, -322, 387, 1050, 1586, 1933, 2047, 1915, 1554, 1006, 338, -372, -1036, -1576, -1927, -2047, -1921, -1564, -1020, -353, 356, 1023, 1566, 1922, 2047, 1926, 1574, 1033, 369, -341, -1009, -1556, -1917, -2047, -1932, -1584, -1047, -384, 325, 995, 1546, 1911, 2047, 1937, 1594, 1060, 399, -310, -982, -1536, -1905, -2046, -1942, -1604, -1074, -415, 294, 968, 1525, 1899, 2046, 1947, 1614, 1087, 430, -279, -954, -1515, -1894, -2045, -1951, -1623, -1100, -445, 263, 940, 1504, 1888, 2045, 1956, 1633, 1114, 461, -247, -926, -1493, -1881, -2044, -1961, -1642, -1127, -476, 232, 912, 1483, 1875, 2043, 1965, 1652, 1140, 491, -216, -898, -1472, -1869, -2042, -1969, -1661, -1153, -507, 201, 884, 1461, 1862, 2040, 1974, 1670, 1166, 522, -185, -870, -1450, -1856, -2039, -1978, -1679, -1179, -537, 169, 855, 1439, 1849, 2038, 1982, 1688, 1191, 552, -154, -841, -1427, -1842, -2036, -1986, -1697, -1204, -567, 138, 827, 1416, 1835, 2035, 1989, 1705, 1217, 582, -122, -812, -1405, -1828, -2033, -1993, -1714, -1229, -597, 107, 798, 1393, 1821, 2031, 1997, 1723, 1242, 612, -91, -783, -1382, -1814, -2029, -2000, -1731, -1254, -627, 75, 769, 1370, 1807, 2027, 2003, 1739, 1267, 642, -60, -754, -1358, -1799, -2024, -2006, -1748, -1279, -657, 44, 740, 1347, 1792, 2022, 2009, 1756, 1291, 672, -28, -725, -1335, -1784, -2019, -2012, -1764, -1303, -687, 13, 710, 1323, 1776, 2017, 2015, 1772, 1316, 701, 3, -696, -1311, -1769, -2014, -2018, -1780, -1328, -716, -19, 681, 1299, 1761, 2011, 2021, 1787, 1339, 731, 35, -666, -1286, -1753, -2008, -2023, -1795, -1351, -745, -50, 651, 1274, 1744, 2005, 2025, 1802, 1363, 760, 66, -636, -1262, -1736, -2002, -2028, -1810, -1375, -775, -82, 621, 1249, 1728, 1999, 2030, 1817, 1386, 789, 97, -606, -1237, -1719, -1995, -2032, -1824, -1398, -804, -113, 591, 1224, 1711, 1992, 2033, 1831, 1409, 818, 129, -576, -1212, -1702, -1988, -2035, -1838, -1421, -832, -144, 561, 1199, 1693, 1984, 2037, 1845, 1432, 847, 160, -546, -1186, -1684, -1980, -2038, -1852, -1443, -861, -176, 531, 1174, 1675, 1976, 2040, 1858, 1454, 875, 191, -516, -1161, -1666, -1972, -2041, -1865, -1465, -889, -207, 500, 1148, 1657, 1968, 2042, 1871, 1476, 903, 223, -485, -1135, -1648, -1963, -2043, -1878, -1487, -918, -238, 470, 1122, 1639, 1959, 2044, 1884, 1498, 932, 254, -455, -1108, -1629, -1954, -2045, -1890, -1508, -946, -269, 439, 1095, 1620, 1950, 2045, 1896, 1519, 959, 285, -424, -1082, -1610, -1945, -2046, -1902, -1529, -973, -300, 409, 1068, 1600, 1940, 2046, 1908, 1540, 987, 316, -393, -1055, -1590, -1935, -2047, -1913, -1550, -1001, -331, 378, 1042, 1580, 1929, 2047, 1919, 1560, 1014, 347, -362, -1028, -1570, -1924, -2047, -1924, -1570, -1028, -362, 347, 1014, 1560, 1919, 2047, 1929, 1580, 1042, 378, -331, -1001, -1550, -1913, -2047, -1935, -1590, -1055, -393, 316, 987, 1540, 1908, 2046, 1940, 1600, 1068, 409, -300, -973, -1529, -1902, -2046, -1945, -1610, -1082, -424, 285, 959, 1519, 1896, 2045, 1950, 1620, 1095, 439, -269, -946, -1508, -1890, -2045, -1954, -1629, -1108, -455, 254, 932, 1498, 1884, 2044, 1959, 1639, 1122, 470, -238, -918, -1487, -1878, -2043, -1963, -1648, -1135, -485, 223, 903, 1476, 1871, 2042, 1968, 1657, 1148, 500, -207, -889, -1465, -1865, -2041, -1972, -1666, -1161, -516, 191, 875, 1454, 1858, 2040, 1976, 1675, 1174, 531, -176, -861, -1443, -1852, -2038, -1980, -1684, -1186, -546, 160, 847, 1432, 1845, 2037, 1984, 1693, 1199, 561, -144, -832, -1421, -1838, -2035, -1988, -1702, -1212, -576, 129, 818, 1409, 1831, 2033, 1992, 1711, 1224, 591, -113, -804, -1398, -1824, -2032, -1995, -1719, -1237, -606, 97, 789, 1386, 1817, 2030, 1999, 1728, 1249, 621, -82, -775, -1375, -1810, -2028, -2002, -1736, -1262, -636, 66, 760, 1363, 1802, 2025, 2005, 1744, 1274, 651, -50, -745, -1351, -1795, -2023, -2008, -1753, -1286, -666, 35, 731, 1339, 1787, 2021, 2011, 1761, 1299, 681, -19, -716, -1328, -1780, -2018, -2014, -1769, -1311, -696, 3, 701, 1316, 1772, 2015, 2017, 1776, 1323, 710, 13, -687, -1303, -1764, -2012, -2019, -1784, -1335, -725, -28, 672, 1291, 1756, 2009, 2022, 1792, 1347, 740, 44, -657, -1279, -1748, -2006, -2024, -1799, -1358, -754, -60, 642, 1267, 1739, 2003, 2027, 1807, 1370, 769, 75, -627, -1254, -1731, -2000, -2029, -1814, -1382, -783, -91, 612, 1242, 1723, 1997, 2031, 1821, 1393, 798, 107, -597, -1229, -1714, -1993, -2033, -1828, -1405, -812, -122, 582, 1217, 1705, 1989, 2035, 1835, 1416, 827, 138, -567, -1204, -1697, -1986, -2036, -1842, -1427, -841, -154, 552, 1191, 1688, 1982, 2038, 1849, 1439, 855, 169, -537, -1179, -1679, -1978, -2039, -1856, -1450, -870, -185, 522, 1166, 1670, 1974, 2040, 1862, 1461, 884, 201, -507, -1153, -1661, -1969, -2042, -1869, -1472, -898, -216, 491, 1140, 1652, 1965, 2043, 1875, 1483, 912, 232, -476, -1127, -1642, -1961, -2044, -1881, -1493, -926, -247, 461, 1114, 1633, 1956, 2045, 1888, 1504, 940, 263, -445, -1100, -1623, -1951, -2045, -1894, -1515, -954, -279, 430, 1087, 1614, 1947, 2046, 1899, 1525, 968, 294, -415, -1074, -1604, -1942, -2046, -1905, -1536, -982, -310, 399, 1060, 1594, 1937, 2047, 1911, 1546, 995, 325, -384, -1047, -1584, -1932, -2047, -1917, -1556, -1009, -341, 369, 1033, 1574, 1926, 2047, 1922, 1566, 1023, 356, -353, -1020, -1564, -1921, -2047, -1927, -1576, -1036, -372, 338, 1006, 1554, 1915, 2047, 1933, 1586, 1050, 387, -322, -993, -1544, -1910, -2047, -1938, -1596, -1063, -402, 307, 979, 1533, 1904, 2046, 1943, 1606, 1077, 418, -291, -965, -1523, -1898, -2046, -1948, -1616, -1090, -433, 275, 951, 1513, 1892, 2045, 1952, 1625, 1103, 449, -260, -937, -1502, -1886, -2044, -1957, -1635, -1116, -464, 244, 923, 1491, 1880, 2044, 1962, 1644, 1129, 479, -229, -909, -1480, -1874, -2043, -1966, -1653, -1142, -494, 213, 895, 1469, 1868, 2041, 1970, 1663, 1155, 510, -198, -881, -1459, -1861, -2040, -1975, -1672, -1168, -525, 182, 867, 1447, 1854, 2039, 1979, 1681, 1181, 540, -166, -852, -1436, -1848, -2037, -1983, -1690, -1194, -555, 151, 838, 1425, 1841, 2036, 1986, 1699, 1207, 570, -135, -824, -1414, -1834, -2034, -1990, -1707, -1219, -585, 119, 809, 1402, 1827, 2032, 1994, 1716, 1232, 600, -104, -795, -1391, -1820, -2030, -1997, -1724, -1244, -615, 88, 780, 1379, 1813, 2028, 2001, 1733, 1257, 630, -72, -766, -1368, -1805, -2026, -2004, -1741, -1269, -645, 57, 751, 1356, 1798, 2024, 2007, 1749, 1282, 660, -41, -737, -1344, -1790, -2022, -2010, -1757, -1294, -675, 25, 722, 1332, 1783, 2019, 2013, 1765, 1306, 690, -9, -707, -1320, -1775, -2016, -2016, -1773, -1318, -704, -6, 693, 1308, 1767, 2014, 2018, 1781, 1330, 719, 22, -678, -1296, -1759, -2011, -2021, -1789, -1342, -734, -38, 663, 1284, 1751, 2008, 2023, 1796, 1354, 748, 53, -648, -1272, -1743, -2005, -2026, -1804, -1365, -763, -69, 633, 1259, 1734, 2001, 2028, 1811, 1377, 778, 85, -618, -1247, -1726, -1998, -2030, -1818, -1389, -792, -100, 603, 1234, 1718, 1994, 2032, 1826, 1400, 807, 116, -588, -1222, -1709, -1991, -2034, -1833, -1411, -821, -132, 573, 1209, 1700, 1987, 2036, 1840, 1423, 835, 147, -558, -1197, -1691, -1983, -2037, -1846, -1434, -850, -163, 543, 1184, 1683, 1979, 2039, 1853, 1445, 864, 179, -528, -1171, -1674, -1975, -2040, -1860, -1456, -878, -194, 513, 1158, 1665, 1971, 2041, 1866, 1467, 892, 210, -497, -1145, -1655, -1967, -2042, -1873, -1478, -906, -226, 482, 1132, 1646, 1962, 2043, 1879, 1489, 920, 241, -467, -1119, -1637, -1958, -2044, -1885, -1500, -934, -257, 452, 1106, 1627, 1953, 2045, 1891, 1510, 948, 272, -436, -1092, -1618, -1949, -2046, -1897, -1521, -962, -288, 421, 1079, 1608, 1944, 2046, 1903, 1531, 976, 303, -406, -1066, -1598, -1939, -2047, -1909, -1542, -990, -319, 390, 1052, 1588, 1934, 2047, 1914, 1552, 1003, 334, -375, -1039, -1578, -1928, -2047, -1920, -1562, -1017, -350, 359, 1025, 1568, 1923, 2047, 1925, 1572, 1031, 365, -344, -1012, -1558, -1918, -2047, -1930, -1582, -1044, -381, 328, 998, 1548, 1912, 2047, 1936, 1592, 1058, 396, -313, -984, -1538, -1906, -2046, -1941, -1602, -1071, -412, 297, 970, 1527, 1901, 2046, 1946, 1612, 1085, 427, -282, -957, -1517, -1895, -2045, -1950, -1621, -1098, -442, 266, 943, 1506, 1889, 2045, 1955, 1631, 1111, 458, -251, -929, -1495, -1883, -2044, -1960, -1640, -1124, -473, 235, 915, 1485, 1876, 2043, 1964, 1650, 1137, 488, -219, -901, -1474, -1870, -2042, -1969, -1659, -1150, -503, 204, 887, 1463, 1864, 2041, 1973, 1668, 1163, 519, -188, -872, -1452, -1857, -2039, -1977, -1677, -1176, -534, 172, 858, 1441, 1850, 2038, 1981, 1686, 1189, 549, -157, -844, -1430, -1844, -2037, -1985, -1695, -1202, -564, 141, 830, 1418, 1837, 2035, 1989, 1704, 1214, 579, -126, -815, -1407, -1830, -2033, -1992, -1712, -1227, -594, 110, 801, 1395, 1823, 2031, 1996, 1721, 1239, 609, -94, -786, -1384, -1816, -2029, -1999, -1729, -1252, -624, 78, 772, 1372, 1808, 2027, 2003, 1738, 1264, 639, -63, -757, -1361, -1801, -2025, -2006, -1746, -1277, -654, 47, 743, 1349, 1793, 2022, 2009, 1754, 1289, 669, -31, -728, -1337, -1786, -2020, -2012, -1762, -1301, -684, 16, 713, 1325, 1778, 2017, 2015, 1770, 1313, 698, 0, -698, -1313, -1770, -2015, -2017, -1778, -1325, -713, -16, 684, 1301, 1762, 2012, 2020, 1786, 1337, 728, 31, -669, -1289, -1754, -2009, -2022, -1793, -1349, -743, -47, 654, 1277, 1746, 2006, 2025, 1801, 1361, 757, 63, -639, -1264, -1738, -2003, -2027, -1808, -1372, -772, -78, 624, 1252, 1729, 1999, 2029, 1816, 1384, 786, 94, -609, -1239, -1721, -1996, -2031, -1823, -1395, -801, -110, 594, 1227, 1712, 1992, 2033, 1830, 1407, 815, 126, -579, -1214, -1704, -1989, -2035, -1837, -1418, -830, -141, 564, 1202, 1695, 1985, 2037, 1844, 1430, 844, 157, -549, -1189, -1686, -1981, -2038, -1850, -1441, -858, -172, 534, 1176, 1677, 1977, 2039, 1857, 1452, 872, 188, -519, -1163, -1668, -1973, -2041, -1864, -1463, -887, -204, 503, 1150, 1659, 1969, 2042, 1870, 1474, 901, 219, -488, -1137, -1650, -1964, -2043, -1876, -1485, -915, -235, 473, 1124, 1640, 1960, 2044, 1883, 1495, 929, 251, -458, -1111, -1631, -1955, -2045, -1889, -1506, -943, -266, 442, 1098, 1621, 1950, 2045, 1895, 1517, 957, 282, -427, -1085, -1612, -1946, -2046, -1901, -1527, -970, -297, 412, 1071, 1602, 1941, 2046, 1906, 1538, 984, 313, -396, -1058, -1592, -1936, -2047, -1912, -1548, -998, -328, 381, 1044, 1582, 1930, 2047, 1918, 1558, 1012, 344, -365, -1031, -1572, -1925, -2047, -1923, -1568, -1025, -359, 350, 1017, 1562, 1920, 2047, 1928, 1578, 1039, 375, -334, -1003, -1552, -1914, -2047, -1934, -1588, -1052, -390, 319, 990, 1542, 1909, 2047, 1939, 1598, 1066, 406, -303, -976, -1531, -1903, -2046, -1944, -1608, -1079, -421, 288, 962, 1521, 1897, 2046, 1949, 1618, 1092, 436, -272, -948, -1510, -1891, -2045, -1953, -1627, -1106, -452, 257, 934, 1500, 1885, 2044, 1958, 1637, 1119, 467, -241, -920, -1489, -1879, -2043, -1962, -1646, -1132, -482, 226, 906, 1478, 1873, 2042, 1967, 1655, 1145, 497, -210, -892, -1467, -1866, -2041, -1971, -1665, -1158, -513, 194, 878, 1456, 1860, 2040, 1975, 1674, 1171, 528, -179, -864, -1445, -1853, -2039, -1979, -1683, -1184, -543, 163, 850, 1434, 1846, 2037, 1983, 1691, 1197, 558, -147, -835, -1423, -1840, -2036, -1987, -1700, -1209, -573, 132, 821, 1411, 1833, 2034, 1991, 1709, 1222, 588, -116, -807, -1400, -1826, -2032, -1994, -1718, -1234, -603, 100, 792, 1389, 1818, 2030, 1998, 1726, 1247, 618, -85, -778, -1377, -1811, -2028, -2001, -1734, -1259, -633, 69, 763, 1365, 1804, 2026, 2005, 1743, 1272, 648, -53, -748, -1354, -1796, -2023, -2008, -1751, -1284, -663, 38, 734, 1342, 1789, 2021, 2011, 1759, 1296, 678, -22, -719, -1330, -1781, -2018, -2014, -1767, -1308, -693, 6, 704, 1318, 1773, 2016, 2016, 1775, 1320, 707, 9, -690, -1306, -1765, -2013, -2019, -1783, -1332, -722, -25, 675, 1294, 1757, 2010, 2022, 1790, 1344, 737, 41, -660, -1282, -1749, -2007, -2024, -1798, -1356, -751, -57, 645, 1269, 1741, 2004, 2026, 1805, 1368, 766, 72, -630, -1257, -1733, -2001, -2028, -1813, -1379, -780, -88, 615, 1244, 1724, 1997, 2030, 1820, 1391, 795, 104, -600, -1232, -1716, -1994, -2032, -1827, -1402, -809, -119, 585, 1219, 1707, 1990, 2034, 1834, 1414, 824, 135, -570, -1207, -1699, -1986, -2036, -1841, -1425, -838, -151, 555, 1194, 1690, 1983, 2037, 1848, 1436, 852, 166, -540, -1181, -1681, -1979, -2039, -1854, -1447, -867, -182, 525, 1168, 1672, 1975, 2040, 1861, 1459, 881, 198, -510, -1155, -1663, -1970, -2041, -1868, -1469, -895, -213, 494, 1142, 1653, 1966, 2043, 1874, 1480, 909, 229, -479, -1129, -1644, -1962, -2044, -1880, -1491, -923, -244, 464, 1116, 1635, 1957, 2044, 1886, 1502, 937, 260, -449, -1103, -1625, -1952, -2045, -1892, -1513, -951, -275, 433, 1090, 1616, 1948, 2046, 1898, 1523, 965, 291, -418, -1077, -1606, -1943, -2046, -1904, -1533, -979, -307, 402, 1063, 1596, 1938, 2047, 1910, 1544, 993, 322, -387, -1050, -1586, -1933, -2047, -1915, -1554, -1006, -338, 372, 1036, 1576, 1927, 2047, 1921, 1564, 1020, 353, -356, -1023, -1566, -1922, -2047, -1926, -1574, -1033, -369, 341, 1009, 1556, 1917, 2047, 1932, 1584, 1047, 384, -325, -995, -1546, -1911, -2047, -1937, -1594, -1060, -399, 310, 982, 1536, 1905, 2046, 1942, 1604, 1074, 415, -294, -968, -1525, -1899, -2046, -1947, -1614, -1087, -430, 279, 954, 1515, 1894, 2045, 1951, 1623, 1100, 445, -263, -940, -1504, -1888, -2045, -1956, -1633, -1114, -461, 247, 926, 1493, 1881, 2044, 1961, 1642, 1127, 476, -232, -912, -1483, -1875, -2043, -1965, -1652, -1140, -491, 216, 898, 1472, 1869, 2042, 1969, 1661, 1153, 507, -201, -884, -1461, -1862, -2040, -1974, -1670, -1166, -522, 185, 870, 1450, 1856, 2039, 1978, 1679, 1179, 537, -169, -855, -1439, -1849, -2038, -1982, -1688, -1191, -552, 154, 841, 1427, 1842, 2036, 1986, 1697, 1204, 567, -138, -827, -1416, -1835, -2035, -1989, -1705, -1217, -582, 122, 812, 1405, 1828, 2033, 1993, 1714, 1229, 597, -107, -798, -1393, -1821, -2031, -1997, -1723, -1242, -612, 91, 783, 1382, 1814, 2029, 2000, 1731, 1254, 627, -75, -769, -1370, -1807, -2027, -2003, -1739, -1267, -642, 60, 754, 1358, 1799, 2024, 2006, 1748, 1279, 657, -44, -740, -1347, -1792, -2022, -2009, -1756, -1291, -672, 28, 725, 1335, 1784, 2019, 2012, 1764, 1303, 687, -13, -710, -1323, -1776, -2017, -2015, -1772, -1316, -701, -3, 696, 1311, 1769, 2014, 2018, 1780, 1328, 716, 19, -681, -1299, -1761, -2011, -2021, -1787, -1339, -731, -35, 666, 1286, 1753, 2008, 2023, 1795, 1351, 745, 50, -651, -1274, -1744, -2005, -2025, -1802, -1363, -760, -66, 636, 1262, 1736, 2002, 2028, 1810, 1375, 775, 82, -621, -1249, -1728, -1999, -2030, -1817, -1386, -789, -97, 606, 1237, 1719, 1995, 2032, 1824, 1398, 804, 113, -591, -1224, -1711, -1992, -2033, -1831, -1409, -818, -129, 576, 1212, 1702, 1988, 2035, 1838, 1421, 832, 144, -561, -1199, -1693, -1984, -2037, -1845, -1432, -847, -160, 546, 1186, 1684, 1980, 2038, 1852, 1443, 861, 176, -531, -1174, -1675, -1976, -2040, -1858, -1454, -875, -191, 516, 1161, 1666, 1972, 2041, 1865, 1465, 889, 207, -500, -1148, -1657, -1968, -2042, -1871, -1476, -903, -223, 485, 1135, 1648, 1963, 2043, 1878, 1487, 918, 238, -470, -1122, -1639, -1959, -2044, -1884, -1498, -932, -254, 455, 1108, 1629, 1954, 2045, 1890, 1508, 946, 269, -439, -1095, -1620, -1950, -2045, -1896, -1519, -959, -285, 424, 1082, 1610, 1945, 2046, 1902, 1529, 973, 300, -409, -1068, -1600, -1940, -2046, -1908, -1540, -987, -316, 393, 1055, 1590, 1935, 2047, 1913, 1550, 1001, 331, -378, -1042, -1580, -1929, -2047, -1919, -1560, -1014, -347, 362, 1028, 1570, 1924, 2047, 1924, 1570, 1028, 362, -347, -1014, -1560, -1919, -2047, -1929, -1580, -1042, -378, 331, 1001, 1550, 1913, 2047, 1935, 1590, 1055, 393, -316, -987, -1540, -1908, -2046, -1940, -1600, -1068, -409, 300, 973, 1529, 1902, 2046, 1945, 1610, 1082, 424, -285, -959, -1519, -1896, -2045, -1950, -1620, -1095, -439, 269, 946, 1508, 1890, 2045, 1954, 1629, 1108, 455, -254, -932, -1498, -1884, -2044, -1959, -1639, -1122, -470, 238, 918, 1487, 1878, 2043, 1963, 1648, 1135, 485, -223, -903, -1476, -1871, -2042, -1968, -1657, -1148, -500, 207, 889, 1465, 1865, 2041, 1972, 1666, 1161, 516, -191, -875, -1454, -1858, -2040, -1976, -1675, -1174, -531, 176, 861, 1443, 1852, 2038, 1980, 1684, 1186, 546, -160, -847, -1432, -1845, -2037, -1984, -1693, -1199, -561, 144, 832, 1421, 1838, 2035, 1988, 1702, 1212, 576, -129, -818, -1409, -1831, -2033, -1992, -1711, -1224, -591, 113, 804, 1398, 1824, 2032, 1995, 1719, 1237, 606, -97, -789, -1386, -1817, -2030, -1999, -1728, -1249, -621, 82, 775, 1375, 1810, 2028, 2002, 1736, 1262, 636, -66, -760, -1363, -1802, -2025, -2005, -1744, -1274, -651, 50, 745, 1351, 1795, 2023, 2008, 1753, 1286, 666, -35, -731, -1339, -1787, -2021, -2011, -1761, -1299, -681, 19, 716, 1328, 1780, 2018, 2014, 1769, 1311, 696, -3, -701, -1316, -1772, -2015, -2017, -1776, -1323, -710, -13, 687, 1303, 1764, 2012, 2019, 1784, 1335, 725, 28, -672, -1291, -1756, -2009, -2022, -1792, -1347, -740, -44, 657, 1279, 1748, 2006, 2024, 1799, 1358, 754, 60, -642, -1267, -1739, -2003, -2027, -1807, -1370, -769, -75, 627, 1254, 1731, 2000, 2029, 1814, 1382, 783, 91, -612, -1242, -1723, -1997, -2031, -1821, -1393, -798, -107, 597, 1229, 1714, 1993, 2033, 1828, 1405, 812, 122, -582, -1217, -1705, -1989, -2035, -1835, -1416, -827, -138, 567, 1204, 1697, 1986, 2036, 1842, 1427, 841, 154, -552, -1191, -1688, -1982, -2038, -1849, -1439, -855, -169, 537, 1179, 1679, 1978, 2039, 1856, 1450, 870, 185, -522, -1166, -1670, -1974, -2040, -1862, -1461, -884, -201, 507, 1153, 1661, 1969, 2042, 1869, 1472, 898, 216, -491, -1140, -1652, -1965, -2043, -1875, -1483, -912, -232, 476, 1127, 1642, 1961, 2044, 1881, 1493, 926, 247, -461, -1114, -1633, -1956, -2045, -1888, -1504, -940, -263, 445, 1100, 1623, 1951, 2045, 1894, 1515, 954, 279, -430, -1087, -1614, -1947, -2046, -1899, -1525, -968, -294, 415, 1074, 1604, 1942, 2046, 1905, 1536, 982, 310, -399, -1060, -1594, -1937, -2047, -1911, -1546, -995, -325, 384, 1047, 1584, 1932, 2047, 1917, 1556, 1009, 341, -369, -1033, -1574, -1926, -2047, -1922, -1566, -1023, -356, 353, 1020, 1564, 1921, 2047, 1927, 1576, 1036, 372, -338, -1006, -1554, -1915, -2047, -1933, -1586, -1050, -387, 322, 993, 1544, 1910, 2047, 1938, 1596, 1063, 402, -307, -979, -1533, -1904, -2046, -1943, -1606, -1077, -418, 291, 965, 1523, 1898, 2046, 1948, 1616, 1090, 433, -275, -951, -1513, -1892, -2045, -1952, -1625, -1103, -449, 260, 937, 1502, 1886, 2044, 1957, 1635, 1116, 464, -244, -923, -1491, -1880, -2044, -1962, -1644, -1129, -479, 229, 909, 1480, 1874, 2043, 1966, 1653, 1142, 494, -213, -895, -1469, -1868, -2041, -1970, -1663, -1155, -510, 198, 881, 1459, 1861, 2040, 1975, 1672, 1168, 525, -182, -867, -1447, -1854, -2039, -1979, -1681, -1181, -540, 166, 852, 1436, 1848, 2037, 1983, 1690, 1194, 555, -151, -838, -1425, -1841, -2036, -1986, -1699, -1207, -570, 135, 824, 1414, 1834, 2034, 1990, 1707, 1219, 585, -119, -809, -1402, -1827, -2032, -1994, -1716, -1232, -600, 104, 795, 1391, 1820, 2030, 1997, 1724, 1244, 615, -88, -780, -1379, -1813, -2028, -2001, -1733, -1257, -630, 72, 766, 1368, 1805, 2026, 2004, 1741, 1269, 645, -57, -751, -1356, -1798, -2024, -2007, -1749, -1282, -660, 41, 737, 1344, 1790, 2022, 2010, 1757, 1294, 675, -25, -722, -1332, -1783, -2019, -2013, -1765, -1306, -690, 9, 707, 1320, 1775, 2016, 2016, 1773, 1318, 704, 6, -693, -1308, -1767, -2014, -2018, -1781, -1330, -719, -22, 678, 1296, 1759, 2011, 2021, 1789, 1342, 734, 38, -663, -1284, -1751, -2008, -2023, -1796, -1354, -748, -53, 648, 1272, 1743, 2005, 2026, 1804, 1365, 763, 69, -633, -1259, -1734, -2001, -2028, -1811, -1377, -778, -85, 618, 1247, 1726, 1998, 2030, 1818, 1389, 792, 100, -603, -1234, -1718, -1994, -2032, -1826, -1400, -807, -116, 588, 1222, 1709, 1991, 2034, 1833, 1411, 821, 132, -573, -1209, -1700, -1987, -2036, -1840, -1423, -835, -147, 558, 1197, 1691, 1983, 2037, 1846, 1434, 850, 163, -543, -1184, -1683, -1979, -2039, -1853, -1445, -864, -179, 528, 1171, 1674, 1975, 2040, 1860, 1456, 878, 194, -513, -1158, -1665, -1971, -2041, -1866, -1467, -892, -210, 497, 1145, 1655, 1967, 2042, 1873, 1478, 906, 226, -482, -1132, -1646, -1962, -2043, -1879, -1489, -920, -241, 467, 1119, 1637, 1958, 2044, 1885, 1500, 934, 257, -452, -1106, -1627, -1953, -2045, -1891, -1510, -948, -272, 436, 1092, 1618, 1949, 2046, 1897, 1521, 962, 288, -421, -1079, -1608, -1944, -2046, -1903, -1531, -976, -303, 406, 1066, 1598, 1939, 2047, 1909, 1542, 990, 319, -390, -1052, -1588, -1934, -2047, -1914, -1552, -1003, -334, 375, 1039, 1578, 1928, 2047, 1920, 1562, 1017, 350, -359, -1025, -1568, -1923, -2047, -1925, -1572, -1031, -365, 344, 1012, 1558, 1918, 2047, 1930, 1582, 1044, 381, -328, -998, -1548, -1912, -2047, -1936, -1592, -1058, -396, 313, 984, 1538, 1906, 2046, 1941, 1602, 1071, 412, -297, -970, -1527, -1901, -2046, -1946, -1612, -1085, -427, 282, 957, 1517, 1895, 2045, 1950, 1621, 1098, 442, -266, -943, -1506, -1889, -2045, -1955, -1631, -1111, -458, 251, 929, 1495, 1883, 2044, 1960, 1640, 1124, 473, -235, -915, -1485, -1876, -2043, -1964, -1650, -1137, -488, 219, 901, 1474, 1870, 2042, 1969, 1659, 1150, 503, -204, -887, -1463, -1864, -2041, -1973, -1668, -1163, -519, 188, 872, 1452, 1857, 2039, 1977, 1677, 1176, 534, -172, -858, -1441, -1850, -2038, -1981, -1686, -1189, -549, 157, 844, 1430, 1844, 2037, 1985, 1695, 1202, 564, -141, -830, -1418, -1837, -2035, -1989, -1704, -1214, -579, 126, 815, 1407, 1830, 2033, 1992, 1712, 1227, 594, -110, -801, -1395, -1823, -2031, -1996, -1721, -1239, -609, 94, 786, 1384, 1816, 2029, 1999, 1729, 1252, 624, -78, -772, -1372, -1808, -2027, -2003, -1738, -1264, -639, 63, 757, 1361, 1801, 2025, 2006, 1746, 1277, 654, -47, -743, -1349, -1793, -2022, -2009, -1754, -1289, -669, 31, 728, 1337, 1786, 2020, 2012, 1762, 1301, 684, -16, -713, -1325, -1778, -2017, -2015, -1770, -1313, -698};
    
    /********** SPI Register Addresses and Values in Arrays **********/
    //Should work for both devices.
    uint16_t REG_ADD[66]={0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x001F, 0x0020, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x003E, 0x003F, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0047, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, 0x001E, 0x001D};
    //If Fout is from SRAM:
    uint16_t REG_VAL_SRAM[66]={0x0000, 0x0E00, 0x0000, 0x0000, 0x4000, 0x4000, 0x4000, 0x4000, 0x0000, 0x1F00, 0x1F00, 0x1F00, 0x1F00, 0x0000, 0x0000, 0x0000, 0x000E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0111, 0x1000, 0x0101, 0x0101, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x4000, 0x4000, 0x4000, 0x0001, 0x0200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0001, 0x0001};
    //If Fout is from DDS (Fout=10MHz, Fdac=180MHz):
    uint16_t REG_VAL_DDS[66]={0x0000, 0x0E00, 0x0000, 0x0000, 0x4000, 0x4000, 0x4000, 0x4000, 0x0000, 0x1F00, 0x1F00, 0x1F00, 0x1F00, 0x0000, 0x0000, 0x0000, 0x000E, 0x0000, 0x0000, 0x0000, 0x0000, 0x3131, 0x3131, 0x0111, 0x1000, 0x0101, 0x0101, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x4000, 0x4000, 0x4000, 0x0001, 0x0200, 0x0E38, 0xE400, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0001, 0x0001};
    
    
    /********** Functions **********/
    
    //For initializing SPI communication
    void SPI_INIT(){
        
    	//Set data length, polarity, and frequency
        spi.format( 16, 0 );
        spi.frequency( 1000000 );
        
    	//Pulse RESET pin low then high to reset SPI register values
        RESETB = 0;
        wait_us( 10 );
        RESETB = 1;
    }
    
    //For reading from SPI registers
    int16_t SPI_READ( uint16_t addr ){
        
        CSB = 0;
        
        uint16_t read_addr = 0x8000+addr;
        spi.write( read_addr );
        int16_t reg_data = spi.write( 0 );
        
        CSB = 1;
        wait_us( 1 );
        
        return reg_data;
    }
    
    //For writing to SPI registers
    void SPI_WRITE( uint16_t addr, int16_t data ){
    	
        CSB = 0;
        
        spi.write( addr );
        spi.write( data );
        
        CSB = 1;
        wait_us( 1 );
    }
    
    //For writing data to SRAM
    void UPDATE_SRAM( int16_t data[] ){
        
        SPI_WRITE( 0x001E, 0x0004 );
        
        int16_t data_shifted = 0;
        
        uint16_t SRAM_ADD = 0x6000;
        
        for ( int i=0; i<4096; i++ ){
            data_shifted = data[i] << 4;			//4 bit shifts for AD9106, 2 for AD9102
            SPI_WRITE( SRAM_ADD+i, data_shifted );
        }
        
        SPI_WRITE( 0x001E, 0x0010 );   
    }
    
    //For printing first 16 SRAM data in terminal
    void READ_SRAM( ){
        
        SPI_WRITE( 0x001E, 0x000C );
        
        int16_t data_shifted = 0;
        
        uint16_t SRAM_ADD = 0x6000;
        
        for ( int i=0; i<16; i++ ){
            data_shifted = SPI_READ( SRAM_ADD+i ) >> 4;
            pc.printf( "0x%04X, %d\n", SRAM_ADD+i, data_shifted);
        }
        
        SPI_WRITE( 0x001E, 0x0010 );
        
    }
    
    //For printing SPI register values in terminal
    void UPDATE_REGVAL( uint16_t data[] ){
       
        uint16_t data_display = 0;
         
        for ( int i=0; i<66; i++ ){
            SPI_WRITE( REG_ADD[i], data[i] );
            data_display = SPI_READ( REG_ADD[i]);
            pc.printf( "0x%04X, 0x%04X\n", REG_ADD[i], data_display );
        }
           
    }
    
    
    /********** Main Function **********/
    
    int main()
    {
        
        SPI_INIT();
        
        UPDATE_SRAM( SRAM_DATA_10M_156M25 );	//When generating output from SRAM, write to SRAM registers first.
        //READ_SRAM();    
        UPDATE_REGVAL( REG_VAL_SRAM );			//Then write to SPI registers.
        TRIGGERB = 0;							//Start of pattern generation
    	
    	//Generating output from DDS:
    	//UPDATE_REGVAL ( REG_VAL_DDS );
        
        pc.printf( "Terminate pattern? (If yes, press y.)\n" );
        char STOP = 'N';
        
        while ( (STOP != 'Y') && (STOP != 'y') ){	//Continue generating pattern until y key is pressed.
            if( pc.readable() ){
                STOP = pc.getc();
            }
        }
        
        TRIGGERB = 1;							//End of pattern generation
        pc.printf( "Pattern terminated.\n" );
        
    }

Reply
  • Hi,

    Please compare your register settings to those in the attached file.

    Thanks,
    Shine

    /*****************************************************************************
    * Copyright (c) 2020 Analog Devices, Inc.  
    * 
    * All rights reserved.
    * 
    * Redistribution and use in source and binary forms, with or without 
    * modification, are permitted provided that the following conditions are met:
    *   - Redistributions of source code must retain the above copyright notice, 
    *     this list of conditions and the following disclaimer.
    *   - Redistributions in binary form must reproduce the above copyright notice, 
    *     this list of conditions and the following disclaimer in the documentation 
    *     and/or other materials provided with the distribution.  
    *   - Modified versions of the software must be conspicuously marked as such.
    *   - This software is licensed solely and exclusively for use with 
    *     processors/products manufactured by or for Analog Devices, Inc.
    *   - This software may not be combined or merged with other code in any manner 
    *     that would cause the software to become subject to terms and 
    *     conditions which differ from those listed here.
    *   - Neither the name of Analog Devices, Inc. nor the names of its 
    *     contributors may be used to endorse or promote products derived 
    *     from this software without specific prior written permission.
    *   - The use of this software may or may not infringe the patent rights 
    *     of one or more patent holders. This license does not release you from 
    *     the requirement that you obtain separate licenses from these patent 
    *     holders to use this software.
    * 
    * THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" 
    * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
    * NON-INFRINGEMENT, TITLE, MERCHANTABILITY AND FITNESS FOR A 
    * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, 
    * INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
    * SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES 
    * (INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF 
    * INTELLECTUAL PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF SUBSTITUTE 
    * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
    * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
    * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
    * POSSIBILITY OF SUCH DAMAGE.
    * 
    * 20180927-7CBSD SLA
    *****************************************************************************/
    
    /* 
    The following is an example program showing how to initialise and use SDP 
    connector peripherals (using SPI and GPIOs as an example) on the SDP-K1 in mbed.
    Informtion on the pin name definitions for the SDP connector on the SDP-K1 can 
    be found at https://os.mbed.com/platforms/SDP_K1/.
    The full list of peripherals available on the SDP connector include GPIOs, 
    Timers, SPI, I2C, and UART. For further information on how to enable these 
    peripherals, consult the mbed documentation https://os.mbed.com/docs/mbed-os/v5.15/apis/drivers.html
    */
    #include "mbed.h"
    #include "platform/mbed_thread.h"
    
    /********** Initialization **********/
    DigitalOut TRIGGERB( PG_10, 1 ); 	//Set initial value of Trigger pin to 1.
    DigitalOut CSB( PA_15, 1 );			//Set initial value of CS pin to 1.
    DigitalOut RESETB( PA_10, 1 );		//Set initial value of RESET pin to 1.
    
    Serial pc( USBTX, USBRX );			//Initialization of serial communication with PC
    
    SPI spi( PA_7, PB_4, PB_3 );		//Initialization of SPI pins (MOSI, MISO, SCLK);
    
    
    /********** 12-bit SRAM Data in Arrays **********/
    //For Fout=10MHz, Fdac=156.25MHz
    int16_t SRAM_DATA_10M_156M25[4096]={0, 804, 1478, 1915, 2045, 1846, 1351, 639, -176, -962, -1594, -1970, -2030, -1764, -1214, -470, 350, 1114, 1699, 2011, 2000, 1668, 1068, 297, -522, -1257, -1790, -2036, -1955, -1560, -915, -122, 690, 1391, 1869, 2047, 1896, 1441, 754, -53, -852, -1515, -1934, -2042, -1823, -1311, -588, 229, 1009, 1627, 1984, 2022, 1736, 1171, 418, -402, -1158, -1728, -2020, -1988, -1637, -1023, -244, 573, 1299, 1816, 2041, 1939, 1525, 867, 69, -740, -1430, -1890, -2047, -1875, -1402, -704, 107, 901, 1550, 1950, 2038, 1798, 1269, 537, -282, -1055, -1659, -1997, -2014, -1707, -1127, -365, 455, 1202, 1756, 2028, 1975, 1604, 976, 191, -624, -1339, -1840, -2044, -1921, -1489, -818, -16, 789, 1467, 1910, 2046, 1853, 1363, 654, -160, -948, -1584, -1966, -2032, -1772, -1227, -485, 334, 1100, 1690, 2008, 2003, 1677, 1082, 313, -507, -1244, -1783, -2035, -1960, -1570, -929, -138, 675, 1379, 1862, 2046, 1902, 1452, 769, -38, -838, -1504, -1928, -2043, -1830, -1323, -603, 213, 995, 1618, 1980, 2025, 1744, 1184, 433, -387, -1145, -1719, -2017, -1992, -1646, -1036, -260, 558, 1286, 1808, 2040, 1944, 1536, 881, 85, -725, -1418, -1884, -2047, -1881, -1414, -719, 91, 887, 1540, 1946, 2039, 1805, 1282, 552, -266, -1042, -1650, -1993, -2016, -1716, -1140, -381, 439, 1189, 1748, 2026, 1979, 1614, 990, 207, -609, -1328, -1833, -2044, -1926, -1500, -832, -31, 775, 1456, 1904, 2046, 1860, 1375, 669, -144, -934, -1574, -1962, -2034, -1780, -1239, -500, 319, 1087, 1681, 2005, 2006, 1686, 1095, 328, -491, -1232, -1775, -2033, -1964, -1580, -943, -154, 660, 1368, 1856, 2046, 1908, 1463, 783, -22, -824, -1493, -1923, -2044, -1837, -1335, -618, 198, 982, 1608, 1976, 2027, 1753, 1197, 449, -372, -1132, -1711, -2015, -1995, -1655, -1050, -275, 543, 1274, 1801, 2038, 1949, 1546, 895, 100, -710, -1407, -1878, -2047, -1888, -1425, -734, 75, 872, 1529, 1941, 2040, 1813, 1294, 567, -251, -1028, -1640, -1989, -2019, -1724, -1153, -396, 424, 1176, 1739, 2023, 1983, 1623, 1003, 223, -594, -1316, -1826, -2043, -1932, -1510, -847, -47, 760, 1445, 1898, 2047, 1866, 1386, 684, -129, -920, -1564, -1957, -2036, -1787, -1252, -516, 303, 1074, 1672, 2001, 2009, 1695, 1108, 344, -476, -1219, -1767, -2031, -1969, -1590, -957, -169, 645, 1356, 1849, 2045, 1913, 1474, 798, -6, -809, -1483, -1918, -2045, -1844, -1347, -633, 182, 968, 1598, 1972, 2029, 1761, 1209, 464, -356, -1119, -1702, -2012, -1999, -1665, -1063, -291, 528, 1262, 1793, 2037, 1953, 1556, 909, 116, -696, -1395, -1871, -2047, -1894, -1436, -748, 60, 858, 1519, 1936, 2042, 1820, 1306, 582, -235, -1014, -1631, -1986, -2022, -1733, -1166, -412, 409, 1163, 1731, 2021, 1986, 1633, 1017, 238, -579, -1303, -1818, -2041, -1937, -1521, -861, -63, 745, 1434, 1892, 2047, 1873, 1398, 698, -113, -906, -1554, -1952, -2037, -1795, -1264, -531, 288, 1060, 1663, 1998, 2012, 1704, 1122, 359, -461, -1207, -1759, -2029, -1973, -1600, -970, -185, 630, 1344, 1842, 2045, 1919, 1485, 812, 9, -795, -1472, -1912, -2045, -1850, -1358, -648, 166, 954, 1588, 1968, 2031, 1769, 1222, 479, -341, -1106, -1693, -2009, -2002, -1674, -1077, -307, 513, 1249, 1786, 2035, 1958, 1566, 923, 132, -681, -1384, -1865, -2047, -1899, -1447, -763, 44, 844, 1508, 1930, 2043, 1827, 1318, 597, -219, -1001, -1621, -1982, -2024, -1741, -1179, -427, 393, 1150, 1723, 2018, 1990, 1642, 1031, 254, -564, -1291, -1811, -2040, -1942, -1531, -875, -78, 731, 1423, 1886, 2047, 1879, 1409, 713, -97, -892, -1544, -1948, -2039, -1802, -1277, -546, 272, 1047, 1653, 1994, 2015, 1712, 1135, 375, -445, -1194, -1751, -2027, -1977, -1610, -984, -201, 615, 1332, 1835, 2044, 1924, 1495, 827, 25, -780, -1461, -1906, -2046, -1857, -1370, -663, 151, 940, 1578, 1963, 2033, 1776, 1234, 494, -325, -1092, -1684, -2006, -2005, -1683, -1090, -322, 497, 1237, 1778, 2033, 1962, 1576, 937, 147, -666, -1372, -1858, -2046, -1905, -1459, -778, 28, 830, 1498, 1925, 2044, 1834, 1330, 612, -204, -987, -1612, -1978, -2026, -1749, -1191, -442, 378, 1137, 1714, 2016, 1994, 1652, 1044, 269, -549, -1279, -1804, -2039, -1947, -1542, -889, -94, 716, 1411, 1880, 2047, 1885, 1421, 728, -82, -878, -1533, -1943, -2040, -1810, -1289, -561, 257, 1033, 1644, 1991, 2018, 1721, 1148, 390, -430, -1181, -1743, -2024, -1981, -1620, -998, -216, 600, 1320, 1828, 2043, 1929, 1506, 841, 41, -766, -1450, -1901, -2046, -1864, -1382, -678, 135, 926, 1568, 1959, 2035, 1784, 1247, 510, -310, -1079, -1675, -2003, -2008, -1691, -1103, -338, 482, 1224, 1770, 2032, 1967, 1586, 951, 163, -651, -1361, -1852, -2046, -1911, -1469, -792, 13, 815, 1487, 1920, 2045, 1841, 1342, 627, -188, -973, -1602, -1974, -2028, -1757, -1204, -458, 362, 1124, 1705, 2013, 1997, 1661, 1058, 285, -534, -1267, -1796, -2037, -1951, -1552, -903, -110, 701, 1400, 1874, 2047, 1891, 1432, 743, -66, -864, -1523, -1938, -2041, -1817, -1301, -576, 241, 1020, 1635, 1987, 2021, 1729, 1161, 406, -415, -1168, -1734, -2022, -1985, -1629, -1012, -232, 585, 1308, 1821, 2042, 1935, 1517, 855, 57, -751, -1439, -1895, -2047, -1870, -1393, -693, 119, 912, 1558, 1954, 2037, 1792, 1259, 525, -294, -1066, -1666, -1999, -2011, -1700, -1116, -353, 467, 1212, 1762, 2030, 1971, 1596, 965, 179, -636, -1349, -1845, -2045, -1917, -1480, -807, -3, 801, 1476, 1914, 2045, 1848, 1354, 642, -172, -959, -1592, -1969, -2030, -1765, -1217, -473, 347, 1111, 1697, 2010, 2001, 1670, 1071, 300, -519, -1254, -1789, -2036, -1956, -1562, -918, -126, 687, 1389, 1868, 2047, 1897, 1443, 757, -50, -850, -1513, -1933, -2042, -1824, -1313, -591, 226, 1006, 1625, 1983, 2023, 1738, 1174, 421, -399, -1155, -1726, -2019, -1989, -1639, -1025, -247, 570, 1296, 1814, 2041, 1940, 1527, 870, 72, -737, -1427, -1889, -2047, -1876, -1405, -707, 104, 898, 1548, 1950, 2038, 1799, 1272, 540, -279, -1052, -1657, -1996, -2014, -1709, -1129, -369, 452, 1199, 1754, 2028, 1975, 1606, 979, 194, -621, -1337, -1838, -2044, -1922, -1491, -821, -19, 786, 1465, 1909, 2046, 1854, 1365, 657, -157, -946, -1582, -1965, -2032, -1773, -1229, -488, 331, 1098, 1688, 2007, 2004, 1679, 1085, 316, -503, -1242, -1781, -2034, -1961, -1572, -932, -141, 672, 1377, 1861, 2046, 1903, 1454, 772, -35, -835, -1502, -1927, -2043, -1831, -1325, -606, 210, 993, 1616, 1979, 2025, 1746, 1186, 436, -384, -1142, -1718, -2017, -1992, -1648, -1039, -263, 555, 1284, 1807, 2039, 1945, 1538, 884, 88, -722, -1416, -1883, -2047, -1883, -1416, -722, 88, 884, 1538, 1945, 2039, 1807, 1284, 555, -263, -1039, -1648, -1992, -2017, -1718, -1142, -384, 436, 1186, 1746, 2025, 1979, 1616, 993, 210, -606, -1325, -1831, -2043, -1927, -1502, -835, -35, 772, 1454, 1903, 2046, 1861, 1377, 672, -141, -932, -1572, -1961, -2034, -1781, -1242, -503, 316, 1085, 1679, 2004, 2007, 1688, 1098, 331, -488, -1229, -1773, -2032, -1965, -1582, -946, -157, 657, 1365, 1854, 2046, 1909, 1465, 786, -19, -821, -1491, -1922, -2044, -1838, -1337, -621, 194, 979, 1606, 1975, 2028, 1754, 1199, 452, -369, -1129, -1709, -2014, -1996, -1657, -1052, -279, 540, 1272, 1799, 2038, 1950, 1548, 898, 104, -707, -1405, -1876, -2047, -1889, -1427, -737, 72, 870, 1527, 1940, 2041, 1814, 1296, 570, -247, -1025, -1639, -1989, -2019, -1726, -1155, -399, 421, 1174, 1738, 2023, 1983, 1625, 1006, 226, -591, -1313, -1824, -2042, -1933, -1513, -850, -50, 757, 1443, 1897, 2047, 1868, 1389, 687, -126, -918, -1562, -1956, -2036, -1789, -1254, -519, 300, 1071, 1670, 2001, 2010, 1697, 1111, 347, -473, -1217, -1765, -2030, -1969, -1592, -959, -172, 642, 1354, 1848, 2045, 1914, 1476, 801, -3, -807, -1480, -1917, -2045, -1845, -1349, -636, 179, 965, 1596, 1971, 2030, 1762, 1212, 467, -353, -1116, -1700, -2011, -1999, -1666, -1066, -294, 525, 1259, 1792, 2037, 1954, 1558, 912, 119, -693, -1393, -1870, -2047, -1895, -1439, -751, 57, 855, 1517, 1935, 2042, 1821, 1308, 585, -232, -1012, -1629, -1985, -2022, -1734, -1168, -415, 406, 1161, 1729, 2021, 1987, 1635, 1020, 241, -576, -1301, -1817, -2041, -1938, -1523, -864, -66, 743, 1432, 1891, 2047, 1874, 1400, 701, -110, -903, -1552, -1951, -2037, -1796, -1267, -534, 285, 1058, 1661, 1997, 2013, 1705, 1124, 362, -458, -1204, -1757, -2028, -1974, -1602, -973, -188, 627, 1342, 1841, 2045, 1920, 1487, 815, 13, -792, -1469, -1911, -2046, -1852, -1361, -651, 163, 951, 1586, 1967, 2032, 1770, 1224, 482, -338, -1103, -1691, -2008, -2003, -1675, -1079, -310, 510, 1247, 1784, 2035, 1959, 1568, 926, 135, -678, -1382, -1864, -2046, -1901, -1450, -766, 41, 841, 1506, 1929, 2043, 1828, 1320, 600, -216, -998, -1620, -1981, -2024, -1743, -1181, -430, 390, 1148, 1721, 2018, 1991, 1644, 1033, 257, -561, -1289, -1810, -2040, -1943, -1533, -878, -82, 728, 1421, 1885, 2047, 1880, 1411, 716, -94, -889, -1542, -1947, -2039, -1804, -1279, -549, 269, 1044, 1652, 1994, 2016, 1714, 1137, 378, -442, -1191, -1749, -2026, -1978, -1612, -987, -204, 612, 1330, 1834, 2044, 1925, 1498, 830, 28, -778, -1459, -1905, -2046, -1858, -1372, -666, 147, 937, 1576, 1962, 2033, 1778, 1237, 497, -322, -1090, -1683, -2005, -2006, -1684, -1092, -325, 494, 1234, 1776, 2033, 1963, 1578, 940, 151, -663, -1370, -1857, -2046, -1906, -1461, -780, 25, 827, 1495, 1924, 2044, 1835, 1332, 615, -201, -984, -1610, -1977, -2027, -1751, -1194, -445, 375, 1135, 1712, 2015, 1994, 1653, 1047, 272, -546, -1277, -1802, -2039, -1948, -1544, -892, -97, 713, 1409, 1879, 2047, 1886, 1423, 731, -78, -875, -1531, -1942, -2040, -1811, -1291, -564, 254, 1031, 1642, 1990, 2018, 1723, 1150, 393, -427, -1179, -1741, -2024, -1982, -1621, -1001, -219, 597, 1318, 1827, 2043, 1930, 1508, 844, 44, -763, -1447, -1899, -2047, -1865, -1384, -681, 132, 923, 1566, 1958, 2035, 1786, 1249, 513, -307, -1077, -1674, -2002, -2009, -1693, -1106, -341, 479, 1222, 1769, 2031, 1968, 1588, 954, 166, -648, -1358, -1850, -2045, -1912, -1472, -795, 9, 812, 1485, 1919, 2045, 1842, 1344, 630, -185, -970, -1600, -1973, -2029, -1759, -1207, -461, 359, 1122, 1704, 2012, 1998, 1663, 1060, 288, -531, -1264, -1795, -2037, -1952, -1554, -906, -113, 698, 1398, 1873, 2047, 1892, 1434, 745, -63, -861, -1521, -1937, -2041, -1818, -1303, -579, 238, 1017, 1633, 1986, 2021, 1731, 1163, 409, -412, -1166, -1733, -2022, -1986, -1631, -1014, -235, 582, 1306, 1820, 2042, 1936, 1519, 858, 60, -748, -1436, -1894, -2047, -1871, -1395, -696, 116, 909, 1556, 1953, 2037, 1793, 1262, 528, -291, -1063, -1665, -1999, -2012, -1702, -1119, -356, 464, 1209, 1761, 2029, 1972, 1598, 968, 182, -633, -1347, -1844, -2045, -1918, -1483, -809, -6, 798, 1474, 1913, 2045, 1849, 1356, 645, -169, -957, -1590, -1969, -2031, -1767, -1219, -476, 344, 1108, 1695, 2009, 2001, 1672, 1074, 303, -516, -1252, -1787, -2036, -1957, -1564, -920, -129, 684, 1386, 1866, 2047, 1898, 1445, 760, -47, -847, -1510, -1932, -2043, -1826, -1316, -594, 223, 1003, 1623, 1983, 2023, 1739, 1176, 424, -396, -1153, -1724, -2019, -1989, -1640, -1028, -251, 567, 1294, 1813, 2040, 1941, 1529, 872, 75, -734, -1425, -1888, -2047, -1878, -1407, -710, 100, 895, 1546, 1949, 2038, 1801, 1274, 543, -275, -1050, -1655, -1995, -2015, -1711, -1132, -372, 449, 1197, 1753, 2027, 1976, 1608, 982, 198, -618, -1335, -1837, -2044, -1923, -1493, -824, -22, 783, 1463, 1908, 2046, 1856, 1368, 660, -154, -943, -1580, -1964, -2033, -1775, -1232, -491, 328, 1095, 1686, 2006, 2005, 1681, 1087, 319, -500, -1239, -1780, -2034, -1962, -1574, -934, -144, 669, 1375, 1860, 2046, 1904, 1456, 775, -31, -832, -1500, -1926, -2044, -1833, -1328, -609, 207, 990, 1614, 1979, 2026, 1748, 1189, 439, -381, -1140, -1716, -2016, -1993, -1650, -1042, -266, 552, 1282, 1805, 2039, 1946, 1540, 887, 91, -719, -1414, -1881, -2047, -1884, -1418, -725, 85, 881, 1536, 1944, 2040, 1808, 1286, 558, -260, -1036, -1646, -1992, -2017, -1719, -1145, -387, 433, 1184, 1744, 2025, 1980, 1618, 995, 213, -603, -1323, -1830, -2043, -1928, -1504, -838, -38, 769, 1452, 1902, 2046, 1862, 1379, 675, -138, -929, -1570, -1960, -2035, -1783, -1244, -507, 313, 1082, 1677, 2003, 2008, 1690, 1100, 334, -485, -1227, -1772, -2032, -1966, -1584, -948, -160, 654, 1363, 1853, 2046, 1910, 1467, 789, -16, -818, -1489, -1921, -2044, -1840, -1339, -624, 191, 976, 1604, 1975, 2028, 1756, 1202, 455, -365, -1127, -1707, -2014, -1997, -1659, -1055, -282, 537, 1269, 1798, 2038, 1950, 1550, 901, 107, -704, -1402, -1875, -2047, -1890, -1430, -740, 69, 867, 1525, 1939, 2041, 1816, 1299, 573, -244, -1023, -1637, -1988, -2020, -1728, -1158, -402, 418, 1171, 1736, 2022, 1984, 1627, 1009, 229, -588, -1311, -1823, -2042, -1934, -1515, -852, -53, 754, 1441, 1896, 2047, 1869, 1391, 690, -122, -915, -1560, -1955, -2036, -1790, -1257, -522, 297, 1068, 1668, 2000, 2011, 1699, 1114, 350, -470, -1214, -1764, -2030, -1970, -1594, -962, -176, 639, 1351, 1846, 2045, 1915, 1478, 804, 0, -804, -1478, -1915, -2045, -1846, -1351, -639, 176, 962, 1594, 1970, 2030, 1764, 1214, 470, -350, -1114, -1699, -2011, -2000, -1668, -1068, -297, 522, 1257, 1790, 2036, 1955, 1560, 915, 122, -690, -1391, -1869, -2047, -1896, -1441, -754, 53, 852, 1515, 1934, 2042, 1823, 1311, 588, -229, -1009, -1627, -1984, -2022, -1736, -1171, -418, 402, 1158, 1728, 2020, 1988, 1637, 1023, 244, -573, -1299, -1816, -2041, -1939, -1525, -867, -69, 740, 1430, 1890, 2047, 1875, 1402, 704, -107, -901, -1550, -1950, -2038, -1798, -1269, -537, 282, 1055, 1659, 1997, 2014, 1707, 1127, 365, -455, -1202, -1756, -2028, -1975, -1604, -976, -191, 624, 1339, 1840, 2044, 1921, 1489, 818, 16, -789, -1467, -1910, -2046, -1853, -1363, -654, 160, 948, 1584, 1966, 2032, 1772, 1227, 485, -334, -1100, -1690, -2008, -2003, -1677, -1082, -313, 507, 1244, 1783, 2035, 1960, 1570, 929, 138, -675, -1379, -1862, -2046, -1902, -1452, -769, 38, 838, 1504, 1928, 2043, 1830, 1323, 603, -213, -995, -1618, -1980, -2025, -1744, -1184, -433, 387, 1145, 1719, 2017, 1992, 1646, 1036, 260, -558, -1286, -1808, -2040, -1944, -1536, -881, -85, 725, 1418, 1884, 2047, 1881, 1414, 719, -91, -887, -1540, -1946, -2039, -1805, -1282, -552, 266, 1042, 1650, 1993, 2016, 1716, 1140, 381, -439, -1189, -1748, -2026, -1979, -1614, -990, -207, 609, 1328, 1833, 2044, 1926, 1500, 832, 31, -775, -1456, -1904, -2046, -1860, -1375, -669, 144, 934, 1574, 1962, 2034, 1780, 1239, 500, -319, -1087, -1681, -2005, -2006, -1686, -1095, -328, 491, 1232, 1775, 2033, 1964, 1580, 943, 154, -660, -1368, -1856, -2046, -1908, -1463, -783, 22, 824, 1493, 1923, 2044, 1837, 1335, 618, -198, -982, -1608, -1976, -2027, -1753, -1197, -449, 372, 1132, 1711, 2015, 1995, 1655, 1050, 275, -543, -1274, -1801, -2038, -1949, -1546, -895, -100, 710, 1407, 1878, 2047, 1888, 1425, 734, -75, -872, -1529, -1941, -2040, -1813, -1294, -567, 251, 1028, 1640, 1989, 2019, 1724, 1153, 396, -424, -1176, -1739, -2023, -1983, -1623, -1003, -223, 594, 1316, 1826, 2043, 1932, 1510, 847, 47, -760, -1445, -1898, -2047, -1866, -1386, -684, 129, 920, 1564, 1957, 2036, 1787, 1252, 516, -303, -1074, -1672, -2001, -2009, -1695, -1108, -344, 476, 1219, 1767, 2031, 1969, 1590, 957, 169, -645, -1356, -1849, -2045, -1913, -1474, -798, 6, 809, 1483, 1918, 2045, 1844, 1347, 633, -182, -968, -1598, -1972, -2029, -1761, -1209, -464, 356, 1119, 1702, 2012, 1999, 1665, 1063, 291, -528, -1262, -1793, -2037, -1953, -1556, -909, -116, 696, 1395, 1871, 2047, 1894, 1436, 748, -60, -858, -1519, -1936, -2042, -1820, -1306, -582, 235, 1014, 1631, 1986, 2022, 1733, 1166, 412, -409, -1163, -1731, -2021, -1986, -1633, -1017, -238, 579, 1303, 1818, 2041, 1937, 1521, 861, 63, -745, -1434, -1892, -2047, -1873, -1398, -698, 113, 906, 1554, 1952, 2037, 1795, 1264, 531, -288, -1060, -1663, -1998, -2012, -1704, -1122, -359, 461, 1207, 1759, 2029, 1973, 1600, 970, 185, -630, -1344, -1842, -2045, -1919, -1485, -812, -9, 795, 1472, 1912, 2045, 1850, 1358, 648, -166, -954, -1588, -1968, -2031, -1769, -1222, -479, 341, 1106, 1693, 2009, 2002, 1674, 1077, 307, -513, -1249, -1786, -2035, -1958, -1566, -923, -132, 681, 1384, 1865, 2047, 1899, 1447, 763, -44, -844, -1508, -1930, -2043, -1827, -1318, -597, 219, 1001, 1621, 1982, 2024, 1741, 1179, 427, -393, -1150, -1723, -2018, -1990, -1642, -1031, -254, 564, 1291, 1811, 2040, 1942, 1531, 875, 78, -731, -1423, -1886, -2047, -1879, -1409, -713, 97, 892, 1544, 1948, 2039, 1802, 1277, 546, -272, -1047, -1653, -1994, -2015, -1712, -1135, -375, 445, 1194, 1751, 2027, 1977, 1610, 984, 201, -615, -1332, -1835, -2044, -1924, -1495, -827, -25, 780, 1461, 1906, 2046, 1857, 1370, 663, -151, -940, -1578, -1963, -2033, -1776, -1234, -494, 325, 1092, 1684, 2006, 2005, 1683, 1090, 322, -497, -1237, -1778, -2033, -1962, -1576, -937, -147, 666, 1372, 1858, 2046, 1905, 1459, 778, -28, -830, -1498, -1925, -2044, -1834, -1330, -612, 204, 987, 1612, 1978, 2026, 1749, 1191, 442, -378, -1137, -1714, -2016, -1994, -1652, -1044, -269, 549, 1279, 1804, 2039, 1947, 1542, 889, 94, -716, -1411, -1880, -2047, -1885, -1421, -728, 82, 878, 1533, 1943, 2040, 1810, 1289, 561, -257, -1033, -1644, -1991, -2018, -1721, -1148, -390, 430, 1181, 1743, 2024, 1981, 1620, 998, 216, -600, -1320, -1828, -2043, -1929, -1506, -841, -41, 766, 1450, 1901, 2046, 1864, 1382, 678, -135, -926, -1568, -1959, -2035, -1784, -1247, -510, 310, 1079, 1675, 2003, 2008, 1691, 1103, 338, -482, -1224, -1770, -2032, -1967, -1586, -951, -163, 651, 1361, 1852, 2046, 1911, 1469, 792, -13, -815, -1487, -1920, -2045, -1841, -1342, -627, 188, 973, 1602, 1974, 2028, 1757, 1204, 458, -362, -1124, -1705, -2013, -1997, -1661, -1058, -285, 534, 1267, 1796, 2037, 1951, 1552, 903, 110, -701, -1400, -1874, -2047, -1891, -1432, -743, 66, 864, 1523, 1938, 2041, 1817, 1301, 576, -241, -1020, -1635, -1987, -2021, -1729, -1161, -406, 415, 1168, 1734, 2022, 1985, 1629, 1012, 232, -585, -1308, -1821, -2042, -1935, -1517, -855, -57, 751, 1439, 1895, 2047, 1870, 1393, 693, -119, -912, -1558, -1954, -2037, -1792, -1259, -525, 294, 1066, 1666, 1999, 2011, 1700, 1116, 353, -467, -1212, -1762, -2030, -1971, -1596, -965, -179, 636, 1349, 1845, 2045, 1917, 1480, 807, 3, -801, -1476, -1914, -2045, -1848, -1354, -642, 172, 959, 1592, 1969, 2030, 1765, 1217, 473, -347, -1111, -1697, -2010, -2001, -1670, -1071, -300, 519, 1254, 1789, 2036, 1956, 1562, 918, 126, -687, -1389, -1868, -2047, -1897, -1443, -757, 50, 850, 1513, 1933, 2042, 1824, 1313, 591, -226, -1006, -1625, -1983, -2023, -1738, -1174, -421, 399, 1155, 1726, 2019, 1989, 1639, 1025, 247, -570, -1296, -1814, -2041, -1940, -1527, -870, -72, 737, 1427, 1889, 2047, 1876, 1405, 707, -104, -898, -1548, -1950, -2038, -1799, -1272, -540, 279, 1052, 1657, 1996, 2014, 1709, 1129, 369, -452, -1199, -1754, -2028, -1975, -1606, -979, -194, 621, 1337, 1838, 2044, 1922, 1491, 821, 19, -786, -1465, -1909, -2046, -1854, -1365, -657, 157, 946, 1582, 1965, 2032, 1773, 1229, 488, -331, -1098, -1688, -2007, -2004, -1679, -1085, -316, 503, 1242, 1781, 2034, 1961, 1572, 932, 141, -672, -1377, -1861, -2046, -1903, -1454, -772, 35, 835, 1502, 1927, 2043, 1831, 1325, 606, -210, -993, -1616, -1979, -2025, -1746, -1186, -436, 384, 1142, 1718, 2017, 1992, 1648, 1039, 263, -555, -1284, -1807, -2039, -1945, -1538, -884, -88, 722, 1416, 1883, 2047, 1883, 1416, 722, -88, -884, -1538, -1945, -2039, -1807, -1284, -555, 263, 1039, 1648, 1992, 2017, 1718, 1142, 384, -436, -1186, -1746, -2025, -1979, -1616, -993, -210, 606, 1325, 1831, 2043, 1927, 1502, 835, 35, -772, -1454, -1903, -2046, -1861, -1377, -672, 141, 932, 1572, 1961, 2034, 1781, 1242, 503, -316, -1085, -1679, -2004, -2007, -1688, -1098, -331, 488, 1229, 1773, 2032, 1965, 1582, 946, 157, -657, -1365, -1854, -2046, -1909, -1465, -786, 19, 821, 1491, 1922, 2044, 1838, 1337, 621, -194, -979, -1606, -1975, -2028, -1754, -1199, -452, 369, 1129, 1709, 2014, 1996, 1657, 1052, 279, -540, -1272, -1799, -2038, -1950, -1548, -898, -104, 707, 1405, 1876, 2047, 1889, 1427, 737, -72, -870, -1527, -1940, -2041, -1814, -1296, -570, 247, 1025, 1639, 1989, 2019, 1726, 1155, 399, -421, -1174, -1738, -2023, -1983, -1625, -1006, -226, 591, 1313, 1824, 2042, 1933, 1513, 850, 50, -757, -1443, -1897, -2047, -1868, -1389, -687, 126, 918, 1562, 1956, 2036, 1789, 1254, 519, -300, -1071, -1670, -2001, -2010, -1697, -1111, -347, 473, 1217, 1765, 2030, 1969, 1592, 959, 172, -642, -1354, -1848, -2045, -1914, -1476, -801, 3, 807, 1480, 1917, 2045, 1845, 1349, 636, -179, -965, -1596, -1971, -2030, -1762, -1212, -467, 353, 1116, 1700, 2011, 1999, 1666, 1066, 294, -525, -1259, -1792, -2037, -1954, -1558, -912, -119, 693, 1393, 1870, 2047, 1895, 1439, 751, -57, -855, -1517, -1935, -2042, -1821, -1308, -585, 232, 1012, 1629, 1985, 2022, 1734, 1168, 415, -406, -1161, -1729, -2021, -1987, -1635, -1020, -241, 576, 1301, 1817, 2041, 1938, 1523, 864, 66, -743, -1432, -1891, -2047, -1874, -1400, -701, 110, 903, 1552, 1951, 2037, 1796, 1267, 534, -285, -1058, -1661, -1997, -2013, -1705, -1124, -362, 458, 1204, 1757, 2028, 1974, 1602, 973, 188, -627, -1342, -1841, -2045, -1920, -1487, -815, -13, 792, 1469, 1911, 2046, 1852, 1361, 651, -163, -951, -1586, -1967, -2032, -1770, -1224, -482, 338, 1103, 1691, 2008, 2003, 1675, 1079, 310, -510, -1247, -1784, -2035, -1959, -1568, -926, -135, 678, 1382, 1864, 2046, 1901, 1450, 766, -41, -841, -1506, -1929, -2043, -1828, -1320, -600, 216, 998, 1620, 1981, 2024, 1743, 1181, 430, -390, -1148, -1721, -2018, -1991, -1644, -1033, -257, 561, 1289, 1810, 2040, 1943, 1533, 878, 82, -728, -1421, -1885, -2047, -1880, -1411, -716, 94, 889, 1542, 1947, 2039, 1804, 1279, 549, -269, -1044, -1652, -1994, -2016, -1714, -1137, -378, 442, 1191, 1749, 2026, 1978, 1612, 987, 204, -612, -1330, -1834, -2044, -1925, -1498, -830, -28, 778, 1459, 1905, 2046, 1858, 1372, 666, -147, -937, -1576, -1962, -2033, -1778, -1237, -497, 322, 1090, 1683, 2005, 2006, 1684, 1092, 325, -494, -1234, -1776, -2033, -1963, -1578, -940, -151, 663, 1370, 1857, 2046, 1906, 1461, 780, -25, -827, -1495, -1924, -2044, -1835, -1332, -615, 201, 984, 1610, 1977, 2027, 1751, 1194, 445, -375, -1135, -1712, -2015, -1994, -1653, -1047, -272, 546, 1277, 1802, 2039, 1948, 1544, 892, 97, -713, -1409, -1879, -2047, -1886, -1423, -731, 78, 875, 1531, 1942, 2040, 1811, 1291, 564, -254, -1031, -1642, -1990, -2018, -1723, -1150, -393, 427, 1179, 1741, 2024, 1982, 1621, 1001, 219, -597, -1318, -1827, -2043, -1930, -1508, -844, -44, 763, 1447, 1899, 2047, 1865, 1384, 681, -132, -923, -1566, -1958, -2035, -1786, -1249, -513, 307, 1077, 1674, 2002, 2009, 1693, 1106, 341, -479, -1222, -1769, -2031, -1968, -1588, -954, -166, 648, 1358, 1850, 2045, 1912, 1472, 795, -9, -812, -1485, -1919, -2045, -1842, -1344, -630, 185, 970, 1600, 1973, 2029, 1759, 1207, 461, -359, -1122, -1704, -2012, -1998, -1663, -1060, -288, 531, 1264, 1795, 2037, 1952, 1554, 906, 113, -698, -1398, -1873, -2047, -1892, -1434, -745, 63, 861, 1521, 1937, 2041, 1818, 1303, 579, -238, -1017, -1633, -1986, -2021, -1731, -1163, -409, 412, 1166, 1733, 2022, 1986, 1631, 1014, 235, -582, -1306, -1820, -2042, -1936, -1519, -858, -60, 748, 1436, 1894, 2047, 1871, 1395, 696, -116, -909, -1556, -1953, -2037, -1793, -1262, -528, 291, 1063, 1665, 1999, 2012, 1702, 1119, 356, -464, -1209, -1761, -2029, -1972, -1598, -968, -182, 633, 1347, 1844, 2045, 1918, 1483, 809, 6, -798, -1474, -1913, -2045, -1849, -1356, -645, 169, 957, 1590, 1969, 2031, 1767, 1219, 476, -344, -1108, -1695, -2009, -2001, -1672, -1074, -303, 516, 1252, 1787, 2036, 1957, 1564, 920, 129, -684, -1386, -1866, -2047, -1898, -1445, -760, 47, 847, 1510, 1932, 2043, 1826, 1316, 594, -223, -1003, -1623, -1983, -2023, -1739, -1176, -424, 396, 1153, 1724, 2019, 1989, 1640, 1028, 251, -567, -1294, -1813, -2040, -1941, -1529, -872, -75, 734, 1425, 1888, 2047, 1878, 1407, 710, -100, -895, -1546, -1949, -2038, -1801, -1274, -543, 275, 1050, 1655, 1995, 2015, 1711, 1132, 372, -449, -1197, -1753, -2027, -1976, -1608, -982, -198, 618, 1335, 1837, 2044, 1923, 1493, 824, 22, -783, -1463, -1908, -2046, -1856, -1368, -660, 154, 943, 1580, 1964, 2033, 1775, 1232, 491, -328, -1095, -1686, -2006, -2005, -1681, -1087, -319, 500, 1239, 1780, 2034, 1962, 1574, 934, 144, -669, -1375, -1860, -2046, -1904, -1456, -775, 31, 832, 1500, 1926, 2044, 1833, 1328, 609, -207, -990, -1614, -1979, -2026, -1748, -1189, -439, 381, 1140, 1716, 2016, 1993, 1650, 1042, 266, -552, -1282, -1805, -2039, -1946, -1540, -887, -91, 719, 1414, 1881, 2047, 1884, 1418, 725, -85, -881, -1536, -1944, -2040, -1808, -1286, -558, 260, 1036, 1646, 1992, 2017, 1719, 1145, 387, -433, -1184, -1744, -2025, -1980, -1618, -995, -213, 603, 1323, 1830, 2043, 1928, 1504, 838, 38, -769, -1452, -1902, -2046, -1862, -1379, -675, 138, 929, 1570, 1960, 2035, 1783, 1244, 507, -313, -1082, -1677, -2003, -2008, -1690, -1100, -334, 485, 1227, 1772, 2032, 1966, 1584, 948, 160, -654, -1363, -1853, -2046, -1910, -1467, -789, 16, 818, 1489, 1921, 2044, 1840, 1339, 624, -191, -976, -1604, -1975, -2028, -1756, -1202, -455, 365, 1127, 1707, 2014, 1997, 1659, 1055, 282, -537, -1269, -1798, -2038, -1950, -1550, -901, -107, 704, 1402, 1875, 2047, 1890, 1430, 740, -69, -867, -1525, -1939, -2041, -1816, -1299, -573, 244, 1023, 1637, 1988, 2020, 1728, 1158, 402, -418, -1171, -1736, -2022, -1984, -1627, -1009, -229, 588, 1311, 1823, 2042, 1934, 1515, 852, 53, -754, -1441, -1896, -2047, -1869, -1391, -690, 122, 915, 1560, 1955, 2036, 1790, 1257, 522, -297, -1068, -1668, -2000, -2011, -1699, -1114, -350, 470, 1214, 1764, 2030, 1970, 1594, 962, 176, -639, -1351, -1846, -2045, -1915, -1478, -804};
    //For Fout=10MHz, Fdac=180MHz
    int16_t SRAM_DATA_10M_180M[4096]={0, 698, 1313, 1770, 2015, 2017, 1778, 1325, 713, 16, -684, -1301, -1762, -2012, -2020, -1786, -1337, -728, -31, 669, 1289, 1754, 2009, 2022, 1793, 1349, 743, 47, -654, -1277, -1746, -2006, -2025, -1801, -1361, -757, -63, 639, 1264, 1738, 2003, 2027, 1808, 1372, 772, 78, -624, -1252, -1729, -1999, -2029, -1816, -1384, -786, -94, 609, 1239, 1721, 1996, 2031, 1823, 1395, 801, 110, -594, -1227, -1712, -1992, -2033, -1830, -1407, -815, -126, 579, 1214, 1704, 1989, 2035, 1837, 1418, 830, 141, -564, -1202, -1695, -1985, -2037, -1844, -1430, -844, -157, 549, 1189, 1686, 1981, 2038, 1850, 1441, 858, 172, -534, -1176, -1677, -1977, -2039, -1857, -1452, -872, -188, 519, 1163, 1668, 1973, 2041, 1864, 1463, 887, 204, -503, -1150, -1659, -1969, -2042, -1870, -1474, -901, -219, 488, 1137, 1650, 1964, 2043, 1876, 1485, 915, 235, -473, -1124, -1640, -1960, -2044, -1883, -1495, -929, -251, 458, 1111, 1631, 1955, 2045, 1889, 1506, 943, 266, -442, -1098, -1621, -1950, -2045, -1895, -1517, -957, -282, 427, 1085, 1612, 1946, 2046, 1901, 1527, 970, 297, -412, -1071, -1602, -1941, -2046, -1906, -1538, -984, -313, 396, 1058, 1592, 1936, 2047, 1912, 1548, 998, 328, -381, -1044, -1582, -1930, -2047, -1918, -1558, -1012, -344, 365, 1031, 1572, 1925, 2047, 1923, 1568, 1025, 359, -350, -1017, -1562, -1920, -2047, -1928, -1578, -1039, -375, 334, 1003, 1552, 1914, 2047, 1934, 1588, 1052, 390, -319, -990, -1542, -1909, -2047, -1939, -1598, -1066, -406, 303, 976, 1531, 1903, 2046, 1944, 1608, 1079, 421, -288, -962, -1521, -1897, -2046, -1949, -1618, -1092, -436, 272, 948, 1510, 1891, 2045, 1953, 1627, 1106, 452, -257, -934, -1500, -1885, -2044, -1958, -1637, -1119, -467, 241, 920, 1489, 1879, 2043, 1962, 1646, 1132, 482, -226, -906, -1478, -1873, -2042, -1967, -1655, -1145, -497, 210, 892, 1467, 1866, 2041, 1971, 1665, 1158, 513, -194, -878, -1456, -1860, -2040, -1975, -1674, -1171, -528, 179, 864, 1445, 1853, 2039, 1979, 1683, 1184, 543, -163, -850, -1434, -1846, -2037, -1983, -1691, -1197, -558, 147, 835, 1423, 1840, 2036, 1987, 1700, 1209, 573, -132, -821, -1411, -1833, -2034, -1991, -1709, -1222, -588, 116, 807, 1400, 1826, 2032, 1994, 1718, 1234, 603, -100, -792, -1389, -1818, -2030, -1998, -1726, -1247, -618, 85, 778, 1377, 1811, 2028, 2001, 1734, 1259, 633, -69, -763, -1365, -1804, -2026, -2005, -1743, -1272, -648, 53, 748, 1354, 1796, 2023, 2008, 1751, 1284, 663, -38, -734, -1342, -1789, -2021, -2011, -1759, -1296, -678, 22, 719, 1330, 1781, 2018, 2014, 1767, 1308, 693, -6, -704, -1318, -1773, -2016, -2016, -1775, -1320, -707, -9, 690, 1306, 1765, 2013, 2019, 1783, 1332, 722, 25, -675, -1294, -1757, -2010, -2022, -1790, -1344, -737, -41, 660, 1282, 1749, 2007, 2024, 1798, 1356, 751, 57, -645, -1269, -1741, -2004, -2026, -1805, -1368, -766, -72, 630, 1257, 1733, 2001, 2028, 1813, 1379, 780, 88, -615, -1244, -1724, -1997, -2030, -1820, -1391, -795, -104, 600, 1232, 1716, 1994, 2032, 1827, 1402, 809, 119, -585, -1219, -1707, -1990, -2034, -1834, -1414, -824, -135, 570, 1207, 1699, 1986, 2036, 1841, 1425, 838, 151, -555, -1194, -1690, -1983, -2037, -1848, -1436, -852, -166, 540, 1181, 1681, 1979, 2039, 1854, 1447, 867, 182, -525, -1168, -1672, -1975, -2040, -1861, -1459, -881, -198, 510, 1155, 1663, 1970, 2041, 1868, 1469, 895, 213, -494, -1142, -1653, -1966, -2043, -1874, -1480, -909, -229, 479, 1129, 1644, 1962, 2044, 1880, 1491, 923, 244, -464, -1116, -1635, -1957, -2044, -1886, -1502, -937, -260, 449, 1103, 1625, 1952, 2045, 1892, 1513, 951, 275, -433, -1090, -1616, -1948, -2046, -1898, -1523, -965, -291, 418, 1077, 1606, 1943, 2046, 1904, 1533, 979, 307, -402, -1063, -1596, -1938, -2047, -1910, -1544, -993, -322, 387, 1050, 1586, 1933, 2047, 1915, 1554, 1006, 338, -372, -1036, -1576, -1927, -2047, -1921, -1564, -1020, -353, 356, 1023, 1566, 1922, 2047, 1926, 1574, 1033, 369, -341, -1009, -1556, -1917, -2047, -1932, -1584, -1047, -384, 325, 995, 1546, 1911, 2047, 1937, 1594, 1060, 399, -310, -982, -1536, -1905, -2046, -1942, -1604, -1074, -415, 294, 968, 1525, 1899, 2046, 1947, 1614, 1087, 430, -279, -954, -1515, -1894, -2045, -1951, -1623, -1100, -445, 263, 940, 1504, 1888, 2045, 1956, 1633, 1114, 461, -247, -926, -1493, -1881, -2044, -1961, -1642, -1127, -476, 232, 912, 1483, 1875, 2043, 1965, 1652, 1140, 491, -216, -898, -1472, -1869, -2042, -1969, -1661, -1153, -507, 201, 884, 1461, 1862, 2040, 1974, 1670, 1166, 522, -185, -870, -1450, -1856, -2039, -1978, -1679, -1179, -537, 169, 855, 1439, 1849, 2038, 1982, 1688, 1191, 552, -154, -841, -1427, -1842, -2036, -1986, -1697, -1204, -567, 138, 827, 1416, 1835, 2035, 1989, 1705, 1217, 582, -122, -812, -1405, -1828, -2033, -1993, -1714, -1229, -597, 107, 798, 1393, 1821, 2031, 1997, 1723, 1242, 612, -91, -783, -1382, -1814, -2029, -2000, -1731, -1254, -627, 75, 769, 1370, 1807, 2027, 2003, 1739, 1267, 642, -60, -754, -1358, -1799, -2024, -2006, -1748, -1279, -657, 44, 740, 1347, 1792, 2022, 2009, 1756, 1291, 672, -28, -725, -1335, -1784, -2019, -2012, -1764, -1303, -687, 13, 710, 1323, 1776, 2017, 2015, 1772, 1316, 701, 3, -696, -1311, -1769, -2014, -2018, -1780, -1328, -716, -19, 681, 1299, 1761, 2011, 2021, 1787, 1339, 731, 35, -666, -1286, -1753, -2008, -2023, -1795, -1351, -745, -50, 651, 1274, 1744, 2005, 2025, 1802, 1363, 760, 66, -636, -1262, -1736, -2002, -2028, -1810, -1375, -775, -82, 621, 1249, 1728, 1999, 2030, 1817, 1386, 789, 97, -606, -1237, -1719, -1995, -2032, -1824, -1398, -804, -113, 591, 1224, 1711, 1992, 2033, 1831, 1409, 818, 129, -576, -1212, -1702, -1988, -2035, -1838, -1421, -832, -144, 561, 1199, 1693, 1984, 2037, 1845, 1432, 847, 160, -546, -1186, -1684, -1980, -2038, -1852, -1443, -861, -176, 531, 1174, 1675, 1976, 2040, 1858, 1454, 875, 191, -516, -1161, -1666, -1972, -2041, -1865, -1465, -889, -207, 500, 1148, 1657, 1968, 2042, 1871, 1476, 903, 223, -485, -1135, -1648, -1963, -2043, -1878, -1487, -918, -238, 470, 1122, 1639, 1959, 2044, 1884, 1498, 932, 254, -455, -1108, -1629, -1954, -2045, -1890, -1508, -946, -269, 439, 1095, 1620, 1950, 2045, 1896, 1519, 959, 285, -424, -1082, -1610, -1945, -2046, -1902, -1529, -973, -300, 409, 1068, 1600, 1940, 2046, 1908, 1540, 987, 316, -393, -1055, -1590, -1935, -2047, -1913, -1550, -1001, -331, 378, 1042, 1580, 1929, 2047, 1919, 1560, 1014, 347, -362, -1028, -1570, -1924, -2047, -1924, -1570, -1028, -362, 347, 1014, 1560, 1919, 2047, 1929, 1580, 1042, 378, -331, -1001, -1550, -1913, -2047, -1935, -1590, -1055, -393, 316, 987, 1540, 1908, 2046, 1940, 1600, 1068, 409, -300, -973, -1529, -1902, -2046, -1945, -1610, -1082, -424, 285, 959, 1519, 1896, 2045, 1950, 1620, 1095, 439, -269, -946, -1508, -1890, -2045, -1954, -1629, -1108, -455, 254, 932, 1498, 1884, 2044, 1959, 1639, 1122, 470, -238, -918, -1487, -1878, -2043, -1963, -1648, -1135, -485, 223, 903, 1476, 1871, 2042, 1968, 1657, 1148, 500, -207, -889, -1465, -1865, -2041, -1972, -1666, -1161, -516, 191, 875, 1454, 1858, 2040, 1976, 1675, 1174, 531, -176, -861, -1443, -1852, -2038, -1980, -1684, -1186, -546, 160, 847, 1432, 1845, 2037, 1984, 1693, 1199, 561, -144, -832, -1421, -1838, -2035, -1988, -1702, -1212, -576, 129, 818, 1409, 1831, 2033, 1992, 1711, 1224, 591, -113, -804, -1398, -1824, -2032, -1995, -1719, -1237, -606, 97, 789, 1386, 1817, 2030, 1999, 1728, 1249, 621, -82, -775, -1375, -1810, -2028, -2002, -1736, -1262, -636, 66, 760, 1363, 1802, 2025, 2005, 1744, 1274, 651, -50, -745, -1351, -1795, -2023, -2008, -1753, -1286, -666, 35, 731, 1339, 1787, 2021, 2011, 1761, 1299, 681, -19, -716, -1328, -1780, -2018, -2014, -1769, -1311, -696, 3, 701, 1316, 1772, 2015, 2017, 1776, 1323, 710, 13, -687, -1303, -1764, -2012, -2019, -1784, -1335, -725, -28, 672, 1291, 1756, 2009, 2022, 1792, 1347, 740, 44, -657, -1279, -1748, -2006, -2024, -1799, -1358, -754, -60, 642, 1267, 1739, 2003, 2027, 1807, 1370, 769, 75, -627, -1254, -1731, -2000, -2029, -1814, -1382, -783, -91, 612, 1242, 1723, 1997, 2031, 1821, 1393, 798, 107, -597, -1229, -1714, -1993, -2033, -1828, -1405, -812, -122, 582, 1217, 1705, 1989, 2035, 1835, 1416, 827, 138, -567, -1204, -1697, -1986, -2036, -1842, -1427, -841, -154, 552, 1191, 1688, 1982, 2038, 1849, 1439, 855, 169, -537, -1179, -1679, -1978, -2039, -1856, -1450, -870, -185, 522, 1166, 1670, 1974, 2040, 1862, 1461, 884, 201, -507, -1153, -1661, -1969, -2042, -1869, -1472, -898, -216, 491, 1140, 1652, 1965, 2043, 1875, 1483, 912, 232, -476, -1127, -1642, -1961, -2044, -1881, -1493, -926, -247, 461, 1114, 1633, 1956, 2045, 1888, 1504, 940, 263, -445, -1100, -1623, -1951, -2045, -1894, -1515, -954, -279, 430, 1087, 1614, 1947, 2046, 1899, 1525, 968, 294, -415, -1074, -1604, -1942, -2046, -1905, -1536, -982, -310, 399, 1060, 1594, 1937, 2047, 1911, 1546, 995, 325, -384, -1047, -1584, -1932, -2047, -1917, -1556, -1009, -341, 369, 1033, 1574, 1926, 2047, 1922, 1566, 1023, 356, -353, -1020, -1564, -1921, -2047, -1927, -1576, -1036, -372, 338, 1006, 1554, 1915, 2047, 1933, 1586, 1050, 387, -322, -993, -1544, -1910, -2047, -1938, -1596, -1063, -402, 307, 979, 1533, 1904, 2046, 1943, 1606, 1077, 418, -291, -965, -1523, -1898, -2046, -1948, -1616, -1090, -433, 275, 951, 1513, 1892, 2045, 1952, 1625, 1103, 449, -260, -937, -1502, -1886, -2044, -1957, -1635, -1116, -464, 244, 923, 1491, 1880, 2044, 1962, 1644, 1129, 479, -229, -909, -1480, -1874, -2043, -1966, -1653, -1142, -494, 213, 895, 1469, 1868, 2041, 1970, 1663, 1155, 510, -198, -881, -1459, -1861, -2040, -1975, -1672, -1168, -525, 182, 867, 1447, 1854, 2039, 1979, 1681, 1181, 540, -166, -852, -1436, -1848, -2037, -1983, -1690, -1194, -555, 151, 838, 1425, 1841, 2036, 1986, 1699, 1207, 570, -135, -824, -1414, -1834, -2034, -1990, -1707, -1219, -585, 119, 809, 1402, 1827, 2032, 1994, 1716, 1232, 600, -104, -795, -1391, -1820, -2030, -1997, -1724, -1244, -615, 88, 780, 1379, 1813, 2028, 2001, 1733, 1257, 630, -72, -766, -1368, -1805, -2026, -2004, -1741, -1269, -645, 57, 751, 1356, 1798, 2024, 2007, 1749, 1282, 660, -41, -737, -1344, -1790, -2022, -2010, -1757, -1294, -675, 25, 722, 1332, 1783, 2019, 2013, 1765, 1306, 690, -9, -707, -1320, -1775, -2016, -2016, -1773, -1318, -704, -6, 693, 1308, 1767, 2014, 2018, 1781, 1330, 719, 22, -678, -1296, -1759, -2011, -2021, -1789, -1342, -734, -38, 663, 1284, 1751, 2008, 2023, 1796, 1354, 748, 53, -648, -1272, -1743, -2005, -2026, -1804, -1365, -763, -69, 633, 1259, 1734, 2001, 2028, 1811, 1377, 778, 85, -618, -1247, -1726, -1998, -2030, -1818, -1389, -792, -100, 603, 1234, 1718, 1994, 2032, 1826, 1400, 807, 116, -588, -1222, -1709, -1991, -2034, -1833, -1411, -821, -132, 573, 1209, 1700, 1987, 2036, 1840, 1423, 835, 147, -558, -1197, -1691, -1983, -2037, -1846, -1434, -850, -163, 543, 1184, 1683, 1979, 2039, 1853, 1445, 864, 179, -528, -1171, -1674, -1975, -2040, -1860, -1456, -878, -194, 513, 1158, 1665, 1971, 2041, 1866, 1467, 892, 210, -497, -1145, -1655, -1967, -2042, -1873, -1478, -906, -226, 482, 1132, 1646, 1962, 2043, 1879, 1489, 920, 241, -467, -1119, -1637, -1958, -2044, -1885, -1500, -934, -257, 452, 1106, 1627, 1953, 2045, 1891, 1510, 948, 272, -436, -1092, -1618, -1949, -2046, -1897, -1521, -962, -288, 421, 1079, 1608, 1944, 2046, 1903, 1531, 976, 303, -406, -1066, -1598, -1939, -2047, -1909, -1542, -990, -319, 390, 1052, 1588, 1934, 2047, 1914, 1552, 1003, 334, -375, -1039, -1578, -1928, -2047, -1920, -1562, -1017, -350, 359, 1025, 1568, 1923, 2047, 1925, 1572, 1031, 365, -344, -1012, -1558, -1918, -2047, -1930, -1582, -1044, -381, 328, 998, 1548, 1912, 2047, 1936, 1592, 1058, 396, -313, -984, -1538, -1906, -2046, -1941, -1602, -1071, -412, 297, 970, 1527, 1901, 2046, 1946, 1612, 1085, 427, -282, -957, -1517, -1895, -2045, -1950, -1621, -1098, -442, 266, 943, 1506, 1889, 2045, 1955, 1631, 1111, 458, -251, -929, -1495, -1883, -2044, -1960, -1640, -1124, -473, 235, 915, 1485, 1876, 2043, 1964, 1650, 1137, 488, -219, -901, -1474, -1870, -2042, -1969, -1659, -1150, -503, 204, 887, 1463, 1864, 2041, 1973, 1668, 1163, 519, -188, -872, -1452, -1857, -2039, -1977, -1677, -1176, -534, 172, 858, 1441, 1850, 2038, 1981, 1686, 1189, 549, -157, -844, -1430, -1844, -2037, -1985, -1695, -1202, -564, 141, 830, 1418, 1837, 2035, 1989, 1704, 1214, 579, -126, -815, -1407, -1830, -2033, -1992, -1712, -1227, -594, 110, 801, 1395, 1823, 2031, 1996, 1721, 1239, 609, -94, -786, -1384, -1816, -2029, -1999, -1729, -1252, -624, 78, 772, 1372, 1808, 2027, 2003, 1738, 1264, 639, -63, -757, -1361, -1801, -2025, -2006, -1746, -1277, -654, 47, 743, 1349, 1793, 2022, 2009, 1754, 1289, 669, -31, -728, -1337, -1786, -2020, -2012, -1762, -1301, -684, 16, 713, 1325, 1778, 2017, 2015, 1770, 1313, 698, 0, -698, -1313, -1770, -2015, -2017, -1778, -1325, -713, -16, 684, 1301, 1762, 2012, 2020, 1786, 1337, 728, 31, -669, -1289, -1754, -2009, -2022, -1793, -1349, -743, -47, 654, 1277, 1746, 2006, 2025, 1801, 1361, 757, 63, -639, -1264, -1738, -2003, -2027, -1808, -1372, -772, -78, 624, 1252, 1729, 1999, 2029, 1816, 1384, 786, 94, -609, -1239, -1721, -1996, -2031, -1823, -1395, -801, -110, 594, 1227, 1712, 1992, 2033, 1830, 1407, 815, 126, -579, -1214, -1704, -1989, -2035, -1837, -1418, -830, -141, 564, 1202, 1695, 1985, 2037, 1844, 1430, 844, 157, -549, -1189, -1686, -1981, -2038, -1850, -1441, -858, -172, 534, 1176, 1677, 1977, 2039, 1857, 1452, 872, 188, -519, -1163, -1668, -1973, -2041, -1864, -1463, -887, -204, 503, 1150, 1659, 1969, 2042, 1870, 1474, 901, 219, -488, -1137, -1650, -1964, -2043, -1876, -1485, -915, -235, 473, 1124, 1640, 1960, 2044, 1883, 1495, 929, 251, -458, -1111, -1631, -1955, -2045, -1889, -1506, -943, -266, 442, 1098, 1621, 1950, 2045, 1895, 1517, 957, 282, -427, -1085, -1612, -1946, -2046, -1901, -1527, -970, -297, 412, 1071, 1602, 1941, 2046, 1906, 1538, 984, 313, -396, -1058, -1592, -1936, -2047, -1912, -1548, -998, -328, 381, 1044, 1582, 1930, 2047, 1918, 1558, 1012, 344, -365, -1031, -1572, -1925, -2047, -1923, -1568, -1025, -359, 350, 1017, 1562, 1920, 2047, 1928, 1578, 1039, 375, -334, -1003, -1552, -1914, -2047, -1934, -1588, -1052, -390, 319, 990, 1542, 1909, 2047, 1939, 1598, 1066, 406, -303, -976, -1531, -1903, -2046, -1944, -1608, -1079, -421, 288, 962, 1521, 1897, 2046, 1949, 1618, 1092, 436, -272, -948, -1510, -1891, -2045, -1953, -1627, -1106, -452, 257, 934, 1500, 1885, 2044, 1958, 1637, 1119, 467, -241, -920, -1489, -1879, -2043, -1962, -1646, -1132, -482, 226, 906, 1478, 1873, 2042, 1967, 1655, 1145, 497, -210, -892, -1467, -1866, -2041, -1971, -1665, -1158, -513, 194, 878, 1456, 1860, 2040, 1975, 1674, 1171, 528, -179, -864, -1445, -1853, -2039, -1979, -1683, -1184, -543, 163, 850, 1434, 1846, 2037, 1983, 1691, 1197, 558, -147, -835, -1423, -1840, -2036, -1987, -1700, -1209, -573, 132, 821, 1411, 1833, 2034, 1991, 1709, 1222, 588, -116, -807, -1400, -1826, -2032, -1994, -1718, -1234, -603, 100, 792, 1389, 1818, 2030, 1998, 1726, 1247, 618, -85, -778, -1377, -1811, -2028, -2001, -1734, -1259, -633, 69, 763, 1365, 1804, 2026, 2005, 1743, 1272, 648, -53, -748, -1354, -1796, -2023, -2008, -1751, -1284, -663, 38, 734, 1342, 1789, 2021, 2011, 1759, 1296, 678, -22, -719, -1330, -1781, -2018, -2014, -1767, -1308, -693, 6, 704, 1318, 1773, 2016, 2016, 1775, 1320, 707, 9, -690, -1306, -1765, -2013, -2019, -1783, -1332, -722, -25, 675, 1294, 1757, 2010, 2022, 1790, 1344, 737, 41, -660, -1282, -1749, -2007, -2024, -1798, -1356, -751, -57, 645, 1269, 1741, 2004, 2026, 1805, 1368, 766, 72, -630, -1257, -1733, -2001, -2028, -1813, -1379, -780, -88, 615, 1244, 1724, 1997, 2030, 1820, 1391, 795, 104, -600, -1232, -1716, -1994, -2032, -1827, -1402, -809, -119, 585, 1219, 1707, 1990, 2034, 1834, 1414, 824, 135, -570, -1207, -1699, -1986, -2036, -1841, -1425, -838, -151, 555, 1194, 1690, 1983, 2037, 1848, 1436, 852, 166, -540, -1181, -1681, -1979, -2039, -1854, -1447, -867, -182, 525, 1168, 1672, 1975, 2040, 1861, 1459, 881, 198, -510, -1155, -1663, -1970, -2041, -1868, -1469, -895, -213, 494, 1142, 1653, 1966, 2043, 1874, 1480, 909, 229, -479, -1129, -1644, -1962, -2044, -1880, -1491, -923, -244, 464, 1116, 1635, 1957, 2044, 1886, 1502, 937, 260, -449, -1103, -1625, -1952, -2045, -1892, -1513, -951, -275, 433, 1090, 1616, 1948, 2046, 1898, 1523, 965, 291, -418, -1077, -1606, -1943, -2046, -1904, -1533, -979, -307, 402, 1063, 1596, 1938, 2047, 1910, 1544, 993, 322, -387, -1050, -1586, -1933, -2047, -1915, -1554, -1006, -338, 372, 1036, 1576, 1927, 2047, 1921, 1564, 1020, 353, -356, -1023, -1566, -1922, -2047, -1926, -1574, -1033, -369, 341, 1009, 1556, 1917, 2047, 1932, 1584, 1047, 384, -325, -995, -1546, -1911, -2047, -1937, -1594, -1060, -399, 310, 982, 1536, 1905, 2046, 1942, 1604, 1074, 415, -294, -968, -1525, -1899, -2046, -1947, -1614, -1087, -430, 279, 954, 1515, 1894, 2045, 1951, 1623, 1100, 445, -263, -940, -1504, -1888, -2045, -1956, -1633, -1114, -461, 247, 926, 1493, 1881, 2044, 1961, 1642, 1127, 476, -232, -912, -1483, -1875, -2043, -1965, -1652, -1140, -491, 216, 898, 1472, 1869, 2042, 1969, 1661, 1153, 507, -201, -884, -1461, -1862, -2040, -1974, -1670, -1166, -522, 185, 870, 1450, 1856, 2039, 1978, 1679, 1179, 537, -169, -855, -1439, -1849, -2038, -1982, -1688, -1191, -552, 154, 841, 1427, 1842, 2036, 1986, 1697, 1204, 567, -138, -827, -1416, -1835, -2035, -1989, -1705, -1217, -582, 122, 812, 1405, 1828, 2033, 1993, 1714, 1229, 597, -107, -798, -1393, -1821, -2031, -1997, -1723, -1242, -612, 91, 783, 1382, 1814, 2029, 2000, 1731, 1254, 627, -75, -769, -1370, -1807, -2027, -2003, -1739, -1267, -642, 60, 754, 1358, 1799, 2024, 2006, 1748, 1279, 657, -44, -740, -1347, -1792, -2022, -2009, -1756, -1291, -672, 28, 725, 1335, 1784, 2019, 2012, 1764, 1303, 687, -13, -710, -1323, -1776, -2017, -2015, -1772, -1316, -701, -3, 696, 1311, 1769, 2014, 2018, 1780, 1328, 716, 19, -681, -1299, -1761, -2011, -2021, -1787, -1339, -731, -35, 666, 1286, 1753, 2008, 2023, 1795, 1351, 745, 50, -651, -1274, -1744, -2005, -2025, -1802, -1363, -760, -66, 636, 1262, 1736, 2002, 2028, 1810, 1375, 775, 82, -621, -1249, -1728, -1999, -2030, -1817, -1386, -789, -97, 606, 1237, 1719, 1995, 2032, 1824, 1398, 804, 113, -591, -1224, -1711, -1992, -2033, -1831, -1409, -818, -129, 576, 1212, 1702, 1988, 2035, 1838, 1421, 832, 144, -561, -1199, -1693, -1984, -2037, -1845, -1432, -847, -160, 546, 1186, 1684, 1980, 2038, 1852, 1443, 861, 176, -531, -1174, -1675, -1976, -2040, -1858, -1454, -875, -191, 516, 1161, 1666, 1972, 2041, 1865, 1465, 889, 207, -500, -1148, -1657, -1968, -2042, -1871, -1476, -903, -223, 485, 1135, 1648, 1963, 2043, 1878, 1487, 918, 238, -470, -1122, -1639, -1959, -2044, -1884, -1498, -932, -254, 455, 1108, 1629, 1954, 2045, 1890, 1508, 946, 269, -439, -1095, -1620, -1950, -2045, -1896, -1519, -959, -285, 424, 1082, 1610, 1945, 2046, 1902, 1529, 973, 300, -409, -1068, -1600, -1940, -2046, -1908, -1540, -987, -316, 393, 1055, 1590, 1935, 2047, 1913, 1550, 1001, 331, -378, -1042, -1580, -1929, -2047, -1919, -1560, -1014, -347, 362, 1028, 1570, 1924, 2047, 1924, 1570, 1028, 362, -347, -1014, -1560, -1919, -2047, -1929, -1580, -1042, -378, 331, 1001, 1550, 1913, 2047, 1935, 1590, 1055, 393, -316, -987, -1540, -1908, -2046, -1940, -1600, -1068, -409, 300, 973, 1529, 1902, 2046, 1945, 1610, 1082, 424, -285, -959, -1519, -1896, -2045, -1950, -1620, -1095, -439, 269, 946, 1508, 1890, 2045, 1954, 1629, 1108, 455, -254, -932, -1498, -1884, -2044, -1959, -1639, -1122, -470, 238, 918, 1487, 1878, 2043, 1963, 1648, 1135, 485, -223, -903, -1476, -1871, -2042, -1968, -1657, -1148, -500, 207, 889, 1465, 1865, 2041, 1972, 1666, 1161, 516, -191, -875, -1454, -1858, -2040, -1976, -1675, -1174, -531, 176, 861, 1443, 1852, 2038, 1980, 1684, 1186, 546, -160, -847, -1432, -1845, -2037, -1984, -1693, -1199, -561, 144, 832, 1421, 1838, 2035, 1988, 1702, 1212, 576, -129, -818, -1409, -1831, -2033, -1992, -1711, -1224, -591, 113, 804, 1398, 1824, 2032, 1995, 1719, 1237, 606, -97, -789, -1386, -1817, -2030, -1999, -1728, -1249, -621, 82, 775, 1375, 1810, 2028, 2002, 1736, 1262, 636, -66, -760, -1363, -1802, -2025, -2005, -1744, -1274, -651, 50, 745, 1351, 1795, 2023, 2008, 1753, 1286, 666, -35, -731, -1339, -1787, -2021, -2011, -1761, -1299, -681, 19, 716, 1328, 1780, 2018, 2014, 1769, 1311, 696, -3, -701, -1316, -1772, -2015, -2017, -1776, -1323, -710, -13, 687, 1303, 1764, 2012, 2019, 1784, 1335, 725, 28, -672, -1291, -1756, -2009, -2022, -1792, -1347, -740, -44, 657, 1279, 1748, 2006, 2024, 1799, 1358, 754, 60, -642, -1267, -1739, -2003, -2027, -1807, -1370, -769, -75, 627, 1254, 1731, 2000, 2029, 1814, 1382, 783, 91, -612, -1242, -1723, -1997, -2031, -1821, -1393, -798, -107, 597, 1229, 1714, 1993, 2033, 1828, 1405, 812, 122, -582, -1217, -1705, -1989, -2035, -1835, -1416, -827, -138, 567, 1204, 1697, 1986, 2036, 1842, 1427, 841, 154, -552, -1191, -1688, -1982, -2038, -1849, -1439, -855, -169, 537, 1179, 1679, 1978, 2039, 1856, 1450, 870, 185, -522, -1166, -1670, -1974, -2040, -1862, -1461, -884, -201, 507, 1153, 1661, 1969, 2042, 1869, 1472, 898, 216, -491, -1140, -1652, -1965, -2043, -1875, -1483, -912, -232, 476, 1127, 1642, 1961, 2044, 1881, 1493, 926, 247, -461, -1114, -1633, -1956, -2045, -1888, -1504, -940, -263, 445, 1100, 1623, 1951, 2045, 1894, 1515, 954, 279, -430, -1087, -1614, -1947, -2046, -1899, -1525, -968, -294, 415, 1074, 1604, 1942, 2046, 1905, 1536, 982, 310, -399, -1060, -1594, -1937, -2047, -1911, -1546, -995, -325, 384, 1047, 1584, 1932, 2047, 1917, 1556, 1009, 341, -369, -1033, -1574, -1926, -2047, -1922, -1566, -1023, -356, 353, 1020, 1564, 1921, 2047, 1927, 1576, 1036, 372, -338, -1006, -1554, -1915, -2047, -1933, -1586, -1050, -387, 322, 993, 1544, 1910, 2047, 1938, 1596, 1063, 402, -307, -979, -1533, -1904, -2046, -1943, -1606, -1077, -418, 291, 965, 1523, 1898, 2046, 1948, 1616, 1090, 433, -275, -951, -1513, -1892, -2045, -1952, -1625, -1103, -449, 260, 937, 1502, 1886, 2044, 1957, 1635, 1116, 464, -244, -923, -1491, -1880, -2044, -1962, -1644, -1129, -479, 229, 909, 1480, 1874, 2043, 1966, 1653, 1142, 494, -213, -895, -1469, -1868, -2041, -1970, -1663, -1155, -510, 198, 881, 1459, 1861, 2040, 1975, 1672, 1168, 525, -182, -867, -1447, -1854, -2039, -1979, -1681, -1181, -540, 166, 852, 1436, 1848, 2037, 1983, 1690, 1194, 555, -151, -838, -1425, -1841, -2036, -1986, -1699, -1207, -570, 135, 824, 1414, 1834, 2034, 1990, 1707, 1219, 585, -119, -809, -1402, -1827, -2032, -1994, -1716, -1232, -600, 104, 795, 1391, 1820, 2030, 1997, 1724, 1244, 615, -88, -780, -1379, -1813, -2028, -2001, -1733, -1257, -630, 72, 766, 1368, 1805, 2026, 2004, 1741, 1269, 645, -57, -751, -1356, -1798, -2024, -2007, -1749, -1282, -660, 41, 737, 1344, 1790, 2022, 2010, 1757, 1294, 675, -25, -722, -1332, -1783, -2019, -2013, -1765, -1306, -690, 9, 707, 1320, 1775, 2016, 2016, 1773, 1318, 704, 6, -693, -1308, -1767, -2014, -2018, -1781, -1330, -719, -22, 678, 1296, 1759, 2011, 2021, 1789, 1342, 734, 38, -663, -1284, -1751, -2008, -2023, -1796, -1354, -748, -53, 648, 1272, 1743, 2005, 2026, 1804, 1365, 763, 69, -633, -1259, -1734, -2001, -2028, -1811, -1377, -778, -85, 618, 1247, 1726, 1998, 2030, 1818, 1389, 792, 100, -603, -1234, -1718, -1994, -2032, -1826, -1400, -807, -116, 588, 1222, 1709, 1991, 2034, 1833, 1411, 821, 132, -573, -1209, -1700, -1987, -2036, -1840, -1423, -835, -147, 558, 1197, 1691, 1983, 2037, 1846, 1434, 850, 163, -543, -1184, -1683, -1979, -2039, -1853, -1445, -864, -179, 528, 1171, 1674, 1975, 2040, 1860, 1456, 878, 194, -513, -1158, -1665, -1971, -2041, -1866, -1467, -892, -210, 497, 1145, 1655, 1967, 2042, 1873, 1478, 906, 226, -482, -1132, -1646, -1962, -2043, -1879, -1489, -920, -241, 467, 1119, 1637, 1958, 2044, 1885, 1500, 934, 257, -452, -1106, -1627, -1953, -2045, -1891, -1510, -948, -272, 436, 1092, 1618, 1949, 2046, 1897, 1521, 962, 288, -421, -1079, -1608, -1944, -2046, -1903, -1531, -976, -303, 406, 1066, 1598, 1939, 2047, 1909, 1542, 990, 319, -390, -1052, -1588, -1934, -2047, -1914, -1552, -1003, -334, 375, 1039, 1578, 1928, 2047, 1920, 1562, 1017, 350, -359, -1025, -1568, -1923, -2047, -1925, -1572, -1031, -365, 344, 1012, 1558, 1918, 2047, 1930, 1582, 1044, 381, -328, -998, -1548, -1912, -2047, -1936, -1592, -1058, -396, 313, 984, 1538, 1906, 2046, 1941, 1602, 1071, 412, -297, -970, -1527, -1901, -2046, -1946, -1612, -1085, -427, 282, 957, 1517, 1895, 2045, 1950, 1621, 1098, 442, -266, -943, -1506, -1889, -2045, -1955, -1631, -1111, -458, 251, 929, 1495, 1883, 2044, 1960, 1640, 1124, 473, -235, -915, -1485, -1876, -2043, -1964, -1650, -1137, -488, 219, 901, 1474, 1870, 2042, 1969, 1659, 1150, 503, -204, -887, -1463, -1864, -2041, -1973, -1668, -1163, -519, 188, 872, 1452, 1857, 2039, 1977, 1677, 1176, 534, -172, -858, -1441, -1850, -2038, -1981, -1686, -1189, -549, 157, 844, 1430, 1844, 2037, 1985, 1695, 1202, 564, -141, -830, -1418, -1837, -2035, -1989, -1704, -1214, -579, 126, 815, 1407, 1830, 2033, 1992, 1712, 1227, 594, -110, -801, -1395, -1823, -2031, -1996, -1721, -1239, -609, 94, 786, 1384, 1816, 2029, 1999, 1729, 1252, 624, -78, -772, -1372, -1808, -2027, -2003, -1738, -1264, -639, 63, 757, 1361, 1801, 2025, 2006, 1746, 1277, 654, -47, -743, -1349, -1793, -2022, -2009, -1754, -1289, -669, 31, 728, 1337, 1786, 2020, 2012, 1762, 1301, 684, -16, -713, -1325, -1778, -2017, -2015, -1770, -1313, -698};
    
    /********** SPI Register Addresses and Values in Arrays **********/
    //Should work for both devices.
    uint16_t REG_ADD[66]={0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x001F, 0x0020, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x003E, 0x003F, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0047, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, 0x001E, 0x001D};
    //If Fout is from SRAM:
    uint16_t REG_VAL_SRAM[66]={0x0000, 0x0E00, 0x0000, 0x0000, 0x4000, 0x4000, 0x4000, 0x4000, 0x0000, 0x1F00, 0x1F00, 0x1F00, 0x1F00, 0x0000, 0x0000, 0x0000, 0x000E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0111, 0x1000, 0x0101, 0x0101, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x4000, 0x4000, 0x4000, 0x0001, 0x0200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0001, 0x0001};
    //If Fout is from DDS (Fout=10MHz, Fdac=180MHz):
    uint16_t REG_VAL_DDS[66]={0x0000, 0x0E00, 0x0000, 0x0000, 0x4000, 0x4000, 0x4000, 0x4000, 0x0000, 0x1F00, 0x1F00, 0x1F00, 0x1F00, 0x0000, 0x0000, 0x0000, 0x000E, 0x0000, 0x0000, 0x0000, 0x0000, 0x3131, 0x3131, 0x0111, 0x1000, 0x0101, 0x0101, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x4000, 0x4000, 0x4000, 0x0001, 0x0200, 0x0E38, 0xE400, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0000, 0x0000, 0xFFF0, 0x0100, 0x0001, 0x0001};
    
    
    /********** Functions **********/
    
    //For initializing SPI communication
    void SPI_INIT(){
        
    	//Set data length, polarity, and frequency
        spi.format( 16, 0 );
        spi.frequency( 1000000 );
        
    	//Pulse RESET pin low then high to reset SPI register values
        RESETB = 0;
        wait_us( 10 );
        RESETB = 1;
    }
    
    //For reading from SPI registers
    int16_t SPI_READ( uint16_t addr ){
        
        CSB = 0;
        
        uint16_t read_addr = 0x8000+addr;
        spi.write( read_addr );
        int16_t reg_data = spi.write( 0 );
        
        CSB = 1;
        wait_us( 1 );
        
        return reg_data;
    }
    
    //For writing to SPI registers
    void SPI_WRITE( uint16_t addr, int16_t data ){
    	
        CSB = 0;
        
        spi.write( addr );
        spi.write( data );
        
        CSB = 1;
        wait_us( 1 );
    }
    
    //For writing data to SRAM
    void UPDATE_SRAM( int16_t data[] ){
        
        SPI_WRITE( 0x001E, 0x0004 );
        
        int16_t data_shifted = 0;
        
        uint16_t SRAM_ADD = 0x6000;
        
        for ( int i=0; i<4096; i++ ){
            data_shifted = data[i] << 4;			//4 bit shifts for AD9106, 2 for AD9102
            SPI_WRITE( SRAM_ADD+i, data_shifted );
        }
        
        SPI_WRITE( 0x001E, 0x0010 );   
    }
    
    //For printing first 16 SRAM data in terminal
    void READ_SRAM( ){
        
        SPI_WRITE( 0x001E, 0x000C );
        
        int16_t data_shifted = 0;
        
        uint16_t SRAM_ADD = 0x6000;
        
        for ( int i=0; i<16; i++ ){
            data_shifted = SPI_READ( SRAM_ADD+i ) >> 4;
            pc.printf( "0x%04X, %d\n", SRAM_ADD+i, data_shifted);
        }
        
        SPI_WRITE( 0x001E, 0x0010 );
        
    }
    
    //For printing SPI register values in terminal
    void UPDATE_REGVAL( uint16_t data[] ){
       
        uint16_t data_display = 0;
         
        for ( int i=0; i<66; i++ ){
            SPI_WRITE( REG_ADD[i], data[i] );
            data_display = SPI_READ( REG_ADD[i]);
            pc.printf( "0x%04X, 0x%04X\n", REG_ADD[i], data_display );
        }
           
    }
    
    
    /********** Main Function **********/
    
    int main()
    {
        
        SPI_INIT();
        
        UPDATE_SRAM( SRAM_DATA_10M_156M25 );	//When generating output from SRAM, write to SRAM registers first.
        //READ_SRAM();    
        UPDATE_REGVAL( REG_VAL_SRAM );			//Then write to SPI registers.
        TRIGGERB = 0;							//Start of pattern generation
    	
    	//Generating output from DDS:
    	//UPDATE_REGVAL ( REG_VAL_DDS );
        
        pc.printf( "Terminate pattern? (If yes, press y.)\n" );
        char STOP = 'N';
        
        while ( (STOP != 'Y') && (STOP != 'y') ){	//Continue generating pattern until y key is pressed.
            if( pc.readable() ){
                STOP = pc.getc();
            }
        }
        
        TRIGGERB = 1;							//End of pattern generation
        pc.printf( "Pattern terminated.\n" );
        
    }

Children
No Data