Sta::makeCorners virtual

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2024-07-13 17:08:43 -07:00
parent 3ba6f0e527
commit 765309f609
4 changed files with 19 additions and 11 deletions

View File

@ -8,6 +8,7 @@ member variable - snake case with trailing underscore (member_variable_)
Trailing underscore prevents conflict with accessor Trailing underscore prevents conflict with accessor
member function name. member function name.
function - lower camel case (functionName) function - lower camel case (functionName)
variable - snake case
comments - use capitalized sentences that end with periods comments - use capitalized sentences that end with periods
C++ code files should use a .cc file extension C++ code files should use a .cc file extension
@ -55,7 +56,7 @@ this:
instead, write this: instead, write this:
foo = (char *) malloc (sizeof *foo); foo = (char *) malloc (sizeof *foo);
if (foo == 0) if (foo == nullptr)
fatal ("virtual memory exhausted"); fatal ("virtual memory exhausted");

View File

@ -1236,7 +1236,7 @@ public:
void setCmdCorner(Corner *corner); void setCmdCorner(Corner *corner);
Corner *findCorner(const char *corner_name); Corner *findCorner(const char *corner_name);
bool multiCorner(); bool multiCorner();
void makeCorners(StringSet *corner_names); virtual void makeCorners(StringSet *corner_names);
// Find all arc delays and vertex slews with delay calculator. // Find all arc delays and vertex slews with delay calculator.
virtual void findDelays(); virtual void findDelays();
// Find arc delays and vertex slews thru to level of to_vertex. // Find arc delays and vertex slews thru to level of to_vertex.

View File

@ -1852,10 +1852,15 @@ LibertyCell::makeLatchEnable(LibertyPort *d,
latch_d_to_q_map_[d_to_q] = latch_enable; latch_d_to_q_map_[d_to_q] = latch_enable;
latch_check_map_[setup_check] = latch_enable; latch_check_map_[setup_check] = latch_enable;
latch_data_ports_.insert(d); latch_data_ports_.insert(d);
debugPrint(debug, "liberty", 2, "latch d=%s en=%s %s q=%s", debugPrint(debug, "liberty_latch", 1,
"latch %s -> %s | %s %s -> %s | %s %s -> %s setup",
d->name(), d->name(),
q->name(),
en->name(), en->name(),
en_rf->name(), en_rf->shortName(),
q->name(),
en->name(),
setup_check->arcs()[0]->fromEdge()->asRiseFall()->shortName(),
q->name()); q->name());
return latch_enable; return latch_enable;
} }

View File

@ -425,13 +425,15 @@ void
SdfReader::timingCheck(TimingRole *role, SdfPortSpec *data_edge, SdfReader::timingCheck(TimingRole *role, SdfPortSpec *data_edge,
SdfPortSpec *clk_edge, SdfTriple *triple) SdfPortSpec *clk_edge, SdfTriple *triple)
{ {
const char *data_port_name = data_edge->port(); if (instance_) {
const char *clk_port_name = clk_edge->port(); const char *data_port_name = data_edge->port();
Cell *cell = network_->cell(instance_); const char *clk_port_name = clk_edge->port();
Port *data_port = findPort(cell, data_port_name); Cell *cell = network_->cell(instance_);
Port *clk_port = findPort(cell, clk_port_name); Port *data_port = findPort(cell, data_port_name);
if (data_port && clk_port) Port *clk_port = findPort(cell, clk_port_name);
timingCheck1(role, data_port, data_edge, clk_port, clk_edge, triple); if (data_port && clk_port)
timingCheck1(role, data_port, data_edge, clk_port, clk_edge, triple);
}
deletePortSpec(data_edge); deletePortSpec(data_edge);
deletePortSpec(clk_edge); deletePortSpec(clk_edge);
deleteTriple(triple); deleteTriple(triple);