Skip to content

Commit 758ee45

Browse files
committed
gui: use db getDbuPerMicron
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
1 parent bb0893c commit 758ee45

4 files changed

Lines changed: 29 additions & 27 deletions

File tree

src/gui/src/gui.cpp

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -764,27 +764,22 @@ void Gui::saveImage(const std::string& filename,
764764
if (chip == nullptr) {
765765
logger_->error(utl::GUI, 64, "No design loaded.");
766766
}
767-
767+
save_region = chip->getBBox();
768768
auto* block = chip->getBlock();
769-
if (block == nullptr) {
770-
logger_->error(utl::GUI, 65, "No design loaded.");
769+
770+
if (block != nullptr) {
771+
save_region = block->getBBox()->getBox();
771772
}
772773

773-
save_region
774-
= block->getBBox()
775-
->getBox(); // get die area since screen area is not reliable
774+
// get die area since screen area is not reliable
776775
const double bloat_by = 0.05; // 5%
777776
const int bloat = std::min(save_region.dx(), save_region.dy()) * bloat_by;
778777

779778
save_region.bloat(bloat, save_region);
780779
}
781780

782781
if (!enabled()) {
783-
auto* tech = db_->getTech();
784-
if (tech == nullptr) {
785-
logger_->error(utl::GUI, 16, "No design loaded.");
786-
}
787-
const double dbu_per_micron = tech->getDbUnitsPerMicron();
782+
const double dbu_per_micron = db_->getDbuPerMicron();
788783

789784
std::string save_cmds;
790785

src/gui/src/gui.i

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,16 @@ odb::dbBlock* get_block()
4747
// converts from microns to DBU
4848
odb::Rect make_rect(double xlo, double ylo, double xhi, double yhi)
4949
{
50-
auto block = get_block();
51-
int dbuPerUU = block->getDbUnitsPerMicron();
50+
auto db = ord::OpenRoad::openRoad()->getDb();
51+
int dbuPerUU = db->getDbuPerMicron();
5252
return odb::Rect(xlo * dbuPerUU, ylo * dbuPerUU, xhi * dbuPerUU, yhi * dbuPerUU);
5353
}
5454

5555
// converts from microns to DBU
5656
odb::Point make_point(double x, double y)
5757
{
58-
auto block = get_block();
59-
int dbuPerUU = block->getDbUnitsPerMicron();
58+
auto db = ord::OpenRoad::openRoad()->getDb();
59+
int dbuPerUU = db->getDbuPerMicron();
6060
return odb::Point(x * dbuPerUU, y * dbuPerUU);
6161
}
6262

src/gui/src/gui.tcl

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,11 @@ proc save_image { args } {
9696
set resolution 0
9797
if { [info exists keys(-resolution)] } {
9898
sta::check_positive_float "-resolution" $keys(-resolution)
99-
set tech [ord::get_db_tech]
100-
if { $tech == "NULL" } {
101-
utl::error GUI 17 "No technology loaded."
102-
}
103-
set resolution [expr $keys(-resolution) * [$tech getDbUnitsPerMicron]]
99+
set db [ord::get_db]
100+
set resolution [expr $keys(-resolution) * [$db getDbuPerMicron]]
104101
if { $resolution < 1 } {
105102
set resolution 1.0
106-
set res_per_pixel [expr $resolution / [$tech getDbUnitsPerMicron]]
103+
set res_per_pixel [expr $resolution / [$db getDbuPerMicron]]
107104
utl::warn GUI 31 "Resolution too high for design, defaulting to ${res_per_pixel}um per pixel"
108105
}
109106
}
@@ -153,14 +150,11 @@ proc save_animated_gif { args } {
153150
set resolution 0
154151
if { [info exists keys(-resolution)] } {
155152
sta::check_positive_float "-resolution" $keys(-resolution)
156-
set tech [ord::get_db_tech]
157-
if { $tech == "NULL" } {
158-
utl::error GUI 52 "No technology loaded."
159-
}
160-
set resolution [expr $keys(-resolution) * [$tech getDbUnitsPerMicron]]
153+
set db [ord::get_db]
154+
set resolution [expr $keys(-resolution) * [$db getDbuPerMicron]]
161155
if { $resolution < 1 } {
162156
set resolution 1.0
163-
set res_per_pixel [expr $resolution / [$tech getDbUnitsPerMicron]]
157+
set res_per_pixel [expr $resolution / [$db getDbuPerMicron]]
164158
utl::warn GUI 55 "Resolution too high for design, defaulting to ${res_per_pixel}um per pixel"
165159
}
166160
}

src/odb/src/db/dbMarker.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,19 @@ std::string dbMarker::getName() const
634634
case dbChipInstObj:
635635
sources += static_cast<dbChipInst*>(src)->getName();
636636
break;
637+
case dbChipConnObj: {
638+
const dbChipConn* conn = static_cast<dbChipConn*>(src);
639+
sources += fmt::format(
640+
"{}:{}", conn->getParentChip()->getName(), conn->getName());
641+
break;
642+
}
643+
case dbChipRegionInstObj: {
644+
const dbChipRegionInst* region = static_cast<dbChipRegionInst*>(src);
645+
sources += fmt::format("{}.regions.{}",
646+
region->getChipInst()->getName(),
647+
region->getChipRegion()->getName());
648+
break;
649+
}
637650
default:
638651
obj->getLogger()->error(
639652
utl::ODB, 290, "Unsupported object type: {}", src->getTypeName());

0 commit comments

Comments
 (0)