Skip to content

Commit d9c2f34

Browse files
committed
Merge remote-tracking branch 'origin/master' into pad-check-better
2 parents ebaaac6 + b47291e commit d9c2f34

3 files changed

Lines changed: 92 additions & 1 deletion

File tree

src/odb/src/db/dbDatabase.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,17 @@ dbIStream& operator>>(dbIStream& stream, _dbDatabase& obj)
280280
stream >> *obj.chip_net_tbl_;
281281
}
282282
if (obj.isSchema(db_schema_dbu_per_micron)) {
283-
stream >> obj.dbu_per_micron_;
283+
if (obj.isLessThanSchema(db_schema_remove_dbu_per_micron)) {
284+
// Should already have a value from dbTech, so only need to update this if
285+
// its been set.
286+
uint dbu_per_micron;
287+
stream >> dbu_per_micron;
288+
if (dbu_per_micron != 0) {
289+
obj.dbu_per_micron_ = dbu_per_micron;
290+
}
291+
} else {
292+
stream >> obj.dbu_per_micron_;
293+
}
284294
}
285295
// Set the _tech on the block & libs now they are loaded
286296
if (!obj.isSchema(db_schema_block_tech)) {

test/orfs/mock-array/mock-array.bzl

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,10 @@ POWER_TESTS = [
224224
"path_groups",
225225
]
226226

227+
ELEMENT_POWER_TESTS = [
228+
"power_modules",
229+
]
230+
227231
def mock_array(name, config):
228232
"""Defines the mock array build targets for OpenROAD-flow-scripts.
229233
@@ -510,3 +514,62 @@ def mock_array(name, config):
510514
),
511515
],
512516
)
517+
518+
for power_test in ELEMENT_POWER_TESTS:
519+
if v != "base":
520+
continue
521+
for stage in POWER_STAGES:
522+
orfs_run(
523+
name = "Element_{variant}_{stage}_{power_test}".format(
524+
variant = variant,
525+
power_test = power_test,
526+
stage = stage,
527+
),
528+
src = ":Element_{variant}_{stage}".format(variant = variant, stage = stage),
529+
outs = [
530+
"{variant}_{power_test}_{stage}.txt".format(
531+
variant = variant,
532+
power_test = power_test,
533+
stage = stage,
534+
),
535+
],
536+
arguments = {
537+
"OUTPUT": "$(location :{variant}_{power_test}_{stage}.txt)".format(
538+
variant = variant,
539+
power_test = power_test,
540+
stage = stage,
541+
),
542+
"POWER_STAGE_NAME": stage,
543+
"POWER_STAGE_STEM": POWER_STAGE_STEM[stage],
544+
"VCD_STIMULI": "$(location :vcd_{variant}_{stage})".format(variant = variant, stage = stage),
545+
},
546+
data = [
547+
":vcd_{variant}_{stage}".format(variant = variant, stage = stage),
548+
],
549+
script = ":{power_test}.tcl".format(power_test = power_test),
550+
tags = ["manual"],
551+
visibility = ["//visibility:public"],
552+
)
553+
554+
sh_test(
555+
name = "Element_{variant}_{power_test}_{stage}_test".format(
556+
variant = variant,
557+
power_test = power_test,
558+
stage = stage,
559+
),
560+
srcs = ["ok.sh"],
561+
args = [
562+
"$(location :Element_{variant}_{stage}_{power_test})".format(
563+
variant = variant,
564+
stage = stage,
565+
power_test = power_test,
566+
),
567+
],
568+
data = [
569+
":Element_{variant}_{stage}_{power_test}".format(
570+
variant = variant,
571+
power_test = power_test,
572+
stage = stage,
573+
),
574+
],
575+
)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
source $::env(SCRIPTS_DIR)/load.tcl
2+
load_design $::env(POWER_STAGE_STEM).odb $::env(POWER_STAGE_STEM).sdc
3+
4+
log_cmd report_power
5+
6+
# FIXME add check that all pins are annotated and that parasitics are
7+
# estimated or read from SPEF
8+
9+
set instances {io_outs_down_mult io_outs_left_mult io_outs_up_mult io_outs_right_mult}
10+
report_power -instances $instances
11+
12+
# FIXME
13+
# log_cmd report_parasitic_annotation
14+
#log_cmd report_activity_annotation -report_unannotated
15+
16+
set f [open $::env(OUTPUT) w]
17+
puts $f OK
18+
close $f

0 commit comments

Comments
 (0)