Testrong.Core.Primitives
Default/MQ
Testrong UI language, Default en-US
程序启动,加载AppSettings配置,如果文件不存在,则更新内存配置到配置文件
保存AppSettings配置
Load AppSettings配置
debug tool 是否正在运行
Debug tool 调用者
initialize
开始 DebugTool
结束 DebugTool
设置Flow中上一个DCLevel
根据Key取Value值
Nlog instance
Pattern service
DPS Service
PPMU service
Relay service
MixSignal service
System service
Log Service
Judge Service
Load BoardRelay Service
Shmoo Service
SiteManager service
Dependency Inject
Post STDF Ftr record
true: Post success, false: Not Post(ignore by stop on fail)
Post STDF Ftr record
true: Post success, false: Not Post(ignore by stop on fail)
Post STDF ftr record
true: Post success site infos, false: Not Post(ignore by stop on fail)
Post STDF PTR record
true: Post success, false: Not Post(ignore by stop on fail)
Post STDF PTR record
true: Post success, false: Not Post(ignore by stop on fail)
Post STDF PTR record
true: Post success, false: Not Post(ignore by stop on fail)
Post RawText log
Post RawText log
Post RawText log
将测试结果打印到 RawText log
将测试结果打印到 RawText log
将测试结果打印到 RawText log
将测试结果打印到 ReportText log
将测试结果打印到 CSV header
将测试结果打印到 Csv body
将测试结果打印到 Csv foot
Suspends the current thread for the specified number of milliseconds.
Suspends the current thread for the specified number of milliseconds.
Create FTR judge instance from parameters
Sample: Group_01+A01-A06
Create PTR judge instance from parameters
Sample: Group_01+A01-A06
Min and Max
Range unit
Lifetime of the project
Flow name to display in log
Author
Last update time
Program name
Brief description
声明Pattern数组
This interface accesses binning APIs. It allows to sort sites into speicified bin number.
Get default pass soft bin map
Get default error soft bin map
This method gets BinningInfo object by test suite name.
One test suite name can correspond to multiple test limits by having different test numbers with different test names, pins and limits. This method gets the FIRST test limit in datalog setting table.
Suppose there are two limit settings:
Test Number | Test Suite | Test Name | ... | Pin Name | High Limit | Low Limit
1001 | OS | OS_400mV | ... | A01,A02 | 300mV | 500mV
1011 | OS | OS_500mV | ... | A03,A04 | 400mV | 600mV
The following code gets the limit from first row, returns the limit information as a BinningInfo object.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("OS");
Note that there is a equivalent API with same feature:
BinningInfo binningInfo = context.FlowCatalog.BinningQuerier.Query("OS");
Name of test suite, usually it is same with the test name, which can be found in GUI datalog setting table, "Test Suite" column.
BinningInfo object. Returned BinningInfo object provides methods and properties related to test limits, like high limits, low limits, test number, test names and so on.
This method gets specified pin's BinningInfo object by test suite name.
One test suite name can correspond to multiple test limits by having different test numbers with different test names, pins and limits. This method gets the BinningInfo of test limit in datalog setting table who contains pin specified.
Suppose there are two limit settings:
Test Number | Test Suite | Test Name | ... | Pin Name | High Limit | Low Limit
1001 | OS | OS_400mV | ... | A01,A02 | 300mV | 500mV
1011 | OS | OS_500mV | ... | A03,A04 | 400mV | 600mV
The following code gets the limit from first row, returns the limit information as a BinningInfo object.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuiteAndSignal("OS","A01");
Note that there is a equivalent API with same feature:
BinningInfo binningInfo = context.FlowCatalog.BinningQuerier.Query("OS");
The following code gets the limit from second row, returns the limit information as a BinningInfo object.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuiteAndSignal("OS","A03");
Note that there is a equivalent API with same feature:
BinningInfo binningInfo = context.FlowCatalog.BinningQuerier.Query("OS","A03");
String. Name of test suite, usually it is same with the test name, which can be found in GUI datalog setting table, "Test Suite" column.
String. Name of pin.
BinningInfo object. Returned BinningInfo object provides methods and properties related to test limits, like high limits, low limits, test number, test names and so on.
This method sets bin number for the failing sites.
The bin can be either a pass bin or a fail bin, this can be used for the occasions where multiple pass bins are needed.
Once a site is sorted(no matter pass or fail) and got its bin number, it can not be overwritten.
In this example, a pattern is bursted(suppose this pattern has fails on site 1 and passes on site 2) and failing sites are binned out as FAIL.
Result patResult = PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1, true);//after burst, the test system recognizes that site 1 is failing, but doesn't perform bin sorting or set site 1 as failed.
context.Judger.UpdateSiteState(patResult.FailSites, null);//update site 1 as failed sites. In this example, patResult.FailSites here only contains site 1.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_FAIL");//get binning, PATTERN_FAIL corresponds to fail bin.
context.BinHandler.Binning(binningInfo);//perform bin sorting and set site 1 as failed.
In this example, a pattern is bursted(suppose this pattern has fails on site 1 and passes on site 2) and failing sites are binned out as FAIL, the code tries to perform bin sorting twice, but the second sorting has no effect.
Result patResult = PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1, true);//after burst, the test system recognizes that site 1 is failing, but doesn't perform bin sorting or set site 1 as failed.
context.Judger.UpdateSiteState(patResult.FailSites, null);//update site 1 as failed sites. In this example, patResult.FailSites here only contains site 1.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_FAIL_BIN_8");//get binning, PATTERN_FAIL_BIN_8 corresponds to fail bin.
context.BinHandler.Binning(binningInfo);//perform bin sorting and set site 1 as failed.
binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_FAIL_BIN_9");//get binning, PATTERN_FAIL_BIN_9 corresponds to fail bin.
context.BinHandler.Binning(binningInfo);//this binning takes no effect, since site 1 has been binned out using PATTERN_FAIL_BIN_8.
In this example, a pattern is bursted(suppose this pattern has fails on site 1 and passes on site 2) and failing sites are binned out as PASS.
Result patResult = PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1, true);//after burst, the test system recognizes that site 1 is failing, but doesn't perform bin sorting or set site 1 as failed.
context.Judger.UpdateSiteState(null, patResult.FailSites);//update site 1 as pass sites. In this example, patResult.FailSites here only contains site 1.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_PASS_BIN2");//get binning, PATTERN_PASS_BIN2 corresponds to pass bin.
context.BinHandler.Binning(binningInfo);//perform bin sorting and set site 1 as pass.
In this example, a pattern is bursted(suppose this pattern has fails on site 1 and passes on site 2) and failing sites are binned out as PASS, the code tries to perform bin sorting twice, but the second sorting has no effect.
Result patResult = PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1, true);//after burst, the test system recognizes that site 1 is failing, but doesn't perform bin sorting or set site 1 as failed.
context.Judger.UpdateSiteState(null, patResult.FailSites);//update site 1 as pass sites. In this example, patResult.FailSites here only contains site 1.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_PASS_BIN2");//get binning, PATTERN_PASS_BIN2 corresponds to pass bin.
context.BinHandler.Binning(binningInfo);//perform bin sorting and set site 1 as pass.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_PASS_BIN10");//get binning, PATTERN_PASS_BIN10 corresponds to pass bin.
context.BinHandler.Binning(binningInfo);//this binning takes no effect, since site 1 has been binned out using PATTERN_PASS_BIN2.
BinningInfo object.
This method sets bin number for the specified sites.
Yhe bin can be either a pass bin or a fail bin, this can be used for the occasions where multiple pass bins are needed.
Once a site is sorted(no matter pass or fail) and got its bin number, it can not be overwritten.
In this example, site 1 and 2 are set as failed sites and got binned out as fail.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_FAIL");
context.Judger.UpdateSiteState(new int[] { 1,2 }, null);
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo);
In this example, site 1 and 2 are set as failed sites and got binned out as fail, the code tries to perform bin sorting twice, but the second sorting has no effect.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_FAIL_BIN_8");//get binning, PATTERN_FAIL_BIN_8 corresponds to pass bin.
context.Judger.UpdateSiteState(new int[] { 1,2 }, null);
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo);
binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_FAIL_BIN_9");//get binning, PATTERN_FAIL_BIN_9 corresponds to pass bin.
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo);//this binning takes no effect, since site 1, and has been binned out using PATTERN_FAIL_BIN_8.
In this example, site 1 and 2 are set as pass sites and got binned out as pass.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_PASS");//get binning, PATTERN_PASS corresponds to pass bin.
context.Judger.UpdateSiteState(null, new int[] { 1,2 });//update site 1 and 2 as pass
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo);//sort site 1 and 2 as pass
In this example, site 1 and 2 are set as pass sites and got binned out as pass, the code tries to perform bin sorting twice, but the second sorting has no effect.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_PASS_BIN2");//get binning, PATTERN_PASS_BIN2 corresponds to pass bin.
context.Judger.UpdateSiteState(null, new int[] { 1,2 });//update site 1 and 2 as pass
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo);//sort site 1 and 2 as pass
binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_PASS_BIN4");//get binning, PATTERN_PASS_BIN4 corresponds to pass bin.
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo);//this binning takes no effect, since site 1 and 2 has been binned out using PATTERN_PASS_BIN2.
Int array contains site numbers.
BinningInfo object.
This method sets bin number for the specified sites.
Yhe bin can be either a pass bin or a fail bin, this can be used for the occasions where multiple pass bins are needed.
Once a site is sorted(no matter pass or fail) and got its bin number, it can not be overwritten.
In this example, site 1 and 2 are set as failed sites and got binned out as fail.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_FAIL");
context.Judger.UpdateSiteState(new int[] { 1,2 }, null);
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo.TestNo);
In this example, site 1 and 2 are set as failed sites and got binned out as fail, the code tries to perform bin sorting twice, but the second sorting has no effect.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_FAIL_BIN_8");//get binning, PATTERN_FAIL_BIN_8 corresponds to pass bin.
context.Judger.UpdateSiteState(new int[] { 1,2 }, null);
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo.TestNo);
binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_FAIL_BIN_9");//get binning, PATTERN_FAIL_BIN_9 corresponds to pass bin.
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo.TestNo);//this binning takes no effect, since site 1, and has been binned out using PATTERN_FAIL_BIN_8.
In this example, site 1 and 2 are set as pass sites and got binned out as pass.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_PASS");//get binning, PATTERN_PASS corresponds to pass bin.
context.Judger.UpdateSiteState(null, new int[] { 1,2 });//update site 1 and 2 as pass
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo.TestNo);//sort site 1 and 2 as pass
In this example, site 1 and 2 are set as pass sites and got binned out as pass, the code tries to perform bin sorting twice, but the second sorting has no effect.
BinningInfo binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_PASS_BIN2");//get binning, PATTERN_PASS_BIN2 corresponds to pass bin.
context.Judger.UpdateSiteState(null, new int[] { 1,2 });//update site 1 and 2 as pass
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo.TestNo);//sort site 1 and 2 as pass
binningInfo = context.BinHandler.GetBinningByTestSuite("PATTERN_PASS_BIN4");//get binning, PATTERN_PASS_BIN4 corresponds to pass bin.
context.BinHandler.Binning(new int[] { 1,2 }, binningInfo.TestNo);//this binning takes no effect, since site 1 and 2 has been binned out using PATTERN_PASS_BIN2.
Int array contains site numbers.
Test number.
This method sets bin number for one specified site. Site is specifed in siteInfo.
SoftBinMapInfo softBinMapInfo = context.FlowContext.PassSoftBin;//get default pass bin, usually it is bin1, but other default pass bins are supported too.
context.Judger.UpdateSiteState(null, new int[] { 1, 2 });
context.BinHandler.Binning(new int[] { 1, 2 }, context.FlowContext.PassSoftBin);
SiteInfo object, contains the interested site's methods and properties.
SoftBinMapInfo object.
This method sets bin number for one specified site. Site is specifed in siteInfo.
SoftBinMapInfo softBinMapInfo = context.FlowContext.PassSoftBin;//get default pass bin, usually it is bin1, but other default pass bins are supported too.
context.Judger.UpdateSiteState(null, new int[] { 1, 2 });
context.BinHandler.Binning(new int[] { 1, 2 }, context.FlowContext.PassSoftBin);
Array of site numbers.
SoftBinMapInfo object.
This interface accesses slot, site and channel information.
Each slot corresponds to a physical instrument board, who has dedicated central processors working completely independent with other boards.
On each slot there can be several sites, or a sites can span multiple slots.
The C# code user write is compiled into DLL which is loaded onto each instrument board, this means that the code is running multithread on all slots. Each slot can run into different code trace(like if branches, switch branches) without messing up with other slots.
Every object gets in this interface is only corresponded to one specific slot.
This property gets SlotInfo object, which can access SlotInfo properties.
SlotInfo slotInfo = context.SlotInfo;
SlotInfo objects.
Parse pin or pin group expression. Support Pin or Pin group; Support operator plus(+) and minus(-). Sample: PinGroup1+P01-A03,
List of pin name
This method gets all site info from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info objects from on specific slot.
True: get information of sites that are NOT selected at start of test program execution.
False: get information of sites that are selected at start of test program execution.
List of SiteInfo objects.
Get all site XY mapping
TKey: Site, TValue: Coordinate
This method gets specified site info from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info object from on specific slot.
Site number
SiteInfo object
This method gets specified site info from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info object from on specific slot.
Channel number should be specified, the site info to get can be derived from channel number.
Number of channel, the site info to get can be derived from channel number.
An enumerated constant of type AllSignalType, valid options are IO/Power/SRC_HS/SRC_HP/CAP_HS/CAP_HP. Note that DPS channel and IO channel could have same channel number, so AllSignalType is needed.
True: get site info even the site is marked(NOT selected at start of test program execution).
False: not get site info if the site is marked(NOT selected at start of test program execution), if specified channel is from a marked site, null is returned.
SiteInfo object.
This method gets all channels info from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info object from on specific slot.
ChannelInfo list.
This method gets specified channel info of specified site from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info object from on specific slot.
Site number.
Pin name.
True: get channel info if site is marked(NOT selected at start of test program execution), null is returned if site is not marked.
False: get channel info if site is NOT marked(NOT selected at start of test program execution), null is returned if site is marked.
ChannelInfo object.
This method gets specified IO channel info from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info object from on specific slot.
Note that DPS channel and IO channel could have same channel number, this method only gets IO channel info.
IO channel number.
True: get channel info if site is marked(NOT selected at start of test program execution), null is returned if site is not marked.
False: get channel info if site is NOT marked(NOT selected at start of test program execution), null is returned if site is marked.
ChannelInfo object.
This method gets specified channels info from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info object from on specific slot.
Note that DPS channel and IO channel could have same channel number, this method may return DPS and IO channel info that share same channel number.
IO channel number array, can be array and list.
True: get channel info if site is marked(NOT selected at start of test program execution), null is returned if site is not marked.
False: get channel info if site is NOT marked(NOT selected at start of test program execution), null is returned if site is marked.
ChannelInfo object list.
This method gets specified channels of specified type from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info object from on specific slot.
IO channel number array, can be array and list.
An enumerated constant of type AllSignalType, valid options are IO/Power/SRC_HS/SRC_HP/CAP_HS/CAP_HP. Note that DPS channel and IO channel could have same channel number, so AllSignalType is needed.
True: get channel info if site is marked(NOT selected at start of test program execution), null is returned if site is not marked.
False: get channel info if site is NOT marked(NOT selected at start of test program execution), null is returned if site is marked.
ChannelInfo object list.
This method gets all channels info of specified type from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info object from on specific slot.
An enumerated constant of type AllSignalType, valid options are IO/Power/SRC_HS/SRC_HP/CAP_HS/CAP_HP.
True: get channel info if site is marked(NOT selected at start of test program execution), null is returned if site is not marked.
False: get channel info if site is NOT marked(NOT selected at start of test program execution), null is returned if site is marked.
ChannelInfo object list.
This method gets all channels info of specified pin name from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info object from on specific slot.
Pin name.
True: get channel info if site is marked(NOT selected at start of test program execution), null is returned if site is not marked.
False: get channel info if site is NOT marked(NOT selected at start of test program execution), null is returned if site is marked.
ChannelInfo object list.
This method gets all channels info of specified pin names from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info object from on specific slot.
Pin name array, can be array or list.
True: get channel info if site is marked(NOT selected at start of test program execution), null is returned if site is not marked.
False: get channel info if site is NOT marked(NOT selected at start of test program execution), null is returned if site is marked.
ChannelInfo object list.
This method gets all channels info of specified pin names from speicifed IO controller from the slot on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets site info object from on specific slot.
Pin name array, can be array or list.
An enumerated constant of type K7Type, valid options are U1/U2/U3/U4/START_TWO_PIECES_K7/START_FOUR_PIECES_K7.
True: get channel info if site is marked(NOT selected at start of test program execution), null is returned if site is not marked.
False: get channel info if site is NOT marked(NOT selected at start of test program execution), null is returned if site is marked.
ChannelInfo object list.
This method gets all programmed state of the DIB relays. Returned list's size is the total DIB relay channels supported on current slot. User can read the relay status(true = relay is on, false = relay is off).
LoadBoardInfo object list.
Try attach missing parents: and
This interface accesses methods to write data records into the STDF file stream.
This method writes a Functional Test Record (FTR) to the STDF file. It doesn't perform bin sorting.
int siteNo = 1;
string PinName = "A01";
BinningInfo binningInfo = context.FlowCatalog.BinningQuerier.Query("PATTERN_CODE");//get binning info by test name
context.Datalog.PostFTR(context.ChannelMapProvider.GetChannelInfo(siteNo, PinName), binningInfo,"myPattern",false,"myResult");//write FTR to stdf, but doesn't perform bin sorting.
context.Judger.UpdateSiteState(new int[] { siteNo },null);//Update site pass/fail status
context.BinHandler.Binning(new int[] { siteNo }, binningInfo);////for failed site, bin them out. Site 1 is sorted as fail.
ChannelInfo object. It should contain pin information corresponding to pins from pattern.
BinningInfo object. It should contain binning information.
String. Name of pattern
Bool. Result to write.
String. Additional description.
true: Post success, false: Not Post(ignore by stop on fail)
This method writes a Functional Test Record (FTR) to the STDF file. It doesn't perform bin sorting.
Site number, starting from 1
BinningInfo object. It should contain binning information.
Bool. Result to write.
This method writes a Functional Test Record (FTR) to the STDF file. It doesn't perform bin sorting.
BinningInfo binningInfo = context.FlowCatalog.BinningQuerier.Query("PATTERN_CODE");//get binning info by test name
Result patResult = PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1,true);//run pattern
context.Datalog.PostFTR(patResult, binningInfo);
context.Judger.UpdateSiteState(patResult.FailSites,null);//Update site pass/fail status
context.BinHandler.Binning(patResult.FailSites, binningInfo);////for failed site, bin them out.
Result object.
BinningInfo object. It should contain binning information.
true: Post success site infos, false: Not Post(ignore by stop on fail)
This method writes a Parametric Text Record (PTR) to the STDF file. It doesn't perform bin sorting.
int siteNo = 1;
BinningInfo binningInfo = context.FlowCatalog.BinningQuerier.Query("DPS_CODE");//get binning info by test name
context.Datalog.PostPTR(siteNo, binningInfo, 15);//print PTR using value 15, but doesn't perform bin sorting.
context.Judger.UpdateSiteState(new int[] { siteNo },null);//Update site pass/fail status
context.BinHandler.Binning(new int[] { siteNo }, binningInfo);////for failed site, bin them out.
Site number, starting from 1
BinningInfo object. It should contain binning information.
Double. The value write to PTR.
true: Post success, false: Not Post(ignore by stop on fail)
RawText datalog interface
将 PTR 结果打印到 RawText log
Site number, starting from 1
BinningInfo object. It should contain binning information
Double. The value write to PTR.
This method prints functional results to the raw log file (Raw log file name usually starts with "FlowLog_Raw_"). It doesn't perform bin sorting.
BinningInfo binningInfo = context.FlowCatalog.BinningQuerier.Query("PATTERN_CODE");//get binning info by test name
Result patResult = PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1,true);//run pattern
context.Datalog.PostRawTextFTR(patResult, binningInfo);//print functional results into raw log
context.Judger.UpdateSiteState(patResult.FailSites,null);//Update site pass/fail status
context.BinHandler.Binning(patResult.FailSites, binningInfo);////for failed site, bin them out.
Result object.
将 FTR 结果打印到 RawText log
将 FTR 结果打印到 RawText log
将 FTR 结果打印到 RawText log
ReportText datalog interface
This method prints text contents to the report log file (Report log file name usually starts with "FlowLog_Report"). It doesn't perform bin sorting.
BinningInfo binningInfo = context.FlowCatalog.BinningQuerier.Query("PATTERN_CODE");//get binning info by test name
Result patResult = PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1,true);//run pattern
context.Datalog.PostReportTextFTR();//print functional results into report log
context.Judger.UpdateSiteState(patResult.FailSites,null);//Update site pass/fail status
context.BinHandler.Binning(patResult.FailSites, binningInfo);//for failed site, bin them out.
Csv datalog interface
This method writes text values into the beginning of csv log. To enable csv log output: GUI => Options => Application Setting => Check "STDF".
List of string.
This method writes text values into the body of csv log. To enable csv log output: GUI => Options => Application Setting => Check "STDF".
This example print site's string value to csv body.
var siteInfos = context.ChannelMapProvider.GetAllSiteInfos();
var binningInfo = context.BinHandler.GetBinningByTestNo(40000u);
foreach (SiteInfo siteInfo in siteInfos)
{
PostCsvBody(siteInfo.No, binningInfo, $"Site: {siteInfo.No}, test value");
}
This method writes text values into the end of csv log. To enable csv log output: GUI => Options => Application Setting => Check "STDF".
List of string.
Datalog post API
get datalog output folder path
Post
This property gets FlowCatalog object, which can access FlowCatalog properties.
This property gets FlowConfiguration object, which can access FlowConfiguration properties.
This property gets WaitHandler object, which can access WaitHandler properties.
This property gets SoftBinMapInfo object, which can access SoftBinMapInfo properties.
Get flow current exec loop index
Get flow current enable word map
Key: Enable word name
Value: true/false, Enable word is using or not
This interface accesses IFlowRunnerContext.
By now, every test suite C# function must be explicitly declared like "public void YourFunctionName(IFlowRunnerContext context)". It has to be a public void function with only one argument whose type is IFlowRunnerContext.
The IFlowRunnerContext argument contains necessary interface accessing API for binning, hardware properties, channel/slot information, tester configurations and so on.
Each slot corresponds to a physical instrument board, who has dedicated central processors working completely independent with other boards.
On each slot there can be several sites, or a sites can span multiple slots.
The C# code user write is compiled into DLL which is loaded onto each instrument board, this means that the code is running multithread on all slots. Each slot can run into different code trace(like if branches, switch branches) without messing up with other slots.
Every object gets in this interface is only corresponded to one specific slot.
This property gets slot number on which current code is running. Remember that the C# code is running multithread on all slots, this property only gets current slot number.
int CurrentSlotNumber = context.SlotNo;
Slot number.
This property gets SlotInfo object, which can access SlotInfo properties.
SlotInfo slotInfo = context.SlotInfo;
SlotInfo object.
This property gets IFlowContext object, which can access IFlowContext properties.
IFlowContext flowContext = context.FlowContext;
IFlowContext object.
This property gets FlowCatalog object, which can access FlowCatalog properties.
FlowCatalog flowCatalog = context.FlowCatalog;
FlowCatalog object.
This property gets FlowConfiguration object, which can access FlowConfiguration properties.
This property gets IChannelMapProvider object, which can access IChannelMapProvider properties.
IChannelMapProvider channelMapProvider = context.ChannelMapProvider;
IChannelMapProvider object.
This property gets ILog object, which can access ILog properties.
ILog log = context.Log;
Log object.
This property gets IDatalog object, which can access IDatalog properties.
IDatalog datalog = context.Datalog;
IDatalog object.
This property gets IBinHandler object, which can access IBinHandler properties.
IBinHandler binHandler = context.BinHandler;
IBinHandler object.
This property gets IFlowRunnerJudger object, which can access IFlowRunnerJudger properties.
IFlowRunnerJudger flowRunnerJudger = context.Judger;
IFlowRunnerJudger object.
This property gets ICommunicate object, which can access ICommunicate properties.
ICommunicate communicate = context.Communicator;
ICommunicate object.
local user data
Relay state recorder
offset manager
PPMU reg status manager
All pin init data manager
ttr trim Update() orders cache
keep Alive / FreeRunningClk
This property gets IPattern object, which can access IPattern properties.
IPattern myPat = context.Pattern;
myPat.Update("A01_Fail", "A01", siteNum, 5, 1, new char[] { '0' });
For programming efficiency, above code is not recommended. The interal pre-built interface PATTERN should be used instead.
Above code can be rewritten as:
PATTERN.Update("A01_Fail", "A01", siteNum, 5, 1, new char[] { '0' });
IPattern object.
This property gets IDPS object, which can access IDPS properties.
IDPS myDPS = context.DPS;
myDPS.Force(new string[] { $"DPS1" }, 0, DpsMode.FVMV, DpsIRange._5uA, VRange.Normal);
For programming efficiency, above code is not recommended. The interal pre-built interface DPS should be used instead.
Above code can be rewritten as:
DPS.Force(new string[] { $"DPS1" }, 0, DpsMode.FVMV, DpsIRange._5uA, VRange.Normal);
IDPS object.
This property gets IPPMU object, which can access IPPMU properties.
IPPMU myPPMU = context.PPMU;
myPPMU.Force(new string[] { $"PMU1" }, 0, PpmuMode.FVMV, PpmuIRange._5uA, VRange.Normal);
For programming efficiency, above code is not recommended. The interal pre-built interface PPMU should be used instead.
Above code can be rewritten as:
PPMU.Force(new string[] { $"PMU1" } , 0, PpmuMode.FVMV, PpmuIRange._5uA, VRange.Normal);
IPPMU object.
This property gets IRelay object, which can access IRelay properties.
IRelay myRLY = context.Relay;
myRLY.SwitchToOpen(new string[] { "A01" });
For programming efficiency, above code is not recommended. The interal pre-built interface RELAY should be used instead.
Above code can be rewritten as:
RELAY.SwitchToOpen(new string[] { "A01" });
IRelay object.
This property gets IMixSignal object, which can access IMixSignal properties.
IMixSignal myMIX = context.MixSignal;
myMIX.ConnectTCP("192.168.100.10", 10);
For programming efficiency, above code is not recommended. The interal pre-built interface MIXSIGNAl should be used instead.
Above code can be rewritten as:
MIXSIGNAl.ConnectTCP("192.168.100.10", 10);
IMixSignal object.
This property gets IShmoo object, which can access IShmoo properties.
IShmoo mySHM = context.Shmoo;
mySHM.ToString();
For programming efficiency, above code is not recommended. The interal pre-built interface SHMOO should be used instead.
Above code can be rewritten as:
SHMOO.ToString();
IShmoo object.
This property gets ISystem object, which can access ISystem properties.
ISystem mySYS = context.System;
mySYS.Delay(100);
For programming efficiency, above code is not recommended. The interal pre-built interface SYSTEM should be used instead.
Above code can be rewritten as:
SYSTEM.Delay(100);
ISystem object.
Current test item info
Current test function info
Interface for ACTiming
This method allows you to write code using fluent interface which also known as chaining coding.
This example creates a new timing and makes it effective immediately.
PATTERN.ACTiming.CreateBatch().SetPin(new string[] { "A01" }).SetDriveOn(0).SetDriveData(10).Execute();
IACTimingBatch object
This method gets an actiming setting which is defined in the project by the actiming name you provide.
Since an actiming can be defined with multiple rows in GUI, this method returns a list whose count is equal to the count of rows which are needed for its definition.
IList<ACTimingInfo> aCTimingInfos = PATTERN.ACTiming.Clone("TS_100ns");
string. Actiming name which is defined in project.
A list of ACTimingInfo
This method applies an ACTimingInfo immediately. You can use this method to change actiming on-the-fly.
IList<ACTimingInfo> aCTimingInfos = PATTERN.ACTiming.Clone("TS_100ns");
PATTERN.ACTiming.Execute(aCTimingInfos);
ACTimingInfo object
This method applies an ACTimingSetting immediately. You can use this method to change actiming on-the-fly.
ACTimingSetting aCTimingInfo = new ACTimingSetting
{
Period = 500,
PinName = signalName,
FmtMode = FmtMode.NR,
EdgeInfo = new EdgeInfo()
{
DriverOn = 0,
DriverData = 0,
DriverReturn = 0,
Open = 0,
Close = 0,
CompareMode = CompareMode.Edge,
}
};
PATTERN.ACTiming.Execute(aCTimingInfo);
ACTimingSetting
This method applies an actiming immediately. You can use this method to change actiming on-the-fly.
PATTERN.ACTiming.Execute("TS_100ns");
Name of a ACTiming which is defined in the project.
This method applies an ACTimingSetting immediately. You can use this method to change actiming on-the-fly.
ACTimingSetting aCTimingInfo = new ACTimingSetting
{
Period = 500,
PinName = signalName,
FmtMode = FmtMode.NR,
EdgeInfo = new EdgeInfo()
{
DriverOn = 0,
DriverData = 0,
DriverReturn = 0,
Open = 0,
Close = 0,
CompareMode = CompareMode.Edge,
}
};
PATTERN.ACTiming.Execute(aCTimingInfo);
ACTimingSetting
This method applies an actiming immediately. You can use this method to change actiming on-the-fly.
PATTERN.ACTiming.Execute("TS_100ns");
Name of a ACTiming which is defined in the project.
This interface accesses methods which allows you to perform chaining coding.
You can use this interface to create and apply an ACtiming on-the-fly.
string[] pins = { "A01", "A02" };
double period = 200;
FmtMode fmtMode = FmtMode.NR;
CompareMode compareMode = CompareMode.Edge;
float close = 0.5f;
float open = 0.3f;
float driverOn = 0.1f;
float driverData = 0.5f;
float driverReturn = 0.8f;
//Step1:Create an IACTimingBatch object, whose properties are empty.
var aCTimingBatch = PATTERN.ACTiming.CreateBatch();
//Step2:Set properties using chaining coding.
aCTimingBatch = aCTimingBatch.SetPin(pins).SetPeriod(period).SetFormat(fmtMode).SetCompareMode(compareMode).SetOpen(open).SetClose(close).SetDriveData(driverData).SetDriveOn(driverOn).SetDriveReturn(driverReturn);
//Step3:Make aCTimingBatch effective immediately.
aCTimingBatch.Execute();
//Operations in Step1 to Step3 can also be simply written as below.
PATTERN.ACTiming.CreateBatch().SetPin(pins).SetPeriod(period).SetFormat(fmtMode).SetCompareMode(compareMode).SetOpen(open).SetClose(close).SetDriveData(driverData).SetDriveOn(driverOn).SetDriveReturn(driverReturn).Execute();
This method sets actiming compare mode.
Enumerated constant of type CompareMode: (Edge,Window)
IACTimingBatch object.
This method sets actiming drive data edge.
Current timing value for the specified edge
IACTimingBatch object.
This method sets actiming drive on edge.
Current timing value for the specified edge
IACTimingBatch object.
This method sets actiming drive return edge.
Current timing value for the specified edge
IACTimingBatch object.
This method sets actiming format.
Enumerated constant of type FmtMode: (NR,RL,RH,RZ,SBL,SBH)
IACTimingBatch object.
This method sets actiming compare open edge.
Current timing value for the specified edge
IACTimingBatch object.
This method sets actiming window close edge.
Current timing value for the specified edge
IACTimingBatch object.
Set actiming strobe edge value
This method sets actiming period value.
period(ns), for example, 46.66 stands for 46.66ns
IACTimingBatch object.
This method sets actiming pin names.
An array of pin or pin group names.
IACTimingBatch object.
异常事件
Start signal generator
Pin name
Signal type:Sine/Square/Triangular
Frequency,default unit=HZ
Amplitude,default unit=V
Offset,default unit=V
Duty ratio,range=(0,1]
period count,default:10
stop signal generator
Execute figure signal collection
Pin name
Number of samples for measurement
Interval time between each sampling, unit in us
Get figure signal collection analyze result
Pull data
Cancel
硬件实现层
This interface accesses DCLevel related methods.
This method allows you to write code using fluent interface which also known as chaining coding.
PATTERN.DCLevel.CreateBatch().SetPin(new string[] { "A01", "A02" }).SetVIH(1.8).SetVIL(0).SetVOH(0.9).SetVOL(0.5);
This example creates a new DClevel and makes it effective immediately.
IDCLevelBatch object
This interface accesses VT related methods.
IVT object.
This method gets a DClevel which is defined in the project by the DClevel name you provide.
DCLevelInfo dclvl = PATTERN.DCLevel.Clone("Lvl_1V8");
string. Dclevel name which is defined in project
DCLevelInfo object
This method loads a DClevel, makes it effective immediately.
DClevelInfo object
This method loads a DClevel, makes it effective immediately.
Name of a DCLevel which is defined in the project.
This method sets the value for all level type on the specified pins.
An array of pin or pin group names.
Drive high voltage(V), valid range is [0,5.8]
Drive low voltage(V), valid range is [0,5.8]
Compare high voltage(V), valid range is [0,4]
Compare low voltage(V),valid range is [0,4]
This method sets the value for the specified level type on the specified pins.
It allows you to specifically change one value of the DCLevel.
Valid ranges are:
Drive high voltage(V), valid range is [0,5.8];
Drive low voltage(V), valid range is [0,5.8];
Compare high voltage(V), valid range is [0,4];
Compare low voltage(V),valid range is [0,4].
An array of pin or pin group names.
The value you want to set for the specified level type.
An enumerated constant of type Core.Primitives.Service.Type, valid options can be VIH,VIL,VOH or VOL.
This interface accesses methods which allows you to perform chaining coding.
You can use this interface to create and apply an DCLevel on-the-fly.
string[] pins = { "A01", "A02" };
double vih = 1.8;
double vil = 0;
double voh = 0.9;
double vol = 0.5;
//Step1: Create an IDCLevelBatch object, whose properties are empty.
var dCLevelBatch = PATTERN.DCLevel.CreateBatch();
//Step2: Set properties using chaining coding.
dCLevelBatch = dCLevelBatch.SetPin(pins).SetVIH(vih).SetVIL(vil).SetVOH(voh).SetVOL(vol);
//Step3: Make dCLevelBatch effective immediately.
dCLevelBatch.Execute();
//Operations in Step1 to Step3 can also be simply written as below.
PATTERN.DCLevel.CreateBatch().SetPin(pins).SetVIH(vih).SetVIL(vil).SetVOH(voh).SetVOL(vol).Execute();
This method sets DClevel pin names.
An array of pin or pin group names.
This method sets DClevel VIH value.
Drive high voltage.
This method sets DClevel VIL value.
Drive low voltage.
This method sets DClevel VOH value.
Compare high voltage.
This method sets DClevel VOL value.
Compare low voltage.
设置ForceOffset
Get ForceOffset cmds
This interface accesses DPS related methods.
This method gets a DPS setting which is defined in the project by the DPS setting name you provide.
DPS setting name, which is defined in project.
DPSInfo object.
This method allows you to write code using fluent interface which also known as chaining coding.
DPS.CreateBatch().SetPin(new string[] { "VDD" }).SetMode(DpsMode.FVMV).SetForce(1).SetIRange(DpsIRange._20uA).SetVRange(VRange.Normal).Execute();
This example creates a new DPS setting and makes it effective immediately.
IDPSBatch object
This method connects or disconnects DPS channel to the specified interal relay.
Note that you need to correctly choose DpsRelayState based on the DPS current range.
Connecting DPS relay incorrectly can cause unexpected behaviors.
Refer to below examples for connecting/disconnecting DPS relay.
To disconnect DPS.
DPS.Relay(new string[] { "VDD" }, DpsRelayState.OPEN);
To connect DPS while using current range less than 60mA.
DPS.Relay(new string[] { "VDD" }, DpsRelayState.INT);
To connect DPS while using current range 60mA exactly.
DPS.Relay(new string[] { "VDD" }, DpsRelayState._60MA);
To connect DPS while using current range 1A exactly.
DPS.Relay(new string[] { "VDD" }, DpsRelayState.EXT);
An array of pin or pin group names.
An enumerated constant of type DpsRelayState, valid options can be OPEN,EXT,INT,_60MA
This method programs DPS force status of the specified pins.
Do remember the iRange you choose for the pins must be aligned with the DpsRelayState when you connected DPS relay. Refer to DPS.SwitchRelay document for more details.
Note that for DpsMode, there are 3 special mode: FVMI_All/FVMV_All/FIMV_All. For example, FVMI_All, it sets all DPS channels on current slot to FVMI mode, no matter what pins you specified.
An array of pin or pin group names.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
An enumerated constant of type DpsMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
An enumerated constant of type DpsIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA/_1A.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
Clamp value in string format, for example, "5V","1mA". The clamp is symmetrical, where "5V" stands for high clamp is 5V and low clamp is -5V.
Optional argument, used to define the delay time(in microseconds) before the application of the force voltage/current. By programming waitTime, you can wait some amount of time before forcing become effective.
This method programs DPS force status of the specified pins. It also allows you to control the slew rate of DPS force by specifying stepCount, stepDelay and stepValue, with this feature, you can do voltage/current ramping.
Do remember the iRange you choose for the pins must be aligned with the DpsRelayState when you connected DPS relay. Refer to DPS.SwitchRelay document for more details.
Note that for DpsMode, there are 3 special mode: FVMI_All/FVMV_All/FIMV_All. For example, FVMI_All, it sets all DPS channels on current slot to FVMI mode, no matter what pins you specified.
This example sets the DPS output mode to force voltage measure current, voltage 5V is applied immediately without any ramping.
DPS.Force(new string[] { "DPS5" }, 5, DpsMode.FVMI, DpsIRange._200uA, VRange.Normal);
This example sets the DPS output mode to force voltage measure current, voltage 5V is applied by ramping from 0V to 5V in 20 steps.
Note that in this cause you need to set "value" parameter to 0. Since 0V is treated as ramp starting point and 20 steps are needed to eventually reach 5V.
DPS.Force(new string[] { "DPS5" }, 0, DpsMode.FVMI, DpsIRange._200uA, VRange.Normal, 20, 1000, 5.0 / 20.0);
This example sets the DPS output mode to force voltage measure current, voltage 5V is applied by ramping from 1V to 5V in 20 steps.
Note that in this case you need to set "value" parameter to 1. Since 1V is treated as ramp starting point and 20 steps are needed to eventually reach 5V.
DPS.Force(new string[] { "DPS5" }, 1, DpsMode.FVMI, DpsIRange._200uA, VRange.Normal, 20, 1000, 4.0 / 20.0);
An array of pin or pin group names.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
An enumerated constant of type DpsMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
An enumerated constant of type DpsIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA/_1A.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
Number of steps for voltage/current ramping, default stepCount = 1, that is, no ramping is performed, target force value is reached at fastest speed.
Delay time in nanosecond between each step, default stepDelay = 1920
The step size of each step, default stepValue = 0.
This method programs DPS force status of the specified pins. It allows you to control the slew rate of DPS force by specifying stepCount, stepDelay and stepValue, with this feature, you can do voltage/current ramping.
It also allows you to set high low clamp separately.
Do remember the iRange you choose for the pins must be aligned with the DpsRelayState when you connected DPS relay. Refer to DPS.SwitchRelay document for more details.
Note that for DpsMode, there are 3 special mode: FVMI_All/FVMV_All/FIMV_All. For example, FVMI_All, it sets all DPS channels on current slot to FVMI mode, no matter what pins you specified.
This example sets the DPS output mode to force voltage measure current, voltage 5V is applied by ramping from 0V to 5V in 20 steps.
Voltage clamp is set with high = 5V and low = -1V.
Note that in this case you need to set "value" parameter to 0. Since 0V is treated as ramp starting point and 20 steps are needed to eventually reach 5V.
DPS.Force(new string[] { "DPS5" }, 0, DpsMode.FVMI, DpsIRange._200uA, VRange.Normal, "5V","-1V" ,20, 1000, 5.0 / 20.0);
An array of pin or pin group names.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
An enumerated constant of type DpsMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
An enumerated constant of type DpsIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA/_1A.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
High clamp value in string format, for example, "5V","1mA".
Low clamp value in string format, for example, "-1V","-2mA".
Number of steps for voltage/current ramping, default stepCount = 1, that is, no ramping is performed, target force value is reached at fastest speed.
Delay time in nanosecond between each step, default stepDelay = 1920
The step size of each step, default stepValue = 0.
This method performs a DPS parametric test and then do pass/fail judgment and logs the results.
This example measures on DPS pins and judge the results by test number.
DPS.Measure(new string[] { "DPS1" }, true, 2200);
Note that you can also get test number using test suite name. This example shows how.
DPS.Measure(new string[] { "DPS1" }, true, context.BinHandler.GetBinningByTestSuite("IDDQ").TestNo);
An array of pin or pin group names.
Whether perform judge or not. Setting it to true means judge the measured value using limits specified by testNo, a PTR is written to stdf.
Setting it to false means do not judge the measured value even testNo is specified, no PTR is written to STDF.
Test number of the limit setting you want to use. Note that the test number must be defined in the project, ATE_Tester reports error if using a undefined test number.
The number of samples to strobe when perform the measurement, default numberOfSamples = 1.
The sampling interval between each meter strobe, unit is microsecond, default intervalTimeUs = 0.
List of SiteInfo object. You can retrieve the measured results of interested pins by accessing the returned list.
List of siteInfo
This method performs a DPS parametric test and then do pass/fail judgment and logs the results.
You should get BinningInfo object through API context.BinHandler.GetBinningByTestSuite.
DPS.Measure(new string[] { "DPS1" }, true, context.BinHandler.GetBinningByTestSuite("IDDQ"));
An array of pin or pin group names.
Whether perform judge or not. Setting it to true means judge the measured value using limits specified by testNo, a PTR is written to stdf.
Setting it to false means do not judge the measured value even testNo is specified, no PTR is written to STDF.
BinningInfo object, you can get one by API context.BinHandler.GetBinningByTestSuite(TestSuiteName), ATE_Tester reports error if referring to a undefined TestSuiteName.
The number of samples to strobe when perform the measurement, default numberOfSamples = 1.
The sampling interval between each meter strobe, unit is microsecond, default intervalTimeUs = 0.
List of SiteInfo object. You can retrieve the measured results of interested pins by accessing the returned list.
This method connects or disconnects DPS channel to the specified interal relay. Note that you need to correctly choose DpsRelayState based on the DPS current range.
Connecting DPS relay incorrectly can cause unexpected behaviors.
Refer to below examples for connecting/disconnecting DPS relay.
To disconnect DPS.
DPS.SwitchRelay(new string[] { "VDD" }, DpsRelayState.OPEN);
To connect DPS while using current range less than 60mA.
DPS.SwitchRelay(new string[] { "VDD" }, DpsRelayState.INT);
To connect DPS while using current range 60mA exactly.
DPS.SwitchRelay(new string[] { "VDD" }, DpsRelayState._60MA);
To connect DPS while using current range 1A exactly.
DPS.SwitchRelay(new string[] { "VDD" }, DpsRelayState.EXT);
An array of pin or pin group names.
An enumerated constant of type DpsRelayState, valid options can be OPEN,EXT,INT,_60MA
This method sets DPS clamps on the specified pins.
Note that for DpsMode, there are 3 special mode: FVMI_All/FVMV_All/FIMV_All. For example, FVMI_All, it sets all DPS channels on current slot to FVMI mode, no matter what pins you the specified.
An array of pin or pin group names.
An enumerated constant of type DpsMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
An enumerated constant of type DpsIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA/_1A.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
High clamp value in string format, for example, "5V","1mA". The system will report error if set clampH to a value which is less than clampL. Also if clamp value exceeds the allowable clamp range, the allowable clamp range will be applied.
Low clamp value in string format, for example, "-1V","-2mA". The system will report error if set clampL to a value which is greater than clampH. Also if clamp value exceeds the allowable clamp range, the allowable clamp range will be applied.
This method reads temperature of the instrument board
Temperature data.
DPS measure
Pin name
Number of samples for measurement
Interval time between each sampling
judge by the measure type result, judgeType = Average/Max/Min: judge; judgeType = None: no judge
measure type:Average/Max/Min
binning object
DPS HVRelay
in name
Number of samples for measurement
Interval time between each sampling
IsSwicthToOpen default = true,true(loadBoardRelay swicth to open),false(no swicth to open)
delayMs,default=1,unit=ms
DPS gain force
Pin name
current or voltage to force: ForceRange[-8,13], default unit V for voltage and A for current
DPS mode: FVMI/FVMV/FIMV/FZMI/FZMV
Current range:HI
Voltage range:HV
DPS gain measure
Pin name
judge by the measure result - true: judge; false: no judge
binning object
Number of samples for measurement,default numberOfSamples = 0
Interval time between each sampling, unit in us,default intervalTimeUs = 0
List of siteInfo
This interface accesses methods which allows you to perform chaining coding.
You can use this interface to program DPS channels status individually.
string dpsName = "dpsName";
string[] dpsPins = { "DPS01", "DPS02" };
DpsMode dpsMode = DpsMode.FVMV;
double forceV = 3.3;//in unit V
//Step1:Create an IDPSBatch object, whose properties are empty.
IDPSBatch dpsBatch = DPS.CreateBatch();
//Step2:Set properties using chaining coding.
dpsBatch = dpsBatch.SetPin(dpsPins).SetMode(dpsMode).SetForce(forceV);
//Step3:Make dpsBatch effective immediately.
dpsBatch.Execute();
//Operations in Step1 to Step3 can also be simply written as below.
DPS.CreateBatch().SetPin(dpsPins).SetMode(dpsMode).SetForce(forceV).Execute();
//You can also get a DpsInfo using name(dps setting name is defined in project) and apply it, the application become effective immdiately.
DPS.CreateBatch().Set(DPS.Clone("VDD_VDDA_FV1V"));
This method sets DPS channles status using DpsInfo object.
Note that a DpsInfo object is usually generated by DPS.Clone(DpsSettingName) API. Available DpsSettingName can be found in project, DPS setting page.
DpsInfo dpsInfo = DPS.Clone(DPSSettingName);//get DPS setting, which is defined in project.
IDPSBatch DPSBatch = DPS.CreateBatch();
DPSBatch.Set(dpsInfo);//apply the DPS setting, make it effective immediately.
DpsInfo object.
IDPSBatch object.
This method sets DPS pin names.
An array of pin or pin group names.
IDPSBatch object
This method sets DPS force value, it can be voltage or current value.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
IDPSBatch object
This method sets DPS force mode.
Note that for DpsMode, there are 3 special mode: FVMI_All/FVMV_All/FIMV_All. For example, FVMI_All, it sets all DPS channels on current slot to FVMI mode, no matter what pins you specified.
An enumerated constant of type DpsMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
IDPSBatch object
This method sets DPS current range.
Do remember the iRange you choose for the pins must be aligned with the DpsRelayState when you connected DPS relay. Refer to DPS.SwitchRelay document for more details.
An enumerated constant of type DpsIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA/_1A.
IDPSBatch object
This method sets DPS voltage range.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
IDPSBatch object
This method sets DPS clamp.
clamp low with units, supported units are V, mV, uV, A, mA, uA.
clamp high with units, supported units are V, mV, uV, A, mA, uA.
This method sets the stepCount property.
To correctly perform voltage or current ramping with this API, refer to DPS.Force document.
Number of steps for voltage/current ramping, if you set stepCount = 1, that is, no ramping is performed, target force value is reached at fastest speed.
IDPSBatch object
This method sets the stepValue property.
To correctly perform voltage or current ramping with this API, refer to DPS.Force document.
The step size of each step.
IDPSBatch object
This method sets the stepDelay property.
To correctly perform voltage or current ramping with this API, refer to DPS.Force document.
Delay time in nanosecond between each step.
IDPSBatch object
DPS 指令工厂
获取所有通道 force 指令
DPS模块支持的 mode:只能选择FVMI_All,FVMV_All,FIMV_All三种模式(必填)
DPS模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过10V(必填)
DPS模块支持的 range:_5uA,_20uA,_200uA,_2mA,_60mA,_1A(必填)
DPS电压挡位支持HighPrecision和Normal挡位(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
DPS指令
根据通道获取 force 指令
DPS通道数组,该值长度不能超过 channelMaxLimit,最大 dps 数组通道值不能超过 channelMaxLimit(必填)
DPS模块支持的 mode:FVMI_All,FVMV_All,FIMV_All,FVMI,FVMV,FIMV,FZMI,FZMV(必填)
DPS模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V"(必填)
DPS模块支持的 range:_5uA,_20uA,_200uA,_2mA,_60mA,_1A(必填)
DPS电压挡位支持HighPrecision和Normal挡位(必填)
true为补偿电压,false不补偿电压(必填)
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
DPS指令
根据脚名获取 force 指令
脚名数组
DPS模块支持的 mode:只能选择FVMI,FVMV,FIMV,FZMI,FZMV(必填)
DPS模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过10V(必填)
DPS模块支持的 range:_5uA,_20uA,_200uA,_2mA,_60mA,_1A(必填)
DPS电压挡位支持HighPrecision和Normal挡位(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
DPS指令
根据脚名获取 force 指令
脚名数组
DPS模块支持的 mode:只能选择FVMI,FVMV,FIMV,FZMI,FZMV(必填)
DPS模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过10V(必填)
DPS模块支持的 range:HI(必填)
DPS电压挡位支持HV挡位(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
DPS指令
获取DPS连续回读指令
获取设置 DPS Gang 指令
gang信息
根据 获取 DPS 指令
根据 function 名字获取 DPS 指令
获取DPS Relay指令
获取DPS Relay指令
获取DPS Relay指令
获取多次回读取平均指令
times">采样次数
每次采样的时间间隔,单位:us
获取DPS clamp 指令
获取设置DPS clamp 指令
获取设置DPS clamp 指令
获取Dps Relay 指令根据脚名和mode
获取DPS Clamp 指令
获取DPS Fore指令,根据管脚状态
获取DPS 指令根据dps 名字
更新DPS Relay 状态
读取DPS 模拟量指令
计算DPS 监控数据
获取DPS 电流监控配置
This interface accesses Judger related methods.
This method judges the results of a pattern execution and performs bin sorting. It writes a FTR to stdf.
Result patResult = PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1, true);// run pattern and get results
BinningInfo PATTERN_CODE = context.FlowCatalog.BinningQuerier.Query("PATTERN_CODE");// get binning info
context.Judger.JudgePat(patResult, PATTERN_CODE.TestNo);//judge pattern result
PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1, true);// run pattern
Result patResult = PATTERN.GetPatternResult("A01_Fail", "A01", PATTERN_CODE.TestNo);// get results
BinningInfo PATTERN_CODE = context.FlowCatalog.BinningQuerier.Query("PATTERN_CODE");// get binning info
context.Judger.JudgePat(patResult, PATTERN_CODE.TestNo);//judge pattern result
Result object, it is usually got by PATTERN.Burst API or PATTERN.GetPatternResult API.
Test number of the limit setting you want to use. Note that the test number must be defined in the project, ATE_Tester reports error if using a undefined test number.
This method judges the results of a pattern execution and performs bin sorting. It writes a FTR to stdf.
Result patResult = PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1, true);// run pattern and get results
BinningInfo PATTERN_CODE = context.FlowCatalog.BinningQuerier.Query("PATTERN_CODE");// get binning info
context.Judger.JudgePat(patResult, PATTERN_CODE);//judge pattern result
PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1, true);// run pattern
Result patResult = PATTERN.GetPatternResult("A01_Fail", "A01", PATTERN_CODE.TestNo);// get results
BinningInfo PATTERN_CODE = context.FlowCatalog.BinningQuerier.Query("PATTERN_CODE");// get binning info
context.Judger.JudgePat(patResult, PATTERN_CODE);//judge pattern result
Result object, it is usually got by PATTERN.Burst API or PATTERN.GetPatternResult API.
BinningInfo object, it is usually got by context.FlowCatalog.BinningQuerier.Query() API.
This method judges the results of a parametric test and performs bin sorting. It writes a PTR to stdf.
Note that a ChannelInfo object only contains single site's data, so you may need a site loop to judge all sites.
This method allows you to judge interested pins within a measure results.
List<SiteInfo> measureResults = DPS.Measure(DPSPins.ToArray(), false, bi_DPS_ManualJudge_CODE);// perform a DPS measure but don't judge here
BinningInfo bi_DPS_ManualJudge_CODE = context.FlowCatalog.BinningQuerier.Query("DPS_ManualJudge_CODE");// get binning info
foreach (SiteInfo siteInfo in measureResults)//judge site by site
{
int siteNo = siteInfo.No;
context.Judger.JudgeMeasure(siteInfo.Channels.Where(x => x.Name == "VDD1"), bi_DPS_ManualJudge_CODE.TestNo);//only judge VDD1 pin
}
IEnumerable of ChannelInfo instance, it can be List<ChannelInfo>
Test number of the limit setting you want to use. Note that the test number must be defined in the project, ATE_Tester reports error if using a undefined test number.
This method judges the results of a parametric test and performs bin sorting. It writes a PTR to stdf.
Note that since you don't specifiy pin names here, all pins defined in binningInfo will be judged together.
Site number.
Value to judge.
BinningInfo object, it is usually got by context.FlowCatalog.BinningQuerier.Query() API.
Judge the functional test result, result posted to FTR
site no list,siteNo starts from 1
resultPF = true,site is pass,resultPF = false,site is fail
binningInfo instance defined in the flow
LoadBoardRelay command factory
This method turns the DIB/Loadboard relays on or off.
Turn all relay channels on.
LOADBOARDRELAY.SetLoadBoard(LoadBoardRelayMode.All_Relay_Enable, null);
Turn all relay channels off.
LOADBOARDRELAY.SetLoadBoard(LoadBoardRelayMode.All_Relay_Disable, null);
Turn relay channel 1 on, other channels status remain unchanged.
LOADBOARDRELAY.SetLoadBoard(LoadBoardRelayMode.Channel_Relay, new int[] {1});
Turn relay channel 1 off, other channels status remain unchanged.
LOADBOARDRELAY.SetLoadBoard(LoadBoardRelayMode.Channel_Relay_Negation, new int[] {1});
An enumerated constant of type LoadBoardRelayMode, valid options are All_Relay_Enable,All_Relay_Disable,Channel_Relay,Channel_Relay_Negation
This method turns the DIB/Loadboard relays on or off.
UTRelayMode,valid options are Relay_On/Relay_Off,utRelayMode=Relay_On(Turn on specified UT),utRelayMode=Relay_Off(Turn off specified UT)
An array of pin or pin group names.
IFlowRunnerContext
GetLoadBoardRelayCmd
GetLoadBoardRelayCmd
This interface accesses syntax for datalogging.
This method judges the results of a functional test but doesn't perform bin sorting. It writes a FTR to stdf.
ChannelInfo object, it is usually retrieved from SiteInfo by SiteInfo.Channels API.
BinningInfo object, it is usually got by context.FlowCatalog.BinningQuerier.Query() API.
Name of pattern.
Result of functional test.
Additional comments.
true: Post success, false: Not Post(ignore by stop on fail)
This method judges the results of a pattern execution but doesn't perform bin sorting. It writes a FTR to stdf.
Result patResult = PATTERN.Burst("A01_Fail", new string[] { "A01" }, 1, true);
BinningInfo PATTERN_CODE = context.FlowCatalog.BinningQuerier.Query("PATTERN_CODE");
LogBoolean(patResult, PATTERN_CODE);
Result object, it is usually got by PATTERN.Burst API or PATTERN.GetPatternResult API.
BinningInfo object, it is usually got by context.FlowCatalog.BinningQuerier.Query() API.
List of SiteInfo
This method judges the results of a parametric test but doesn't perform bin sorting. It writes a PTR to stdf.
ChannelInfo object, it is usually retrieved from SiteInfo by SiteInfo.Channels API.
BinningInfo object, it is usually got by context.FlowCatalog.BinningQuerier.Query() API.
Parametric value for datalogging.
true: Post success, false: Not Post(ignore by stop on fail)
This method judges the results of a parametric test but doesn't perform bin sorting. It writes a PTR to stdf.
Number of site.
Name of pin.
BinningInfo object, it is usually got by context.FlowCatalog.BinningQuerier.Query() API.
Parametric value for datalogging.
true: PTR writing success , false: PTR writing fail, if stopOnFail = true and there is fail happened before, PTR will not be written.
This method judges the results of a parametric test but doesn't perform bin sorting. It writes a PTR to stdf.
Number of site.
BinningInfo object, it is usually got by context.FlowCatalog.BinningQuerier.Query() API.
Parametric value for datalogging.
PTR writing success , false: PTR writing fail, if stopOnFail = true and there is fail happened before, PTR will not be written.
This method writes text value into Rawlog.
Contents to write.
This method writes pattern execution result into Rawlog.
Result object, it is usually got by PATTERN.Burst API or PATTERN.GetPatternResult API.
Post RawText log
This method writes parametric result into Rawlog.
ChannelInfo object, it is usually retrieved from SiteInfo by SiteInfo.Channels API.
BinningInfo object, it is usually got by context.FlowCatalog.BinningQuerier.Query() API.
Parametric value for datalogging.
This method writes parametric result into Rawlog.
Number of site.
Name of pin.
BinningInfo object, it is usually got by context.FlowCatalog.BinningQuerier.Query() API.
Parametric value for datalogging.
Post RawText log
This method writes text values into the beginning of csv log.
This example will write two lines to the head of csv log, first line is "AA", second line is "BB";
PostCsvHeader(new List<string>( new string[] { "AA", "BB" }));
List of string to write.
This method writes text values into the body of csv log.
This method writes text values into the end of csv log.
This example will write two lines to the end of csv log, the last but two line is "AA", the last line is "BB";
PostCsvFoot(new List<string>( new string[] { "AA", "BB" }));
List of string to write.
连接TCP
断开TCP
创建ADC Batch
创建DAC Batch
复位所有通道至初始状态
连接(设置connect配置)
断开连接
启动waveForm(实现:DAC/ADC function 设置stop flag)
ADC启动不需要名字
启动waveForm(实现:DAC/ADC function 设置stop flag)
设置DAC采样率
设置幅度
设置DAC指定信号和引脚的偏移量(实现:设置静态电压)
设置共模电压
设置DAC滤波器选择
该方法对指定引脚上的外部触发事件加载启动或停止指令以执行(实现:选择DAC触发方式)
设置ADC采样率
设置Gain 模式
设置滤波器挡位选择
该方法对指定引脚上的外部触发事件加载启动或停止指令以执行(实现:选择ADC触发方式)
设置AC或DC
获取ADC数据
计算ADC数据
设置耦合方式
调用Matlab计算FFT数据
下载波形配置
设置采样模式
设置采样深度
设置waveform类型
MixSignal指令工厂
This interface accesses pattern related methods.
This property accesses an interface to syntax for the actiming programming.
This property accesses an interface to syntax for the dclevel programming.
This method clones a PatternInfo object. You can access pattern properties through PatternInfo object.
Pattern name without "atp" extension.
PatternInfo object.
This method modifies one single line of pattern data of the specified pin for the specified site. This method must be used with PATTERN.RefreshPatternMemory for vetor data modification.
Pattern name without "atp" extension.
Pin name. Pin group name is not allowed.
1 based site number.
1 based atp line number, it is the starting line for pattern modification. Note that this line number is the actual number in atp file which you can easily get by text editor.
Symbolic format data, valid options are '1'|'0'|'H'|'L'|'X'.
This method modifies multiple lines of pattern data of the specified pin for the specified site. This method must be used with PATTERN.RefreshPatternMemory for vetor data modification.
Pattern name without "atp" extension.
Pin name. Pin group name is not allowed.
1 based site number.
1 based atp line numbers, it is the starting line for pattern modification. Note that this line number is the actual number in atp file which you can easily get by text editor.
Symbolic format data, valid options are '1'|'0'|'H'|'L'|'X'.
This method modifies multiple lines of pattern data of the specified pin for the specified site. This method must be used with PATTERN.RefreshPatternMemory for vetor data modification.
Note that to use this method, you need to add SEND1~SEND32 opcode to the vector you want to modify.
One opcode can be used up to 32 vectors.
This overload has better performance than other overloads which doesn't work with SEND opcode.
Pattern name without "atp" extension.
Pin name. Pin group name is not allowed.
1 based site number.
An enumerated constant of type OpCode, valid options are SEND1~SNED32.
Symbolic format data, valid options are '1'|'0'|'H'|'L'|'X'.
This method downloads vector data to vector memory.
This method downloads vector data to vector memory.
This method downloads vector data to vector memory.
Pattern name without "atp" extension.
An enumerated constant of type OpCode, valid options are SEND1~SNED32.
This method starts a pattern generator burst for the specified pattern.
Burst a pattern and get fail cycles.
Result result = PATTERN.Burst("A01_Fail", new string[] { "A01" }, 2 , true, true , true);
LogRawText(result);// print fail cycles to raw log
ReadErrorMsgs errorMsgs = result.ReadErrorMsgs;//get fail cycles
Pattern name without "atp" extension.
An array of pin or pin group names.
Max number of fail cycles to get, default is 1. When setting it as 1, the returned Result object won't contain detailed failing cycles but only the overall pattern execution result(pass of fail),
to get detailed fail cycles, use value greater than 1.
True: execute next line of code after pattern execution halts; False: execute next line of code without waiting for pattern execution halt.
Set true to clear fail history before pattern burst. Fail history contains details of failed cycle of a pattern burst, clearing it can flush all existing fail cycles from memory and make it empty for current pattern burst.Must be greater than or equal to 10 milliseconds.
clear log memory(clearFailHistory) wait time(ms). default 10ms
Set true to clear fail flag before pattern burst. Fail flag is used to indicate if pattern burst is passed. Setting it as false may result wrong pattern burst result returned.
Result object, you can retrieve fail cycles and fail logs from it.
This method starts a single pattern burst. You can specify whether to wait for pattern to complete.
Name of pattern.
Whether to wait pattern completion. Set haltWait as true means to wait for pattern comletion instead of immediately return.
This method starts a pattern generator burst for the specified pattern.
Pattern name without "atp" extension.
An array of pin or pin group names.
start label, indicating where pattern should start, leaving it as "" will cause pattern to start from first vector.
end label, indiing where pattern should stop, leaving it as "" will cause pattern to run to the last vector.
Max number of fail cycles to get, default is 1. When setting it as 1, the returned Result object won't contain detailed failing cycles but only the overall pattern execution result(pass of fail),
to get detailed fail cycles, use value greater than 1.
True: execute next line of code after pattern execution halts; False: execute next line of code without waiting for pattern execution halt.
Set true to clear fail history before pattern burst. Fail history contains details of failed cycle of a pattern burst, clearing it can flush all existing fail cycles from memory and make it empty for current pattern burst.Must be greater than or equal to 10 milliseconds.
clear log memory(clearFailHistory) wait time(ms). default 10ms
Set true to clear fail flag before pattern burst. Fail flag is used to indicate if pattern burst is passed. Setting it as false may result wrong pattern burst result returned.
Result object, you can retrieve fail cycles and fail logs from it.
This method starts a single pattern burst and wait for pattern to complete.
Name of pattern.
Pins you want to monitor. For example, if you only care about specified pin's failure, you should pass their names, otherwise this method returns true even there are some pins fail but not included in signalNames. Using null means you want to monitor all pins.
Dictionary containing each sites pattern execution result.key:site,value:site result.
This method starts a pattern generator burst for the specified pattern.
This method does not wait for completion of pattern execution but immediately executes the next C# statement.
This method gets pattern execution result for the specified pattern and the specified pin or pin group.
Pattern name without "atp" extension.
Pin or pin group name.
Test number.
Max number of fail cycles to get, default is 1. Note that the actual returned number of fail cycles is grabErrorCount - 1.
If you want to get at least 1 fail cycle, you need to set grabErrorCount as 2.
True: update site pass/fail status. False: not update site pass/fail status.
Note that this parameter doesn't perform bin sorting, it only updates site pass/fail for internal site status tracking.
Neither it causes a site to be binned as pass or fail nor it generates a FTR. It is recommended you always set it as true.
True: read fail cycles. False: not read fail cycles. Using false can save test time if you don't need to retrieve fail cycles.
Result object, you can retrieve fail cycles and fail logs from it.
This method gets measured frequency from frequency counter.
An array of pin or pin group names.
The number of sampling when frequency measure was performed. If you set frequency counter to capture 1000 vectors for frequency sampling, you set sampling = 1000
Sampling period in microseconds.
True: perform limits checking and bin sorting. False: not perform limits checking and bin sorting.
Test number.
An enumerated constant of type FrequencyRange, valid options are GHz/MHz/KHz/Hz.
List of SiteInfo objects
start keep alive
Sampling period in microseconds.
pin names.
stop keep alive
Sampling period in microseconds.
pin names.
start 32.768khz clock keep alive
pin name
stop 32.768khz clock keep alive
pin name
set pin keep alive enable
pin name
set pin keep alive disable
pin name
This method gets captured data.
By using capture opcode(CAP,CAP1,CAP2...CAP32), you can store pin status into capture memory during pattern execution.
Then you can use this method to get captured data.
DigCapResult has interfaces for accessing per pin capture data.
DigCapResult object.
This interface accesses PPMU related methods.
This method gets a PPMU setting which is defined in the project by the PPMU setting name you provide.
PPMU setting name, which is defined in project.
PpmuInfo object.
Anolog object
This method gets Trigger object.
This method allows you to write code using fluent interface which also known as chaining coding.
This example creates a new PPMU setting and makes it effective immediately.
PPMU.CreateBatch().SetPin(new string[] { "A01" }).SetMode(PpmuMode.FVMV).SetForce(1).SetIRange(PpmuIRange._20uA).SetVRange(VRange.Normal).Execute();
IPPMUBatch object
This method programs PPMU force status of the specified pins. It also allows you to control the slew rate of PPMU force by specifying stepCount, stepDelay and stepValue, with this feature, you can do voltage/current ramping.
Note that for PpmuMode, there are 3 special mode: FVMI_All/FVMV_All/FIMV_All. For example, FVMI_All, it sets all PPMU channels on current slot to FVMI mode, no matter what pins you specified.
An array of pin or pin group names.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
An enumerated constant of type PpmuMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
An enumerated constant of type PpmuIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
Clamp value in string format, for example, "5V","1mA". The clamp is symmetrical, where "5V" stands for high clamp is 5V and low clamp is -5V.
Number of steps for voltage/current ramping, default stepCount = 1, that is, no ramping is performed, target force value is reached at fastest speed.
Delay time in nanosecond between each step, default stepDelay = 1920
The step size of each step, default stepValue = 0.
This method performs a PPMU parametric test and then do pass/fail judgment and logs the results.
An array of pin or pin group names.
Whether perform judge or not. Setting it to true means judge the measured value using limits specified by testNo, a PTR is written to stdf.
Setting it to false means do not judge the measured value even testNo is specified, no PTR is written to STDF.
An enumerated constant of type PpmuMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
An enumerated constant of type PpmuIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
An enumerated constant of type PpmuSettingMeasureMode, valid options are IO_Leakage_5uA/IO_Leakage_20uA/IO_Leakage_200uA/IO_Leakage_2mA/IO_Leakage_60mA/OS
The delay time(in microseconds) before the measurement take place.
Test number of the limit setting you want to use. Note that the test number must be defined in the project, ATE_Tester reports error if using a undefined test number.
List of SiteInfo object. You can retrieve the measured results of interested pins by accessing the returned list.
This method performs a PPMU parametric test and then do pass/fail judgment and logs the results.
An array of pin or pin group names.
Whether perform judge or not. Setting it to true means judge the measured value using limits specified by testNo, a PTR is written to stdf.
Setting it to false means do not judge the measured value even testNo is specified, no PTR is written to STDF.
An enumerated constant of type PpmuMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
An enumerated constant of type PpmuIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
An enumerated constant of type PpmuSettingMeasureMode, valid options are IO_Leakage_5uA/IO_Leakage_20uA/IO_Leakage_200uA/IO_Leakage_2mA/IO_Leakage_60mA/OS
The delay time(in microseconds) before the measurement take place.
BinningInfo object, you can get one by API context.BinHandler.GetBinningByTestSuite(TestSuiteName), ATE_Tester reports error if referring to a undefined TestSuiteName.
List of SiteInfo object. You can retrieve the measured results of interested pins by accessing the returned list.
This method performs a PPMU parametric test and then do pass/fail judgment and logs the results.
An array of pin or pin group names.
Whether perform judge or not. Setting it to true means judge the measured value using limits specified by testNo, a PTR is written to stdf.
Setting it to false means do not judge the measured value even testNo is specified, no PTR is written to STDF.
An enumerated constant of type PpmuMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
An enumerated constant of type PpmuIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
An enumerated constant of type PpmuSettingMeasureMode, valid options are IO_Leakage_5uA/IO_Leakage_20uA/IO_Leakage_200uA/IO_Leakage_2mA/IO_Leakage_60mA/OS
The delay time(in microseconds) before the measurement take place.
Low clamp value in string format, for example, "-5V","-1mA". Note that the type of clamp is determined by measure mode. For example, in measure voltage mode, clamp is voltage clamp.
High clamp value in string format, for example, "5V","1mA". Note that the type of clamp is determined by measure mode. For example, in measure voltage mode, clamp is voltage clamp.
BinningInfo object, you can get one by API context.BinHandler.GetBinningByTestSuite(TestSuiteName), ATE_Tester reports error if referring to a undefined TestSuiteName.
List of SiteInfo object. You can retrieve the measured results of interested pins by accessing the returned list.
This method performs a PPMU parametric test and then do pass/fail judgment and logs the results.
An array of pin or pin group names.
Whether perform judge or not. Setting it to true means judge the measured value using limits specified by binning, a PTR is written to stdf and measure log is written into raw log.
Setting it to false means do not judge the measured value even binning is specified, no log or STDF record will be generated.
An enumerated constant of type PpmuMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
An enumerated constant of type PpmuIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA.
An enumerated constant of type VRange, valid options are HighPrecision/Normal, using HighPrecision can give you better voltage measurement accuracy.
Low clamp value in string format, for example, "-5V","-1mA". Note that the type of clamp is determined by measure mode. For example, in measure voltage mode, clamp is voltage clamp.
High clamp value in string format, for example, "5V","1mA". Note that the type of clamp is determined by measure mode. For example, in measure voltage mode, clamp is voltage clamp.
An enumerated constant of type TestMode, valid options are Parallel/Serial.
The delay time(in microseconds) before the measurement take place.
value in unit V for voltage
BinningInfo object, you can get one by API context.BinHandler.GetBinningByTestSuite(TestSuiteName), ATE_Tester reports error if referring to a undefined TestSuiteName.
List of SiteInfo object. You can retrieve the measured results of interested pins by accessing the returned list.
This method programs PPMU force status of the specified pins. It also allows you to control the slew rate of PPMU force by specifying stepCount, stepDelay and stepValue, with this feature, you can do voltage/current ramping.
Note that for PpmuMode, there are 3 special mode: FVMI_All/FVMV_All/FIMV_All. For example, FVMI_All, it sets all PPMU channels on current slot to FVMI mode, no matter what pins you specified.
This example sets the PPMU output mode to force voltage measure current, voltage 5V is applied immediately without any ramping.
PPMU.Force(new string[] { "PPMU5" }, 5, PpmuMode.FVMI, PpmuIRange._200uA, VRange.Normal);
This example sets the PPMU output mode to force voltage measure current, voltage 5V is applied by ramping from 0V to 5V in 20 steps.
Note that in this cause you need to set "startValue" parameter to 0. Since 0V is treated as ramp starting point and 20 steps are needed to eventually reach 5V.
PPMU.Force(new string[] { "PPMU5" }, 0, PpmuMode.FVMI, PpmuIRange._200uA, VRange.Normal, 20, 1000, 5.0 / 20.0);
This example sets the PPMU output mode to force voltage measure current, voltage 5V is applied by ramping from 1V to 5V in 20 steps.
Note that in this case you need to set "startValue" parameter to 1. Since 1V is treated as ramp starting point and 20 steps are needed to eventually reach 5V.
PPMU.Force(new string[] { "PPMU5" }, 1, PpmuMode.FVMI, PpmuIRange._200uA, VRange.Normal, 20, 1000, 4.0 / 20.0);
An array of pin or pin group names.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
An enumerated constant of type PpmuMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
An enumerated constant of type PpmuIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
Number of steps for voltage/current ramping, default stepCount = 1, that is, no ramping is performed, target force value is reached at fastest speed.
Specifies the delay between each step in units. The delay is calculated as `stepDelay` multiplied by 80.
For example, a `stepDelay` of 1920 represents a total delay of 153,600 ns.
This allows for a detailed granularity in timing configurations, facilitating precise control over timing intervals.
The default value of `stepDelay` is 1920, which corresponds to a computed delay of 80 * 1920 units.
The step size of each step, default stepValue = 0.
This method programs PPMU force status of the specified pins. It also allows you to control the slew rate of PPMU force by specifying stepCount, stepDelay and stepValue, with this feature, you can do voltage/current ramping.
Note that for PpmuMode, there are 3 special mode: FVMI_All/FVMV_All/FIMV_All. For example, FVMI_All, it sets all PPMU channels on current slot to FVMI mode, no matter what pins you specified.
This example sets the PPMU output mode to force voltage measure current, voltage 5V is applied immediately without any ramping.
PPMU.Force(new string[] { "PPMU5" }, 5, PpmuMode.FVMI, PpmuIRange._200uA, VRange.Normal,"180uA","-10uA");
This example sets the PPMU output mode to force voltage measure current, voltage 5V is applied by ramping from 0V to 5V in 20 steps.
Note that in this cause you need to set "startValue" parameter to 0. Since 0V is treated as ramp starting point and 20 steps are needed to eventually reach 5V.
PPMU.Force(new string[] { "PPMU5" }, 0, PpmuMode.FVMI, PpmuIRange._200uA, VRange.Normal,"180uA","-10uA", 20, 1000, 5.0 / 20.0);
This example sets the PPMU output mode to force voltage measure current, voltage 5V is applied by ramping from 1V to 5V in 20 steps.
Note that in this case you need to set "startValue" parameter to 1. Since 1V is treated as ramp starting point and 20 steps are needed to eventually reach 5V.
PPMU.Force(new string[] { "PPMU5" }, 1, PpmuMode.FVMI, PpmuIRange._200uA, VRange.Normal,"180uA","-10uA", 20, 1000, 4.0 / 20.0);
An array of pin or pin group names.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
An enumerated constant of type PpmuMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
An enumerated constant of type PpmuIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
High clamp value in string format, for example, "5V","1mA". Note that the type of clamp is determined by measure mode. For example, in measure voltage mode, clamp is voltage clamp.
Low clamp value in string format, for example, "-5V","-1mA". Note that the type of clamp is determined by measure mode. For example, in measure voltage mode, clamp is voltage clamp.
Number of steps for voltage/current ramping, default stepCount = 1, that is, no ramping is performed, target force value is reached at fastest speed.
Specifies the delay between each step in units. The delay is calculated as `stepDelay` multiplied by 80.
For example, a `stepDelay` of 1920 represents a total delay of 153,600 ns.
This allows for a detailed granularity in timing configurations, facilitating precise control over timing intervals.
The default value of `stepDelay` is 1920, which corresponds to a computed delay of 80 * 1920 units.
The step size of each step, default stepValue = 0.
This method performs a PPMU parametric test and then do pass/fail judgment and logs the results.
This example measures on PPMU pins and judge the results by test number.
PPMU.Measure(new string[] { "PPMU1" }, true, 2200);
Note that you can also get test number using test suite name. This example shows how.
PPMU.Measure(new string[] { "PPMU1" }, true, context.BinHandler.GetBinningByTestSuite("OS").TestNo);
An array of pin or pin group names.
Whether perform judge or not. Setting it to true means judge the measured value using limits specified by testNo, a PTR is written to stdf.
Setting it to false means do not judge the measured value even testNo is specified, no PTR is written to STDF.
Test number of the limit setting you want to use. Note that the test number must be defined in the project, ATE_Tester reports error if using a undefined test number.
The number of samples to strobe when perform the measurement, default numberOfSamples = 1.
The sampling interval between each meter strobe, unit is microsecond, default intervalTimeUs = 0.
List of SiteInfo object. You can retrieve the measured results of interested pins by accessing the returned list.
This method performs a PPMU parametric test and then do pass/fail judgment and logs the results.
This example measures on PPMU pins and judge the results by test number.
PPMU.Measure(new string[] { "PPMU1" }, true, 2200);
Note that you can also get test number using test suite name. This example shows how.
PPMU.Measure(new string[] { "PPMU1" }, true, context.BinHandler.GetBinningByTestSuite("OS"));
An array of pin or pin group names.
Whether perform judge or not. Setting it to true means judge the measured value using limits specified by testNo, a PTR is written to stdf.
Setting it to false means do not judge the measured value even testNo is specified, no PTR is written to STDF.
BinningInfo object, you can get one by API context.BinHandler.GetBinningByTestSuite(TestSuiteName), ATE_Tester reports error if referring to a undefined TestSuiteName.
The number of samples to strobe when perform the measurement, default numberOfSamples = 1.
The sampling interval between each meter strobe, unit is microsecond, default intervalTimeUs = 0.
List of SiteInfo object. You can retrieve the measured results of interested pins by accessing the returned list.
This method performs a PPMU parametric test and then do pass/fail judgment and logs the results.
Note that this method only samples the current/voltage once, if you want to get multiple samples and return averaged reading, use another overload of this method.
An array of pin or pin group names.
Whether perform judge or not. Setting it to true means judge the measured value using limits specified by testNo, a PTR is written to stdf.
Setting it to false means do not judge the measured value even testNo is specified, no PTR is written to STDF.
An enumerated constant of type PpmuMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
An enumerated constant of type PpmuIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
The delay time(in microseconds) before the measurement take place.
BinningInfo object, you can get one by API context.BinHandler.GetBinningByTestSuite(TestSuiteName), ATE_Tester reports error if referring to a undefined TestSuiteName.
List of SiteInfo object. You can retrieve the measured results of interested pins by accessing the returned list.
This method performs a PPMU parametric test and then do pass/fail judgment and logs the results.
Note that this method automatically connects PPMU to device pin, performs force, measurement and limit judge then disconnects pin.
An array of pin or pin group names.
Whether perform judge or not. Setting it to true means judge the measured value using limits specified by testNo, a PTR is written to stdf.
Setting it to false means do not judge the measured value even testNo is specified, no PTR is written to STDF.
An enumerated constant of type PpmuMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
An enumerated constant of type PpmuIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
Force value: ForceRange[-8,13], default unit V for voltage and A for current
The delay time(in microseconds) before the measurement take place.
BinningInfo object, you can get one by API context.BinHandler.GetBinningByTestSuite(TestSuiteName), ATE_Tester reports error if referring to a undefined TestSuiteName.
List of SiteInfo object. You can retrieve the measured results of interested pins by accessing the returned list.
This method performs a PPMU parametric test and then do pass/fail judgment and logs the results.
To be tested pin
reference pin
judge by the measure result - true: judge; false: no judge
binning object
offset measure result - true: offset measure result; false: no offset measure result
Number of samples for measurement,default numberOfSamples = 0
Interval time between each sampling, unit in us,default intervalTimeUs = 0
This method sets PPMU clamp for the specified pins.
An array of pin or pin group names.
An enumerated constant of type PpmuMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
An enumerated constant of type PpmuIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
High clamp value in string format, for example, "5V","1mA". The system will report error if set clampH to a value which is less than clampL. Also if clamp value exceeds the allowable clamp range, the allowable clamp range will be applied.
Low clamp value in string format, for example, "-1V","-2mA". The system will report error if set clampL to a value which is greater than clampH. Also if clamp value exceeds the allowable clamp range, the allowable clamp range will be applied.
This method reads temperature of the PPMU instrument board.
Temperature data
This method performs a PPMU parametric test and then do pass/fail judgment and logs the results.
This method can sample the current/voltage specified times with specified sampling rate.
If you want to make judgement of measurement, do not use None for parameter judgeType and do make sure measureType contains the type you want to judege. For example, if judgeType is Average, then Average must be included in measureType, otherwise you may get wrong judgement.
Pin name
Number of samples for measurement
Interval time in microsecond between each sampling
An enumerated constant of type JudgeType, valid options are Average/Max/Min/None.
An enumerated constant of type JudgeType, valid options are Average/Max/Min.By specifying one or more members of this enumeration, you can control measurements independently. (Use more than one member simultaneously using the | operator.
BinningInfo object.
List of SiteInfo object. You can retrieve the measured results of interested pins by accessing the returned list.
This interface accesses methods which allows you to perform chaining coding.
You can use this interface to program PPMU channels status individually.
string ppmuName = "ppmuName";
string[] ioPins = { "A01", "A02" };
PpmuMode ppmuMode = PpmuMode.FVMV;
double forceV = 3.3;//in unit V
//Step1:Create an IPPMUBatch object, whose properties are empty.
IPPMUBatch ppmuBatch = PPMU.CreateBatch();
//Step2:Set properties using chaining coding.
ppmuBatch = ppmuBatch.SetPin(ioPins).SetMode(ppmuMode).SetForce(forceV);
//Step3:Make ppmuBatch effective immediately.
ppmuBatch.Execute();
//Operations in Step1 to Step3 can also be simply written as below.
//PPMU.CreateBatch().SetPMU(ppmuInfo).SetPin(ioPins).SetMode(ppmuMode).SetForce(forceV).Execute();
This method sets PPMU channles status using PPMUInfo object.
Note that a PpmuInfo object is usually generated by PPMU.Clone(PPMUSettingName) API. Available PPMUSettingName can be found in project, PPMU setting page.
PpmuInfo ppmuInfo = PPMU.Clone(PPMUSettingName);//get PPMU setting, which is defined in project.
IPPMUBatch ppmuBatch = PPMU.CreateBatch();//apply the PPMU setting, make it effective immediately.
ppmuBatch.SetPMU(ppmuInfo);
PpmuInfo obect.
IPPMUBatch object.
This method sets PPMU current range.
An enumerated constant of type PpmuIRange, valid options are _5uA/_20uA/_200uA/_2mA/_60mA.
IPPMUBatch object
This method sets PPMU force value, it can be voltage or current value.
Force value in unit V for voltage and unit A for current, range for voltage force is [-8,13].
IPPMUBatch object
This method sets PPMU force mode.
Note that for PpmuMode, there are 3 special mode: FVMI_All/FVMV_All/FIMV_All. For example, FVMI_All, it sets all PPMU channels on current slot to FVMI mode, no matter what pins you specified.
An enumerated constant of type PpmuMode, valid options are FVMI_All/FVMV_All/FIMV_All/FVMI/FVMV/FIMV/FZMI/FZMV.
IPPMUBatch object
This method sets PPMU pin names.
An array of pin or pin group names.
IPPMUBatch object
This method sets PPMU voltage range.
An enumerated constant of type VRange, valid options are HighPrecision/Normal.
IPPMUBatch object
This method sets PPMU clamp.
clamp low with units, supported units are V, mV, uV, A, mA, uA.
clamp high with units, supported units are V, mV, uV, A, mA, uA.
This method sets the stepCount property.
To correctly perform voltage or current ramping with this API, refer to PPMU.Force document.
Number of steps for voltage/current ramping, if you set stepCount = 1, that is, no ramping is performed, target force value is reached at fastest speed.
IPPMUBatch object
This method sets the stepValue property.
To correctly perform voltage or current ramping with this API, refer to PPMU.Force document.
The step size of each step.
IPPMUBatch object
This method sets the stepDelay property.
To correctly perform voltage or current ramping with this API, refer to PPMU.Force document.
Delay time in nanosecond between each step.
IPPMUBatch object
PPMU 指令工厂
获取所有通道PPMU指令
根据通道获取PPMU指令
根据脚名获取PPMU指令
获取设置PPMU钳位指令
根据获取PPMU指令
根据名字获取PPMU指令
获取PPMU reg flag
获取PpmuSetting指令
获取PpmuSetting指令
获取PpmuSetting mark指令
获取Trigger Setting指令
获取Trigger Read指令
获取通道,包含Marked通道
获取多次回读取平均指令
times">采样次数
每次采样的时间间隔,单位:us
是否更新为新接口
获取PPMU 模拟量指令
配置并启动数字量采集
1 sampleInterval = 4us
读取数字量采集统计值
读取数字量采样值
启动信号发生器
停止信号发生器
获取Pin to Pin OS 测试指令
获取PPMU Clamp 指令
获取PPMU OS PinToPin clamp指令
PPMU 回读指令
获取Arm force 补偿指令
PPMUSettingCmd
This interface accesses methods which allows you to perform chaining coding.
You can use this interface to connect or disconnect IO pins to or from DUT pins.
This method gets a relay connection setting which is defined in the project by the relay connection setting name you provide.
Relay connection setting name.
RelayInfo object.
This method connects or disconnects all IO pins to or from PPMU and PE(pin electronic, driver and comparator of the test system).
Disconnect all IO pins, all IO pins will be disconnected from PPMU or digital channel, based on what their were connected to.
After this code execution, no PPMU or PE is connected to any IO pin.
RELAY.SwitchMode(RelayMode.Open);
Connect all IO pins to PPMU.
RELAY.SwitchMode(RelayMode.ToPPMU);
Connect all IO pins to PE.
RELAY.SwitchMode(RelayMode.ToIO);
An enumerated constant of type RelayMode, valid options are Open/ToPPPMU/ToIO.
IRelay object.
This method connects the specified pins to PE(pin electronic, driver and comparator of the test system).
An array of pin or pin group names.
IRelay object.
This method disconnects the specified pins from PPMU or PE, based on what their were connected to.
An array of pin or pin group names.
IRelay object.
This method connects the specified pins to the PPMU.
An array of pin or pin group names.
IRelay object.
This method allows you to write code using fluent interface which also known as chaining coding.
Connect A01 to PPMU and A02 to PE.
RELAY.SwitchToPPMU(new string[] { "A01" }).SwitchToDigitalCard(new string[] { "A02" });
IRelayBatch object.
This interface accesses methods which allows you to perform chaining coding.
You can use this interface to connect or disconnect the specified pins to or from PPMU or PE.
RELAY.CreateBatch().SetPin(new string[] { "A01", "A02" }).SetMode(RelayMode.ToPPMU).SetPin(new string[] { "A03", "A04" }).SetMode(RelayMode.ToIO);
This method sets relay connection mode.
An enumerated constant of type RelayMode, valid options are Open/ToPPPMU/ToIO.
IRelayBatch object.
This method sets pins for IO relay connection or disconnection.
An array of pin or pin group names.
IRelayBatch object.
Relay 指令工厂
获取所有Relay切换指令
获取不同的通道切到不同的状态指令
获取不同的通道切到不同的状态指令
获取据通道设置对应Relay切换到不同状态指令
获取据通道设置对应Relay切换到不同状态指令
GetRelayCmdByInfo
获取 Relay 指令
更新 Relay 状态
获取Relay指令,根据表名
Stop On Fail
Stop On Fail
Interface for Shmoo function
Perform Shmoo
Shmoo parameters
true: print error cycle as well as result
false: print result only
default = false
Perform PinMargin
parameters
true: print error cycle as well as result
false: print result only
default = false
Perform VMinVMax
pamameters
true: print error cycle as well as result
false: print result only
default = false
Filter Shmoo Result
Runs specified user test functions on specified sites using the SiteManager. Key featuress include:
1) allow conditional flow execution, e.g. only specified sites will execute test functions while the rest of sites won't execute;
2) allow sites to execute the flow test sequencially, e.g. site 2 starts test after site 1 finishes the test.
Executes test cases on specified groups of sites using the SiteManager.
/// Executes test cases on specified groups of sites using the SiteManager.
///
/// An instance of IFlowRunnerContext providing context for the test.
[TestrongTestCase]
public void SiteManagerTest(IFlowRunnerContext context)
{
// Retrieve all site information (1-8).
var siteInfos1_8 = context.ChannelMapProvider.GetAllSiteInfos();
// Split site information into two groups: 1-4 and 4-8.
var siteInfos1_4 = siteInfos1_8.Where(t => t.No <= 4);
var siteInfos4_8 = siteInfos1_8.Where(t => t.No > 4);
// Execute TestCase1 on sites 1-4 and TestCase2 on sites 4-8 using SiteManager.
SITEMANAGER.Start(siteInfos1_4, TestCase1) // Executes TestCase1 on sites 1-4.
.Start(siteInfos4_8, TestCase2); // Executes TestCase2 on sites 4-8.
// TODO: Add more test functions as needed.
}
///
/// Test case handling functionality for sites 1-4.
///
/// An instance of IFlowRunnerContext providing context for the test.
[TestrongTestCase]
public void TestCase1(IFlowRunnerContext context)
{
// Retrieve site information for sites 1-4.
var siteInfos1_4 = context.ChannelMapProvider.GetAllSiteInfos();
// Split site information into two groups: 1-2 and 3-4.
var siteInfos1_2 = siteInfos1_4.Where(t => t.No <= 2);
var siteInfos3_4 = siteInfos1_4.Where(t => t.No > 2);
// Execute TestCase3 on sites 1-2 and TestCase4 on sites 3-4 using SiteManager.
SITEMANAGER.Start(siteInfos1_2, TestCase3) // Executes TestCase3 on sites 1-2.
.Start(siteInfos3_4, TestCase4); // Executes TestCase4 on sites 3-4.
// TODO: Add more test functions as needed.
}
///
/// Test case handling functionality for sites 4-8.
///
/// An instance of IFlowRunnerContext providing context for the test.
[TestrongTestCase]
public void TestCase2(IFlowRunnerContext context)
{
// Retrieve site information for sites 4-8.
var siteInfos4_8 = context.ChannelMapProvider.GetAllSiteInfos();
// TODO: Add test function specific code for sites 4-8.
}
///
/// Test case handling functionality for sites 1-2.
///
/// An instance of IFlowRunnerContext providing context for the test.
[TestrongTestCase]
public void TestCase3(IFlowRunnerContext context)
{
// Retrieve site information for sites 1-2.
var siteInfos1_2 = context.ChannelMapProvider.GetAllSiteInfos();
// TODO: Add test function specific code for sites 1-2.
}
///
/// Test case handling functionality for sites 3-4.
///
/// An instance of IFlowRunnerContext providing context for the test.
[TestrongTestCase]
public void TestCase4(IFlowRunnerContext context)
{
// Retrieve site information for sites 3-4.
var siteInfos3_4 = context.ChannelMapProvider.GetAllSiteInfos();
// TODO: Add test function specific code for sites 3-4.
}
]]>
Array of SiteInfo objects representing sites to enable for testing.
Action representing the test function to execute. The function must have the attribute "[TestrongTestCase]" and be declared as "public void FunctionName(IFlowRunnerContext context)".
Returns an ISiteManager instance to support method chaining.
This method runs specified user test functions on specified sites. It supports chaining coding.
When this method is invoked, only sites specified by user will executed test functions, other sites remain untouched.
Executes test cases on specified groups of sites using the SiteManager.
/// Executes test cases on specified groups of sites using the SiteManager.
///
/// An instance of IFlowRunnerContext providing context for the test.
[TestrongTestCase]
public void SiteManagerTest(IFlowRunnerContext context)
{
// Retrieve all site information (1-8).
var siteInfos1_8 = context.ChannelMapProvider.GetAllSiteInfos();
// Split site information into two groups: 1-4 and 4-8.
var siteInfos1_4 = siteInfos1_8.Where(t => t.No <= 4);
var siteInfos4_8 = siteInfos1_8.Where(t => t.No > 4);
// Execute TestCase1 on sites 1-4 before executing TestCase2 on sites 4-8 using SiteManager.
SITEMANAGER.Start(siteInfos1_4, TestCase1) // Executes TestCase1 on sites 1-4.
.Start(siteInfos4_8, TestCase2); // Executes TestCase2 on sites 4-8.
// TODO: Add more test functions as needed.
}
///
/// Test case handling functionality for sites 1-4.
///
/// An instance of IFlowRunnerContext providing context for the test.
[TestrongTestCase]
public void TestCase1(IFlowRunnerContext context)
{
// Retrieve site information for sites 1-4.
var siteInfos1_4 = context.ChannelMapProvider.GetAllSiteInfos();
// Split site information into two groups: 1-2 and 3-4.
var siteInfos1_2 = siteInfos1_4.Where(t => t.No <= 2);
var siteInfos3_4 = siteInfos1_4.Where(t => t.No > 2);
// Execute TestCase3 on sites 1-2 and TestCase4 on sites 3-4 using SiteManager.
SITEMANAGER.Start(siteInfos1_2, TestCase3) // Executes TestCase3 on sites 1-2.
.Start(siteInfos3_4, TestCase4); // Executes TestCase4 on sites 3-4.
// TODO: Add more test functions as needed.
}
///
/// Test case handling functionality for sites 4-8.
///
/// An instance of IFlowRunnerContext providing context for the test.
[TestrongTestCase]
public void TestCase2(IFlowRunnerContext context)
{
// Retrieve site information for sites 4-8.
var siteInfos4_8 = context.ChannelMapProvider.GetAllSiteInfos();
// TODO: Add test function specific code for sites 4-8.
}
///
/// Test case handling functionality for sites 1-2.
///
/// An instance of IFlowRunnerContext providing context for the test.
[TestrongTestCase]
public void TestCase3(IFlowRunnerContext context)
{
// Retrieve site information for sites 1-2.
var siteInfos1_2 = context.ChannelMapProvider.GetAllSiteInfos();
// TODO: Add test function specific code for sites 1-2.
}
///
/// Test case handling functionality for sites 3-4.
///
/// An instance of IFlowRunnerContext providing context for the test.
[TestrongTestCase]
public void TestCase4(IFlowRunnerContext context)
{
// Retrieve site information for sites 3-4.
var siteInfos3_4 = context.ChannelMapProvider.GetAllSiteInfos();
// TODO: Add test function specific code for sites 3-4.
}
]]>
enableSiteInfos: Array of int, contains site number of interested sites.
testCaseCallBack: Name of test function to be executed. Note that a valid test function must has attribute "[TestrongTestCase]"
and must be declared in convention "public void FunName(IFlowRunnerContext context)".
系统指令工厂
DC Setting
LoadBoard Relay
Flow Skip Service
Get wafer information: wafer id, lot id etc..
系统Reset
DigitalCard Reset
Suspends the current thread for the specified number of milliseconds.
Suspends the current thread for the specified number of milliseconds.
wait system synchronization
Synchronous callback function
获取系统复位指令
获取DigitalCard Reset指令
获取checkBusy指令
unit:(ms)
根据Pattern名字获取系统CheckBusy指令
shmoo 调用
获取系统Open指令
系统PPMU default clamp 指令
获取系统所有状态复位指令
发送CheckBusyCmd
Measure with add offset
To be tested pins
Reference pins
Trigger mode ranges
Offset measure result - true: offset measure result; false: no offset measure result
This interface accesses methods which allows you to perform chaining coding.
You can use this interface to program the specified pin's VT status individually.
This method gets a VT setting which is defined in the project by the VT setting name you provide.
VT setting name.
VTInfo object.
This method allows you to write code using fluent interface which also known as chaining coding.
IVTBatch object.
This method loads the specified VT setting to the specified pins.
This example loads VT setting "VT_1V8" to the specified pins.
PATTERN.DCLevel.VT.UpdateVT(new string[] { "A01", "A02" }, PATTERN.DCLevel.VT.Clone("VT_1V8"));
An array of pin or pin group names.
VTInfo object.
This method programs VT for the specified pins.
PATTERN.DCLevel.VT.UpdateVT(new string[] { "A01", "A02" }, 1.8,2400);
An array of pin or pin group names.
Voltage reference, in Volt
Resistor load, in Ohm
This interface accesses VT chaining coding related methods.
string[] pins = { "A01", "A02" };
double rLoad = 1;
double vref = 1;
PATTERN.DCLevel.VT.CreateBatch().SetPin(pins).SetRload(rLoad).SetVref(vref).Execute();
This method sets pin/pin group for VT.
An array of pin or pin group names.
IVTBatch object.
This method sets voltage reference for VT.
VT voltage reference, in Volt
IVTBatch object.
This method sets resistor load for VT.
Resistance in Ohm
IVTBatch object.
设置VT Molex TMUX 根据通道
设置VT Molex TMUX 根据脚名
根据通道设置VT电压
设置全通道VT电阻
设置部分通道VT电阻
设置部分通道VT电阻
根据脚名设置VT电压
k7方向表,公共变量待提取
PatternOrderInfo
CaptureInfo
TrimInfo
打包指令
启动打包指令
debug是否存在ram/onor pattern,并且是否下载ram/onor pattern
是否下载 Ram Pattern
true:已下载
false:未下载需要提示
是否下载 Onor Pattern
true:已下载
false:未下载需要提示
检查是否存在 ram/onor pattern
总行数
每行byte数
将一个page内容分配到每一片onor的内存中
获取onor地址
bytes长度
总行数
每行byte数
将一个page内容分配到每一片onor的内存中
获取onor地址
bytes长度
总行数
每行byte数
将一个page内容分配到每一片onor的内存中
获取onor地址
bytes长度
总行数
每行byte数
将一个page内容分配到每一片onor的内存中
获取onor地址
bytes长度
启动(onor/ram)pattern
pattern文件名称(无文件后缀)
计算pattern执行时间
计算pattern执行时间
启动pattern
启动pattern
start pattern.
启动(onor/ram)pattern
pattern文件名称(无文件后缀)
实例(必填)
get pattern execution time.
get pattern execution time.
Check pattern status
Check pattern status with execute time,which used in 15 software version
pattern启动命令类
pattern启动命令类
初始方向表
获取方向表指令数量数组(校验位)
方向表指令数
k7Type(u1u2u3u4)
获取实际地址数组
方向表字典
k7Type
十六进制字符串转换为byte[]
获取方向表字节数组
遍历flow item
遍历item function
获取上一个离当前pattern最近的actiming
实现pattern的编译/下载/反填的批处理
注:该接口的实现 不开启 线程(供production调用)
生成隐藏文件,标识arm断电重启
删除隐藏文件,标识arm断电重启后发送过重置K7的指令
根据隐藏检测arm是否断过电
拷贝文件至Pattern中的Bak文件夹
源pattern文件(含cap)
在点击另存操作时调用此方法判断pattern状态
当前stil所在文件夹
当更换stil时,删除上次的缓存
Pattern文件是否改变
Pattern文件是否改变
将PatternOrderInfoCompile中的Nor数据映射至PatternOrderInfoLoad
将PatternOrderInfoCompile中的Ram数据映射至PatternOrderInfoLoad
save
load
shmoo tool 页面加载时调用,列表显示
delete
K7矩阵图
+--------------------------------------------------------------------+
| 63←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←00|
|63 1000000000000000000000000000000000000000000000000000000000000000 |
|↓ 0100000000000000000000000000000000000000000000000000000000000000 |
|↓ 0010000000000000000000000000000000000000000000000000000000000000 |
|↓ 0001000000000000000000000000000000000000000000000000000000000000 |
|↓ 0000100000000000000000000000000000000000000000000000000000000000 |
|↓ 0000010000000000000000000000000000000000000000000000000000000000 |
|↓ 0000001000000000000000000000000000000000000000000000000000000000 |
|↓ 0000000100000000000000000000000000000000000000000000000000000000 |
|↓ 0000000010000000000000000000000000000000000000000000000000000000 |
|↓ 0000000001000000000000000000000000000000000000000000000000000000 |
|↓ 0000000000100000000000000000000000000000000000000000000000000000 |
|↓ 0000000000010000000000000000000000000000000000000000000000000000 |
|↓ 0000000000001000000000000000000000000000000000000000000000000000 |
|↓ 0000000000000100000000000000000000000000000000000000000000000000 |
|↓ 0000000000000010000000000000000000000000000000000000000000000000 |
|↓ 0000000000000001000000000000000000000000000000000000000000000000 |
|↓ 0000000000000000100000000000000000000000000000000000000000000000 |
|↓ 0000000000000000010000000000000000000000000000000000000000000000 |
|↓ 0000000000000000001000000000000000000000000000000000000000000000 |
|↓ 0000000000000000000100000000000000000000000000000000000000000000 |
|↓ 0000000000000000000010000000000000000000000000000000000000000000 |
|↓ 0000000000000000000001000000000000000000000000000000000000000000 |
|↓ 0000000000000000000000100000000000000000000000000000000000000000 |
|↓ 0000000000000000000000010000000000000000000000000000000000000000 |
|↓ 0000000000000000000000001000000000000000000000000000000000000000 |
|↓ 0000000000000000000000000100000000000000000000000000000000000000 |
|↓ 0000000000000000000000000010000000000000000000000000000000000000 |
|↓ 0000000000000000000000000001000000000000000000000000000000000000 |
|↓ 0000000000000000000000000000100000000000000000000000000000000000 |
|↓ 0000000000000000000000000000010000000000000000000000000000000000 |
|↓ 0000000000000000000000000000001000000000000000000000000000000000 |
|↓ 0000000000000000000000000000000100000000000000000000000000000000 |
|↓ 0000000000000000000000000000000010000000000000000000000000000000 |
|↓ 0000000000000000000000000000000001000000000000000000000000000000 |
|↓ 0000000000000000000000000000000000100000000000000000000000000000 |
|↓ 0000000000000000000000000000000000010000000000000000000000000000 |
|↓ 0000000000000000000000000000000000001000000000000000000000000000 |
|↓ 0000000000000000000000000000000000000100000000000000000000000000 |
|↓ 0000000000000000000000000000000000000010000000000000000000000000 |
|↓ 0000000000000000000000000000000000000001000000000000000000000000 |
|↓ 0000000000000000000000000000000000000000100000000000000000000000 |
|↓ 0000000000000000000000000000000000000000010000000000000000000000 |
|↓ 0000000000000000000000000000000000000000001000000000000000000000 |
|↓ 0000000000000000000000000000000000000000000100000000000000000000 |
|↓ 0000000000000000000000000000000000000000000010000000000000000000 |
|↓ 0000000000000000000000000000000000000000000001000000000000000000 |
|↓ 0000000000000000000000000000000000000000000000100000000000000000 |
|↓ 0000000000000000000000000000000000000000000000010000000000000000 |
|↓ 0000000000000000000000000000000000000000000000001000000000000000 |
|↓ 0000000000000000000000000000000000000000000000000100000000000000 |
|↓ 0000000000000000000000000000000000000000000000000010000000000000 |
|↓ 0000000000000000000000000000000000000000000000000001000000000000 |
|↓ 0000000000000000000000000000000000000000000000000000100000000000 |
|↓ 0000000000000000000000000000000000000000000000000000010000000000 |
|↓ 0000000000000000000000000000000000000000000000000000001000000000 |
|↓ 0000000000000000000000000000000000000000000000000000000100000000 |
|↓ 0000000000000000000000000000000000000000000000000000000010000000 |
|↓ 0000000000000000000000000000000000000000000000000000000001000000 |
|↓ 0000000000000000000000000000000000000000000000000000000000100000 |
|↓ 0000000000000000000000000000000000000000000000000000000000010000 |
|↓ 0000000000000000000000000000000000000000000000000000000000001000 |
|↓ 0000000000000000000000000000000000000000000000000000000000000100 |
|↓ 0000000000000000000000000000000000000000000000000000000000000010 |
|00 0000000000000000000000000000000000000000000000000000000000000001 |
+---------------------------------------------------------------------+
+---+------------------------+ +---+---------------------------+
| X | 第一片K7对应的channel | | Y | 第二三四片K7对应的channel |
+---+------------------------+ +---+---------------------------+
一片K7 64个channel
实现pattern的编译/下载/反填的批处理
注:该接口的实现 不开启 线程(供production调用)
compile-load映射器
compile中的nor数据映射到load
stop on fail 开启,且上个测试项含fail site
memory 中含上个测试项fail site 的pass site置fail
根据通道读取pattern频率
读取频率的通道数组(必填)
k7采取次数(必填)
k7采取次数系数(必填)
返回通道由小到大的频率值
获取signalNames的所有channel
This method extracts data captured by specified opcode of specified site from DigCapResult object.
pinName on which data is captured.
number of site from which data is captured.
An enumerated constant of type OpCode, valid options are CAP and CAP1~CAP32.
Array of chars containing data, data can be '0' or '1'
This method extracts data captured by specified opcode of specified site from DigCapResult object.
pinName on which data is captured.
number of site from which data is captured.
An enumerated constant of type OpCode, valid options are CAP and CAP1~CAP32.
Unsigned long value of captured data. Note that if captured data exceeds 64, which is the max length of ulong, ATE_Tester will report error.
This method extracts data captured by specified opcode of specified site from DigCapResult object.
pinName on which data is captured.
number of site from which data is captured.
An enumerated constant of type OpCode, valid options are CAP and CAP1~CAP32.
Unsigned int value of captured data. Note that if captured data exceeds 32, which is the max length of uint, ATE_Tester will report error.
校验Trim是否成功 : 对比RAM 内存和ATE本地修改Json内容是否一致
pattern文件名称(无文件后缀)
字典类型,key为Pattern名称,Value为bool类型的对比结果
trim修改(某个channel)driver单列
pattern文件名称(无后缀)(必填)
脚名(必填)
map中对应的site(必填)
SEND标识(必填,范围[SEND1,SEND2,SEND3,SEND4,SEND5,SEND6])
SEND标识对应要修改的十进制值(必填)
send trim后修改行的内容
pattern文件名称(无后缀)(必填)
send trim后修改行的内容
pattern文件名称(无后缀)(必填)
send trim后修改行的内容
pattern文件名称(无后缀)(必填)
pattern文件中提示的行号(注:修改pattern文件后一定要check)(必填)
trim update.
trim pattern
刷新
trim修改(某个channel)driver单列
pattern文件名称(无后缀)(必填)
脚名(必填)
map中对应的site(必填)
SEND标识(必填,范围[SEND1,SEND2,SEND3,SEND4,SEND5,SEND6])
SEND标识对应要修改的十进制值(必填)
send trim后修改行的内容
pattern文件名称(无后缀)(必填)
send trim后修改行的内容
pattern文件名称(无后缀)(必填)
send trim后修改行的内容
pattern文件名称(无后缀)(必填)
pattern文件中提示的行号(注:修改pattern文件后一定要check)(必填)
和对应channel的上次数据做对比,!=则修改状态Changed,isSend=true
判断未使用的channel中是否是init状态
获取FPGACHX集合信息
和对应channel的上次数据做对比,!=则修改状态Changed,isSend=true
判断未使用的channel中是否是init状态
跨周期比较计算
获取FPGACHX集合信息
和对应channel的上次数据做对比,!=则修改状态Changed,isSend=true
判断未使用的channel中是否是init状态
跨周期比较计算
获取FPGACHX集合信息
ACTiming补偿解析类
解析文本
DCLevel设置类型
Input High
Input Low
Output High
Output Low
VIH, Range [0, 5.8]
VIL, Range [0, 5.8]
VOH, Range: [0, 4]
VOH, Range: [0, 4]
DCLevel预设并且通过地址启动版本(最大VIH,VIL支持设置16个值)
88C_A 16 share 1
VT 不生效版本
内部API实现类
Relay 切换到Short
脚名
PPMU Force
siteNo
脚名
Force值,ForceRange[-8,13],电压单位默认伏特,电流单位默认安培
模式:FIMV,FVMI,FVMV,FZMV,FZMI
电流挡位:_5uA,_20uA,_200uA,_2mA,_60mA
电压挡位:HighPrecision,Normal
阶梯上电跳变次数
阶梯上电每次跳变Delay时间,Unit:(ns)=stepDelay*80(ns)
阶梯上电跳变值
DPS Force
siteNo
脚名
Force值,ForceRange[-8,13],电压单位默认伏特,电流单位默认安培
DPS 模式:FVMI,FVMV,FIMV, FZMI,FZMV
电流挡位:_5uA,_20uA,_200uA,_2mA,_60mA,_1A
电压挡位:HighPrecision,Normal
阶梯上电跳变次数
阶梯上电每次跳变Delay时间,Unit:ns
阶梯上电跳变值
内部方法工厂
Post STDF Ftr record
true: Post success, false: Not Post(ignore by stop on fail)
Post STDF PTR record
true: Post success, false: Not Post(ignore by stop on fail)
Post STDF PTR record
true: Post success, false: Not Post(ignore by stop on fail)
Post STDF PTR record
true: Post success, false: Not Post(ignore by stop on fail)
Post RawText log
Post RawText log
Post RawText log
Post RawText log
Post RawText log
Post RawText log
Post ReportText log
Post ReportText log
Post Csv pre header
Post Csv foot
获取回读指令
获取多次回读DPS或者PPMU指令
回读次数
每次回读的时间间隔
是否是DPS回读
mark OS relay
Obsolete Trim operation
pattern name
pin or pin group
site (starting from 1)
Trim Opcode(SEND1,SEND2,SEND3,SEND4,SEND5,SEND6)one can write up to 64 lines.
all bits to be updated, expressed in Dec in Big Endian;
e.g. 0b0100 = 4 will update SEND1[0] = 0, SEND1[1] = 1, SEND1[2] = 0, SEND1[3] = 0
TTR Trim operation
pattern name
pin or pin group
site (starting from 1)
Trim Opcode(SEND1,SEND2,SEND3,SEND4,SEND5,SEND6)one can write up to 32 lines.
all bits to be updated, expressed in Dec in Big Endian, only '0' or '1'.;
e.g. 0b0100 = 4 will update SEND1[0] = '0', SEND1[1] = '1', SEND1[2] = '0', SEND1[3] = '0'
TTR Trim operation
pattern name
pin or pin group
site (starting from 1)
pattern file data line
update pattern data form startLine to (startLine+deep),limit [1,32].
all bits to be updated, expressed in Dec in Big Endian,only '0' or '1'.;
Obsolete Refresh RAM
pattern name
Trim Opcode(SEND1,SEND2,SEND3,SEND4,SEND5,SEND6)
TTR Refresh RAM
Read the content of pattern from instrument memory
Flow context
pattern name
Dictionary type: key = pattern name, value = pattern data
Read pattern result (error cycle)
pattern name
pin or pin group
Number of error cycles to get, default = 1
True: update site result
True: read error cycle
Read frequency
pin or pin group
period (ns)
True: binning based on the result (pass or fail)
list of site objects
Capture failed cycles (Obsolete, will be replaced by new API with TTR optimization
pattern name
pin or pin group
Opcode (SEND1,SEND2,SEND3,SEND4,SEND5,SEND6)
Get pattern execution time(ms)
actiming name
pattern name
Millisecond
Get pattern execution time(ms)
actiming name
pattern name
Millisecond
PatternInfo (name, path and etc.)
pattern名称
start keep alive
stop keep alive
start 32.768khz clock keep alive
stop 32.768khz clock keep alive
set pin keep alive enable
pin name
set pin keep alive disable
pin name
A standard peak detector in time series.
The goal of this class is to identify peaks in a 1D time series (float[]).
It simply implements G.K. Palshikar's Simple Algorithms for Peak Detection
in Time-Series ( Proc. 1st Int. Conf. Advanced Data Analysis, Business
Analytics and Intelligence (ICADABAI2009), Ahmedabad, 6-7 June 2009),
We retained the first "spikiness" function he proposed, based on computing
the max signed distance to left and right neighbors.
http://sites.google.com/site/girishpalshikar/Home/mypublications/
SimpleAlgorithmsforPeakDetectioninTimeSeriesACADABAI_2009.pdf*
Return the peak locations as array index for the time series set at creation.
@param windowSize the window size to look for peaks. a neighborhood of +/- windowSize
will be inspected to search for peaks. Typical values start at 3.
@param stringency threshold for peak values. Peak with values lower than
mean + stringency * std will be rejected. Mean and std are calculated on the
spikiness function. Typical values range from 1 to 3.
@return an int array, with one element by retained peak, containing the index of
the peak in the time series array.
all loading ram pattern infos 写入下位机RAM
ram info bytes
check flow中调用的ram pattern 是否下载
(isloading,error ram pattern name)
read RAM memory pattern data.
get RAM
读写ram pattern下载信息
write:所有下载后的ram pattern
read: flow 中调用的ram pattern
all loading ram pattern infos 写入下位机RAM
check flow中调用的ram pattern 是否下载
TTR Relay 走表,不更新Mark 状态,mark 放到回读里面更新
设置当前flow 状态
恢复flow状态
执行Shmoo,并打印结果
true: 打印 errorCycle
false: 打印 p | .
执行PinMargin,并打印结果
true: 打印 errorCycle
false: 打印 p | .
执行VMinVMax,并打印结果
true: 打印 errorCycle
false: 打印 p | .
先执行X在执行Y
Shmoo Execute
PinMargin Execute
VMinVMax Execute
API/DebugTool Shmoo
LA
PinMargin
VMinVMax
LA
API Shmoo / DebugTool
PinMargin/VMinVMax
返回一组(X,Y)值的结果
PinMargin - VMinVMax
LA
copy备份 实时修改 发送指令
copy备份 不做修改 获取初始数据
API Shmoo/DebugTool
PinMargin/VMinVMax
系统API接口服务类
获取DC Force 补偿指令
读取PPMU/DPS补偿数据文件(csv格式)
dna字典中是否存在该"dnaKey"
获取Offset Ppmu指令
获取Offset Dps指令
获取Offset数据
LoadBoardRelay CommandFactory
系统指令工厂
设置VT参考电压和负载
脚名
参考电压
负载
FirmWare version: >= V1.1.1.2.1_15_23
KeepAlive一组16个channel
KeepAlive一组中一个byte控制4个channel
true : start
false: stop
DCOffsetInfo
IROffsetInfo
OffsetManager
设置补偿数据
Load IR Offset
获取IR Offset
读取DC配置数据
初始化DC Offset
获取配置数据
初始化IR Offset
get DCOffsetInfo
get DCOffsetInfo
获取ACTimingOffset
IR Offset Parser
DC Offset Parser
ACTimingByPeriodRangeOffsetPaser
解析文本
补偿解析式基类
是否是整型
是否是double型
交换PPMU值
ACTiming 补偿类数据
版卡信息解析类
复位当前Slot通道状态
获取ppmu寄存器flag
清除Mark 状态
DpsRelay状态数组
Relay状态数组
更新Relay状态
更新DpsRelay状态
检查Dps Relay状态是否改变
通道
relay状态
Dps通道
DpsRelay状态
初始化
更新全局数据对象
获取全局数据对象
提取ui函数,属于service逻辑
提取ui函数,属于application逻辑,包含数据传输对象转换逻辑
提取ui函数,属于application逻辑,包含数据传输对象转换逻辑
提取ui函数,属于application逻辑
提取ui函数,属于application逻辑
提取ui函数,属于application逻辑
提取ui函数,属于application逻辑
添加断点
断点名称(必填)
孤点
分叉结点
不分叉结点
结点编号
PassSite编号
FailSite编号
结点名字
结点类型
结点执行的方法
true:把结点回调方法的pass site结果设置为pass,false:把结点回调方法的pass site结果设置为fail
分叉结点构造函数
当前结点编号
跑过该结点后pass site的编号
跑过该结点后fail site的编号
节点类型
节点名称
孤点构造函数
结点编号
该结点编号的site是作为Pass结果还是Fail结果
NodeType nodeType = NodeType.IsolatedPoint表示断点是一个孤点,z这种类型断点下(testCase=null时,把该结点的site设置为pass or fail
不分叉结点构造函数(把上一次结点编号改为当前结点编号)
启动Flow跳转逻辑
获取fail site
获取Site结点编号信息
Testrong ATE_Tester ACTimming 模块设置周期频率操作
设置的周期值范围2us-10000us(必填)
tcpEnable为true,发送指令, tcpEnable为false则不发送控制指令(必填)
实例,根据结果类可以取到对应的map 通道信息,第几块板卡信息(必填)
初始化所有channel的状态(default)
实例,根据结果类可以取到对应的map 通道信息,第几块板卡信息(必填)
设置channel状态
actiming名称(不可以是空白或者仅空格组成)(必填)
actiming对象数组(至少初始化一个对象)(必填)
例:
ACBaseClass[] acArrays = new ACBaseClass[] {
new ACBaseClass {Name="actimingName",Period=1000,SignalName="A01,A02",Fmt="NR/RL/RH/SBL/SBH",Ons="NA/[0-7/8]",Data="NA/[0-7/8]",Return="NA/[0-7/8]",Off="NA/[0-7/8]",Mode="Edge/WindowCompare",Open="NA/[0-7/8]",Close="NA/[0-7/8]" },
new ACBaseClass {Name="actimingName",Period=1000,SignalName="A01,A02",Fmt="NR/RL/RH/SBL/SBH",Ons="NA/[0-7/8]",Data="NA/[0-7/8]",Return="NA/[0-7/8]",Off="NA/[0-7/8]",Mode="Edge/WindowCompare",Open="NA/[0-7/8]",Close="NA/[0-7/8]" }
};
实例,根据结果类可以取到对应的map 通道信息,第几块板卡信息(必填)
Testrong ATE_Tester ClaarErrorMemory 模块清除错误信息操作
实例,根据结果类可以取到对应的map 通道信息,第几块板卡信息(必填)
Testrong ATE_Tester ClaarErrorMemory 模块清除错误信息操作
实例,根据结果类可以取到对应的map 通道信息,第几块板卡信息(必填)
Testrong ATE_Tester DPS模块根据通道force操作
DPS通道数组,该值长度不能超过channelMaxLimit,最大dps 数组通道值不能超过channelMaxLimit(必填)
DPS模块支持的mode:FVMI_All,FVMV_All,FIMV_All,FVMI,FVMV,FIMV,FZMI,FZMV(必填)
DPS模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V"(必填)
DPS模块支持的range:_5uA,_20uA,_200uA,_2mA,_60mA,_1A(必填)
tcpEnable为true,发送指令, tcpEnable为false不发送指令(必填)
实例(必填)
true为补偿电压,false不补偿电压(必填)
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
DPS指令
Testrong ATE_Tester DPS模块全部DPS通道force操作
DPS模块支持的mode:只能选择FVMI_All,FVMV_All,FIMV_All三种模式(必填)
DPS模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过10V(必填)
DPS模块支持的range:_5uA,_20uA,_200uA,_2mA,_60mA,_1A(必填)
tcpEnable为true,发送指令, tcpEnable为false不发送指令(必填)
实例(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
DPS指令
Testrong ATE_Tester DPS模块根据通道force操作
DPS通道数组,该值长度不能超过channelMaxLimit,最大DPS数组中通道值不能超过channelMaxLimit(必填)
DPS模块支持的mode:只能选择FVMI,FVMV,FIMV,FZMI,FZMV(必填)
DPS模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过10V(必填)
DPS模块支持的range:_5uA,_20uA,_200uA,_2mA,_60mA,_1A(必填)
tcpEnable为true,发送指令, tcpEnable为false不发送指令(必填)
实例(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
DPS指令
Testrong ATE_Tester DPS模块根据site force操作
site数组
DPS模块支持的mode:只能选择FVMI,FVMV,FIMV,FZMI,FZMV(必填)
DPS模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过10V(必填)
DPS模块支持的range:_5uA,_20uA,_200uA,_2mA,_60mA,_1A(必填)
tcpEnable为true,发送指令, tcpEnable为false不发送指令(必填)
实例(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
DPS指令
Testrong ATE_Tester DPS模块根据脚名force操作
脚名数组
DPS模块支持的mode:只能选择FVMI,FVMV,FIMV,FZMI,FZMV(必填)
DPS模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过10V(必填)
DPS模块支持的range:_5uA,_20uA,_200uA,_2mA,_60mA,_1A(必填)
tcpEnable为true,发送指令, tcpEnable为false不发送指令(必填)
实例(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
DPS指令
读取Dps温度
tcpEnable为true,发送指令, tcpEnable为false不发送指令(必填)
实例(必填)
Testrong ATE_Tester DPS模块设置DPS钳位
DPS模块钳位电压或电流模式:ClampHighVoltage,ClampHighCurrent,ClampLowVoltage,ClampLowCurrent(必填)
DPS模块钳位电压或电流的值(必填)
tcpEnable为true,发送dps控制指令, tcpEnable为false则不发送控制指令(必填)
实例(必填)
PPMU钳位指令
设置DPS 1A Clamp
DPS模块钳位电压或电流模式:ClampHighVoltage,ClampHighCurrent,ClampLowVoltage,ClampLowCurrent(必填)
DPS模块钳位电压或电流的值(必填)
实例(必填)
tcpEnable为true,发送dps控制指令, tcpEnable为false则不发送控制指令(必填)
PPMU钳位指令
0-5V高精度电压全通道force
DPS模块支持的mode:只能选择FVMV_All,FIMV_All两种模式(必填)
DPS模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过10V(必填)
DPS模块支持的range:_5uA,_20uA,_200uA,_2mA,_60mA,_1A(必填)
电压挡位(必填)
tcpEnable为true,发送指令, tcpEnable为false不发送指令(必填)
实例(必填)
true为补偿电压,false不补偿电压(必填)
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
DPS指令
0-5V高精度电压根据脚名force
脚名数组(必填)
DPS模块支持的mode:只能选择FVMV,FIMV,FZMV模式(必填)
DPS模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过10V(必填)
DPS模块支持的range:_5uA,_20uA,_200uA,_2mA,_60mA,_1(必填)A
电压挡位(必填)
tcpEnable为true,发送指令, tcpEnable为false不发送指令(必填)
实例(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
DPS指令
设置Dps Clamp
clamp值,单位:mA
实例(必填)
设置DPSGang
gang信息
实例(必填)
Testrong ATE_Tester dpsRangeRelay 模块 通过dps通道操作dps档位切换
dps 通道数组(必填)
DPSStatusFlag模式。(OPEN EXT INT ISMARK _60MA)(必填)
实例(必填)
Testrong ATE_Tester dpsRangeRelay 模块 通过dps名称操作dps档位切换
dps名称数组(必填)
DPSStatusFlag模式。(OPEN EXT INT ISMARK _60MA)(必填)
实例(必填)
切LoadBoard Relay
模式(必填)
通道数组(必填)
tcpEnable为true,发送指令, tcpEnable为false则不发送控制指令(必填)
result 为结果类实例,根据结果类可以取到对应的map 通道信息,第几块板卡信息(必填)
Testrong ATE_Tester Reset 模块 系统复位
实例(必填)
Testrong ATE_Tester Reset 模块 数字板卡复位
实例(必填)
Testrong ATE_Tester PatternStatus 模块 CheckBusy操作 检查pattern状态是否为结束状态
实例,根据结果类可以取到对应的map 通道信息,第几块板卡信息(必填)
Testrong ATE_Tester PPMU 模块全部PPMU通道force操作
PPMU模块支持的mode:只能选择FIMV_all,FVMI_all,FVMV_all(必填)
PPMU模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过12V(必填)
PPMU模块支持的range(电流驱动强度挡位):_5uA,_20uA,_200uA,_2mA,_60mA(必填)
tcpEnable为true,发送控制指令, tcpEnable为false则不发送控制指令(必填)
context为结果类实例(必填)
true为补偿电压,false不补偿电压
PPMU指令
Testrong ATE_Tester PPMU 模块根据通道force操作
PPMU通道数组(必填)
PPMU模块支持的mode:只能选择FIMV,FVMI,FVMV,FZMV,FZMI(必填)
PPMU模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过12V(必填)
PPMU模块支持的range(电流驱动强度挡位):_5uA,_20uA,_200uA,_2mA,_60mA(必填)
tcpEnable为true,发送控制指令, tcpEnable为false则不发送控制指令(必填)
context为结果类实例(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
PPMU指令
Testrong ATE_Tester PPMU 模块根据site force操作
PPMU site数组(必填)
PPMU模块支持的mode:只能选择FIMV,FVMI,FVMV,FZMV,FZMI(必填)
PPMU模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过12V(必填)
PPMU模块支持的range(电流驱动强度挡位):_5uA,_20uA,_200uA,_2mA,_60mA(必填)
tcpEnable为true,发送控制指令, tcpEnable为false则不发送控制指令(必填)
context为结果类实例(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
PPMU指令
Testrong ATE_Tester PPMU 模块根据脚名 force操作
PPMU 脚名数组(必填)
PPMU模块支持的mode:只能选择FIMV,FVMI,FVMV,FZMV,FZMI(必填)
PPMU模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过12V(必填)
PPMU模块支持的range(电流驱动强度挡位):_5uA,_20uA,_200uA,_2mA,_60mA(必填)
tcpEnable为true,发送控制指令, tcpEnable为false则不发送控制指令(必填)
context为结果类实例(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
PPMU指令
读取PPMU温度
tcpEnable为true,发送控制指令, tcpEnable为false则不发送控制指令(必填)
context为结果类实例(必填)
Testrong ATE_Tester PPMU模块设置PPMU钳位
PPMU模块钳位电压或电流模式:ClampHighVoltage,ClampHighCurrent,ClampLowVoltage,ClampLowCurrent(必填)
PPMU模块钳位电压或电流的值(必填)
tcpEnable为true,发送dps控制指令, tcpEnable为false则不发送控制指令(必填)
context为结果类实例(必填)
PPMU钳位指令
Testrong ATE_Tester PPMU 模块全部PPMU通道force操作(0-5V高精度电压force)
PPMU模块支持的mode:只能选择FIMV_all,FVMV_all(必填)
PPMU模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过12V(必填)
PPMU模块支持的range(电流驱动强度挡位):_5uA,_20uA,_200uA,_2mA,_60mA(必填)
电压挡位(必填)
tcpEnable为true,发送控制指令, tcpEnable为false则不发送控制指令(必填)
context为结果类实例(必填)
true为补偿电压,false不补偿电压
PPMU指令
Testrong ATE_Tester PPMU 模块根据脚名 force操作(0-5V高精度电压force)
PPMU 脚名数组(必填)
PPMU模块支持的mode:只能选择FIMV,FVMV,FZMV(必填)
PPMU模块电压电流值,单位默认为"A"或"V",其他单位需要转换为"A"或"V",force值最大电压值不能超过12V(必填)
PPMU模块支持的range(电流驱动强度挡位):_5uA,_20uA,_200uA,_2mA,_60mA(必填)
电压挡位(必填)
tcpEnable为true,发送控制指令, tcpEnable为false则不发送控制指令(必填)
context为结果类实例(必填)
true为补偿电压,false不补偿电压
重复次数
delay时间(ns)=delayNanoSec*80(ns)
偏移值
PPMU指令
读取Arm固件版本号
tcp实例必填)
tcpEnable为true,发送dps控制指令, tcpEnable为false则不发送控制指令(必填)
读取CPLD固件版本号
tcp实例必填)
tcpEnable为true,发送dps控制指令, tcpEnable为false则不发送控制指令(必填)
Testrong ATE_Tester Relay 模块 设置所有Relay切换
tcpEnable为true,发送dps控制指令, tcpEnable为false则不发送控制指令(必填)
实例(必填)
所有relay 统一切换到指定状态指令
Testrong ATE_Tester Relay模块根据通道设置对应relay切换到不同状态
需要切换到ppmu端的IO通道数组(必填)
需要切换到fpga端的IO通道数组(必填)
tcpEnable为true,发送dps控制指令, tcpEnable为false则不发送控制指令(必填)
实例(必填)
指定Relay切换到指定状态指令
Testrong ATE_Tester Relay模块根据通道设置对应Relay切换到不同状态
需要切换到ppmu端的IO通道名称数组(必填)
需要切换到fpga端的IO通道名称数组(必填)
tcpEnable为true,发送dps控制指令, tcpEnable为false则不发送控制指令(必填)
实例(必填)
指定Relay切换到指定状态指令
将不同的通道切到不同的状态
脚名(必填)
relay的状态(必填)
tcpEnable为true,发送dps控制指令, tcpEnable为false则不发送控制指令(必填)
实例(必填)
将不同的通道切到不同的状态
切到ppmu的通道(必填)
切到fpga的通道(必填)
tcpEnable为true,发送dps控制指令, tcpEnable为false则不发送控制指令(必填)
实例(必填)
trim修改(某个channel)driver单列
pattern文件名称(无后缀)(必填)
脚名(必填)
map中对应的site(必填)
pattern文件中提示的行号(注:修改pattern文件后一定要check)(必填)
numberLine(clk/reg)对应要修改的十进制值(必填)
结果对象(必填)
send trim后修改行的内容
pattern文件名称(无后缀)(必填)
pattern文件中提示的行号(注:修改pattern文件后一定要check)(必填)
结果对象(必填)
启动(onor/ram)pattern
pattern文件名称(无文件后缀)
结果对象
ExecutionTime(ms)
K7 Channels 转换
K7 Channels 转换
K7 Channels 转换
Testrong ATE_Tester Channel 模块获取dps通道信息操作
map需要查找的dps通道数组(必填)
cpNumber为t对应的slotnumber(必填)
在对应slot中dps通道的物理通道编号数组
计算回读频率
计算回读频率
计算回读频率
Convert To Double
计算DPS连续回读值
计算温度公式方法
获取计算温度
获取计算温度
获取DPS温度字符串
获取PPMU温度字符串