Skip to content

Power Domain Spec Limits and guardbands, Need to close on implementation for ATE levels generator #165

@info-rchitect

Description

@info-rchitect

Hi,

We are trying to create an ATE levels generator and the remainign gap is how to handle power domains spec limits and guardbands. Currently the power domain model has a nominal voltage and a maximum voltage rating attribute, but no min and max limits. I thought of 2 ways to implement:

  1. Create DUT level specs with the same name as the power domains. The feedback I got was that users did not want to declare very similar power domain information in 2 places. They want it as one-stop-shop.

  2. Create min and max specs within the power domain model. Users did not like having different means to access min/max vs nom.

dut.power_domains(:vdd).specs(:vdd).min
dut.power_domains(:vdd).specs(:vdd).max
dut.power_domains(:vdd).nominal_voltage
dut.power_domains(:vdd).maximum_voltage_rating

My first thought is to proceed with #2 but use some min/max methods to retrieve the specs for the user such that:

dut.power_domains(:vdd).specs(:vdd).min == dut.power_domains(:vdd).min

Please weigh in on this item.

The second item is how best to implement te actual programmed values versus spec. We are using the Origen::Parameters module to store our power domain settings.

module PPEKit
  class Product
    def define_levels_params
      define_params :pnom do |p|
        p.vddno1.oper1 = 0.9
        p.vddno1.oper2 = 0.9
        p.vddno1.oper3 = 0.9
        p.vddno2.oper1 = 0.9
        p.vddno2.oper2 = 0.9
        p.vddno2.oper3 = 0.9
        p.vddno3.oper1 = 0.9
        p.vddno3.oper2 = 0.9
        p.vddno3.oper3 = 0.9

We define a bunch of DUT defaults that each test module inherits from, allowing each test module owner to override the default settings as needed, but keeping it very DRY. With the assumption that any levels generator would check whether the programmed value in Origen::Parameters is within the spec and maximum voltage rating when doing the generation. Is that a good programming model? How are other folks handling this issue?

The third issue is guardbands but I think we should wait to discuss this item until the first 2 are reconciled.

thx

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions