make timing model check for internal clocks
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
07340bf90b
commit
65b6821c18
|
|
@ -71,8 +71,10 @@ MakeTimingModel::makeTimingModel(const char *lib_name,
|
|||
makeCell(cell_name, filename);
|
||||
makePorts();
|
||||
|
||||
for (Clock *clk : *sdc_->clocks())
|
||||
for (Clock *clk : *sdc_->clocks()) {
|
||||
sta_->setPropagatedClock(clk);
|
||||
checkClock(clk);
|
||||
}
|
||||
|
||||
sta_->searchPreamble();
|
||||
graph_ = sta_->graph();
|
||||
|
|
@ -157,6 +159,17 @@ MakeTimingModel::makePorts()
|
|||
delete port_iter;
|
||||
}
|
||||
|
||||
void
|
||||
MakeTimingModel::checkClock(Clock *clk)
|
||||
{
|
||||
for (const Pin *pin : clk->leafPins()) {
|
||||
if (!network_->isTopLevelPort(pin))
|
||||
report_->warn(810, "clock %s pin %s is inside model block.",
|
||||
clk->name(),
|
||||
network_->pathName(pin));
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
class MakeEndTimingArcs : public PathEndVisitor
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ private:
|
|||
void makeCell(const char *cell_name,
|
||||
const char *filename);
|
||||
void makePorts();
|
||||
void checkClock(Clock *clk);
|
||||
void findTimingFromInputs();
|
||||
void findClkedOutputPaths();
|
||||
void findOutputDelays(const RiseFall *input_rf,
|
||||
|
|
|
|||
Loading…
Reference in New Issue