Test updates

* Modifying one test, so it is easier to port to smart device propagation later.
* Including a first test for smart device propagation (proves that cheat is
  no longer required)
This commit is contained in:
Matthias Koefferlein 2024-07-14 23:41:22 +02:00
parent eacc19b18a
commit 8d30b606e7
3 changed files with 34 additions and 7 deletions

View File

@ -179,15 +179,23 @@ TEST(22a_SP6TArray2X4)
{
run_test (_this, "SP6TArray_2X4.lvs", "test_22a.cir", "SP6TArray_2X4.gds", false, "test_22a.lvsdb", "$test22_texts = false\n$test22_deep = false");
}
TEST(22b_SP6TArray2X4)
{
run_test (_this, "SP6TArray_2X4.lvs", "test_22b.cir", "SP6TArray_2X4.gds", false, "test_22b.lvsdb", "$test22_texts = true\n$test22_deep = false");
}
TEST(22c_SP6TArray2X4)
{
run_test (_this, "SP6TArray_2X4.lvs", "test_22c.cir", "SP6TArray_2X4.gds", false, "test_22c.lvsdb", "$test22_texts = false\n$test22_deep = true");
}
TEST(22d_SP6TArray2X4)
{
run_test (_this, "SP6TArray_2X4.lvs", "test_22d.cir", "SP6TArray_2X4.gds", false, "test_22d.lvsdb", "$test22_texts = true\n$test22_deep = true");
}
TEST(22e_SP6TArray2X4)
{
run_test (_this, "SP6TArray_2X4.lvs", "test_22d.cir", "SP6TArray_2X4.gds", false, "test_22d.lvsdb", "$test22_texts = true\n$test22_deep = true\n$test22_nocheat = true");
}

View File

@ -12,6 +12,8 @@ else
flat
end
nocheat = !!$test22_nocheat
# Define layers
nwm = input(64, 20)
nsdm = input(93, 44)
@ -161,10 +163,18 @@ extract_devices(diode("sky130_fd_pr__diode_pd2nw_05v5"), {
# Transistors
# nfet_01v8
cheat("SP6TCell") do
extract_devices(mos4("sky130_fd_pr__nfet_01v8__model"), {
dex = mos4("sky130_fd_pr__nfet_01v8__model")
dex.smart_device_propagation = nocheat
if nocheat
extract_devices(dex, {
"SD" => difftap__conn, "G" => gate__mosfet__nfet_01v8, "tG" => poly__conn, "W" => substrate__Sky130,
})
})
else
cheat("SP6TCell") do
extract_devices(dex, {
"SD" => difftap__conn, "G" => gate__mosfet__nfet_01v8, "tG" => poly__conn, "W" => substrate__Sky130,
})
end
end
# nfet_01v8_lvt
@ -176,10 +186,18 @@ extract_devices(mos4("sky130_fd_pr__nfet_g5v0d10v5__model"), {
"SD" => difftap__conn, "G" => gate__mosfet__nfet_g5v0d10v5, "tG" => poly__conn, "W" => substrate__Sky130,
})
# pfet_01v8
cheat("SP6TCell") do
extract_devices(mos4("sky130_fd_pr__pfet_01v8__model"), {
"SD" => difftap__conn, "G" => gate__mosfet__pfet_01v8, "tG" => poly__conn, "W" => nwm,
})
dex = mos4("sky130_fd_pr__pfet_01v8__model")
dex.smart_device_propagation = nocheat
if nocheat
extract_devices(dex, {
"SD" => difftap__conn, "G" => gate__mosfet__pfet_01v8, "tG" => poly__conn, "W" => nwm,
})
else
cheat("SP6TCell") do
extract_devices(dex, {
"SD" => difftap__conn, "G" => gate__mosfet__pfet_01v8, "tG" => poly__conn, "W" => nwm,
})
end
end
# pfet_01v8_hvt

View File

@ -69,6 +69,7 @@ connect_global(ptie, "SUBSTRATE")
# Compare section
netlist.simplify
align
compare