update(examples): pllld_wait_scan

- also, it was formatted
This commit is contained in:
Wataru Otsubo 2024-12-19 17:47:48 +09:00
parent b89f0e595b
commit c8e2ff356b

View file

@ -10,15 +10,15 @@ begin
Pkg.activate(".")
using PSBoardDataBase
using DataFrames
using DataFrames
using CairoMakie
using FHist
using LinearAlgebra
using Printf
using Measurements
using Unitful
using Statistics
using Missings
using Measurements
using Unitful
using Statistics
using Missings
using PlutoUI
end
@ -29,15 +29,50 @@ md"""
# ╔═╡ 8c8f15fb-508f-4068-8fc0-d6ad5905891d
df_psboards = DataFrame(
position = ["B-$(i)-$(j)" for j in 1:9 for i in 0:1],
psbid = [001142, 000973, 000990, 000992, 001113, 001030, 001121, 001141, 001050, 001053, 001110, 001248, 001242, 001276, 000872, 000861, 000525, 000862]
position = ["B-$(i)-$(j)" for j in 1:9 for i in 0:1],
psbid = [
001142,
000973,
000990,
000992,
001113,
001030,
001121,
001141,
001050,
001053,
001110,
001248,
001242,
001276,
000872,
000861,
000525,
000862,
],
)
# ╔═╡ 4ebadb4f-ba6f-412e-9def-450ca9d3f6b8
df_setups = DataFrame(
runid = [384, 386, 388, 389, 390, 391, 393, 396, 397, 398, 400, 401],
firmware = [fill("PS_firmware_top_2024_11_27.zip", 6); fill("PS_firmware_top_CPdrivability_2b00.zip", 6);],
wait_length = [missing, 100u"ns", 1u"μs", 10u"μs", 100u"μs", 1u"ms", 1u"ms", 100u"ns", 10u"μs", 1u"μs", 100u"μs", 100u"μs"],
runid = [384, 386, 388, 389, 390, 391, 393, 396, 397, 398, 400, 401],
firmware = [
fill("PS_firmware_top_2024_11_27.zip", 6)
fill("PS_firmware_top_CPdrivability_2b00.zip", 6)
],
wait_length = [
missing,
100u"ns",
1u"μs",
10u"μs",
100u"μs",
1u"ms",
1u"ms",
100u"ns",
10u"μs",
1u"μs",
100u"μs",
100u"μs",
],
)
# ╔═╡ 8ae734be-7a93-4257-ad2a-02cdee82066a
@ -45,92 +80,144 @@ df_configs = crossjoin(df_setups, df_psboards)
# ╔═╡ d6da8dca-e7f0-4f9e-88dd-53e91c8c55ad
function get_pllld_counter_hist(slaveresult)
h1 = Hist1D(; binedges = 1:1:11)
for asdtp_result in slaveresult.asdtp
push!(h1, asdtp_result.pllld_fail_counter + 1)
end
return h1
h1 = Hist1D(; binedges = 1:1:11)
for asdtp_result in slaveresult.asdtp
push!(h1, asdtp_result.pllld_fail_counter + 1)
end
return h1
end
# ╔═╡ bc78bf6e-2d1f-4922-8b9e-48aaf1e8b0af
df_pllld_fail_counts = transform(df_configs, [:runid, :psbid] => ByRow((runid, psbid) -> begin
slavelog = "../test/input/slavelogs/main/$(psbid)_$(runid)_longrun.txt"
if !ispath(slavelog)
@info "file $(slavelog) not found"
return missing
end
slaveresult = PSBoardDataBase.SlaveLogParser.parse_slavelog_file(slavelog)
# @info "" slaveresult
h_pllld_fail_count = get_pllld_counter_hist(slaveresult)
h_pllld_fail_count
end) => :pllld_count)
df_pllld_fail_counts = transform(
df_configs,
[:runid, :psbid] =>
ByRow(
(runid, psbid) -> begin
slavelog = "../test/input/slavelogs/main/$(psbid)_$(runid)_longrun.txt"
if !ispath(slavelog)
@info "file $(slavelog) not found"
return missing
end
slaveresult =
PSBoardDataBase.SlaveLogParser.parse_slavelog_file(slavelog)
# @info "" slaveresult
h_pllld_fail_count = get_pllld_counter_hist(slaveresult)
h_pllld_fail_count
end,
) => :pllld_count,
)
# ╔═╡ 6100e4a6-30ed-4540-9e8d-0171272e41e9
let df
df = filter([:firmware, :wait_length] => ((firmware, wait_length) -> begin
firmware == "PS_firmware_top_2024_11_27.zip" && ismissing(wait_length)
end), df_pllld_fail_counts)
@info "" nrow(df) nrow(df) == 18 * 1
df = filter(
[:firmware, :wait_length] => (
(firmware, wait_length) -> begin
firmware == "PS_firmware_top_2024_11_27.zip" && ismissing(wait_length)
end
),
df_pllld_fail_counts,
)
@info "" nrow(df) nrow(df) == 18 * 1
combine(groupby(df, :wait_length), :pllld_count => sum)
combine(groupby(df, :wait_length), :pllld_count => sum)
end
# ╔═╡ 0100a27a-70a3-4d1d-916e-00be7b436f7e
let df
fig = Figure()
ax = Axis(fig[1, 1], xlabel = "number of reset", title = "same setup as 6th QAQC")
df = filter([:firmware, :wait_length] => ((firmware, wait_length) -> begin
firmware == "PS_firmware_top_2024_11_27.zip" && ismissing(wait_length)
end), df_pllld_fail_counts)
fig = Figure()
ax = Axis(fig[1, 1], xlabel = "number of reset", title = "same setup as 6th QAQC")
normhist = normalize(sum(df.pllld_count))
stephist!(ax, normhist)
errorbars!(ax, normhist)
df = filter(
[:firmware, :wait_length] => (
(firmware, wait_length) -> begin
firmware == "PS_firmware_top_2024_11_27.zip" && ismissing(wait_length)
end
),
df_pllld_fail_counts,
)
fig
normhist = normalize(sum(df.pllld_count))
stephist!(ax, normhist)
errorbars!(ax, normhist)
fig
end
# ╔═╡ d1be7028-6c2d-40bc-8a76-352d59d1f91a
let df
df = filter([:firmware, :wait_length] => ((firmware, wait_length) -> begin
firmware == "PS_firmware_top_2024_11_27.zip" && !ismissing(wait_length)
end), df_pllld_fail_counts)
@info "" nrow(df) nrow(df) == 18 * 5
df = filter(
[:firmware, :wait_length] => (
(firmware, wait_length) -> begin
firmware == "PS_firmware_top_2024_11_27.zip" && !ismissing(wait_length)
end
),
df_pllld_fail_counts,
)
@info "" nrow(df) nrow(df) == 18 * 5
df_summarized = combine(groupby(df, :wait_length), :pllld_count => sum)
df_summarized = combine(groupby(df, :wait_length), :pllld_count => sum)
fig = Figure(size = (600, 1000))
Label(fig[0, 1], "normal firmware, softreset software for scanning", tellwidth = false)
for (i, row) in enumerate(eachrow(df_summarized))
ax = Axis(fig[i, 1], yscale = log10, xlabel = "number of resets", ylabel = "fraction", title = "$(row.wait_length)")
normhist = normalize(row.pllld_count_sum)
stephist!(ax, normhist)
errorbars!(ax, normhist)
end
fig
fig = Figure(size = (600, 1000))
Label(fig[0, 1], "normal firmware, softreset software for scanning", tellwidth = false)
for (i, row) in enumerate(eachrow(df_summarized))
ax = Axis(
fig[i, 1],
yscale = log10,
xlabel = "number of resets",
ylabel = "fraction",
title = "$(row.wait_length)",
limits = ((1, 11), (eps(), 100)),
)
normhist = normalize(row.pllld_count_sum)
stephist!(ax, normhist)
errorbars!(ax, normhist)
text!(
ax,
bincenters(normhist),
bincounts(normhist),
text = [@sprintf "%.4f" r for r in bincounts(normhist)],
)
end
fig
end
# ╔═╡ ae97c43d-34dd-4aad-8cf5-7158b717e5c1
let df
df = filter([:firmware, :wait_length] => ((firmware, wait_length) -> begin
firmware == "PS_firmware_top_CPdrivability_2b00.zip"
end), df_pllld_fail_counts)
dropmissing!(df, :pllld_count)
@info "" nrow(df) nrow(df) == 18 * 6
df = filter(
[:firmware, :wait_length] => (
(firmware, wait_length) -> begin
firmware == "PS_firmware_top_CPdrivability_2b00.zip"
end
),
df_pllld_fail_counts,
)
dropmissing!(df, :pllld_count)
@info "" nrow(df) nrow(df) == 18 * 6
df_summarized = combine(groupby(df, :wait_length), :pllld_count => sum)
df_summarized = combine(groupby(df, :wait_length, sort = true), :pllld_count => sum)
fig = Figure(size = (600, 1000))
Label(fig[0, 1], "minimum charge pump bias current", tellwidth = false)
for (i, row) in enumerate(eachrow(df_summarized))
ax = Axis(fig[i, 1])
normhist = normalize(row.pllld_count_sum)
stephist!(ax, normhist)
errorbars!(ax, normhist)
end
fig
fig = Figure(size = (600, 1000))
Label(fig[0, 1], "minimum charge pump bias current", tellwidth = false)
for (i, row) in enumerate(eachrow(df_summarized))
ax = Axis(
fig[i, 1],
yscale = log10,
xlabel = "number of resets",
ylabel = "fraction",
title = "$(row.wait_length)",
limits = ((1, 11), (eps(), 100)),
)
normhist = normalize(row.pllld_count_sum)
stephist!(ax, normhist)
errorbars!(ax, normhist)
text!(
ax,
bincenters(normhist),
bincounts(normhist),
text = [@sprintf "%.4f" r for r in bincounts(normhist)],
)
end
fig
end
# ╔═╡ 6206becc-364c-47b6-bfe3-d295b784cade