report_checks transition_time field -> slew

This commit is contained in:
James Cherry 2019-06-24 08:35:04 -07:00
parent 11aa6e759a
commit e05e7185ba
11 changed files with 54 additions and 11 deletions

View File

@ -20,7 +20,7 @@ The command line options have changed to the following:
....
Builds using Autotools/configure are no longer supported.
Use CMake as documented in README.mb.
Use CMake as documented in README.md.
....
@ -79,17 +79,24 @@ input and .measure statement for each gate delay and pin slew.
....
The report_checks, find_timing_paths commands now support an
The report_checks and report_check_types commands now support an
-unconstrained flag.
report_checks -unconstrained
find_timing_paths -unconstrained
report_check_types -unconstrained
The sta_report_unconstrained_paths variable will be supported for
for compatibility in this current release.
for compatibility in the current release.
....
The transition_time path reporting field has been renamed to slew.
report_checks -fields {slew}
report_check_types -fields {slew}
...
The read_parasitics command has been renamed read_spef and no longer
supports the SPF format.
@ -125,6 +132,10 @@ total_negative_slack and worst_negative_slack respectively.
report_tns
report_wns
report_worst_slack
The set_clock_sense command was deprecated by SDC 2.1.
Use set_sense -type clock instead.
Release 1.11.0 2017/08/18
-------------------------

Binary file not shown.

View File

@ -91,7 +91,7 @@ public:
virtual ConcreteLibrary *library() const { return library_; }
virtual const char *name() const { return name_; }
virtual const char *filename() const { return filename_; }
LibertyCell *libertyCell() { return liberty_cell_; }
LibertyCell *libertyCell() const { return liberty_cell_; }
void setLibertyCell(LibertyCell *cell);
virtual int portBitCount() const { return port_bit_count_; }
virtual ConcretePort *findPort(const char *name) const;

View File

@ -553,12 +553,25 @@ ConcreteNetwork::libertyCell(Cell *cell) const
return ccell->libertyCell();
}
const LibertyCell *
ConcreteNetwork::libertyCell(const Cell *cell) const
{
const ConcreteCell *ccell = reinterpret_cast<const ConcreteCell*>(cell);
return ccell->libertyCell();
}
Cell *
ConcreteNetwork::cell(LibertyCell *cell) const
{
return reinterpret_cast<Cell*>(cell);
}
const Cell *
ConcreteNetwork::cell(const LibertyCell *cell) const
{
return reinterpret_cast<const Cell*>(cell);
}
const char *
ConcreteNetwork::filename(const Cell *cell)
{

View File

@ -76,7 +76,9 @@ public:
virtual const char *name(const Cell *cell) const;
virtual Library *library(const Cell *cell) const;
virtual LibertyCell *libertyCell(Cell *cell) const;
virtual const LibertyCell *libertyCell(const Cell *cell) const;
virtual Cell *cell(LibertyCell *cell) const;
virtual const Cell *cell(const LibertyCell *cell) const;
virtual const char *filename(const Cell *cell);
virtual Port *findPort(const Cell *cell,
const char *name) const;

View File

@ -52,7 +52,7 @@ Network::isLinked() const
LibertyLibrary *
Network::libertyLibrary(const Cell *cell) const
{
return libertyCell(const_cast<Cell*>(cell))->libertyLibrary();
return libertyCell(cell)->libertyLibrary();
}
LibertyLibrary *

View File

@ -132,10 +132,11 @@ public:
// Cell functions.
virtual const char *name(const Cell *cell) const = 0;
virtual Library *library(const Cell *cell) const = 0;
virtual LibertyLibrary *libertyLibrary(const Cell *cell) const
__attribute__ ((deprecated));
virtual LibertyLibrary *libertyLibrary(const Cell *cell) const;
// Find the corresponding liberty cell.
virtual const LibertyCell *libertyCell(const Cell *cell) const = 0;
virtual LibertyCell *libertyCell(Cell *cell) const = 0;
virtual const Cell *cell(const LibertyCell *cell) const = 0;
virtual Cell *cell(LibertyCell *cell) const = 0;
// Filename may return null.
virtual const char *filename(const Cell *cell) = 0;

View File

@ -592,12 +592,24 @@ NetworkNameAdapter::libertyCell(Cell *cell) const
return network_->libertyCell(cell);
}
const LibertyCell *
NetworkNameAdapter::libertyCell(const Cell *cell) const
{
return network_->libertyCell(cell);
}
Cell *
NetworkNameAdapter::cell(LibertyCell *cell) const
{
return network_->cell(cell);
}
const Cell *
NetworkNameAdapter::cell(const LibertyCell *cell) const
{
return network_->cell(cell);
}
Port *
NetworkNameAdapter::findPort(const Cell *cell,
const char *name) const

View File

@ -47,7 +47,9 @@ public:
virtual const char *name(const Cell *cell) const;
virtual Library *library(const Cell *cell) const;
virtual LibertyCell *libertyCell(Cell *cell) const;
virtual const LibertyCell *libertyCell(const Cell *cell) const;
virtual Cell *cell(LibertyCell *cell) const;
virtual const Cell *cell(const LibertyCell *cell) const;
virtual const char *filename(const Cell *cell);
virtual Port *findPort(const Cell *cell,
const char *name) const;

View File

@ -133,7 +133,7 @@ proc delays_are_inf { delays } {
define_cmd_args "report_path" \
{[-min|-max]\
[-format full|full_clock|full_clock_expanded|short|end|summary]\
[-fields [capacitance|transition_time|input_pin|net]\
[-fields [capacitance|slew|input_pin|net]\
[-digits digits] [-no_line_splits]\
[> filename] [>> filename]\
pin ^|r|rise|v|f|fall}
@ -254,7 +254,9 @@ proc parse_report_path_options { cmd args_var default_format
set report_input_pin [expr [lsearch $fields "input*"] != -1]
set report_cap [expr [lsearch $fields "cap*"] != -1]
set report_net [expr [lsearch $fields "net*"] != -1]
set report_slew [expr [lsearch $fields "trans*"] != -1]
# transition_time - compatibility 06/24/2019
set report_slew [expr [lsearch $fields "slew*"] != -1 \
|| [lsearch $fields "trans*"] != -1]
} else {
set report_input_pin 0
set report_cap 0

View File

@ -292,7 +292,7 @@ define_sta_cmd_args "report_checks" \
[-sort_by_slack]\
[-path_group group_name]\
[-format full|full_clock|full_clock_expanded|short|end|summary]\
[-fields [capacitance|transition_time|input_pin|net]]\
[-fields [capacitance|slew|input_pin|net]]\
[-digits digits]\
[-no_line_splits]\
[> filename] [>> filename]}