rchitect-of-info
rchitect-of-info

Reputation: 1586

Setting the current test insertion within the DUT model

We have evolved our Origen usage such that we have a params file and a flow file for each test module (scan, mbist, etc.). We are now at the point where we need to take into account the test insertion when handling the DUT model and the test flow generation. I can see here that using a job flag is the preferred method for specifying test insertion specifics into the flow file. And this video shows how to specify a test insertion when simulating the test flow. My question is how can a test insertion be specified when not generating a flow, only loading params files into the DUT model? Take this parameter set that defines some test conditions for a scan/ATPG test module.

  scan.define_params :test_flows do |p|
    p.flows.ws1.chain = [:vmin, :vmax]
    p.flows.ft1.chain = [:vmin, :vmax]
    p.flows.ws1.logic = [:vmin, :vmax]
    p.flows.ft1.logic = [:vmin]
    p.flows.ws1.delay = [:pmax]
    p.flows.ft1.delay = [:pmin]
  end

You can see in the parameter set hierarchy that there are two test insertions defined: 'ws1' and 'ft1'. Am I right to assume that the --job option only sets a flag somewhere when used with the origen testers:run command? Or can this option be applied to origen i, such that just loading some parameter sets will have access to the job selected?

thx

Upvotes: 0

Views: 62

Answers (1)

Ginty
Ginty

Reputation: 3501

There's no built-in way to do what you want here, but given that you are using parameters in this example the way I would do it would be to align your parameter contexts to the job name:

scan.define_params :ws1 do |p|
  p.flows.chain = [:vmin, :vmax]
  p.flows.logic = [:vmin, :vmax]
  p.flows.delay = [:pmax]
end

scan.define_params :ft1 do |p|
  p.flows.chain = [:vmin, :vmax]
  p.flows.logic = [:vmin]
  p.flows.delay = [:pmin]
end

There are various ways to actually set the current context, one way would be to have a target setup per job:

# target/ws1.rb
MyDUT.new
dut.params = :ws1

# target/ft1.rb
MyDUT.new
dut.params = :ft1

Here it is assuming that the scan object is configured to track the context of the top-level DUT - http://origen-sdk.org/origen//guides/models/parameters/#Tracking_the_Context_of_Another_Object

Upvotes: 1

Related Questions