bool test_wafer() { int x, y; g_chipdata.Invalidate(); if (!ReportWafer()) return true; if (!ReportChip(x,y)) return true; g_chipdata.nEntry = nEntry; GetTimeStamp(g_chipdata.startTime); Log.timestamp("BEGIN"); tb.SetLed(0x10); bool repeat; int bin = settings.rocType == 0 ? TestRocAna::test_roc(repeat) : TestRocDig::test_roc(repeat); tb.SetLed(0x00); tb.Flush(); GetTimeStamp(g_chipdata.endTime); Log.timestamp("END"); Log.puts("\n"); Log.flush(); printf("%3i\n", bin); printf(" RSP %s\n", prober.printf("BinMapDie %i", bin)); return true; }
bool test_wafer() { int x, y; g_chipdata.Invalidate(); if (!ReportWafer()) return true; if (!ReportChip(x,y)) return true; g_chipdata.nEntry = nEntry; GetTimeStamp(g_chipdata.startTime); Log.timestamp("BEGIN"); tb.SetLed(0x10); bool repeat; int bin = test_roc(repeat); tb.SetLed(0x00); tb.Flush(); GetTimeStamp(g_chipdata.endTime); Log.timestamp("END"); Log.puts("\n"); Log.flush(); printf("%3i\n", bin); prober.SendCmd("BinMapDie %i", bin); return true; }
bool go_TestDefects() { if (deflist[chipPos].size() == 0) return true; printf(" Begin Defect Chip %c Test\n", chipPosChar[chipPos]); // goto first position int i = 0; if (!goto_def(i)) return false; prober.printf("MoveChuckContact"); do { int x, y; g_chipdata.Invalidate(); if (!ReportChip(x,y)) break; GetTimeStamp(g_chipdata.startTime); Log.timestamp("BEGIN"); bool repeat; int bin = settings.rocType == 0 ? TestRocAna::test_roc(repeat) : TestRocDig::test_roc(repeat); GetTimeStamp(g_chipdata.endTime); Log.timestamp("END"); Log.puts("\n"); Log.flush(); printf("%3i\n", bin); prober.printf("BinMapDie %i", bin); if (keypressed()) { printf(" wafer test interrupted!\n"); break; } tb.mDelay(100); i++; } while (goto_def(i)); prober.printf("MoveChuckSeparation"); return true; }
bool TestSingleChip(int &bin, bool &repeat) { int x, y; g_chipdata.Invalidate(); if (!ReportChip(x,y)) return false; GetTimeStamp(g_chipdata.startTime); Log.timestamp("BEGIN"); tb.SetLed(0x10); bin = test_roc(repeat); tb.SetLed(0x00); tb.Flush(); GetTimeStamp(g_chipdata.endTime); Log.timestamp("END"); Log.puts("\n"); Log.flush(); printf("%3i\n", bin); return true; }
bool TestSingleChip(int &bin, bool &repeat) { int x, y; g_chipdata.Invalidate(); if (!ReportChip(x,y)) return false; GetTimeStamp(g_chipdata.startTime); Log.timestamp("BEGIN"); tb.SetLed(0x10); bin = settings.rocType == 0 ? TestRocAna::test_roc(repeat) : TestRocDig::test_roc(repeat); tb.SetLed(0x00); tb.Flush(); // if (0<bin && bin<13) deflist[chipPos].add(x,y); GetTimeStamp(g_chipdata.endTime); Log.timestamp("END"); Log.puts("\n"); Log.flush(); printf("%3i\n", bin); return true; }