Class: OrigenTesters::IGXLBasedTester::UltraFLEX::TestInstance
- Inherits:
-
Base::TestInstance
- Object
- Base::TestInstance
- OrigenTesters::IGXLBasedTester::UltraFLEX::TestInstance
- Defined in:
- lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb
Constant Summary collapse
- TEST_INSTANCE_ATTRS =
Attributes for each test instance line, first few are named directly
%w( test_name proc_type proc_name proc_called_as dc_category dc_selector ac_category ac_selector time_sets edge_sets pin_levels mixedsignal_timing overlay )
- TEST_INSTANCE_EXTRA_ARGS =
Attributes for additional test instance arguments beyond those described above
130
- TEST_INSTANCE_ALIASES =
{ name: :test_name, time_set: :time_sets, timeset: :time_sets, timesets: :time_sets, other: { }, empty: { arg_list: :arg0, start_func: :arg1, start_of_body_f: :arg1, pre_pat_func: :arg2, pre_pat_f: :arg2, pre_test_func: :arg3, pre_test_f: :arg3, post_test_func: :arg4, post_test_f: :arg4, post_pat_func: :arg5, post_pat_f: :arg5, end_func: :arg6, end_of_body_f: :arg6, start_func_args: :arg7, start_of_body_f_args: :arg7, pre_pat_func_args: :arg8, pre_pat_f_args: :arg8, pre_test_func_args: :arg9, pre_test_f_args: :arg9, post_test_func_args: :arg10, post_test_f_args: :arg10, post_pat_func_args: :arg11, post_pat_f_args: :arg11, end_func_args: :arg12, end_of_body_f_args: :arg12, utility_pins_1: :arg13, utility_pins_0: :arg14, init_lo: :arg15, start_lo: :arg15, init_hi: :arg16, start_hi: :arg16, init_hiz: :arg17, start_hiz: :arg17, float_pins: :arg18, disable_pins: :arg19 }, # Functional test instances functional: { arg_list: :arg0, pattern: :arg1, patterns: :arg1, start_func: :arg2, start_of_body_f: :arg2, pre_pat_func: :arg3, pre_pat_f: :arg3, pre_test_func: :arg4, pre_test_f: :arg4, post_test_func: :arg5, post_test_f: :arg5, post_pat_func: :arg6, post_pat_f: :arg6, end_func: :arg7, end_of_body_f: :arg7, set_pass_fail: :arg8, report_result: :arg8, result_mode: :arg9, init_lo: :arg10, start_lo: :arg10, init_hi: :arg11, start_hi: :arg11, init_hiz: :arg12, start_hiz: :arg12, disable_pins: :arg13, float_pins: :arg14, start_func_args: :arg15, start_of_body_f_args: :arg15, pre_pat_func_args: :arg16, pre_pat_f_args: :arg16, pre_test_func_args: :arg17, pre_test_f_args: :arg17, post_test_func_args: :arg18, post_test_f_args: :arg18, post_pat_func_args: :arg19, post_pat_f_args: :arg19, end_func_args: :arg20, end_of_body_f_args: :arg20, utility_pins_1: :arg21, utility_pins_0: :arg22, pat_flag_func: :arg23, pat_flag_f: :arg23, PatFlagF: :arg23, pat_flag_func_args: :arg24, pat_flag_f_args: :arg24, relay_mode: :arg25, threading: :arg26, match_all_sites: :arg27, wait_flag1: :arg28, wait_flag2: :arg29, wait_flag3: :arg30, wait_flag4: :arg31, validating: :arg32, wait_time: :arg33, pattern_timeout: :arg33, wait_time_domain: :arg34, concurrent_mode: :arg35 }, pin_pmu: { arg_list: :arg0, hsp_start: :arg1, start_func: :arg2, start_of_body_f: :arg2, pre_pat_func: :arg3, pre_pat_f: :arg3, pre_test_func: :arg4, pre_test_f: :arg4, post_test_func: :arg5, post_test_f: :arg5, post_pat_func: :arg6, post_pat_f: :arg6, end_func: :arg7, end_of_body_f: :arg7, precond_pat: :arg8, hold_state_pat: :arg9, holdstate_pat: :arg9, pattern: :arg9, pcp_stop: :arg10, start_lo: :arg11, init_lo: :arg11, start_hi: :arg12, init_hi: :arg12, start_hiz: :arg13, init_hiz: :arg13, disable_pins: :arg14, float_pins: :arg15, pinlist: :arg16, pin: :arg16, pin_list: :arg16, measure_mode: :arg17, settling_time: :arg18, force_cond_1: :arg19, force_cond: :arg19, force_condition: :arg19, force_cond_2: :arg20, relay_mode: :arg21, start_func_args: :arg22, start_of_body_f_args: :arg22, pre_pat_func_args: :arg23, pre_pat_f_args: :arg23, pre_test_func_args: :arg24, pre_test_f_args: :arg24, post_test_func_args: :arg25, post_test_f_args: :arg25, post_pat_func_args: :arg26, post_pat_f_args: :arg26, end_func_args: :arg27, end_of_body_f_args: :arg27, pcp_start: :arg28, pcp_check_pg: :arg29, hsp_stop: :arg30, hsp_check_pg: :arg31, sampling_time: :arg32, samples: :arg33, resume_pat: :arg34, vcl: :arg35, vch: :arg36, utility_pins_1: :arg37, utility_pins_0: :arg38, wait_flag1: :arg39, wait_flag2: :arg40, wait_flag3: :arg41, wait_flag4: :arg42, validating: :arg43, force_irange: :arg44, meas_irange: :arg45, wait_time_out: :arg46, pcp_disable_alarm_check: :arg47, hsp_disable_alarm_check: :arg48, testing_in_series: :arg49, background_meas_mode: :arg50, background_force_irange: :arg51, background_meas_irange: :arg52, background_force_cond: :arg53, pins_alt: :arg54, measure_mode_alt: :arg55, force_cond_alt: :arg56, force_irange_alt: :arg57, meas_irange_alt: :arg58 } }
- TEST_INSTANCE_DEFAULTS =
{ empty: { arg_list: 'StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,Util1Pins,Util0Pins,DriveLoPins,DriveHiPins,DriveZPins,FloatPins,DisablePins', proc_type: 'VBT', proc_name: 'Empty_T', proc_called_as: 'Excel Macro' }, other: { proc_type: 'Other', proc_called_as: 'Excel Macro' }, functional: { arg_list: 'Patterns,StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,ReportResult,ResultMode,DriveLoPins,DriveHiPins,DriveZPins,DisablePins,FloatPins,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,Util1Pins,Util0Pins,PatFlagF,PatFlagFArgs,RelayMode,PatThreading,MatchAllSites,WaitFlagA,WaitFlagB,WaitFlagC,WaitFlagD,Validating_,PatternTimeout,WaitTimeDomain,ConcurrentMode', proc_type: 'VBT', proc_name: 'Functional_T', proc_called_as: 'Excel Macro', set_pass_fail: 1, relay_mode: 1, threading: 0, match_all_sites: 0, wait_flag1: -2, # waitoff wait_flag2: -2, # waitoff wait_flag3: -2, # waitoff wait_flag4: -2, # waitoff wait_time: 30 }, pin_pmu: { arg_list: 'HspStartLabel,StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,PreconditionPat,HoldStatePat,PcpStopLabel,DriveLoPins,DriveHiPins,DriveZPins,DisablePins,FloatPins,Pins,MeasureMode,SettlingTime,ForceCond1,ForceCond2,RelayMode,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,PcpStartLabel,PcpCheckPatGen,HspStopLabel,HspCheckPatGen,SamplingTime,SampleCount,HspResumePat,VClampLo,VClampHi,Util1Pins,Util0Pins,WaitFlagA,WaitFlagB,WaitFlagC,WaitFlagD,Validating_,ForceIRange,MeasIRange,PatternTimeout,PcpDisableAlarmCheck,HspDisableAlarmCheck,TestingInSeries,BackgroundMeasureMode,BackgroundForceIRange,BackgroundMeasIRange,BackgroundForceCond,PinsAlt,MeasureModeAlt,ForceCondAlt,ForceIRangeAlt,MeasIRangeAlt', proc_type: 'VBT', proc_name: 'PinPmu_T', proc_called_as: 'Excel Macro', wait_flag1: -2, # waitoff wait_flag2: -2, # waitoff wait_flag3: -2, # waitoff wait_flag4: -2, # waitoff } }
Instance Attribute Summary collapse
-
#defer_limits ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow.
-
#hi ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow.
-
#hi_limit ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow.
-
#lo ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow.
-
#lo_limit ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow.
-
#scale ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow.
-
#units ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow.
Attributes inherited from Base::TestInstance
#append_version, #finalize, #index, #meta, #type, #version
Instance Method Summary collapse
-
#set_measure_mode(mode) ⇒ Object
Set the meaure mode of a parametric test instance, either: * :voltage / :fimv * :current / :fvmi.
-
#set_pre_charge(val) ⇒ Object
(also: #set_precharge)
Set and enable the pre-charge voltage of a parametric test instance.
-
#set_wait_flags(*flags) ⇒ Object
Set the cpu wait flags for the given test instance instance.set_wait_flags(:a) instance.set_wait_flags(:a, :c) assumes set flag means to set it high (waithi = -1 ) assumes clr flag means to set it off (waitoff = -2) does not yet support waitlo = 0.
-
#to_meta ⇒ Object
Returns a hash containing key meta data about the test instance, this is intended to be used in documentation.
Methods inherited from Base::TestInstance
#==, attrs, define, #fimv?, #fvmi?, #initialize, #inspect, #name, #name=, new_apmu_powersupply, new_board_pmu, new_empty, new_functional, new_mto_memory, new_pin_pmu, new_powersupply, #set_hi_limit, #set_irange, #set_lo_limit, #set_vrange, #to_s, #unversioned_name
Constructor Details
This class inherits a constructor from OrigenTesters::IGXLBasedTester::Base::TestInstance
Instance Attribute Details
#defer_limits ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow
15 16 17 |
# File 'lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb', line 15 def defer_limits @defer_limits end |
#hi ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow
15 16 17 |
# File 'lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb', line 15 def hi @hi end |
#hi_limit ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow
15 16 17 |
# File 'lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb', line 15 def hi_limit @hi_limit end |
#lo ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow
15 16 17 |
# File 'lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb', line 15 def lo @lo end |
#lo_limit ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow
15 16 17 |
# File 'lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb', line 15 def lo_limit @lo_limit end |
#scale ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow
15 16 17 |
# File 'lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb', line 15 def scale @scale end |
#units ⇒ Object
Give all UltraFLEX test instances the ability to contain limits, these will be rendered to Use-limit lines in the flow
15 16 17 |
# File 'lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb', line 15 def units @units end |
Instance Method Details
#set_measure_mode(mode) ⇒ Object
Set the meaure mode of a parametric test instance, either:
-
:voltage / :fimv
-
:current / :fvmi
302 303 304 305 306 307 308 309 310 |
# File 'lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb', line 302 def set_measure_mode(mode) if mode == :current || mode == :fvmi self.measure_mode = 2 elsif mode == :voltage || mode == :fimv self.measure_mode = 1 else fail "Unknown measure mode: #{mode}" end end |
#set_pre_charge(val) ⇒ Object Also known as: set_precharge
Set and enable the pre-charge voltage of a parametric test instance.
273 274 275 |
# File 'lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb', line 273 def set_pre_charge(val) self end |
#set_wait_flags(*flags) ⇒ Object
Set the cpu wait flags for the given test instance
instance.set_wait_flags(:a)
instance.set_wait_flags(:a, :c)
assumes set flag means to set it high (waithi = -1 ) assumes clr flag means to set it off (waitoff = -2) does not yet support waitlo = 0
260 261 262 263 264 265 266 267 268 269 270 |
# File 'lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb', line 260 def set_wait_flags(*flags) a = (flags.include?(:a) || flags.include?(:a)) ? '-1' : '-2' b = (flags.include?(:b) || flags.include?(:b)) ? '-1' : '-2' c = (flags.include?(:c) || flags.include?(:c)) ? '-1' : '-2' d = (flags.include?(:d) || flags.include?(:d)) ? '-1' : '-2' self.wait_flag1 = a self.wait_flag2 = b self.wait_flag3 = c self.wait_flag4 = d self end |
#to_meta ⇒ Object
Returns a hash containing key meta data about the test instance, this is intended to be used in documentation
280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 |
# File 'lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb', line 280 def m = { 'Test' => name, 'Type' => type } if type == :functional m['Pattern'] = pattern elsif type == :board_pmu || type == :pin_pmu m['Measure'] = fvmi? ? 'current' : 'voltage' m['Hi'] = hi_limit m['Lo'] = lo_limit if force_cond m['Force'] = force_cond end end m['DC'] = "#{dc_category} (#{dc_selector})" m['AC'] = "#{ac_category} (#{ac_selector})" m.merge(@meta) end |