More options on 'evaluate_nets' expressions, i.e. 'copy'. See documentation for details.

This commit is contained in:
Matthias Koefferlein
2026-01-03 01:21:30 +01:00
parent c0059959b8
commit 407bbbcf62
11 changed files with 397 additions and 72 deletions
+28 -9
View File
@@ -17,19 +17,38 @@ connect(l2, l3)
connect(l3, l4)
connect(l4, l5)
l1_measured = evaluate_nets(l1, { "l2" => l2, "l3" => l3, "l4" => l4, "l5" => l5 }, "put(5, area(l5)); put(0, area); put(100, area(l5)/area)")
l2_measured = evaluate_nets(l1, {}, "put(0, area*factor)", { "factor" => 1000.0 })
l3_measured = evaluate_nets(l1, {}, "put(0, net.name)")
l4_measured = evaluate_nets(l1, {}, "skip(net.name == n)", { "n" => "NET1" })
l1.output(1, 0)
l2.output(2, 0)
l3.output(3, 0)
l4.output(4, 0)
l5.output(5, 0)
l1_measured.output(100, 0)
l2_measured.output(101, 0)
l3_measured.output(102, 0)
l4_measured.output(103, 0)
sec = { "l2" => l2, "l3" => l3, "l4" => l4, "l5" => l5 }
l100_measured = evaluate_nets(l1, sec, "put(5, area(l5)); put(0, area); put(100, area(l5)/area)")
l101_measured = evaluate_nets(l1, sec, "put(0, area*factor)", { "factor" => 1000.0 })
l102_measured = evaluate_nets(l1, sec, "put(0, net.name)")
l103_measured = evaluate_nets(l1, sec, "skip(net.name == n)", { "n" => "NET1" })
l104_measured = evaluate_nets(l1, sec, "copy(net.name == n)", { "n" => "NET1" })
# default action is "skip", then copy primary if net name is "NET1"
l105_measured = evaluate_nets(l1, sec, "skip ; net.name == n && copy(layer = 0)", { "n" => "NET1" })
l106_measured = evaluate_nets(l1, sec, "copy(net.name == n, merged = true)", { "n" => "NET1" })
l107_measured = evaluate_nets(l1, sec, "copy(net.name == n, merged = false)", { "n" => "NET1" })
l108_measured = evaluate_nets(l1, sec, "copy(net.name == n, merged = false, layers = [l4, l5])", { "n" => "NET1" })
l109_measured = evaluate_nets(l1, sec, "copy(net.name == n, merged = false, layer = l5)", { "n" => "NET1" })
l110_measured = evaluate_nets(l1, sec, "copy(net.name == n, merged = false, limit = 0)", { "n" => "NET1" })
# default action is "skip", then copy all if net name is "NET1"
l111_measured = evaluate_nets(l1, sec, "skip ; net.name == n && copy", { "n" => "NET1" })
l100_measured.output(100, 0)
l101_measured.output(101, 0)
l102_measured.output(102, 0)
l103_measured.output(103, 0)
l104_measured.output(104, 0)
l105_measured.output(105, 0)
l106_measured.output(106, 0)
l107_measured.output(107, 0)
l108_measured.output(108, 0)
l109_measured.output(109, 0)
l110_measured.output(110, 0)
l111_measured.output(111, 0)
Binary file not shown.
Binary file not shown.