def GET_LYA_HV_TP_GLOBALS(): try: lya_h = 100 lya_v = 5 except Exception, e: #evg.SetSitePort(0, 0) #evg.PrintToConsole("-E- Some exception happened - Fail to retrieve H/V globals\n") print ("-E- Some exception happened - Fail to retrieve H/V globals\n") def CONVERT_HV_TO_DRC(): try: Darray = (lya_h - lya_h %544)/544 Culomn = lya_h %544 Row = lya_v except Exception, e: #evg.SetSitePort(0, 0) #evg.PrintToConsole("-E- Some exception happened - Fail to convert H/V to DRC\n") print ("-E- Some exception happened - Fail to retrieve H/V globals\n") def REVERT_DRC_PTD_REMAPPING(): try: if (Darray>255|Row>511|Culomn>543): #evg.PrintToConsole("-E- Some exception happened - DRC out of bound\n") #evg.SetSitePort(0, 0) print ("-E- Some exception happened - DRC out of bound\n") return else: re_darray = [31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255] group = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2] D = re_darray[Darray] options[group[D]]() except Exception, e: #evg.SetSitePort(0, 0) #evg.PrintToConsole("-E- Some exception happened - Fail to revert DRC PTD remapping\n") print ("-E- Some exception happened - Fail to revert DRC PTD remapping\n") def CALCULATE_LOGICAL_ADDRESS_PART1(): try: Slice = int(D/64)%4 Half = int(D/32)%2 Quad = int(D/8)%4 pIO = int(C/8) Chunk = int(C/4)%2 Colmux = 3 - C%4 except Exception, e: #evg.SetSitePort(0, 0) #evg.PrintToConsole("-E- Some exception happened - Fail in logical address calculation part 1\n") print("-E- Some exception happened - Fail in logical address calculation part 1\n") def MAP_PHYSICAL_IO_BACK_TO_CTV_IO(): try: quad0_half0 = [32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,96,97,98] quad1_half0 = [99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,256,257,258,259,260] quad2_half0 = [261,262,263,264,265,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156] quad3_half0 = [157,158,159,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223] quad0_half1 = ["",223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,255,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,159,158,157] quad1_half1 = ["",156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,265,264,263,262,261] quad2_half1 = ["","",260,259,258,257,256,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99] quad3_half1 = ["",98,97,96,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32] p2larray_half0 = [quad0_half0, quad1_half0, quad2_half0, quad3_half0] p2larray_half1 = [quad0_half1, quad1_half1, quad2_half1, quad3_half1] if (Half == 0): if p2larray_half0[Quad][pIO]: nIO = p2larray_half0[Quad][pIO] else: #evg.SetSitePort(0, 0) #evg.PrintToConsole("-E- Some exception happened - pIO undefined (Redundancy or Unused bits)\n") print("-E- Some exception happened - pIO undefined (Redundancy or Unused bits)\n") return elif p2larray_half1[Quad][pIO]: nIO = p2larray_half1[Quad][pIO] else: #evg.SetSitePort(0, 0) #evg.PrintToConsole("-E- Some exception happened - pIO undefined (Redundancy or Unused bits)\n") print("-E- Some exception happened - pIO undefined (Redundancy or Unused bits)\n") return except Exception, e: #evg.SetSitePort(0, 0) #evg.PrintToConsole("-E- Some exception happened - Fail MAP_PHYSICAL_IO_BACK_TO_CTV_IO\n") print("-E- Some exception happened - Fail MAP_PHYSICAL_IO_BACK_TO_CTV_IO\n") def CALCULATE_LOGICAL_ADDRESS_PART2(): try: if (int(pIO/34)%2 == 1): Way = D%8 + int(R/256)*8 else: Way = D%8 + (1-int(R/256))*8 WordLine = abs(R - 256)*int(R/256) + (255 - R)*(1-int(R/256)) Set = Colmux + WordLine*4 except Exception, e: #evg.SetSitePort(0, 0) #evg.PrintToConsole("-E- Some exception happened - Fail CALCULATE_LOGICAL_ADDRESS_PART2\n") print("-E- Some exception happened - Fail CALCULATE_LOGICAL_ADDRESS_PART2\n") def PRINT_P2L_SUMMARY(): try: print "\nDRC = ($ARGV[0],$ARGV[1],$ARGV[2])\n\n***********P2L***********\n\nSlice = $Slice\nHalf = $Half\nChunk = $Chunk\nWay = $Way\nSet = $Set\nIO = $nIO" except Exception, e: #evg.SetSitePort(0, 0) #evg.PrintToConsole("-E- Some exception happened - Fail PRINT_P2L_SUMMARY\n") print("-E- Some exception happened - Fail PRINT_P2L_SUMMARY\n") print "evg.SetSitePort(0, 1)" return def zero(): R = 511-Row #Group0: flip row def one(): R = R def two(): C = 543-Culomn #Group2: flip column def three(): C = 543-Culomn R = 511-Row #Group3: flip column and row options = {0 : zero, 1 : one, 2 : two, 3 : three}
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question