rchitect-of-info rchitect-of-info - 3 months ago 20
Ruby Question

origen-sdk: V93k test method param types missing some acceptable values?

When importing test method definitions directly from Verigy I see the following parameter types:

[:string, :ContextPins, :int, :double, :PinString, :SpecValue, :SpecVariable, :OptionList, :long, :bool]


However, the origen-sdk docs show the following types are acceptable:

# The type can be :string, :current, :voltage, :time, :frequency, or :integer


Some of the Verigy types can easily be converted to
:string (:ContextPins, :PinString, :OptionList, :SpecVariable)
and
:int
can be converted to
:integer
, but the remaining types would require evaluating the intent of the parameter itself (i.e. is this
:double value
a
:frequency
or a
:voltage
?). Is there a way around this sort of evaluation? If not, it seems like the following types might be useful:

[:float, :bignum, :bool]

Answer Source

Generally speaking, at the point when we are generating the program, the type of a variable doesn't matter much. In most cases, a variable ends up getting represented as a string in the test flow source file:

tm_10:
  "arg1" = "0";
  "arg2" = "some_pin";
  "arg3" = "1.523"

The test method definition API was originally created to be able to define the built-in AC and DC test method libraries provided by Advantest. Some of the parameters to those methods used units in the test flow file, e.g.

  "arg1" = "0A";
  "arg2" = "some_pin";
  "arg3" = "1.523V"

So the types like :voltage and :current were added to support that. However, I'm not sure if I ever experimented to see if those were really required or not, perhaps they are just thrown away and they are equivalent to Origen's base unit methods: 10.V == 10 # => true.

I would recommend that for now you just chose the :string type for everything and see if it works. If not, you can add additional types here: https://github.com/Origen-SDK/origen_testers/blob/5b89bf287b3d307bd6708c878666f3609a5fd3af/lib/origen_testers/smartest_based_tester/base/test_method.rb#L5 (it looks like we already have :double though it is not mentioned in the docs). Then you can define how the new type(s) should be formatted in the testflow file here: https://github.com/Origen-SDK/origen_testers/blob/5b89bf287b3d307bd6708c878666f3609a5fd3af/lib/origen_testers/smartest_based_tester/base/test_method.rb#L88