Skip to content

Commit 5ed62eb

Browse files
Merge remote-tracking branch 'origin/master' into tune_mpl2
Signed-off-by: Ravi Varadarajan <[email protected]>
2 parents 7c8d451 + 44fb309 commit 5ed62eb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+851
-276
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ including:
9393

9494
#### Open-Source PDKs
9595

96+
- `GF180` - 180nm
9697
- `Skywater130` - 130nm
9798
- `Nangate45` - 45nm
9899
- `ASAP7` - Predictive FinFET 7nm
@@ -106,7 +107,6 @@ provided due to NDA restrictions. However, if you are able to access
106107
these platforms independently, you can create the necessary
107108
platform-specific files yourself.
108109

109-
- `GF180` - 180nm
110110
- `GF55` - 55nm
111111
- `GF12` - 12nm
112112
- `Intel22` - 22nm

docs/conf.py

Lines changed: 35 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -94,54 +94,50 @@
9494
html_theme = "sphinx_symbiflow_theme"
9595

9696
html_theme_options = {
97-
# Specify a list of menu in Header.
98-
# Tuples forms:
99-
# ('Name', 'external url or path of pages in the document', boolean, 'icon name')
100-
#
101-
# Third argument:
102-
# True indicates an external link.
103-
# False indicates path of pages in the document.
104-
#
105-
# Fourth argument:
106-
# Specify the icon name.
107-
# For details see link.
108-
# https://material.io/icons/
109-
'header_links': [
110-
('Home', 'index', False, 'home'),
111-
("The OpenROAD Project", "https://theopenroadproject.org", True, 'launch'),
112-
("GitHub", "https://github.com/The-OpenROAD-Project/OpenROAD", True, 'link')
97+
# Repository integration
98+
# Set the repo url for the link to appear
99+
'github_url': 'https://github.com/The-OpenROAD-Project/OpenROAD',
100+
# The name of the repo. If must be set if github_url is set
101+
'repo_name': 'OpenROAD',
102+
# Must be one of github, gitlab or bitbucket
103+
'repo_type': 'github',
104+
105+
# Set the name to appear in the left sidebar/header. If not provided, uses
106+
# html_short_title if defined, or html_title
107+
'nav_title': "OpenROAD",
108+
109+
# A list of dictionaries where each has three keys:
110+
# href: The URL or pagename (str)
111+
# title: The title to appear (str)
112+
# internal: Flag indicating to use pathto (bool)
113+
'nav_links': [
114+
{"title": "Home", "href": "index", "internal": True},
115+
{"title": "The OpenROAD Project", "href": "https://theopenroadproject.org", "internal": False},
113116
],
114117

115118
# Customize css colors.
116119
# For details see link.
117120
# https://getmdl.io/customize/index.html
118121
#
119-
# Values: amber, blue, brown, cyan deep_orange, deep_purple, green, grey, indigo, light_blue,
120-
# light_green, lime, orange, pink, purple, red, teal, yellow(Default: indigo)
121-
'primary_color': 'indigo',
122-
# Values: Same as primary_color. (Default: pink)
123-
'accent_color': 'blue',
124-
125-
# Customize layout.
126-
# For details see link.
127-
# https://getmdl.io/components/index.html#layout-section
128-
'fixed_drawer': True,
129-
'fixed_header': True,
130-
'header_waterfall': True,
131-
'header_scroll': False,
132-
133-
# Render title in header.
134-
# Values: True, False (Default: False)
135-
'show_header_title': False,
136-
# Render title in drawer.
137-
# Values: True, False (Default: True)
138-
'show_drawer_title': True,
139-
# Render footer.
140-
# Values: True, False (Default: True)
141-
'show_footer': True,
122+
# Primary colors:
123+
# red, pink, purple, deep-purple, indigo, blue, light-blue, cyan,
124+
# teal, green, light-green, lime, yellow, amber, orange, deep-orange,
125+
# brown, grey, blue-grey, white
126+
# (Default: deep-purple)
127+
'color_primary': 'indigo',
128+
# Values: Same as color_primary.
129+
#(Default: indigo)
130+
'color_accent': 'blue',
142131

143132
# Hide the symbiflow links
144133
'hide_symbiflow_links': True,
134+
135+
"html_minify": False,
136+
"html_prettify": True,
137+
"css_minify": True,
138+
"globaltoc_depth": 2,
139+
"table_classes": ["plain"],
140+
"master_doc": False,
145141
}
146142

147143
# Add any paths that contain custom static files (such as style sheets) here,

docs/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
git+https://github.com/SymbiFlow/sphinx_materialdesign_theme.git#egg=sphinx-symbiflow-theme
1+
git+https://github.com/f4pga/sphinx_f4pga_theme.git
22
git+https://github.com/executablebooks/sphinx-external-toc
33
sphinx
44
sphinx-autobuild
5-
myst-parser
5+
myst-parser

etc/DependencyInstaller.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,6 @@ EOF
569569
;;
570570
*)
571571
echo "unsupported system: ${os}" >&2
572-
echo "supported systems are CentOS 7 and Ubuntu 20.04" >&2
573572
_help
574573
;;
575574
esac

include/ord/Design.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,10 @@ namespace stt {
109109
class SteinerTreeBuilder;
110110
}
111111

112+
namespace psm {
113+
class PDNSim;
114+
}
115+
112116
namespace ord {
113117

114118
class Tech;
@@ -155,6 +159,7 @@ class Design
155159
rcx::Ext* getOpenRCX();
156160
rmp::Restructure* getRestructure();
157161
stt::SteinerTreeBuilder* getSteinerTreeBuilder();
162+
psm::PDNSim* getPDNSim();
158163

159164
private:
160165
Tech* tech_;

include/ord/OpenRoad.hh

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ namespace sta {
5656
class dbSta;
5757
class dbNetwork;
5858
class Resizer;
59-
class LibertyCell;
6059
} // namespace sta
6160

6261
namespace rsz {
@@ -212,11 +211,6 @@ class OpenRoad
212211
bool includeFillers);
213212

214213
void readVerilog(const char* filename);
215-
// Write a flat verilog netlist for the database.
216-
void writeVerilog(const char* filename,
217-
bool sort,
218-
bool include_pwr_gnd,
219-
std::vector<sta::LibertyCell*>* remove_cells);
220214
void linkDesign(const char* top_cell_name);
221215

222216
// Used if a design is created programmatically rather than loaded

src/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,7 @@ if (Python3_FOUND AND BUILD_PYTHON)
398398
rcx_py
399399
rmp_py
400400
stt_py
401+
psm_py
401402
)
402403
else()
403404
message(STATUS "Python3 disabled")

src/Design.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,4 +234,10 @@ stt::SteinerTreeBuilder* Design::getSteinerTreeBuilder()
234234
return app->getSteinerTreeBuilder();
235235
}
236236

237+
psm::PDNSim* Design::getPDNSim()
238+
{
239+
auto app = OpenRoad::openRoad();
240+
return app->getPDNSim();
241+
}
242+
237243
} // namespace ord

src/Main.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ using std::string;
9797
X(rcx) \
9898
X(rmp) \
9999
X(stt) \
100+
X(psm) \
100101
X(odb)
101102

102103
#define FOREACH_TOOL(X) \

src/Metrics.tcl

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ namespace eval sta {
3737

3838
define_cmd_args "report_clock_skew_metric" {[-setup]|[-hold]}
3939
proc report_clock_skew_metric { args } {
40-
global sta_report_default_digits
4140
parse_key_args "report_clock_skew_metric" args keys {} flags {-setup -hold}
4241

4342
set min_max "-setup"
@@ -54,7 +53,6 @@ proc report_clock_skew_metric { args } {
5453

5554
define_cmd_args "report_tns_metric" {[-setup]|[-hold]}
5655
proc report_tns_metric { args } {
57-
global sta_report_default_digits
5856
parse_key_args "report_tns_metric" args keys {} flags {-setup -hold}
5957

6058
set min_max "max"
@@ -66,7 +64,7 @@ proc report_tns_metric { args } {
6664
utl::error ORD 18 "both -setup and -hold specified."
6765
}
6866

69-
utl::metric_float $metric_name "[format_time [total_negative_slack_cmd $min_max] $sta_report_default_digits]"
67+
utl::metric_float $metric_name [total_negative_slack_cmd $min_max]
7068
}
7169

7270
define_cmd_args "report_worst_slack_metric" {[-setup]|[-hold]}
@@ -83,20 +81,20 @@ proc report_worst_slack_metric { args } {
8381
utl::error ORD 17 "both -steup and -hold specified."
8482
}
8583

86-
utl::metric_float $metric_name "[format_time [worst_slack_cmd $min_max] $sta_report_default_digits]"
84+
utl::metric_float $metric_name [worst_slack_cmd $min_max]
8785
}
8886

8987
define_cmd_args "report_erc_metrics" {}
90-
proc report_erc_metrics { args } {
88+
proc report_erc_metrics { } {
9189

9290
set max_slew_limit [sta::max_slew_check_slack_limit]
9391
set max_cap_limit [sta::max_capacitance_check_slack_limit]
9492
set max_fanout_limit [sta::max_fanout_check_limit]
9593
set max_slew_violation [sta::max_slew_violation_count]
9694
set max_cap_violation [sta::max_capacitance_violation_count]
9795
set max_fanout_violation [sta::max_fanout_violation_count]
98-
set setup_violation [llength [find_timing_paths -path_delay max -slack_max 0]]
99-
set hold_violation [llength [find_timing_paths -path_delay min -slack_max 0]]
96+
set setup_violation [sta::endpoint_violation_count max]
97+
set hold_violation [sta::endpoint_violation_count min]
10098

10199
utl::metric_float "timing__drv__max_slew_limit" $max_slew_limit
102100
utl::metric_int "timing__drv__max_slew" $max_slew_violation
@@ -140,8 +138,10 @@ proc report_units_metric { args } {
140138
define_cmd_args "report_design_area_metrics" {}
141139
proc report_design_area_metrics {args} {
142140
set db [::ord::get_db]
143-
set dbu_per_uu [[$db getTech] getDbUnitsPerMicron]
141+
set dbu_per_uu [expr double([[$db getTech] getDbUnitsPerMicron])]
144142
set block [[$db getChip] getBlock]
143+
set die_bbox [$block getDieArea]
144+
set die_area [expr [$die_bbox dx] * [$die_bbox dy]]
145145
set core_bbox [$block getCoreArea]
146146
set core_area [expr [$core_bbox dx] * [$core_bbox dy]]
147147

@@ -185,6 +185,7 @@ proc report_design_area_metrics {args} {
185185
}
186186
}
187187

188+
set die_area [expr $die_area / [expr $dbu_per_uu * $dbu_per_uu]]
188189
set core_area [expr $core_area / [expr $dbu_per_uu * $dbu_per_uu]]
189190
set total_area [expr $total_area / [expr $dbu_per_uu * $dbu_per_uu]]
190191
set stdcell_area [expr $stdcell_area / [expr $dbu_per_uu * $dbu_per_uu]]
@@ -194,10 +195,21 @@ proc report_design_area_metrics {args} {
194195

195196
set total_active_area [expr $stdcell_area + $macro_area]
196197

197-
set core_util [expr $total_active_area / $core_area]
198-
set stdcell_util [expr $stdcell_area / [expr $core_area - $macro_area]]
198+
if {$core_area > 0} {
199+
set core_util [expr $total_active_area / $core_area]
200+
if {$core_area > $macro_area} {
201+
set stdcell_util [expr $stdcell_area / [expr $core_area - $macro_area]]
202+
} else {
203+
set stdcell_util 0.0
204+
}
205+
} else {
206+
set core_util -1.0
207+
set stdcell_util -1.0
208+
}
199209

200210
utl::metric_int "design__io" $num_ios
211+
utl::metric_float "design__die__area" $die_area
212+
utl::metric_float "design__core__area" $core_area
201213
utl::metric_int "design__instance__count" $num_insts
202214
utl::metric_float "design__instance__area" $total_active_area
203215
utl::metric_int "design__instance__count__stdcell" $num_stdcells

0 commit comments

Comments
 (0)