This is the DDRO software we write to operate the chip
Embed:
(wiki syntax)
Show/hide line numbers
scan.cpp
00001 #include "scan.h" 00002 using namespace std; 00003 00004 #define SCAN_TIME 10 00005 #define SCAN_DEPTH 226 00006 00007 DigitalOut lock_indicator(LED2); 00008 Serial pc(USBTX, USBRX);//tx, rx => for debugging purposes 00009 DigitalOut phi (p16); 00010 DigitalOut phi_bar (p17); 00011 DigitalOut load_chain (p15); 00012 DigitalOut load_chip (p20); 00013 DigitalOut data_in (p19); 00014 DigitalIn data_out(p18); 00015 DigitalOut led2(LED2); 00016 DigitalOut led3(LED3); 00017 DigitalOut led4(LED4); 00018 00019 // constructor 00020 PLL::PLL() 00021 { 00022 A = new unsigned int [SCAN_DEPTH]; 00023 for (int i=0; i<SCAN_DEPTH; i++) { 00024 A[i] = 0; 00025 } 00026 } 00027 00028 /******************************* 00029 By default, this function setup the PLL as internal feedback 00030 (i.e. no phase synchronization guarantee between internal clock 00031 to refclk) 00032 The equations are: 00033 DCO frequency = (REFCLK/Predivider) x Feedback Divider x Feedback Divider Pre-Scaler 00034 PLLOUTA frequency = DCO frequency / (Forward Divider Pre-Scaler x Forward Divider A) 00035 PLLOUTB frequency = DCO frequency / (Forward Divider Pre-Scaler x Forward Divider B) 00036 Bit vectors to set: 00037 RO 00038 internal_clk_source 00039 ext_div_by 00040 ext_clk_source 00041 DCO_BYPASS 00042 PLL_FEEDBACK_MODE 00043 PLL_TUNE 00044 PLL_A_OR_B 00045 00046 Values to set: 00047 void plloutAon();// set PLLout A on and B off 00048 void plloutBon();// set PLLout A off and B on 00049 void setPrediv(int val);//Setting the Prediv bits A[143:138] Range 1-32 00050 void setFbDivPreScaler(int val);//Setting the Feedback Divider Pre-scalar bits A[143:138] Range: 1-4 00051 void setFbDiv(int val);//Setting the Feedback Divider bits A[133:126] Range: 1-32 00052 void setFwDivPreScalerA(int val);//Setting the Forward Divider Pre-scalar bits for A A[150:149] Range: 1,2,4 00053 void setFwDivA(int val);//Setting the Forward Divider Pre-scalar bits A[148:144] Range: 1-32 00054 void setFwDivPreScalerB(int val);//Setting the Forward Divider Pre-scalar bits for B A[150:149] Range: 1,2,4 00055 void setFwDivB(int val);//Setting the Forward Divider Pre-scalar bits for B A[148:144] Range: 1-32 00056 void setLFTUNE(int interval);//Setting LFTUNE A[83:43] Range: 0(2.5-3.2) - 1(3.2-5.0) 00057 void setFFTUNE(int interval);//Setting FFTUNE A[41:26] 00058 void setINTFBK();//Setting feedback mode A[42] 00059 void setROandOther();//Setting(disabling) ring_osc A[7:0] 00060 void setINTMUX(int clk);//Setting internal clk source bits A[9:8] Range: 0: HCLK_EXT 1: ring_osc 2: PLLOUT_A 3: PLLOUT_B 00061 void setEXTMUX(int clk);//Setting external clk source bits A[15:14] Range: 0: HCLK_EXT 1: HCLK_divider 2: PLLOUT_A 3: PLLOUT_B 00062 void setEXTDIV(int val);//Setting clk divider bits for B A[13:10] Range: 0-15, divided by 2^val 00063 void resetPLL(int val);//Setting PLL_RESET A[158], range: 0:unreset 1:reset 00064 00065 *******************************/ 00066 00067 int PLL::setPLL(int frequency) 00068 { 00069 00070 //input should be multiple of 5MHz, range should be from 100 - 200 00071 00072 if (frequency < 50) { 00073 //infeasible frequency 00074 } else if (frequency <63) { 00075 frequency = frequency * 2; 00076 //DCO=20/4*(freq*2)*3, PLLOUT=DCO/12 for freq=[50-62] 00077 //DCO range: 3G to 3.75G 00078 setFBK_MODE(1);//set internal mode 00079 plloutAon(); 00080 setPrediv(4); 00081 setFbDivPreScaler(3); 00082 setFbDiv(frequency*2); 00083 setFwDivPreScalerA(1); 00084 setFwDivA(12); 00085 setFwDivPreScalerB(1); 00086 setFwDivB(12); 00087 if (frequency<107) { //3G - 3.2G 00088 setLFTUNE(0); 00089 setFFTUNE(0); 00090 } else { //3.2G - 3.75G 00091 setLFTUNE(1); 00092 setFFTUNE(1); 00093 } 00094 setINTFBK(); 00095 setROandOther(); 00096 setINTMUX(2);//PLLOUTA 00097 setEXTMUX(1);//HCLK_DIVIDER 00098 setEXTDIV(10); 00099 resetPLL(1); 00100 initScan(); 00101 scanIn(); 00102 resetPLL(0); 00103 scanIn(); 00104 } else if (frequency <81) { 00105 frequency = frequency * 2; 00106 //DCO=20*freq, PLLOUT=DCO/8 for freq=[63-80] 00107 //DCO range: 2.5G - 3.2G 00108 setFBK_MODE(1);//set internal mode 00109 plloutAon(); 00110 setPrediv(1); 00111 setFbDivPreScaler(1); 00112 setFbDiv(frequency); 00113 setFwDivPreScalerA(1); 00114 setFwDivA(8); 00115 setFwDivPreScalerB(1); 00116 setFwDivB(8); 00117 setLFTUNE(0); 00118 setFFTUNE(0); 00119 setINTFBK(); 00120 setROandOther(); 00121 setINTMUX(2);//PLLOUTA 00122 setEXTMUX(1);//HCLK_DIVIDER 00123 setEXTDIV(10); 00124 resetPLL(1); 00125 initScan(); 00126 scanIn(); 00127 resetPLL(0); 00128 scanIn(); 00129 } else if (frequency <=100) { 00130 frequency = frequency * 2; 00131 //DCO=20*freq, PLLOUT=DCO/8 for freq=[81-100] 00132 //DCO range: 3.2G - 4G 00133 setFBK_MODE(1);//set internal mode 00134 plloutAon(); 00135 setPrediv(1); 00136 setFbDivPreScaler(1); 00137 setFbDiv(frequency); 00138 setFwDivPreScalerA(1); 00139 setFwDivA(8); 00140 setFwDivPreScalerB(1); 00141 setFwDivB(8); 00142 setLFTUNE(1); 00143 setFFTUNE(1); 00144 setINTFBK(); 00145 setROandOther(); 00146 setINTMUX(2);//PLLOUTA 00147 setEXTMUX(1);//HCLK_DIVIDER 00148 setEXTDIV(10); 00149 resetPLL(1); 00150 initScan(); 00151 scanIn(); 00152 resetPLL(0); 00153 scanIn(); 00154 } else if (frequency < 125) { 00155 //DCO=20/4*(freq*2)*3, PLLOUT=DCO/6 for freq=[100-124] 00156 //DCO range: 3G to 3.75G 00157 setFBK_MODE(1);//set internal mode 00158 plloutAon(); 00159 setPrediv(4); 00160 setFbDivPreScaler(3); 00161 setFbDiv(frequency*2); 00162 setFwDivPreScalerA(1); 00163 setFwDivA(6); 00164 setFwDivPreScalerB(1); 00165 setFwDivB(6); 00166 if (frequency<107) { //3G - 3.2G 00167 setLFTUNE(0); 00168 setFFTUNE(0); 00169 } else { //3.2G - 3.75G 00170 setLFTUNE(1); 00171 setFFTUNE(1); 00172 } 00173 setINTFBK(); 00174 setROandOther(); 00175 setINTMUX(2);//PLLOUTA 00176 setEXTMUX(1);//HCLK_DIVIDER 00177 setEXTDIV(10); 00178 resetPLL(1); 00179 initScan(); 00180 scanIn(); 00181 resetPLL(0); 00182 scanIn(); 00183 } else if (frequency < 161) { 00184 //DCO=20*freq, PLLOUT=DCO/4 for freq=[125-160] 00185 //DCO range: 2.5G - 3.2G 00186 setFBK_MODE(1);//set internal mode 00187 plloutAon(); 00188 setPrediv(1); 00189 setFbDivPreScaler(1); 00190 setFbDiv(frequency); 00191 setFwDivPreScalerA(1); 00192 setFwDivA(4); 00193 setFwDivPreScalerB(1); 00194 setFwDivB(4); 00195 setLFTUNE(0); 00196 setFFTUNE(0); 00197 setINTFBK(); 00198 setROandOther(); 00199 setINTMUX(2);//PLLOUTA 00200 setEXTMUX(1);//HCLK_DIVIDER 00201 setEXTDIV(10); 00202 resetPLL(1); 00203 initScan(); 00204 scanIn(); 00205 resetPLL(0); 00206 scanIn(); 00207 } else if (frequency <= 200) { 00208 //DCO=20*freq, PLLOUT=DCO/4 for freq=[160-200] 00209 //DCO range: 3.2G - 4G 00210 setFBK_MODE(1);//set internal mode 00211 plloutAon(); 00212 setPrediv(1); 00213 setFbDivPreScaler(1); 00214 setFbDiv(frequency); 00215 setFwDivPreScalerA(1); 00216 setFwDivA(4); 00217 setFwDivPreScalerB(1); 00218 setFwDivB(4); 00219 setLFTUNE(1); 00220 setFFTUNE(1); 00221 setINTFBK(); 00222 setROandOther(); 00223 setINTMUX(2);//PLLOUTA 00224 setEXTMUX(1);//HCLK_DIVIDER 00225 setEXTDIV(10); 00226 resetPLL(1); 00227 initScan(); 00228 scanIn(); 00229 resetPLL(0); 00230 scanIn(); 00231 } else { 00232 //infeasible frequency 00233 } 00234 wait(0.1); 00235 return check_lock(); 00236 } 00237 00238 /******************************************** 00239 PLL test function 00240 ********************************************/ 00241 00242 int PLL::testPLL() 00243 { 00244 return 0; 00245 } 00246 00247 // lock indicator 00248 int PLL::check_lock() 00249 { 00250 scanOut(); 00251 lock_indicator = A[219]; 00252 return lock_indicator; 00253 } 00254 00255 // feedback mode setting 00256 void PLL::setFBK_MODE(int MODE) 00257 { 00258 FB_MODE = MODE; 00259 } 00260 00261 00262 /************************************************** 00263 *************************************************** 00264 Private Functions: 00265 *************************************************** 00266 **************************************************/ 00267 00268 00269 /************************************************** 00270 Scan chain operation 00271 **************************************************/ 00272 // scan A into chip 00273 int PLL::scanIn() 00274 { 00275 for (int i=0; i<SCAN_DEPTH; i++) { 00276 data_in = A[i]; 00277 scanAction(); 00278 } 00279 loadChip(); 00280 } 00281 00282 // scan outto A 00283 int PLL::scanOut() 00284 { 00285 loadChain(); 00286 for (int i=0; i<SCAN_DEPTH; i++) { 00287 A[i] = 0; 00288 A[i] = data_out; 00289 scanAction(); 00290 } 00291 00292 } 00293 00294 // initialize the scan chain 00295 void PLL::initScan() 00296 { 00297 phi = 0; 00298 phi_bar = 0; 00299 load_chain = 0; 00300 load_chip = 0; 00301 data_in = 0; 00302 data_out.mode(PullNone); 00303 lock_indicator = 0; 00304 } 00305 00306 // load scan chain values to chip 00307 void PLL::loadChip() 00308 { 00309 wait_us(SCAN_TIME); 00310 load_chip = 0; 00311 wait_us(SCAN_TIME); 00312 load_chip = 1; 00313 wait_us(SCAN_TIME); 00314 load_chip = 0; 00315 wait_us(SCAN_TIME); 00316 } 00317 00318 // load chip values to scan chain 00319 void PLL::loadChain() 00320 { 00321 wait_us(SCAN_TIME); 00322 load_chain = 0; 00323 wait_us(SCAN_TIME); 00324 load_chain = 1; 00325 wait_us(SCAN_TIME); 00326 phi = 0; 00327 phi_bar = 0; 00328 wait_us(SCAN_TIME); 00329 phi = 1; 00330 wait_us(SCAN_TIME); 00331 phi = 0; 00332 wait_us(SCAN_TIME); 00333 phi_bar = 1; 00334 wait_us(SCAN_TIME); 00335 phi_bar = 0; 00336 wait_us(SCAN_TIME); 00337 load_chain = 0; 00338 wait_us(SCAN_TIME); 00339 } 00340 00341 // scan chain step in 00342 void PLL::scanAction () 00343 { 00344 wait_us(SCAN_TIME); 00345 phi = 0; 00346 phi_bar = 0; 00347 wait_us(SCAN_TIME); 00348 phi = 1; 00349 wait_us(SCAN_TIME); 00350 phi = 0; 00351 wait_us(SCAN_TIME); 00352 phi_bar = 1; 00353 wait_us(SCAN_TIME); 00354 phi_bar = 0; 00355 wait_us(SCAN_TIME); 00356 } 00357 00358 00359 /************************************************** 00360 Scan vector setting functions 00361 **************************************************/ 00362 // set Vector for PLL testing 00363 void PLL::setVector() 00364 { 00365 for (int i=0; i<SCAN_DEPTH; i++) { 00366 A[i] = 0; 00367 } 00368 A[1] = 1; 00369 A[2] = 1; 00370 A[4] = 1; 00371 A[9] = 1; 00372 A[10] = 1; 00373 A[13] = 1; 00374 A[14] = 1; 00375 A[34] = 1; 00376 A[42] = 1; 00377 A[63] = 1; 00378 A[73] = 1; 00379 A[79] = 1; 00380 A[81] = 1; 00381 A[126] = 1; 00382 A[128] = 1; 00383 A[129] = 1; 00384 A[130] = 1; 00385 A[131] = 1; 00386 A[132] = 1; 00387 A[145] = 1; 00388 A[146] = 1; 00389 A[147] = 1; 00390 A[152] = 1; 00391 A[153] = 1; 00392 A[154] = 1; 00393 A[168] = 1; 00394 A[169] = 1; 00395 } 00396 00397 /************************************************** 00398 Setting PLL_STOPCLKA bit A[162] 00399 Setting PLL_STOPCLKB bit A[163] 00400 **************************************************/ 00401 void PLL::plloutAon() 00402 { 00403 A[162] = 0; 00404 A[163] = 1; 00405 } 00406 00407 /************************************************** 00408 Setting PLL_STOPCLKA bit A[162] 00409 Setting PLL_STOPCLKB bit A[163] 00410 **************************************************/ 00411 void PLL::plloutBon() 00412 { 00413 A[162] = 1; 00414 A[163] = 0; 00415 } 00416 00417 00418 /************************************************** 00419 Setting the Prediv bits A[143:138] 00420 Range: 1-32 00421 **************************************************/ 00422 void PLL::setPrediv(int val) 00423 { 00424 //scan_load[143:138] = PLL_PREDIV; 00425 A[143]=0; //PREDIV5 unused, connect to ground 00426 switch(val) { 00427 case 1: { 00428 A[142]=0; 00429 A[141]=0; 00430 A[140]=0; 00431 A[139]=0; 00432 A[138]=0; 00433 break; 00434 } 00435 case 2: { 00436 A[142]=1; 00437 A[141]=1; 00438 A[140]=1; 00439 A[139]=1; 00440 A[138]=1; 00441 break; 00442 } 00443 case 3: { 00444 A[142]=1; 00445 A[141]=1; 00446 A[140]=1; 00447 A[139]=1; 00448 A[138]=0; 00449 break; 00450 } 00451 case 4: { 00452 A[142]=1; 00453 A[141]=1; 00454 A[140]=1; 00455 A[139]=0; 00456 A[138]=0; 00457 break; 00458 } 00459 case 5: { 00460 A[142]=1; 00461 A[141]=1; 00462 A[140]=0; 00463 A[139]=0; 00464 A[138]=1; 00465 break; 00466 } 00467 case 6: { 00468 A[142]=1; 00469 A[141]=0; 00470 A[140]=0; 00471 A[139]=1; 00472 A[138]=1; 00473 break; 00474 } 00475 case 7: { 00476 A[142]=0; 00477 A[141]=0; 00478 A[140]=1; 00479 A[139]=1; 00480 A[138]=0; 00481 break; 00482 } 00483 case 8: { 00484 A[142]=0; 00485 A[141]=1; 00486 A[140]=1; 00487 A[139]=0; 00488 A[138]=1; 00489 break; 00490 } 00491 case 9: { 00492 A[142]=1; 00493 A[141]=1; 00494 A[140]=0; 00495 A[139]=1; 00496 A[138]=0; 00497 break; 00498 } 00499 case 10: { 00500 A[142]=1; 00501 A[141]=0; 00502 A[140]=1; 00503 A[139]=0; 00504 A[138]=0; 00505 break; 00506 } 00507 case 11: { 00508 A[142]=0; 00509 A[141]=1; 00510 A[140]=0; 00511 A[139]=0; 00512 A[138]=1; 00513 break; 00514 } 00515 case 12: { 00516 A[142]=1; 00517 A[141]=0; 00518 A[140]=0; 00519 A[139]=1; 00520 A[138]=0; 00521 break; 00522 } 00523 case 13: { 00524 A[142]=0; 00525 A[141]=0; 00526 A[140]=1; 00527 A[139]=0; 00528 A[138]=0; 00529 break; 00530 } 00531 case 14: { 00532 A[142]=0; 00533 A[141]=1; 00534 A[140]=0; 00535 A[139]=0; 00536 A[138]=0; 00537 break; 00538 } 00539 case 15: { 00540 A[142]=1; 00541 A[141]=0; 00542 A[140]=0; 00543 A[139]=0; 00544 A[138]=0; 00545 break; 00546 } 00547 case 16: { 00548 A[142]=0; 00549 A[141]=0; 00550 A[140]=0; 00551 A[139]=0; 00552 A[138]=1; 00553 break; 00554 } 00555 case 17: { 00556 A[142]=0; 00557 A[141]=0; 00558 A[140]=0; 00559 A[139]=1; 00560 A[138]=0; 00561 break; 00562 } 00563 case 18: { 00564 A[142]=0; 00565 A[141]=0; 00566 A[140]=1; 00567 A[139]=0; 00568 A[138]=1; 00569 break; 00570 } 00571 case 19: { 00572 A[142]=0; 00573 A[141]=1; 00574 A[140]=0; 00575 A[139]=1; 00576 A[138]=0; 00577 break; 00578 } 00579 case 20: { 00580 A[142]=1; 00581 A[141]=0; 00582 A[140]=1; 00583 A[139]=0; 00584 A[138]=1; 00585 break; 00586 } 00587 case 21: { 00588 A[142]=0; 00589 A[141]=1; 00590 A[140]=0; 00591 A[139]=1; 00592 A[138]=1; 00593 break; 00594 } 00595 case 22: { 00596 A[142]=1; 00597 A[141]=0; 00598 A[140]=1; 00599 A[139]=1; 00600 A[138]=1; 00601 break; 00602 } 00603 case 23: { 00604 A[142]=0; 00605 A[141]=1; 00606 A[140]=1; 00607 A[139]=1; 00608 A[138]=0; 00609 break; 00610 } 00611 case 24: { 00612 A[142]=1; 00613 A[141]=1; 00614 A[140]=1; 00615 A[139]=0; 00616 A[138]=1; 00617 break; 00618 } 00619 case 25: { 00620 A[142]=1; 00621 A[141]=1; 00622 A[140]=0; 00623 A[139]=1; 00624 A[138]=1; 00625 break; 00626 } 00627 case 26: { 00628 A[142]=1; 00629 A[141]=0; 00630 A[140]=1; 00631 A[139]=1; 00632 A[138]=0; 00633 break; 00634 } 00635 case 27: { 00636 A[142]=0; 00637 A[141]=1; 00638 A[140]=1; 00639 A[139]=0; 00640 A[138]=0; 00641 break; 00642 } 00643 case 28: { 00644 A[142]=1; 00645 A[141]=1; 00646 A[140]=0; 00647 A[139]=0; 00648 A[138]=0; 00649 break; 00650 } 00651 case 29: { 00652 A[142]=1; 00653 A[141]=0; 00654 A[140]=0; 00655 A[139]=0; 00656 A[138]=1; 00657 break; 00658 } 00659 case 30: { 00660 A[142]=0; 00661 A[141]=0; 00662 A[140]=0; 00663 A[139]=1; 00664 A[138]=1; 00665 break; 00666 } 00667 case 31: { 00668 A[142]=0; 00669 A[141]=0; 00670 A[140]=1; 00671 A[139]=1; 00672 A[138]=1; 00673 break; 00674 } 00675 case 32: { 00676 A[142]=0; 00677 A[141]=1; 00678 A[140]=1; 00679 A[139]=1; 00680 A[138]=1; 00681 break; 00682 } 00683 default: { 00684 A[142]=0; 00685 A[141]=0; 00686 A[140]=0; 00687 A[139]=0; 00688 A[138]=0; 00689 break; 00690 } 00691 } 00692 } 00693 00694 /************************************************** 00695 Setting the Feedback Divider Pre-scalar bits A[136:134] 00696 Range: 1-4 00697 **************************************************/ 00698 void PLL::setFbDivPreScaler(int val) 00699 { 00700 //scan_load[136:126] = PLL_MULTINT; 00701 //PLL_MULTINT[10] unused, connect to ground 00702 A[136] = 0; 00703 //Feedback Divider Pre-Scaler = MULTINT[9:8] 00704 switch(val) { 00705 case 1: { 00706 A[135] = 0; 00707 A[134] = 0; 00708 break; 00709 } 00710 case 2: { 00711 A[135] = 1; 00712 A[134] = 0; 00713 break; 00714 } 00715 case 3: { 00716 A[135] = 0; 00717 A[134] = 1; 00718 break; 00719 } 00720 case 4: { 00721 A[135] = 1; 00722 A[134] = 1; 00723 break; 00724 } 00725 default: { 00726 A[135] = 0; 00727 A[134] = 0; 00728 break; 00729 } 00730 } 00731 } 00732 00733 /************************************************** 00734 Setting the Feedback Divider bits A[133:126] 00735 Range: 1-255 00736 **************************************************/ 00737 void PLL::setFbDiv(int val) 00738 { 00739 //scan_load[133:126] = PLL_MULTINT; 00740 //Feedback Divider = MULTINT[7:0] 00741 switch(val) { 00742 case 1: { 00743 A[133]=0; 00744 A[132]=0; 00745 A[131]=0; 00746 A[130]=0; 00747 A[129]=0; 00748 A[128]=0; 00749 A[127]=0; 00750 A[126]=0; 00751 break; 00752 } 00753 case 34: { 00754 A[133]=1; 00755 A[132]=1; 00756 A[131]=1; 00757 A[130]=0; 00758 A[129]=0; 00759 A[128]=0; 00760 A[127]=1; 00761 A[126]=1; 00762 break; 00763 } 00764 case 67: { 00765 A[133]=0; 00766 A[132]=1; 00767 A[131]=1; 00768 A[130]=0; 00769 A[129]=0; 00770 A[128]=0; 00771 A[127]=0; 00772 A[126]=1; 00773 break; 00774 } 00775 case 2: { 00776 A[133]=1; 00777 A[132]=1; 00778 A[131]=1; 00779 A[130]=1; 00780 A[129]=1; 00781 A[128]=1; 00782 A[127]=1; 00783 A[126]=1; 00784 break; 00785 } 00786 case 35: { 00787 A[133]=0; 00788 A[132]=1; 00789 A[131]=0; 00790 A[130]=0; 00791 A[129]=0; 00792 A[128]=1; 00793 A[127]=1; 00794 A[126]=0; 00795 break; 00796 } 00797 case 68: { 00798 A[133]=1; 00799 A[132]=1; 00800 A[131]=0; 00801 A[130]=0; 00802 A[129]=0; 00803 A[128]=0; 00804 A[127]=1; 00805 A[126]=0; 00806 break; 00807 } 00808 case 3: { 00809 A[133]=0; 00810 A[132]=1; 00811 A[131]=1; 00812 A[130]=1; 00813 A[129]=1; 00814 A[128]=1; 00815 A[127]=1; 00816 A[126]=0; 00817 break; 00818 } 00819 case 36: { 00820 A[133]=1; 00821 A[132]=0; 00822 A[131]=0; 00823 A[130]=0; 00824 A[129]=1; 00825 A[128]=1; 00826 A[127]=0; 00827 A[126]=1; 00828 break; 00829 } 00830 case 69: { 00831 A[133]=0; 00832 A[132]=0; 00833 A[131]=0; 00834 A[130]=0; 00835 A[129]=0; 00836 A[128]=1; 00837 A[127]=0; 00838 A[126]=1; 00839 break; 00840 } 00841 case 4: { 00842 A[133]=1; 00843 A[132]=1; 00844 A[131]=1; 00845 A[130]=1; 00846 A[129]=1; 00847 A[128]=1; 00848 A[127]=0; 00849 A[126]=1; 00850 break; 00851 } 00852 case 37: { 00853 A[133]=0; 00854 A[132]=0; 00855 A[131]=0; 00856 A[130]=1; 00857 A[129]=1; 00858 A[128]=0; 00859 A[127]=1; 00860 A[126]=1; 00861 break; 00862 } 00863 case 70: { 00864 A[133]=1; 00865 A[132]=0; 00866 A[131]=0; 00867 A[130]=0; 00868 A[129]=1; 00869 A[128]=0; 00870 A[127]=1; 00871 A[126]=1; 00872 break; 00873 } 00874 case 5: { 00875 A[133]=0; 00876 A[132]=1; 00877 A[131]=1; 00878 A[130]=1; 00879 A[129]=1; 00880 A[128]=0; 00881 A[127]=1; 00882 A[126]=0; 00883 break; 00884 } 00885 case 38: { 00886 A[133]=1; 00887 A[132]=0; 00888 A[131]=1; 00889 A[130]=1; 00890 A[129]=0; 00891 A[128]=1; 00892 A[127]=1; 00893 A[126]=1; 00894 break; 00895 } 00896 case 71: { 00897 A[133]=0; 00898 A[132]=0; 00899 A[131]=0; 00900 A[130]=1; 00901 A[129]=0; 00902 A[128]=1; 00903 A[127]=1; 00904 A[126]=1; 00905 break; 00906 } 00907 case 6: { 00908 A[133]=1; 00909 A[132]=1; 00910 A[131]=1; 00911 A[130]=1; 00912 A[129]=0; 00913 A[128]=1; 00914 A[127]=0; 00915 A[126]=1; 00916 break; 00917 } 00918 case 39: { 00919 A[133]=0; 00920 A[132]=1; 00921 A[131]=1; 00922 A[130]=0; 00923 A[129]=1; 00924 A[128]=1; 00925 A[127]=1; 00926 A[126]=1; 00927 break; 00928 } 00929 case 72: { 00930 A[133]=1; 00931 A[132]=0; 00932 A[131]=1; 00933 A[130]=0; 00934 A[129]=1; 00935 A[128]=1; 00936 A[127]=1; 00937 A[126]=1; 00938 break; 00939 } 00940 case 7: { 00941 A[133]=0; 00942 A[132]=1; 00943 A[131]=1; 00944 A[130]=0; 00945 A[129]=1; 00946 A[128]=0; 00947 A[127]=1; 00948 A[126]=0; 00949 break; 00950 } 00951 case 40: { 00952 A[133]=1; 00953 A[132]=1; 00954 A[131]=0; 00955 A[130]=1; 00956 A[129]=1; 00957 A[128]=1; 00958 A[127]=1; 00959 A[126]=0; 00960 break; 00961 } 00962 case 73: { 00963 A[133]=0; 00964 A[132]=1; 00965 A[131]=0; 00966 A[130]=1; 00967 A[129]=1; 00968 A[128]=1; 00969 A[127]=1; 00970 A[126]=1; 00971 break; 00972 } 00973 case 8: { 00974 A[133]=1; 00975 A[132]=1; 00976 A[131]=0; 00977 A[130]=1; 00978 A[129]=0; 00979 A[128]=1; 00980 A[127]=0; 00981 A[126]=1; 00982 break; 00983 } 00984 case 41: { 00985 A[133]=0; 00986 A[132]=0; 00987 A[131]=1; 00988 A[130]=1; 00989 A[129]=1; 00990 A[128]=1; 00991 A[127]=0; 00992 A[126]=1; 00993 break; 00994 } 00995 case 74: { 00996 A[133]=1; 00997 A[132]=0; 00998 A[131]=1; 00999 A[130]=1; 01000 A[129]=1; 01001 A[128]=1; 01002 A[127]=1; 01003 A[126]=0; 01004 break; 01005 } 01006 case 9: { 01007 A[133]=0; 01008 A[132]=0; 01009 A[131]=1; 01010 A[130]=0; 01011 A[129]=1; 01012 A[128]=0; 01013 A[127]=1; 01014 A[126]=0; 01015 break; 01016 } 01017 case 42: { 01018 A[133]=1; 01019 A[132]=1; 01020 A[131]=1; 01021 A[130]=1; 01022 A[129]=1; 01023 A[128]=0; 01024 A[127]=1; 01025 A[126]=1; 01026 break; 01027 } 01028 case 75: { 01029 A[133]=0; 01030 A[132]=1; 01031 A[131]=1; 01032 A[130]=1; 01033 A[129]=1; 01034 A[128]=1; 01035 A[127]=0; 01036 A[126]=0; 01037 break; 01038 } 01039 case 10: { 01040 A[133]=1; 01041 A[132]=1; 01042 A[131]=0; 01043 A[130]=1; 01044 A[129]=0; 01045 A[128]=1; 01046 A[127]=0; 01047 A[126]=0; 01048 break; 01049 } 01050 case 43: { 01051 A[133]=0; 01052 A[132]=1; 01053 A[131]=1; 01054 A[130]=1; 01055 A[129]=0; 01056 A[128]=1; 01057 A[127]=1; 01058 A[126]=0; 01059 break; 01060 } 01061 case 76: { 01062 A[133]=1; 01063 A[132]=1; 01064 A[131]=1; 01065 A[130]=1; 01066 A[129]=1; 01067 A[128]=0; 01068 A[127]=0; 01069 A[126]=1; 01070 break; 01071 } 01072 case 11: { 01073 A[133]=0; 01074 A[132]=0; 01075 A[131]=1; 01076 A[130]=0; 01077 A[129]=1; 01078 A[128]=0; 01079 A[127]=0; 01080 A[126]=1; 01081 break; 01082 } 01083 case 44: { 01084 A[133]=1; 01085 A[132]=1; 01086 A[131]=1; 01087 A[130]=0; 01088 A[129]=1; 01089 A[128]=1; 01090 A[127]=0; 01091 A[126]=1; 01092 break; 01093 } 01094 case 77: { 01095 A[133]=0; 01096 A[132]=1; 01097 A[131]=1; 01098 A[130]=1; 01099 A[129]=0; 01100 A[128]=0; 01101 A[127]=1; 01102 A[126]=0; 01103 break; 01104 } 01105 case 12: { 01106 A[133]=1; 01107 A[132]=1; 01108 A[131]=0; 01109 A[130]=1; 01110 A[129]=0; 01111 A[128]=0; 01112 A[127]=1; 01113 A[126]=1; 01114 break; 01115 } 01116 case 45: { 01117 A[133]=0; 01118 A[132]=1; 01119 A[131]=0; 01120 A[130]=1; 01121 A[129]=1; 01122 A[128]=0; 01123 A[127]=1; 01124 A[126]=0; 01125 break; 01126 } 01127 case 78: { 01128 A[133]=1; 01129 A[132]=1; 01130 A[131]=1; 01131 A[130]=0; 01132 A[129]=0; 01133 A[128]=1; 01134 A[127]=0; 01135 A[126]=1; 01136 break; 01137 } 01138 case 13: { 01139 A[133]=0; 01140 A[132]=0; 01141 A[131]=1; 01142 A[130]=0; 01143 A[129]=0; 01144 A[128]=1; 01145 A[127]=1; 01146 A[126]=0; 01147 break; 01148 } 01149 case 46: { 01150 A[133]=1; 01151 A[132]=0; 01152 A[131]=1; 01153 A[130]=1; 01154 A[129]=0; 01155 A[128]=1; 01156 A[127]=0; 01157 A[126]=1; 01158 break; 01159 } 01160 case 79: { 01161 A[133]=0; 01162 A[132]=1; 01163 A[131]=0; 01164 A[130]=0; 01165 A[129]=1; 01166 A[128]=0; 01167 A[127]=1; 01168 A[126]=0; 01169 break; 01170 } 01171 case 14: { 01172 A[133]=1; 01173 A[132]=1; 01174 A[131]=0; 01175 A[130]=0; 01176 A[129]=1; 01177 A[128]=1; 01178 A[127]=0; 01179 A[126]=0; 01180 break; 01181 } 01182 case 47: { 01183 A[133]=0; 01184 A[132]=1; 01185 A[131]=1; 01186 A[130]=0; 01187 A[129]=1; 01188 A[128]=0; 01189 A[127]=1; 01190 A[126]=1; 01191 break; 01192 } 01193 case 80: { 01194 A[133]=1; 01195 A[132]=0; 01196 A[131]=0; 01197 A[130]=1; 01198 A[129]=0; 01199 A[128]=1; 01200 A[127]=0; 01201 A[126]=1; 01202 break; 01203 } 01204 case 15: { 01205 A[133]=0; 01206 A[132]=0; 01207 A[131]=0; 01208 A[130]=1; 01209 A[129]=1; 01210 A[128]=0; 01211 A[127]=0; 01212 A[126]=1; 01213 break; 01214 } 01215 case 48: { 01216 A[133]=1; 01217 A[132]=1; 01218 A[131]=0; 01219 A[130]=1; 01220 A[129]=0; 01221 A[128]=1; 01222 A[127]=1; 01223 A[126]=0; 01224 break; 01225 } 01226 case 81: { 01227 A[133]=0; 01228 A[132]=0; 01229 A[131]=1; 01230 A[130]=0; 01231 A[129]=1; 01232 A[128]=0; 01233 A[127]=1; 01234 A[126]=1; 01235 break; 01236 } 01237 case 16: { 01238 A[133]=1; 01239 A[132]=0; 01240 A[131]=1; 01241 A[130]=1; 01242 A[129]=0; 01243 A[128]=0; 01244 A[127]=1; 01245 A[126]=1; 01246 break; 01247 } 01248 case 49: { 01249 A[133]=0; 01250 A[132]=0; 01251 A[131]=1; 01252 A[130]=0; 01253 A[129]=1; 01254 A[128]=1; 01255 A[127]=0; 01256 A[126]=1; 01257 break; 01258 } 01259 case 82: { 01260 A[133]=1; 01261 A[132]=1; 01262 A[131]=0; 01263 A[130]=1; 01264 A[129]=0; 01265 A[128]=1; 01266 A[127]=1; 01267 A[126]=1; 01268 break; 01269 } 01270 case 17: { 01271 A[133]=0; 01272 A[132]=1; 01273 A[131]=1; 01274 A[130]=0; 01275 A[129]=0; 01276 A[128]=1; 01277 A[127]=1; 01278 A[126]=1; 01279 break; 01280 } 01281 case 50: { 01282 A[133]=1; 01283 A[132]=1; 01284 A[131]=0; 01285 A[130]=1; 01286 A[129]=1; 01287 A[128]=0; 01288 A[127]=1; 01289 A[126]=1; 01290 break; 01291 } 01292 case 83: { 01293 A[133]=0; 01294 A[132]=0; 01295 A[131]=1; 01296 A[130]=0; 01297 A[129]=1; 01298 A[128]=1; 01299 A[127]=1; 01300 A[126]=0; 01301 break; 01302 } 01303 case 18: { 01304 A[133]=1; 01305 A[132]=1; 01306 A[131]=0; 01307 A[130]=0; 01308 A[129]=1; 01309 A[128]=1; 01310 A[127]=1; 01311 A[126]=0; 01312 break; 01313 } 01314 case 51: { 01315 A[133]=0; 01316 A[132]=0; 01317 A[131]=1; 01318 A[130]=1; 01319 A[129]=0; 01320 A[128]=1; 01321 A[127]=1; 01322 A[126]=0; 01323 break; 01324 } 01325 case 84: { 01326 A[133]=1; 01327 A[132]=1; 01328 A[131]=0; 01329 A[130]=1; 01330 A[129]=1; 01331 A[128]=1; 01332 A[127]=0; 01333 A[126]=0; 01334 break; 01335 } 01336 case 19: { 01337 A[133]=0; 01338 A[132]=0; 01339 A[131]=0; 01340 A[130]=1; 01341 A[129]=1; 01342 A[128]=1; 01343 A[127]=0; 01344 A[126]=1; 01345 break; 01346 } 01347 case 52: { 01348 A[133]=1; 01349 A[132]=1; 01350 A[131]=1; 01351 A[130]=0; 01352 A[129]=1; 01353 A[128]=1; 01354 A[127]=0; 01355 A[126]=0; 01356 break; 01357 } 01358 case 85: { 01359 A[133]=0; 01360 A[132]=0; 01361 A[131]=1; 01362 A[130]=1; 01363 A[129]=1; 01364 A[128]=0; 01365 A[127]=0; 01366 A[126]=1; 01367 break; 01368 } 01369 case 20: { 01370 A[133]=1; 01371 A[132]=0; 01372 A[131]=1; 01373 A[130]=1; 01374 A[129]=1; 01375 A[128]=0; 01376 A[127]=1; 01377 A[126]=1; 01378 break; 01379 } 01380 case 53: { 01381 A[133]=0; 01382 A[132]=1; 01383 A[131]=0; 01384 A[130]=1; 01385 A[129]=1; 01386 A[128]=0; 01387 A[127]=0; 01388 A[126]=1; 01389 break; 01390 } 01391 case 86: { 01392 A[133]=1; 01393 A[132]=1; 01394 A[131]=1; 01395 A[130]=1; 01396 A[129]=0; 01397 A[128]=0; 01398 A[127]=1; 01399 A[126]=1; 01400 break; 01401 } 01402 case 21: { 01403 A[133]=0; 01404 A[132]=1; 01405 A[131]=1; 01406 A[130]=1; 01407 A[129]=0; 01408 A[128]=1; 01409 A[127]=1; 01410 A[126]=1; 01411 break; 01412 } 01413 case 54: { 01414 A[133]=1; 01415 A[132]=0; 01416 A[131]=1; 01417 A[130]=1; 01418 A[129]=0; 01419 A[128]=0; 01420 A[127]=1; 01421 A[126]=0; 01422 break; 01423 } 01424 case 87: { 01425 A[133]=0; 01426 A[132]=1; 01427 A[131]=1; 01428 A[130]=0; 01429 A[129]=0; 01430 A[128]=1; 01431 A[127]=1; 01432 A[126]=0; 01433 break; 01434 } 01435 case 22: { 01436 A[133]=1; 01437 A[132]=1; 01438 A[131]=1; 01439 A[130]=0; 01440 A[129]=1; 01441 A[128]=1; 01442 A[127]=1; 01443 A[126]=0; 01444 break; 01445 } 01446 case 55: { 01447 A[133]=0; 01448 A[132]=1; 01449 A[131]=1; 01450 A[130]=0; 01451 A[129]=0; 01452 A[128]=1; 01453 A[127]=0; 01454 A[126]=0; 01455 break; 01456 } 01457 case 88: { 01458 A[133]=1; 01459 A[132]=1; 01460 A[131]=0; 01461 A[130]=0; 01462 A[129]=1; 01463 A[128]=1; 01464 A[127]=0; 01465 A[126]=1; 01466 break; 01467 } 01468 case 23: { 01469 A[133]=0; 01470 A[132]=1; 01471 A[131]=0; 01472 A[130]=1; 01473 A[129]=1; 01474 A[128]=1; 01475 A[127]=0; 01476 A[126]=1; 01477 break; 01478 } 01479 case 56: { 01480 A[133]=1; 01481 A[132]=1; 01482 A[131]=0; 01483 A[130]=0; 01484 A[129]=1; 01485 A[128]=0; 01486 A[127]=0; 01487 A[126]=1; 01488 break; 01489 } 01490 case 89: { 01491 A[133]=0; 01492 A[132]=0; 01493 A[131]=0; 01494 A[130]=1; 01495 A[129]=1; 01496 A[128]=0; 01497 A[127]=1; 01498 A[126]=0; 01499 break; 01500 } 01501 case 24: { 01502 A[133]=1; 01503 A[132]=0; 01504 A[131]=1; 01505 A[130]=1; 01506 A[129]=1; 01507 A[128]=0; 01508 A[127]=1; 01509 A[126]=0; 01510 break; 01511 } 01512 case 57: { 01513 A[133]=0; 01514 A[132]=0; 01515 A[131]=0; 01516 A[130]=1; 01517 A[129]=0; 01518 A[128]=0; 01519 A[127]=1; 01520 A[126]=0; 01521 break; 01522 } 01523 case 90: { 01524 A[133]=1; 01525 A[132]=0; 01526 A[131]=1; 01527 A[130]=1; 01528 A[129]=0; 01529 A[128]=1; 01530 A[127]=0; 01531 A[126]=0; 01532 break; 01533 } 01534 case 25: { 01535 A[133]=0; 01536 A[132]=1; 01537 A[131]=1; 01538 A[130]=1; 01539 A[129]=0; 01540 A[128]=1; 01541 A[127]=0; 01542 A[126]=0; 01543 break; 01544 } 01545 case 58: { 01546 A[133]=1; 01547 A[132]=0; 01548 A[131]=1; 01549 A[130]=0; 01550 A[129]=0; 01551 A[128]=1; 01552 A[127]=0; 01553 A[126]=0; 01554 break; 01555 } 01556 case 91: { 01557 A[133]=0; 01558 A[132]=1; 01559 A[131]=1; 01560 A[130]=0; 01561 A[129]=1; 01562 A[128]=0; 01563 A[127]=0; 01564 A[126]=0; 01565 break; 01566 } 01567 case 26: { 01568 A[133]=1; 01569 A[132]=1; 01570 A[131]=1; 01571 A[130]=0; 01572 A[129]=1; 01573 A[128]=0; 01574 A[127]=0; 01575 A[126]=1; 01576 break; 01577 } 01578 case 59: { 01579 A[133]=0; 01580 A[132]=1; 01581 A[131]=0; 01582 A[130]=0; 01583 A[129]=1; 01584 A[128]=0; 01585 A[127]=0; 01586 A[126]=0; 01587 break; 01588 } 01589 case 92: { 01590 A[133]=1; 01591 A[132]=1; 01592 A[131]=0; 01593 A[130]=1; 01594 A[129]=0; 01595 A[128]=0; 01596 A[127]=0; 01597 A[126]=1; 01598 break; 01599 } 01600 case 27: { 01601 A[133]=0; 01602 A[132]=1; 01603 A[131]=0; 01604 A[130]=1; 01605 A[129]=0; 01606 A[128]=0; 01607 A[127]=1; 01608 A[126]=0; 01609 break; 01610 } 01611 case 60: { 01612 A[133]=1; 01613 A[132]=0; 01614 A[131]=0; 01615 A[130]=1; 01616 A[129]=0; 01617 A[128]=0; 01618 A[127]=0; 01619 A[126]=1; 01620 break; 01621 } 01622 case 93: { 01623 A[133]=0; 01624 A[132]=0; 01625 A[131]=1; 01626 A[130]=0; 01627 A[129]=0; 01628 A[128]=0; 01629 A[127]=1; 01630 A[126]=0; 01631 break; 01632 } 01633 case 28: { 01634 A[133]=1; 01635 A[132]=0; 01636 A[131]=1; 01637 A[130]=0; 01638 A[129]=0; 01639 A[128]=1; 01640 A[127]=0; 01641 A[126]=1; 01642 break; 01643 } 01644 case 61: { 01645 A[133]=0; 01646 A[132]=0; 01647 A[131]=1; 01648 A[130]=0; 01649 A[129]=0; 01650 A[128]=0; 01651 A[127]=1; 01652 A[126]=1; 01653 break; 01654 } 01655 case 94: { 01656 A[133]=1; 01657 A[132]=1; 01658 A[131]=0; 01659 A[130]=0; 01660 A[129]=0; 01661 A[128]=1; 01662 A[127]=0; 01663 A[126]=0; 01664 break; 01665 } 01666 case 29: { 01667 A[133]=0; 01668 A[132]=1; 01669 A[131]=0; 01670 A[130]=0; 01671 A[129]=1; 01672 A[128]=0; 01673 A[127]=1; 01674 A[126]=1; 01675 break; 01676 } 01677 case 62: { 01678 A[133]=1; 01679 A[132]=1; 01680 A[131]=0; 01681 A[130]=0; 01682 A[129]=0; 01683 A[128]=1; 01684 A[127]=1; 01685 A[126]=1; 01686 break; 01687 } 01688 case 95: { 01689 A[133]=0; 01690 A[132]=0; 01691 A[131]=0; 01692 A[130]=0; 01693 A[129]=1; 01694 A[128]=0; 01695 A[127]=0; 01696 A[126]=1; 01697 break; 01698 } 01699 case 30: { 01700 A[133]=1; 01701 A[132]=0; 01702 A[131]=0; 01703 A[130]=1; 01704 A[129]=0; 01705 A[128]=1; 01706 A[127]=1; 01707 A[126]=0; 01708 break; 01709 } 01710 case 63: { 01711 A[133]=0; 01712 A[132]=0; 01713 A[131]=0; 01714 A[130]=0; 01715 A[129]=1; 01716 A[128]=1; 01717 A[127]=1; 01718 A[126]=0; 01719 break; 01720 } 01721 case 96: { 01722 A[133]=1; 01723 A[132]=0; 01724 A[131]=0; 01725 A[130]=1; 01726 A[129]=0; 01727 A[128]=0; 01728 A[127]=1; 01729 A[126]=1; 01730 break; 01731 } 01732 case 31: { 01733 A[133]=0; 01734 A[132]=0; 01735 A[131]=1; 01736 A[130]=0; 01737 A[129]=1; 01738 A[128]=1; 01739 A[127]=0; 01740 A[126]=0; 01741 break; 01742 } 01743 case 64: { 01744 A[133]=1; 01745 A[132]=0; 01746 A[131]=0; 01747 A[130]=1; 01748 A[129]=1; 01749 A[128]=1; 01750 A[127]=0; 01751 A[126]=0; 01752 break; 01753 } 01754 case 97: { 01755 A[133]=0; 01756 A[132]=0; 01757 A[131]=1; 01758 A[130]=0; 01759 A[129]=0; 01760 A[128]=1; 01761 A[127]=1; 01762 A[126]=1; 01763 break; 01764 } 01765 case 32: { 01766 A[133]=1; 01767 A[132]=1; 01768 A[131]=0; 01769 A[130]=1; 01770 A[129]=1; 01771 A[128]=0; 01772 A[127]=0; 01773 A[126]=0; 01774 break; 01775 } 01776 case 65: { 01777 A[133]=0; 01778 A[132]=0; 01779 A[131]=1; 01780 A[130]=1; 01781 A[129]=1; 01782 A[128]=0; 01783 A[127]=0; 01784 A[126]=0; 01785 break; 01786 } 01787 case 98: { 01788 A[133]=1; 01789 A[132]=1; 01790 A[131]=0; 01791 A[130]=0; 01792 A[129]=1; 01793 A[128]=1; 01794 A[127]=1; 01795 A[126]=1; 01796 break; 01797 } 01798 case 33: { 01799 A[133]=0; 01800 A[132]=0; 01801 A[131]=1; 01802 A[130]=1; 01803 A[129]=0; 01804 A[128]=0; 01805 A[127]=0; 01806 A[126]=1; 01807 break; 01808 } 01809 case 66: { 01810 A[133]=1; 01811 A[132]=1; 01812 A[131]=1; 01813 A[130]=1; 01814 A[129]=0; 01815 A[128]=0; 01816 A[127]=0; 01817 A[126]=0; 01818 break; 01819 } 01820 case 99: { 01821 A[133]=0; 01822 A[132]=0; 01823 A[131]=0; 01824 A[130]=1; 01825 A[129]=1; 01826 A[128]=1; 01827 A[127]=1; 01828 A[126]=0; 01829 break; 01830 } 01831 case 100: { 01832 A[133]=1; 01833 A[132]=0; 01834 A[131]=1; 01835 A[130]=1; 01836 A[129]=1; 01837 A[128]=1; 01838 A[127]=0; 01839 A[126]=0; 01840 break; 01841 } 01842 case 136: { 01843 A[133]=1; 01844 A[132]=0; 01845 A[131]=1; 01846 A[130]=0; 01847 A[129]=1; 01848 A[128]=0; 01849 A[127]=1; 01850 A[126]=0; 01851 break; 01852 } 01853 case 172: { 01854 A[133]=1; 01855 A[132]=1; 01856 A[131]=0; 01857 A[130]=1; 01858 A[129]=1; 01859 A[128]=0; 01860 A[127]=1; 01861 A[126]=0; 01862 break; 01863 } 01864 case 101: { 01865 A[133]=0; 01866 A[132]=1; 01867 A[131]=1; 01868 A[130]=1; 01869 A[129]=1; 01870 A[128]=0; 01871 A[127]=0; 01872 A[126]=0; 01873 break; 01874 } 01875 case 137: { 01876 A[133]=0; 01877 A[132]=1; 01878 A[131]=0; 01879 A[130]=1; 01880 A[129]=0; 01881 A[128]=1; 01882 A[127]=0; 01883 A[126]=0; 01884 break; 01885 } 01886 case 173: { 01887 A[133]=0; 01888 A[132]=0; 01889 A[131]=1; 01890 A[130]=1; 01891 A[129]=0; 01892 A[128]=1; 01893 A[127]=0; 01894 A[126]=1; 01895 break; 01896 } 01897 case 102: { 01898 A[133]=1; 01899 A[132]=1; 01900 A[131]=1; 01901 A[130]=1; 01902 A[129]=0; 01903 A[128]=0; 01904 A[127]=0; 01905 A[126]=1; 01906 break; 01907 } 01908 case 138: { 01909 A[133]=1; 01910 A[132]=0; 01911 A[131]=1; 01912 A[130]=0; 01913 A[129]=1; 01914 A[128]=0; 01915 A[127]=0; 01916 A[126]=1; 01917 break; 01918 } 01919 case 174: { 01920 A[133]=1; 01921 A[132]=1; 01922 A[131]=1; 01923 A[130]=0; 01924 A[129]=1; 01925 A[128]=0; 01926 A[127]=1; 01927 A[126]=1; 01928 break; 01929 } 01930 case 103: { 01931 A[133]=0; 01932 A[132]=1; 01933 A[131]=1; 01934 A[130]=0; 01935 A[129]=0; 01936 A[128]=0; 01937 A[127]=1; 01938 A[126]=0; 01939 break; 01940 } 01941 case 139: { 01942 A[133]=0; 01943 A[132]=1; 01944 A[131]=0; 01945 A[130]=1; 01946 A[129]=0; 01947 A[128]=0; 01948 A[127]=1; 01949 A[126]=1; 01950 break; 01951 } 01952 case 175: { 01953 A[133]=0; 01954 A[132]=1; 01955 A[131]=0; 01956 A[130]=1; 01957 A[129]=0; 01958 A[128]=1; 01959 A[127]=1; 01960 A[126]=0; 01961 break; 01962 } 01963 case 104: { 01964 A[133]=1; 01965 A[132]=1; 01966 A[131]=0; 01967 A[130]=0; 01968 A[129]=0; 01969 A[128]=1; 01970 A[127]=0; 01971 A[126]=1; 01972 break; 01973 } 01974 case 140: { 01975 A[133]=1; 01976 A[132]=0; 01977 A[131]=1; 01978 A[130]=0; 01979 A[129]=0; 01980 A[128]=1; 01981 A[127]=1; 01982 A[126]=0; 01983 break; 01984 } 01985 case 176: { 01986 A[133]=1; 01987 A[132]=0; 01988 A[131]=1; 01989 A[130]=0; 01990 A[129]=1; 01991 A[128]=1; 01992 A[127]=0; 01993 A[126]=1; 01994 break; 01995 } 01996 case 105: { 01997 A[133]=0; 01998 A[132]=0; 01999 A[131]=0; 02000 A[130]=0; 02001 A[129]=1; 02002 A[128]=0; 02003 A[127]=1; 02004 A[126]=0; 02005 break; 02006 } 02007 case 141: { 02008 A[133]=0; 02009 A[132]=1; 02010 A[131]=0; 02011 A[130]=0; 02012 A[129]=1; 02013 A[128]=1; 02014 A[127]=0; 02015 A[126]=0; 02016 break; 02017 } 02018 case 177: { 02019 A[133]=0; 02020 A[132]=1; 02021 A[131]=0; 02022 A[130]=1; 02023 A[129]=1; 02024 A[128]=0; 02025 A[127]=1; 02026 A[126]=1; 02027 break; 02028 } 02029 case 106: { 02030 A[133]=1; 02031 A[132]=0; 02032 A[131]=0; 02033 A[130]=1; 02034 A[129]=0; 02035 A[128]=1; 02036 A[127]=0; 02037 A[126]=0; 02038 break; 02039 } 02040 case 142: { 02041 A[133]=1; 02042 A[132]=0; 02043 A[131]=0; 02044 A[130]=1; 02045 A[129]=1; 02046 A[128]=0; 02047 A[127]=0; 02048 A[126]=1; 02049 break; 02050 } 02051 case 178: { 02052 A[133]=1; 02053 A[132]=0; 02054 A[131]=1; 02055 A[130]=1; 02056 A[129]=0; 02057 A[128]=1; 02058 A[127]=1; 02059 A[126]=0; 02060 break; 02061 } 02062 case 107: { 02063 A[133]=0; 02064 A[132]=0; 02065 A[131]=1; 02066 A[130]=0; 02067 A[129]=1; 02068 A[128]=0; 02069 A[127]=0; 02070 A[126]=0; 02071 break; 02072 } 02073 case 143: { 02074 A[133]=0; 02075 A[132]=0; 02076 A[131]=1; 02077 A[130]=1; 02078 A[129]=0; 02079 A[128]=0; 02080 A[127]=1; 02081 A[126]=1; 02082 break; 02083 } 02084 case 179: { 02085 A[133]=0; 02086 A[132]=1; 02087 A[131]=1; 02088 A[130]=0; 02089 A[129]=1; 02090 A[128]=1; 02091 A[127]=0; 02092 A[126]=0; 02093 break; 02094 } 02095 case 108: { 02096 A[133]=1; 02097 A[132]=1; 02098 A[131]=0; 02099 A[130]=1; 02100 A[129]=0; 02101 A[128]=0; 02102 A[127]=0; 02103 A[126]=0; 02104 break; 02105 } 02106 case 144: { 02107 A[133]=1; 02108 A[132]=1; 02109 A[131]=1; 02110 A[130]=0; 02111 A[129]=0; 02112 A[128]=1; 02113 A[127]=1; 02114 A[126]=1; 02115 break; 02116 } 02117 case 180: { 02118 A[133]=1; 02119 A[132]=1; 02120 A[131]=0; 02121 A[130]=1; 02122 A[129]=1; 02123 A[128]=0; 02124 A[127]=0; 02125 A[126]=1; 02126 break; 02127 } 02128 case 109: { 02129 A[133]=0; 02130 A[132]=0; 02131 A[131]=1; 02132 A[130]=0; 02133 A[129]=0; 02134 A[128]=0; 02135 A[127]=0; 02136 A[126]=1; 02137 break; 02138 } 02139 case 145: { 02140 A[133]=0; 02141 A[132]=1; 02142 A[131]=0; 02143 A[130]=0; 02144 A[129]=1; 02145 A[128]=1; 02146 A[127]=1; 02147 A[126]=0; 02148 break; 02149 } 02150 case 181: { 02151 A[133]=0; 02152 A[132]=0; 02153 A[131]=1; 02154 A[130]=1; 02155 A[129]=0; 02156 A[128]=0; 02157 A[127]=1; 02158 A[126]=0; 02159 break; 02160 } 02161 case 110: { 02162 A[133]=1; 02163 A[132]=1; 02164 A[131]=0; 02165 A[130]=0; 02166 A[129]=0; 02167 A[128]=0; 02168 A[127]=1; 02169 A[126]=1; 02170 break; 02171 } 02172 case 146: { 02173 A[133]=1; 02174 A[132]=0; 02175 A[131]=0; 02176 A[130]=1; 02177 A[129]=1; 02178 A[128]=1; 02179 A[127]=0; 02180 A[126]=1; 02181 break; 02182 } 02183 case 182: { 02184 A[133]=1; 02185 A[132]=1; 02186 A[131]=1; 02187 A[130]=0; 02188 A[129]=0; 02189 A[128]=1; 02190 A[127]=0; 02191 A[126]=0; 02192 break; 02193 } 02194 case 111: { 02195 A[133]=0; 02196 A[132]=0; 02197 A[131]=0; 02198 A[130]=0; 02199 A[129]=0; 02200 A[128]=1; 02201 A[127]=1; 02202 A[126]=0; 02203 break; 02204 } 02205 case 147: { 02206 A[133]=0; 02207 A[132]=0; 02208 A[131]=1; 02209 A[130]=1; 02210 A[129]=1; 02211 A[128]=0; 02212 A[127]=1; 02213 A[126]=1; 02214 break; 02215 } 02216 case 183: { 02217 A[133]=0; 02218 A[132]=1; 02219 A[131]=0; 02220 A[130]=0; 02221 A[129]=1; 02222 A[128]=0; 02223 A[127]=0; 02224 A[126]=1; 02225 break; 02226 } 02227 case 112: { 02228 A[133]=1; 02229 A[132]=0; 02230 A[131]=0; 02231 A[130]=0; 02232 A[129]=1; 02233 A[128]=1; 02234 A[127]=0; 02235 A[126]=0; 02236 break; 02237 } 02238 case 148: { 02239 A[133]=1; 02240 A[132]=1; 02241 A[131]=1; 02242 A[130]=1; 02243 A[129]=0; 02244 A[128]=1; 02245 A[127]=1; 02246 A[126]=1; 02247 break; 02248 } 02249 case 184: { 02250 A[133]=1; 02251 A[132]=0; 02252 A[131]=0; 02253 A[130]=1; 02254 A[129]=0; 02255 A[128]=0; 02256 A[127]=1; 02257 A[126]=0; 02258 break; 02259 } 02260 case 113: { 02261 A[133]=0; 02262 A[132]=0; 02263 A[131]=0; 02264 A[130]=1; 02265 A[129]=1; 02266 A[128]=0; 02267 A[127]=0; 02268 A[126]=0; 02269 break; 02270 } 02271 case 149: { 02272 A[133]=0; 02273 A[132]=1; 02274 A[131]=1; 02275 A[130]=0; 02276 A[129]=1; 02277 A[128]=1; 02278 A[127]=1; 02279 A[126]=0; 02280 break; 02281 } 02282 case 185: { 02283 A[133]=0; 02284 A[132]=0; 02285 A[131]=1; 02286 A[130]=0; 02287 A[129]=0; 02288 A[128]=1; 02289 A[127]=0; 02290 A[126]=0; 02291 break; 02292 } 02293 case 114: { 02294 A[133]=1; 02295 A[132]=0; 02296 A[131]=1; 02297 A[130]=1; 02298 A[129]=0; 02299 A[128]=0; 02300 A[127]=0; 02301 A[126]=0; 02302 break; 02303 } 02304 case 150: { 02305 A[133]=1; 02306 A[132]=1; 02307 A[131]=0; 02308 A[130]=1; 02309 A[129]=1; 02310 A[128]=1; 02311 A[127]=0; 02312 A[126]=1; 02313 break; 02314 } 02315 case 186: { 02316 A[133]=1; 02317 A[132]=1; 02318 A[131]=0; 02319 A[130]=0; 02320 A[129]=1; 02321 A[128]=0; 02322 A[127]=0; 02323 A[126]=0; 02324 break; 02325 } 02326 case 115: { 02327 A[133]=0; 02328 A[132]=1; 02329 A[131]=1; 02330 A[130]=0; 02331 A[129]=0; 02332 A[128]=0; 02333 A[127]=0; 02334 A[126]=0; 02335 break; 02336 } 02337 case 151: { 02338 A[133]=0; 02339 A[132]=0; 02340 A[131]=1; 02341 A[130]=1; 02342 A[129]=1; 02343 A[128]=0; 02344 A[127]=1; 02345 A[126]=0; 02346 break; 02347 } 02348 case 187: { 02349 A[133]=0; 02350 A[132]=0; 02351 A[131]=0; 02352 A[130]=1; 02353 A[129]=0; 02354 A[128]=0; 02355 A[127]=0; 02356 A[126]=1; 02357 break; 02358 } 02359 case 116: { 02360 A[133]=1; 02361 A[132]=1; 02362 A[131]=0; 02363 A[130]=0; 02364 A[129]=0; 02365 A[128]=0; 02366 A[127]=0; 02367 A[126]=1; 02368 break; 02369 } 02370 case 152: { 02371 A[133]=1; 02372 A[132]=1; 02373 A[131]=1; 02374 A[130]=1; 02375 A[129]=0; 02376 A[128]=1; 02377 A[127]=0; 02378 A[126]=0; 02379 break; 02380 } 02381 case 188: { 02382 A[133]=1; 02383 A[132]=0; 02384 A[131]=1; 02385 A[130]=0; 02386 A[129]=0; 02387 A[128]=0; 02388 A[127]=1; 02389 A[126]=1; 02390 break; 02391 } 02392 case 117: { 02393 A[133]=0; 02394 A[132]=0; 02395 A[131]=0; 02396 A[130]=0; 02397 A[129]=0; 02398 A[128]=0; 02399 A[127]=1; 02400 A[126]=0; 02401 break; 02402 } 02403 case 153: { 02404 A[133]=0; 02405 A[132]=1; 02406 A[131]=1; 02407 A[130]=0; 02408 A[129]=1; 02409 A[128]=0; 02410 A[127]=0; 02411 A[126]=1; 02412 break; 02413 } 02414 case 189: { 02415 A[133]=0; 02416 A[132]=1; 02417 A[131]=0; 02418 A[130]=0; 02419 A[129]=0; 02420 A[128]=1; 02421 A[127]=1; 02422 A[126]=1; 02423 break; 02424 } 02425 case 118: { 02426 A[133]=1; 02427 A[132]=0; 02428 A[131]=0; 02429 A[130]=0; 02430 A[129]=0; 02431 A[128]=1; 02432 A[127]=0; 02433 A[126]=0; 02434 break; 02435 } 02436 case 154: { 02437 A[133]=1; 02438 A[132]=1; 02439 A[131]=0; 02440 A[130]=1; 02441 A[129]=0; 02442 A[128]=0; 02443 A[127]=1; 02444 A[126]=0; 02445 break; 02446 } 02447 case 190: { 02448 A[133]=1; 02449 A[132]=0; 02450 A[131]=0; 02451 A[130]=0; 02452 A[129]=1; 02453 A[128]=1; 02454 A[127]=1; 02455 A[126]=0; 02456 break; 02457 } 02458 case 119: { 02459 A[133]=0; 02460 A[132]=0; 02461 A[131]=0; 02462 A[130]=0; 02463 A[129]=1; 02464 A[128]=0; 02465 A[127]=0; 02466 A[126]=0; 02467 break; 02468 } 02469 case 155: { 02470 A[133]=0; 02471 A[132]=0; 02472 A[131]=1; 02473 A[130]=0; 02474 A[129]=0; 02475 A[128]=1; 02476 A[127]=0; 02477 A[126]=1; 02478 break; 02479 } 02480 case 191: { 02481 A[133]=0; 02482 A[132]=0; 02483 A[131]=0; 02484 A[130]=1; 02485 A[129]=1; 02486 A[128]=1; 02487 A[127]=0; 02488 A[126]=0; 02489 break; 02490 } 02491 case 120: { 02492 A[133]=1; 02493 A[132]=0; 02494 A[131]=0; 02495 A[130]=1; 02496 A[129]=0; 02497 A[128]=0; 02498 A[127]=0; 02499 A[126]=0; 02500 break; 02501 } 02502 case 156: { 02503 A[133]=1; 02504 A[132]=1; 02505 A[131]=0; 02506 A[130]=0; 02507 A[129]=1; 02508 A[128]=0; 02509 A[127]=1; 02510 A[126]=1; 02511 break; 02512 } 02513 case 192: { 02514 A[133]=1; 02515 A[132]=0; 02516 A[131]=1; 02517 A[130]=1; 02518 A[129]=1; 02519 A[128]=0; 02520 A[127]=0; 02521 A[126]=0; 02522 break; 02523 } 02524 case 121: { 02525 A[133]=0; 02526 A[132]=0; 02527 A[131]=1; 02528 A[130]=0; 02529 A[129]=0; 02530 A[128]=0; 02531 A[127]=0; 02532 A[126]=0; 02533 break; 02534 } 02535 case 157: { 02536 A[133]=0; 02537 A[132]=0; 02538 A[131]=0; 02539 A[130]=1; 02540 A[129]=0; 02541 A[128]=1; 02542 A[127]=1; 02543 A[126]=0; 02544 break; 02545 } 02546 case 193: { 02547 A[133]=0; 02548 A[132]=1; 02549 A[131]=1; 02550 A[130]=1; 02551 A[129]=0; 02552 A[128]=0; 02553 A[127]=0; 02554 A[126]=0; 02555 break; 02556 } 02557 case 122: { 02558 A[133]=1; 02559 A[132]=1; 02560 A[131]=0; 02561 A[130]=0; 02562 A[129]=0; 02563 A[128]=0; 02564 A[127]=0; 02565 A[126]=0; 02566 break; 02567 } 02568 case 158: { 02569 A[133]=1; 02570 A[132]=0; 02571 A[131]=1; 02572 A[130]=0; 02573 A[129]=1; 02574 A[128]=1; 02575 A[127]=0; 02576 A[126]=0; 02577 break; 02578 } 02579 case 194: { 02580 A[133]=1; 02581 A[132]=1; 02582 A[131]=1; 02583 A[130]=0; 02584 A[129]=0; 02585 A[128]=0; 02586 A[127]=0; 02587 A[126]=1; 02588 break; 02589 } 02590 case 123: { 02591 A[133]=0; 02592 A[132]=0; 02593 A[131]=0; 02594 A[130]=0; 02595 A[129]=0; 02596 A[128]=0; 02597 A[127]=0; 02598 A[126]=1; 02599 break; 02600 } 02601 case 159: { 02602 A[133]=0; 02603 A[132]=1; 02604 A[131]=0; 02605 A[130]=1; 02606 A[129]=1; 02607 A[128]=0; 02608 A[127]=0; 02609 A[126]=0; 02610 break; 02611 } 02612 case 195: { 02613 A[133]=0; 02614 A[132]=1; 02615 A[131]=0; 02616 A[130]=0; 02617 A[129]=0; 02618 A[128]=0; 02619 A[127]=1; 02620 A[126]=0; 02621 break; 02622 } 02623 case 124: { 02624 A[133]=1; 02625 A[132]=0; 02626 A[131]=0; 02627 A[130]=0; 02628 A[129]=0; 02629 A[128]=0; 02630 A[127]=1; 02631 A[126]=1; 02632 break; 02633 } 02634 case 160: { 02635 A[133]=1; 02636 A[132]=0; 02637 A[131]=1; 02638 A[130]=1; 02639 A[129]=0; 02640 A[128]=0; 02641 A[127]=0; 02642 A[126]=1; 02643 break; 02644 } 02645 case 196: { 02646 A[133]=1; 02647 A[132]=0; 02648 A[131]=0; 02649 A[130]=0; 02650 A[129]=0; 02651 A[128]=1; 02652 A[127]=0; 02653 A[126]=1; 02654 break; 02655 } 02656 case 125: { 02657 A[133]=0; 02658 A[132]=0; 02659 A[131]=0; 02660 A[130]=0; 02661 A[129]=0; 02662 A[128]=1; 02663 A[127]=1; 02664 A[126]=1; 02665 break; 02666 } 02667 case 161: { 02668 A[133]=0; 02669 A[132]=1; 02670 A[131]=1; 02671 A[130]=0; 02672 A[129]=0; 02673 A[128]=0; 02674 A[127]=1; 02675 A[126]=1; 02676 break; 02677 } 02678 case 197: { 02679 A[133]=0; 02680 A[132]=0; 02681 A[131]=0; 02682 A[130]=0; 02683 A[129]=1; 02684 A[128]=0; 02685 A[127]=1; 02686 A[126]=1; 02687 break; 02688 } 02689 case 126: { 02690 A[133]=1; 02691 A[132]=0; 02692 A[131]=0; 02693 A[130]=0; 02694 A[129]=1; 02695 A[128]=1; 02696 A[127]=1; 02697 A[126]=1; 02698 break; 02699 } 02700 case 162: { 02701 A[133]=1; 02702 A[132]=1; 02703 A[131]=0; 02704 A[130]=0; 02705 A[129]=0; 02706 A[128]=1; 02707 A[127]=1; 02708 A[126]=0; 02709 break; 02710 } 02711 case 198: { 02712 A[133]=1; 02713 A[132]=0; 02714 A[131]=0; 02715 A[130]=1; 02716 A[129]=0; 02717 A[128]=1; 02718 A[127]=1; 02719 A[126]=1; 02720 break; 02721 } 02722 case 127: { 02723 A[133]=0; 02724 A[132]=0; 02725 A[131]=0; 02726 A[130]=1; 02727 A[129]=1; 02728 A[128]=1; 02729 A[127]=1; 02730 A[126]=1; 02731 break; 02732 } 02733 case 163: { 02734 A[133]=0; 02735 A[132]=0; 02736 A[131]=0; 02737 A[130]=0; 02738 A[129]=1; 02739 A[128]=1; 02740 A[127]=0; 02741 A[126]=1; 02742 break; 02743 } 02744 case 199: { 02745 A[133]=0; 02746 A[132]=0; 02747 A[131]=1; 02748 A[130]=0; 02749 A[129]=1; 02750 A[128]=1; 02751 A[127]=1; 02752 A[126]=1; 02753 break; 02754 } 02755 case 128: { 02756 A[133]=1; 02757 A[132]=0; 02758 A[131]=1; 02759 A[130]=1; 02760 A[129]=1; 02761 A[128]=1; 02762 A[127]=1; 02763 A[126]=1; 02764 break; 02765 } 02766 case 164: { 02767 A[133]=1; 02768 A[132]=0; 02769 A[131]=0; 02770 A[130]=1; 02771 A[129]=1; 02772 A[128]=0; 02773 A[127]=1; 02774 A[126]=1; 02775 break; 02776 } 02777 case 200: { 02778 A[133]=1; 02779 A[132]=1; 02780 A[131]=0; 02781 A[130]=1; 02782 A[129]=1; 02783 A[128]=1; 02784 A[127]=1; 02785 A[126]=1; 02786 break; 02787 } 02788 case 129: { 02789 A[133]=0; 02790 A[132]=1; 02791 A[131]=1; 02792 A[130]=1; 02793 A[129]=1; 02794 A[128]=1; 02795 A[127]=1; 02796 A[126]=1; 02797 break; 02798 } 02799 case 165: { 02800 A[133]=0; 02801 A[132]=0; 02802 A[131]=1; 02803 A[130]=1; 02804 A[129]=0; 02805 A[128]=1; 02806 A[127]=1; 02807 A[126]=1; 02808 break; 02809 } 02810 case 201: { 02811 A[133]=0; 02812 A[132]=0; 02813 A[131]=1; 02814 A[130]=1; 02815 A[129]=1; 02816 A[128]=1; 02817 A[127]=1; 02818 A[126]=0; 02819 break; 02820 } 02821 case 130: { 02822 A[133]=1; 02823 A[132]=1; 02824 A[131]=1; 02825 A[130]=1; 02826 A[129]=1; 02827 A[128]=1; 02828 A[127]=1; 02829 A[126]=0; 02830 break; 02831 } 02832 case 166: { 02833 A[133]=1; 02834 A[132]=1; 02835 A[131]=1; 02836 A[130]=0; 02837 A[129]=1; 02838 A[128]=1; 02839 A[127]=1; 02840 A[126]=1; 02841 break; 02842 } 02843 case 202: { 02844 A[133]=1; 02845 A[132]=1; 02846 A[131]=1; 02847 A[130]=1; 02848 A[129]=1; 02849 A[128]=1; 02850 A[127]=0; 02851 A[126]=0; 02852 break; 02853 } 02854 case 131: { 02855 A[133]=0; 02856 A[132]=1; 02857 A[131]=1; 02858 A[130]=1; 02859 A[129]=1; 02860 A[128]=1; 02861 A[127]=0; 02862 A[126]=1; 02863 break; 02864 } 02865 case 167: { 02866 A[133]=0; 02867 A[132]=1; 02868 A[131]=0; 02869 A[130]=1; 02870 A[129]=1; 02871 A[128]=1; 02872 A[127]=1; 02873 A[126]=0; 02874 break; 02875 } 02876 case 203: { 02877 A[133]=0; 02878 A[132]=1; 02879 A[131]=1; 02880 A[130]=1; 02881 A[129]=1; 02882 A[128]=0; 02883 A[127]=0; 02884 A[126]=1; 02885 break; 02886 } 02887 case 132: { 02888 A[133]=1; 02889 A[132]=1; 02890 A[131]=1; 02891 A[130]=1; 02892 A[129]=1; 02893 A[128]=0; 02894 A[127]=1; 02895 A[126]=0; 02896 break; 02897 } 02898 case 168: { 02899 A[133]=1; 02900 A[132]=0; 02901 A[131]=1; 02902 A[130]=1; 02903 A[129]=1; 02904 A[128]=1; 02905 A[127]=0; 02906 A[126]=1; 02907 break; 02908 } 02909 case 204: { 02910 A[133]=1; 02911 A[132]=1; 02912 A[131]=1; 02913 A[130]=1; 02914 A[129]=0; 02915 A[128]=0; 02916 A[127]=1; 02917 A[126]=0; 02918 break; 02919 } 02920 case 133: { 02921 A[133]=0; 02922 A[132]=1; 02923 A[131]=1; 02924 A[130]=1; 02925 A[129]=0; 02926 A[128]=1; 02927 A[127]=0; 02928 A[126]=1; 02929 break; 02930 } 02931 case 169: { 02932 A[133]=0; 02933 A[132]=1; 02934 A[131]=1; 02935 A[130]=1; 02936 A[129]=1; 02937 A[128]=0; 02938 A[127]=1; 02939 A[126]=1; 02940 break; 02941 } 02942 case 205: { 02943 A[133]=0; 02944 A[132]=1; 02945 A[131]=1; 02946 A[130]=0; 02947 A[129]=0; 02948 A[128]=1; 02949 A[127]=0; 02950 A[126]=1; 02951 break; 02952 } 02953 case 134: { 02954 A[133]=1; 02955 A[132]=1; 02956 A[131]=1; 02957 A[130]=0; 02958 A[129]=1; 02959 A[128]=0; 02960 A[127]=1; 02961 A[126]=0; 02962 break; 02963 } 02964 case 170: { 02965 A[133]=1; 02966 A[132]=1; 02967 A[131]=1; 02968 A[130]=1; 02969 A[129]=0; 02970 A[128]=1; 02971 A[127]=1; 02972 A[126]=0; 02973 break; 02974 } 02975 case 206: { 02976 A[133]=1; 02977 A[132]=1; 02978 A[131]=0; 02979 A[130]=0; 02980 A[129]=1; 02981 A[128]=0; 02982 A[127]=1; 02983 A[126]=0; 02984 break; 02985 } 02986 case 135: { 02987 A[133]=0; 02988 A[132]=1; 02989 A[131]=0; 02990 A[130]=1; 02991 A[129]=0; 02992 A[128]=1; 02993 A[127]=0; 02994 A[126]=1; 02995 break; 02996 } 02997 case 171: { 02998 A[133]=0; 02999 A[132]=1; 03000 A[131]=1; 03001 A[130]=0; 03002 A[129]=1; 03003 A[128]=1; 03004 A[127]=0; 03005 A[126]=1; 03006 break; 03007 } 03008 case 207: { 03009 A[133]=0; 03010 A[132]=0; 03011 A[131]=0; 03012 A[130]=1; 03013 A[129]=0; 03014 A[128]=1; 03015 A[127]=0; 03016 A[126]=1; 03017 break; 03018 } 03019 case 208: { 03020 A[133]=1; 03021 A[132]=0; 03022 A[131]=1; 03023 A[130]=0; 03024 A[129]=1; 03025 A[128]=0; 03026 A[127]=1; 03027 A[126]=1; 03028 break; 03029 } 03030 case 224: { 03031 A[133]=1; 03032 A[132]=0; 03033 A[131]=1; 03034 A[130]=0; 03035 A[129]=0; 03036 A[128]=1; 03037 A[127]=1; 03038 A[126]=1; 03039 break; 03040 } 03041 case 240: { 03042 A[133]=1; 03043 A[132]=0; 03044 A[131]=0; 03045 A[130]=1; 03046 A[129]=1; 03047 A[128]=0; 03048 A[127]=0; 03049 A[126]=0; 03050 break; 03051 } 03052 case 209: { 03053 A[133]=0; 03054 A[132]=1; 03055 A[131]=0; 03056 A[130]=1; 03057 A[129]=0; 03058 A[128]=1; 03059 A[127]=1; 03060 A[126]=1; 03061 break; 03062 } 03063 case 225: { 03064 A[133]=0; 03065 A[132]=1; 03066 A[131]=0; 03067 A[130]=0; 03068 A[129]=1; 03069 A[128]=1; 03070 A[127]=1; 03071 A[126]=1; 03072 break; 03073 } 03074 case 241: { 03075 A[133]=0; 03076 A[132]=0; 03077 A[131]=1; 03078 A[130]=1; 03079 A[129]=0; 03080 A[128]=0; 03081 A[127]=0; 03082 A[126]=0; 03083 break; 03084 } 03085 case 210: { 03086 A[133]=1; 03087 A[132]=0; 03088 A[131]=1; 03089 A[130]=0; 03090 A[129]=1; 03091 A[128]=1; 03092 A[127]=1; 03093 A[126]=0; 03094 break; 03095 } 03096 case 226: { 03097 A[133]=1; 03098 A[132]=0; 03099 A[131]=0; 03100 A[130]=1; 03101 A[129]=1; 03102 A[128]=1; 03103 A[127]=1; 03104 A[126]=0; 03105 break; 03106 } 03107 case 242: { 03108 A[133]=1; 03109 A[132]=1; 03110 A[131]=1; 03111 A[130]=0; 03112 A[129]=0; 03113 A[128]=0; 03114 A[127]=0; 03115 A[126]=0; 03116 break; 03117 } 03118 case 211: { 03119 A[133]=0; 03120 A[132]=1; 03121 A[131]=0; 03122 A[130]=1; 03123 A[129]=1; 03124 A[128]=1; 03125 A[127]=0; 03126 A[126]=0; 03127 break; 03128 } 03129 case 227: { 03130 A[133]=0; 03131 A[132]=0; 03132 A[131]=1; 03133 A[130]=1; 03134 A[129]=1; 03135 A[128]=1; 03136 A[127]=0; 03137 A[126]=0; 03138 break; 03139 } 03140 case 243: { 03141 A[133]=0; 03142 A[132]=1; 03143 A[131]=0; 03144 A[130]=0; 03145 A[129]=0; 03146 A[128]=0; 03147 A[127]=0; 03148 A[126]=1; 03149 break; 03150 } 03151 case 212: { 03152 A[133]=1; 03153 A[132]=0; 03154 A[131]=1; 03155 A[130]=1; 03156 A[129]=1; 03157 A[128]=0; 03158 A[127]=0; 03159 A[126]=1; 03160 break; 03161 } 03162 case 228: { 03163 A[133]=1; 03164 A[132]=1; 03165 A[131]=1; 03166 A[130]=1; 03167 A[129]=1; 03168 A[128]=0; 03169 A[127]=0; 03170 A[126]=0; 03171 break; 03172 } 03173 case 244: { 03174 A[133]=1; 03175 A[132]=0; 03176 A[131]=0; 03177 A[130]=0; 03178 A[129]=0; 03179 A[128]=0; 03180 A[127]=1; 03181 A[126]=0; 03182 break; 03183 } 03184 case 213: { 03185 A[133]=0; 03186 A[132]=1; 03187 A[131]=1; 03188 A[130]=1; 03189 A[129]=0; 03190 A[128]=0; 03191 A[127]=1; 03192 A[126]=1; 03193 break; 03194 } 03195 case 229: { 03196 A[133]=0; 03197 A[132]=1; 03198 A[131]=1; 03199 A[130]=1; 03200 A[129]=0; 03201 A[128]=0; 03202 A[127]=0; 03203 A[126]=1; 03204 break; 03205 } 03206 case 245: { 03207 A[133]=0; 03208 A[132]=0; 03209 A[131]=0; 03210 A[130]=0; 03211 A[129]=0; 03212 A[128]=1; 03213 A[127]=0; 03214 A[126]=0; 03215 break; 03216 } 03217 case 214: { 03218 A[133]=1; 03219 A[132]=1; 03220 A[131]=1; 03221 A[130]=0; 03222 A[129]=0; 03223 A[128]=1; 03224 A[127]=1; 03225 A[126]=0; 03226 break; 03227 } 03228 case 230: { 03229 A[133]=1; 03230 A[132]=1; 03231 A[131]=1; 03232 A[130]=0; 03233 A[129]=0; 03234 A[128]=0; 03235 A[127]=1; 03236 A[126]=0; 03237 break; 03238 } 03239 case 246: { 03240 A[133]=1; 03241 A[132]=0; 03242 A[131]=0; 03243 A[130]=0; 03244 A[129]=1; 03245 A[128]=0; 03246 A[127]=0; 03247 A[126]=0; 03248 break; 03249 } 03250 case 215: { 03251 A[133]=0; 03252 A[132]=1; 03253 A[131]=0; 03254 A[130]=0; 03255 A[129]=1; 03256 A[128]=1; 03257 A[127]=0; 03258 A[126]=1; 03259 break; 03260 } 03261 case 231: { 03262 A[133]=0; 03263 A[132]=1; 03264 A[131]=0; 03265 A[130]=0; 03266 A[129]=0; 03267 A[128]=1; 03268 A[127]=0; 03269 A[126]=1; 03270 break; 03271 } 03272 case 247: { 03273 A[133]=0; 03274 A[132]=0; 03275 A[131]=0; 03276 A[130]=1; 03277 A[129]=0; 03278 A[128]=0; 03279 A[127]=0; 03280 A[126]=0; 03281 break; 03282 } 03283 case 216: { 03284 A[133]=1; 03285 A[132]=0; 03286 A[131]=0; 03287 A[130]=1; 03288 A[129]=1; 03289 A[128]=0; 03290 A[127]=1; 03291 A[126]=0; 03292 break; 03293 } 03294 case 232: { 03295 A[133]=1; 03296 A[132]=0; 03297 A[131]=0; 03298 A[130]=0; 03299 A[129]=1; 03300 A[128]=0; 03301 A[127]=1; 03302 A[126]=0; 03303 break; 03304 } 03305 case 248: { 03306 A[133]=1; 03307 A[132]=0; 03308 A[131]=1; 03309 A[130]=0; 03310 A[129]=0; 03311 A[128]=0; 03312 A[127]=0; 03313 A[126]=0; 03314 break; 03315 } 03316 case 217: { 03317 A[133]=0; 03318 A[132]=0; 03319 A[131]=1; 03320 A[130]=1; 03321 A[129]=0; 03322 A[128]=1; 03323 A[127]=0; 03324 A[126]=0; 03325 break; 03326 } 03327 case 233: { 03328 A[133]=0; 03329 A[132]=0; 03330 A[131]=0; 03331 A[130]=1; 03332 A[129]=0; 03333 A[128]=1; 03334 A[127]=0; 03335 A[126]=0; 03336 break; 03337 } 03338 case 249: { 03339 A[133]=0; 03340 A[132]=1; 03341 A[131]=0; 03342 A[130]=0; 03343 A[129]=0; 03344 A[128]=0; 03345 A[127]=0; 03346 A[126]=0; 03347 break; 03348 } 03349 case 218: { 03350 A[133]=1; 03351 A[132]=1; 03352 A[131]=1; 03353 A[130]=0; 03354 A[129]=1; 03355 A[128]=0; 03356 A[127]=0; 03357 A[126]=0; 03358 break; 03359 } 03360 case 234: { 03361 A[133]=1; 03362 A[132]=0; 03363 A[131]=1; 03364 A[130]=0; 03365 A[129]=1; 03366 A[128]=0; 03367 A[127]=0; 03368 A[126]=0; 03369 break; 03370 } 03371 case 250: { 03372 A[133]=1; 03373 A[132]=0; 03374 A[131]=0; 03375 A[130]=0; 03376 A[129]=0; 03377 A[128]=0; 03378 A[127]=0; 03379 A[126]=1; 03380 break; 03381 } 03382 case 219: { 03383 A[133]=0; 03384 A[132]=1; 03385 A[131]=0; 03386 A[130]=1; 03387 A[129]=0; 03388 A[128]=0; 03389 A[127]=0; 03390 A[126]=1; 03391 break; 03392 } 03393 case 235: { 03394 A[133]=0; 03395 A[132]=1; 03396 A[131]=0; 03397 A[130]=1; 03398 A[129]=0; 03399 A[128]=0; 03400 A[127]=0; 03401 A[126]=0; 03402 break; 03403 } 03404 case 251: { 03405 A[133]=0; 03406 A[132]=0; 03407 A[131]=0; 03408 A[130]=0; 03409 A[129]=0; 03410 A[128]=0; 03411 A[127]=1; 03412 A[126]=1; 03413 break; 03414 } 03415 case 220: { 03416 A[133]=1; 03417 A[132]=0; 03418 A[131]=1; 03419 A[130]=0; 03420 A[129]=0; 03421 A[128]=0; 03422 A[127]=1; 03423 A[126]=0; 03424 break; 03425 } 03426 case 236: { 03427 A[133]=1; 03428 A[132]=0; 03429 A[131]=1; 03430 A[130]=0; 03431 A[129]=0; 03432 A[128]=0; 03433 A[127]=0; 03434 A[126]=1; 03435 break; 03436 } 03437 case 252: { 03438 A[133]=1; 03439 A[132]=0; 03440 A[131]=0; 03441 A[130]=0; 03442 A[129]=0; 03443 A[128]=1; 03444 A[127]=1; 03445 A[126]=1; 03446 break; 03447 } 03448 case 221: { 03449 A[133]=0; 03450 A[132]=1; 03451 A[131]=0; 03452 A[130]=0; 03453 A[129]=0; 03454 A[128]=1; 03455 A[127]=0; 03456 A[126]=0; 03457 break; 03458 } 03459 case 237: { 03460 A[133]=0; 03461 A[132]=1; 03462 A[131]=0; 03463 A[130]=0; 03464 A[129]=0; 03465 A[128]=0; 03466 A[127]=1; 03467 A[126]=1; 03468 break; 03469 } 03470 case 253: { 03471 A[133]=0; 03472 A[132]=0; 03473 A[131]=0; 03474 A[130]=0; 03475 A[129]=1; 03476 A[128]=1; 03477 A[127]=1; 03478 A[126]=1; 03479 break; 03480 } 03481 case 222: { 03482 A[133]=1; 03483 A[132]=0; 03484 A[131]=0; 03485 A[130]=0; 03486 A[129]=1; 03487 A[128]=0; 03488 A[127]=0; 03489 A[126]=1; 03490 break; 03491 } 03492 case 238: { 03493 A[133]=1; 03494 A[132]=0; 03495 A[131]=0; 03496 A[130]=0; 03497 A[129]=0; 03498 A[128]=1; 03499 A[127]=1; 03500 A[126]=0; 03501 break; 03502 } 03503 case 254: { 03504 A[133]=1; 03505 A[132]=0; 03506 A[131]=0; 03507 A[130]=1; 03508 A[129]=1; 03509 A[128]=1; 03510 A[127]=1; 03511 A[126]=1; 03512 break; 03513 } 03514 case 223: { 03515 A[133]=0; 03516 A[132]=0; 03517 A[131]=0; 03518 A[130]=1; 03519 A[129]=0; 03520 A[128]=0; 03521 A[127]=1; 03522 A[126]=1; 03523 break; 03524 } 03525 case 239: { 03526 A[133]=0; 03527 A[132]=0; 03528 A[131]=0; 03529 A[130]=0; 03530 A[129]=1; 03531 A[128]=1; 03532 A[127]=0; 03533 A[126]=0; 03534 break; 03535 } 03536 case 255: { 03537 A[133]=0; 03538 A[132]=0; 03539 A[131]=1; 03540 A[130]=1; 03541 A[129]=1; 03542 A[128]=1; 03543 A[127]=1; 03544 A[126]=1; 03545 break; 03546 } 03547 default : { 03548 A[133]=0; 03549 A[132]=0; 03550 A[131]=0; 03551 A[130]=0; 03552 A[129]=0; 03553 A[128]=0; 03554 A[127]=0; 03555 A[126]=0; 03556 break; 03557 } 03558 } 03559 } 03560 03561 /************************************************** 03562 Setting the Forward Divider Pre-scalar bits for A A[150:149] 03563 Range: 1,2,4 03564 **************************************************/ 03565 void PLL::setFwDivPreScalerA(int val) 03566 { 03567 //scan_load[150:144] = PLL_RANGEA; => 29 03568 //RANGEA[6:5] 03569 switch(val) { 03570 case 1: { 03571 A[150] = 0; 03572 A[149] = 0; 03573 break; 03574 } 03575 case 2: { 03576 A[150] = 1; 03577 A[149] = 0; 03578 break; 03579 } 03580 //case 3 not supported 03581 case 4: { 03582 A[150] = 1; 03583 A[149] = 1; 03584 break; 03585 } 03586 } 03587 } 03588 03589 /************************************************** 03590 Setting the Forward Divider Pre-scalar bits A[148:144] 03591 Range: 1-32 03592 **************************************************/ 03593 void PLL::setFwDivA(int val) 03594 { 03595 switch(val) { 03596 case 32: { 03597 A[148]=0; 03598 A[147]=1; 03599 A[146]=1; 03600 A[145]=1; 03601 A[144]=0; 03602 break; 03603 } 03604 case 31: { 03605 A[148]=0; 03606 A[147]=1; 03607 A[146]=1; 03608 A[145]=1; 03609 A[144]=1; 03610 break; 03611 } 03612 case 30: { 03613 A[148]=0; 03614 A[147]=0; 03615 A[146]=1; 03616 A[145]=1; 03617 A[144]=0; 03618 break; 03619 } 03620 case 29: { 03621 A[148]=0; 03622 A[147]=0; 03623 A[146]=1; 03624 A[145]=1; 03625 A[144]=1; 03626 break; 03627 } 03628 case 28: { 03629 A[148]=0; 03630 A[147]=0; 03631 A[146]=0; 03632 A[145]=1; 03633 A[144]=0; 03634 break; 03635 } 03636 case 27: { 03637 A[148]=0; 03638 A[147]=0; 03639 A[146]=0; 03640 A[145]=1; 03641 A[144]=1; 03642 break; 03643 } 03644 case 26: { 03645 A[148]=1; 03646 A[147]=0; 03647 A[146]=0; 03648 A[145]=0; 03649 A[144]=0; 03650 break; 03651 } 03652 case 25: { 03653 A[148]=1; 03654 A[147]=0; 03655 A[146]=0; 03656 A[145]=0; 03657 A[144]=1; 03658 break; 03659 } 03660 case 24: { 03661 A[148]=0; 03662 A[147]=1; 03663 A[146]=0; 03664 A[145]=0; 03665 A[144]=0; 03666 break; 03667 } 03668 case 23: { 03669 A[148]=0; 03670 A[147]=1; 03671 A[146]=0; 03672 A[145]=0; 03673 A[144]=1; 03674 break; 03675 } 03676 case 22: { 03677 A[148]=0; 03678 A[147]=0; 03679 A[146]=1; 03680 A[145]=0; 03681 A[144]=0; 03682 break; 03683 } 03684 case 21: { 03685 A[148]=0; 03686 A[147]=0; 03687 A[146]=1; 03688 A[145]=0; 03689 A[144]=1; 03690 break; 03691 } 03692 case 20: { 03693 A[148]=1; 03694 A[147]=0; 03695 A[146]=0; 03696 A[145]=1; 03697 A[144]=0; 03698 break; 03699 } 03700 case 19: { 03701 A[148]=1; 03702 A[147]=0; 03703 A[146]=0; 03704 A[145]=1; 03705 A[144]=1; 03706 break; 03707 } 03708 case 18: { 03709 A[148]=1; 03710 A[147]=1; 03711 A[146]=0; 03712 A[145]=0; 03713 A[144]=0; 03714 break; 03715 } 03716 case 17: { 03717 A[148]=1; 03718 A[147]=1; 03719 A[146]=0; 03720 A[145]=0; 03721 A[144]=1; 03722 break; 03723 } 03724 case 16: { 03725 A[148]=0; 03726 A[147]=1; 03727 A[146]=1; 03728 A[145]=0; 03729 A[144]=0; 03730 break; 03731 } 03732 case 15: { 03733 A[148]=0; 03734 A[147]=1; 03735 A[146]=1; 03736 A[145]=0; 03737 A[144]=1; 03738 break; 03739 } 03740 case 14: { 03741 A[148]=1; 03742 A[147]=0; 03743 A[146]=1; 03744 A[145]=1; 03745 A[144]=0; 03746 break; 03747 } 03748 case 13: { 03749 A[148]=1; 03750 A[147]=0; 03751 A[146]=1; 03752 A[145]=1; 03753 A[144]=1; 03754 break; 03755 } 03756 case 12: { 03757 A[148]=0; 03758 A[147]=1; 03759 A[146]=0; 03760 A[145]=1; 03761 A[144]=0; 03762 break; 03763 } 03764 case 11: { 03765 A[148]=0; 03766 A[147]=1; 03767 A[146]=0; 03768 A[145]=1; 03769 A[144]=1; 03770 break; 03771 } 03772 case 10: { 03773 A[148]=1; 03774 A[147]=0; 03775 A[146]=1; 03776 A[145]=0; 03777 A[144]=0; 03778 break; 03779 } 03780 case 9: { 03781 A[148]=1; 03782 A[147]=0; 03783 A[146]=1; 03784 A[145]=0; 03785 A[144]=1; 03786 break; 03787 } 03788 case 8: { 03789 A[148]=1; 03790 A[147]=1; 03791 A[146]=0; 03792 A[145]=1; 03793 A[144]=0; 03794 break; 03795 } 03796 case 7: { 03797 A[148]=1; 03798 A[147]=1; 03799 A[146]=0; 03800 A[145]=1; 03801 A[144]=1; 03802 break; 03803 } 03804 case 6: { 03805 A[148]=1; 03806 A[147]=1; 03807 A[146]=1; 03808 A[145]=0; 03809 A[144]=0; 03810 break; 03811 } 03812 case 5: { 03813 A[148]=1; 03814 A[147]=1; 03815 A[146]=1; 03816 A[145]=0; 03817 A[144]=1; 03818 break; 03819 } 03820 case 4: { 03821 A[148]=1; 03822 A[147]=1; 03823 A[146]=1; 03824 A[145]=1; 03825 A[144]=0; 03826 break; 03827 } 03828 case 3: { 03829 A[148]=1; 03830 A[147]=1; 03831 A[146]=1; 03832 A[145]=1; 03833 A[144]=1; 03834 break; 03835 } 03836 case 2: { 03837 A[148]=0; 03838 A[147]=0; 03839 A[146]=0; 03840 A[145]=0; 03841 A[144]=1; 03842 break; 03843 } 03844 case 1: { 03845 A[148]=0; 03846 A[147]=0; 03847 A[146]=0; 03848 A[145]=0; 03849 A[144]=0; 03850 break; 03851 } 03852 default: { 03853 A[148]=0; 03854 A[147]=0; 03855 A[146]=0; 03856 A[145]=0; 03857 A[144]=0; 03858 break; 03859 } 03860 } 03861 } 03862 03863 /************************************************** 03864 Setting the Forward Divider Pre-scalar bits for B A[157:156] 03865 Range: 1,2,4 03866 **************************************************/ 03867 void PLL::setFwDivPreScalerB(int val) 03868 { 03869 //scan_load[150:144] = PLL_RANGEA; => 29 03870 //RANGEA[6:5] 03871 switch(val) { 03872 case 1: { 03873 A[157] = 0; 03874 A[156] = 0; 03875 break; 03876 } 03877 case 2: { 03878 A[157] = 1; 03879 A[156] = 0; 03880 break; 03881 } 03882 //case 3 not supported 03883 case 4: { 03884 A[157] = 1; 03885 A[156] = 1; 03886 break; 03887 } 03888 } 03889 } 03890 03891 /************************************************** 03892 Setting the Forward Divider Pre-scalar bits for B A[155:151] 03893 Range: 1-32 03894 **************************************************/ 03895 void PLL::setFwDivB(int val) 03896 { 03897 //scan_load[157:151] = PLL_RANGEB; => 24 03898 //RANGEB[4:0] 03899 int init = 151; 03900 switch(val) { 03901 case 32: { 03902 A[155]=0; 03903 A[154]=1; 03904 A[153]=1; 03905 A[152]=1; 03906 A[151]=0; 03907 break; 03908 } 03909 case 31: { 03910 A[155]=0; 03911 A[154]=1; 03912 A[153]=1; 03913 A[152]=1; 03914 A[151]=1; 03915 break; 03916 } 03917 case 30: { 03918 A[155]=0; 03919 A[154]=0; 03920 A[153]=1; 03921 A[152]=1; 03922 A[151]=0; 03923 break; 03924 } 03925 case 29: { 03926 A[155]=0; 03927 A[154]=0; 03928 A[153]=1; 03929 A[152]=1; 03930 A[151]=1; 03931 break; 03932 } 03933 case 28: { 03934 A[155]=0; 03935 A[154]=0; 03936 A[153]=0; 03937 A[152]=1; 03938 A[151]=0; 03939 break; 03940 } 03941 case 27: { 03942 A[155]=0; 03943 A[154]=0; 03944 A[153]=0; 03945 A[152]=1; 03946 A[151]=1; 03947 break; 03948 } 03949 case 26: { 03950 A[155]=1; 03951 A[154]=0; 03952 A[153]=0; 03953 A[152]=0; 03954 A[151]=0; 03955 break; 03956 } 03957 case 25: { 03958 A[155]=1; 03959 A[154]=0; 03960 A[153]=0; 03961 A[152]=0; 03962 A[151]=1; 03963 break; 03964 } 03965 case 24: { 03966 A[155]=0; 03967 A[154]=1; 03968 A[153]=0; 03969 A[152]=0; 03970 A[151]=0; 03971 break; 03972 } 03973 case 23: { 03974 A[155]=0; 03975 A[154]=1; 03976 A[153]=0; 03977 A[152]=0; 03978 A[151]=1; 03979 break; 03980 } 03981 case 22: { 03982 A[155]=0; 03983 A[154]=0; 03984 A[153]=1; 03985 A[152]=0; 03986 A[151]=0; 03987 break; 03988 } 03989 case 21: { 03990 A[155]=0; 03991 A[154]=0; 03992 A[153]=1; 03993 A[152]=0; 03994 A[151]=1; 03995 break; 03996 } 03997 case 20: { 03998 A[155]=1; 03999 A[154]=0; 04000 A[153]=0; 04001 A[152]=1; 04002 A[151]=0; 04003 break; 04004 } 04005 case 19: { 04006 A[155]=1; 04007 A[154]=0; 04008 A[153]=0; 04009 A[152]=1; 04010 A[151]=1; 04011 break; 04012 } 04013 case 18: { 04014 A[155]=1; 04015 A[154]=1; 04016 A[153]=0; 04017 A[152]=0; 04018 A[151]=0; 04019 break; 04020 } 04021 case 17: { 04022 A[155]=1; 04023 A[154]=1; 04024 A[153]=0; 04025 A[152]=0; 04026 A[151]=1; 04027 break; 04028 } 04029 case 16: { 04030 A[155]=0; 04031 A[154]=1; 04032 A[153]=1; 04033 A[152]=0; 04034 A[151]=0; 04035 break; 04036 } 04037 case 15: { 04038 A[155]=0; 04039 A[154]=1; 04040 A[153]=1; 04041 A[152]=0; 04042 A[151]=1; 04043 break; 04044 } 04045 case 14: { 04046 A[155]=1; 04047 A[154]=0; 04048 A[153]=1; 04049 A[152]=1; 04050 A[151]=0; 04051 break; 04052 } 04053 case 13: { 04054 A[155]=1; 04055 A[154]=0; 04056 A[153]=1; 04057 A[152]=1; 04058 A[151]=1; 04059 break; 04060 } 04061 case 12: { 04062 A[155]=0; 04063 A[154]=1; 04064 A[153]=0; 04065 A[152]=1; 04066 A[151]=0; 04067 break; 04068 } 04069 case 11: { 04070 A[155]=0; 04071 A[154]=1; 04072 A[153]=0; 04073 A[152]=1; 04074 A[151]=1; 04075 break; 04076 } 04077 case 10: { 04078 A[155]=1; 04079 A[154]=0; 04080 A[153]=1; 04081 A[152]=0; 04082 A[151]=0; 04083 break; 04084 } 04085 case 9: { 04086 A[155]=1; 04087 A[154]=0; 04088 A[153]=1; 04089 A[152]=0; 04090 A[151]=1; 04091 break; 04092 } 04093 case 8: { 04094 A[155]=1; 04095 A[154]=1; 04096 A[153]=0; 04097 A[152]=1; 04098 A[151]=0; 04099 break; 04100 } 04101 case 7: { 04102 A[155]=1; 04103 A[154]=1; 04104 A[153]=0; 04105 A[152]=1; 04106 A[151]=1; 04107 break; 04108 } 04109 case 6: { 04110 A[155]=1; 04111 A[154]=1; 04112 A[153]=1; 04113 A[152]=0; 04114 A[151]=0; 04115 break; 04116 } 04117 case 5: { 04118 A[155]=1; 04119 A[154]=1; 04120 A[153]=1; 04121 A[152]=0; 04122 A[151]=1; 04123 break; 04124 } 04125 case 4: { 04126 A[155]=1; 04127 A[154]=1; 04128 A[153]=1; 04129 A[152]=1; 04130 A[151]=0; 04131 break; 04132 } 04133 case 3: { 04134 A[155]=1; 04135 A[154]=1; 04136 A[153]=1; 04137 A[152]=1; 04138 A[151]=1; 04139 break; 04140 } 04141 case 2: { 04142 A[155]=0; 04143 A[154]=0; 04144 A[153]=0; 04145 A[152]=0; 04146 A[151]=1; 04147 break; 04148 } 04149 case 1: { 04150 A[155]=0; 04151 A[154]=0; 04152 A[153]=0; 04153 A[152]=0; 04154 A[151]=0; 04155 break; 04156 } 04157 default: { 04158 A[155]=0; 04159 A[154]=0; 04160 A[153]=0; 04161 A[152]=0; 04162 A[151]=0; 04163 break; 04164 } 04165 } 04166 } 04167 04168 /************************************************** 04169 Setting LFTUNE bits A[83:43] 04170 Range: 0(2.5-3.2) - 1(3.2-5.0) 04171 int FB_MODE;//feedback mode, 0 for external, 1 for internal 04172 **************************************************/ 04173 void PLL::setLFTUNE(int interval) 04174 { 04175 if (FB_MODE) { //internal 04176 A[79]=1;//LFTUNE[36]=1 04177 A[73]=1;//LFTUNE[30]=1 04178 A[63]=1;//LFTUNE[20]=1 04179 switch (interval) { 04180 case 0: { 04181 A[82]=0; 04182 A[81]=1; 04183 break; 04184 } 04185 case 1: { 04186 A[82]=1; 04187 A[81]=1; 04188 break; 04189 } 04190 default: { 04191 A[82]=1; 04192 A[81]=1; 04193 break; 04194 } 04195 } 04196 } else { //external 04197 A[83]=1;//LFTUNE[40]=1 04198 A[79]=1;//LFTUNE[36]=1 04199 A[63]=1;//LFTUNE[20]=1 04200 switch (interval) { 04201 case 0: { 04202 A[82]=0; 04203 A[81]=1; 04204 break; 04205 } 04206 case 1: { 04207 A[82]=1; 04208 A[81]=1; 04209 break; 04210 } 04211 default: { 04212 A[82]=1; 04213 A[81]=1; 04214 break; 04215 } 04216 } 04217 } 04218 } 04219 04220 /************************************************** 04221 Setting FFTUNE bits A[41:26] 04222 int FB_MODE;//feedback mode, 0 for external, 1 for internal 04223 it seems that Matt's code set A[34] to 1 instead of 35, not sure why 04224 **************************************************/ 04225 void PLL::setFFTUNE(int interval) 04226 { 04227 if (FB_MODE) { //internal 04228 //A[35]=1;//FFTUNE[9]=1 04229 //debug 04230 switch (interval) { 04231 case 0: { 04232 A[35]=0; //slow DCO 04233 A[34]=1; 04234 break; 04235 } 04236 case 1: { 04237 A[35]=1; //fast DCO 04238 A[34]=0; 04239 break; 04240 } 04241 default: { 04242 A[35]=0; 04243 A[34]=1; 04244 break; 04245 } 04246 } 04247 } else { //external 04248 A[37]=1;//FFTUNE[11]=1 04249 switch (interval) { 04250 case 0: { 04251 A[35]=0; //slow DCO 04252 A[34]=1; 04253 break; 04254 } 04255 case 1: { 04256 A[35]=1; //fast DCO 04257 A[34]=0; 04258 break; 04259 } 04260 default: { 04261 A[35]=0; 04262 A[34]=1; 04263 break; 04264 } 04265 } 04266 } 04267 } 04268 04269 /************************************************** 04270 Setting INTFBK bit A[42] 04271 int FB_MODE;//feedback mode, 0 for external, 1 for internal 04272 **************************************************/ 04273 void PLL::setINTFBK() 04274 { 04275 A[42] = FB_MODE; 04276 } 04277 04278 /************************************************** 04279 Setting the RO bits for A[7:0] 04280 **************************************************/ 04281 void PLL::setROandOther() 04282 { 04283 A[1] = 1; // reset ring_osc 04284 A[168] = 1; 04285 A[169] = 1; 04286 } 04287 04288 /************************************************** 04289 Setting internal clk source bits A[9:8] 04290 Range: 0: HCLK_EXT 1: ring_osc 2: PLLOUT_A 3: PLLOUT_B 04291 **************************************************/ 04292 void PLL::setINTMUX(int clk) 04293 { 04294 switch(clk) { 04295 case 3: { 04296 A[9]=1; 04297 A[8]=1; 04298 break; 04299 } 04300 case 2: { 04301 A[9]=1; 04302 A[8]=0; 04303 break; 04304 } 04305 case 1: { 04306 A[9]=0; 04307 A[8]=1; 04308 break; 04309 } 04310 case 0: { 04311 A[9]=0; 04312 A[8]=0; 04313 break; 04314 } 04315 default: { 04316 A[9]=0; 04317 A[8]=0; 04318 break; 04319 } 04320 } 04321 } 04322 04323 /************************************************** 04324 Setting external clk source bits A[15:14] 04325 Range: 0: HCLK_EXT 1: HCLK_divider 2: PLLOUT_A 3: PLLOUT_B 04326 **************************************************/ 04327 void PLL::setEXTMUX(int clk) 04328 { 04329 switch(clk) { 04330 case 3: { 04331 A[15]=1; 04332 A[14]=1; 04333 break; 04334 } 04335 case 2: { 04336 A[15]=1; 04337 A[14]=0; 04338 break; 04339 } 04340 case 1: { 04341 A[15]=0; 04342 A[14]=1; 04343 break; 04344 } 04345 case 0: { 04346 A[15]=0; 04347 A[14]=0; 04348 break; 04349 } 04350 default: { 04351 A[15]=0; 04352 A[14]=0; 04353 break; 04354 } 04355 } 04356 } 04357 04358 /************************************************** 04359 Setting clk divider bits for B A[13:10] 04360 Range: 0-15, divided by 2^val 04361 **************************************************/ 04362 void PLL::setEXTDIV(int val) 04363 { 04364 switch(val) { 04365 case 15: { 04366 A[13]=1; 04367 A[12]=1; 04368 A[11]=1; 04369 A[10]=1; 04370 break; 04371 } 04372 case 14: { 04373 A[13]=1; 04374 A[12]=1; 04375 A[11]=1; 04376 A[10]=0; 04377 break; 04378 } 04379 case 13: { 04380 A[13]=1; 04381 A[12]=1; 04382 A[11]=0; 04383 A[10]=1; 04384 break; 04385 } 04386 case 12: { 04387 A[13]=1; 04388 A[12]=1; 04389 A[11]=0; 04390 A[10]=0; 04391 break; 04392 } 04393 case 11: { 04394 A[13]=1; 04395 A[12]=0; 04396 A[11]=1; 04397 A[10]=1; 04398 break; 04399 } 04400 case 10: { 04401 A[13]=1; 04402 A[12]=0; 04403 A[11]=1; 04404 A[10]=0; 04405 break; 04406 } 04407 case 9: { 04408 A[13]=1; 04409 A[12]=0; 04410 A[11]=0; 04411 A[10]=1; 04412 break; 04413 } 04414 case 8: { 04415 A[13]=1; 04416 A[12]=0; 04417 A[11]=0; 04418 A[10]=0; 04419 break; 04420 } 04421 case 7: { 04422 A[13]=0; 04423 A[12]=1; 04424 A[11]=1; 04425 A[10]=1; 04426 break; 04427 } 04428 case 6: { 04429 A[13]=0; 04430 A[12]=1; 04431 A[11]=1; 04432 A[10]=0; 04433 break; 04434 } 04435 case 5: { 04436 A[13]=0; 04437 A[12]=1; 04438 A[11]=0; 04439 A[10]=1; 04440 break; 04441 } 04442 case 4: { 04443 A[13]=0; 04444 A[12]=1; 04445 A[11]=0; 04446 A[10]=0; 04447 break; 04448 } 04449 case 3: { 04450 A[13]=0; 04451 A[12]=0; 04452 A[11]=1; 04453 A[10]=1; 04454 break; 04455 } 04456 case 2: { 04457 A[13]=0; 04458 A[12]=0; 04459 A[11]=1; 04460 A[10]=0; 04461 break; 04462 } 04463 case 1: { 04464 A[13]=0; 04465 A[12]=0; 04466 A[11]=0; 04467 A[10]=1; 04468 break; 04469 } 04470 case 0: { 04471 A[13]=0; 04472 A[12]=0; 04473 A[11]=0; 04474 A[10]=0; 04475 break; 04476 } 04477 default: { 04478 A[13]=0; 04479 A[12]=0; 04480 A[11]=0; 04481 A[10]=0; 04482 break; 04483 } 04484 } 04485 } 04486 04487 /************************************************** 04488 Setting clk divider bits for B A[158] 04489 Range: 0:unreset 1:reset 04490 **************************************************/ 04491 void PLL::resetPLL(int val) 04492 { 04493 if (val) { 04494 A[158]=1; 04495 } else { 04496 A[158]=0; 04497 } 04498 }
Generated on Thu Jul 14 2022 07:51:10 by
1.7.2