Now we will run a die loss cutback analysis on the die data we uploaded earlier.
As before, make sure you have the following environment variables set or added to a .env
file:
GDSFACTORY_HUB_API_URL="https://{org}.gdsfactoryhub.com"
GDSFACTORY_HUB_QUERY_URL="https://query.{org}.gdsfactoryhub.com"
GDSFACTORY_HUB_KEY="<your-gdsfactoryplus-api-key>"
project_id = f"spirals-{getpass.getuser()}"
client = gfh.create_client_from_env(project_id=project_id)
api = client.api()
query = client.query()
Lets Define the Upper and Lower Spec limits for Known Good Die (KGD).
For example:
waveguide width (nm) | Lower Spec Limit (dB/cm) | Upper Spec limit (dB/cm) |
---|---|---|
300 | 0 | 3.13 |
500 | 0 | 2.31 |
800 | 0 | 1.09 |
As for waveguide loss you can define no minimum loss (0 dB/cm) and you only define the maximum accepted loss (Upper Spec Limit)
Lets find a wafer pkey for this project, so that we can trigger the wafer analysis on it.
from gdsfactoryhub.functions.wafer import aggregate_die_analyses
aggregate_die_analyses.run(
wafer_pkey=wafer_pkeys[0],
die_function_id="propagation-loss",
output_key="propagation_loss",
min_output=0.084,
max_output=0.09,
)
with gfh.suppress_api_error():
api.upload_function(
function_id="aggregate_die_analyses",
target_model="wafer",
file=gfh.get_module_path(aggregate_die_analyses),
)
task_ids = []
for wafer_pkey in tqdm(wafer_pkeys):
task_id = api.start_analysis(
analysis_id="wafer_propagation_loss",
function_id="aggregate_die_analyses",
target_model="wafer",
target_model_pk=wafer_pkey,
kwargs={
"wafer_pkey": wafer_pkeys[0],
"die_function_id": "propagation-loss",
"output_key": "propagation_loss",
"min_output": 0.084,
"max_output": 0.09,
},
)
task_ids.append(task_id)