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:
-
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.
-
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
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:
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.
Create min and max specs within the power domain model. Users did not like having different means to access min/max vs nom.
My first thought is to proceed with #2 but use some min/max methods to retrieve the specs for the user such that:
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.
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