Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2026-03-08 13:50:22 -07:00
parent a419f0a721
commit fe0e3d0673
5 changed files with 37 additions and 37 deletions

View File

@ -1383,7 +1383,7 @@ public:
LibertyLibrarySeq *map_libs);
LibertyCellSeq *equivCells(LibertyCell *cell);
void writePathSpice(Path *path,
void writePathSpice(const Path *path,
const char *spice_filename,
const char *subckt_filename,
const char *lib_subckt_filename,

View File

@ -6012,7 +6012,7 @@ Sta::activity(const Pin *pin,
////////////////////////////////////////////////////////////////
void
Sta::writePathSpice(Path *path,
Sta::writePathSpice(const Path *path,
const char *spice_filename,
const char *subckt_filename,
const char *lib_subckt_filename,

View File

@ -57,7 +57,7 @@ typedef int Stage;
class WritePathSpice : public WriteSpice
{
public:
WritePathSpice(Path *path,
WritePathSpice(const Path *path,
const char *spice_filename,
const char *subckt_filename,
const char *lib_subckt_filename,
@ -116,24 +116,24 @@ private:
const Path *stageLoadPath(Stage stage);
const TimingArc *stageGateArc(Stage stage);
const TimingArc *stageWireArc(Stage stage);
Edge *stageGateEdge(Stage stage);
Edge *stageWireEdge(Stage stage);
Pin *stageGateInputPin(Stage stage);
Pin *stageDrvrPin(Stage stage);
LibertyPort *stageGateInputPort(Stage stage);
LibertyPort *stageDrvrPort(Stage stage);
Pin *stageLoadPin(Stage stage);
const Edge *stageGateEdge(Stage stage);
const Edge *stageWireEdge(Stage stage);
const Pin *stageGateInputPin(Stage stage);
const Pin *stageDrvrPin(Stage stage);
const LibertyPort *stageGateInputPort(Stage stage);
const LibertyPort *stageDrvrPort(Stage stage);
const Pin *stageLoadPin(Stage stage);
const char *stageGateInputPinName(Stage stage);
const char *stageDrvrPinName(Stage stage);
const char *stageLoadPinName(Stage stage);
LibertyCell *stageLibertyCell(Stage stage);
Instance *stageInstance(Stage stage);
const LibertyCell *stageLibertyCell(Stage stage);
const Instance *stageInstance(Stage stage);
float findSlew(const Path *path);
float findSlew(const Path *path,
const RiseFall *rf,
const TimingArc *next_arc);
Path *path_;
const Path *path_;
PathExpanded path_expanded_;
// Input clock waveform cycles.
int clk_cycle_count_;
@ -152,7 +152,7 @@ private:
////////////////////////////////////////////////////////////////
void
writePathSpice(Path *path,
writePathSpice(const Path *path,
const char *spice_filename,
const char *subckt_filename,
const char *lib_subckt_filename,
@ -168,7 +168,7 @@ writePathSpice(Path *path,
writer.writeSpice();
}
WritePathSpice::WritePathSpice(Path *path,
WritePathSpice::WritePathSpice(const Path *path,
const char *spice_filename,
const char *subckt_filename,
const char *lib_subckt_filename,
@ -497,8 +497,8 @@ WritePathSpice::writeGateStage(Stage stage)
std::string subckt_name = "stage" + std::to_string(stage);
const Instance *inst = stageInstance(stage);
LibertyPort *input_port = stageGateInputPort(stage);
LibertyPort *drvr_port = stageDrvrPort(stage);
const LibertyPort *input_port = stageGateInputPort(stage);
const LibertyPort *drvr_port = stageDrvrPort(stage);
streamPrint(spice_stream_, ".subckt %s %s %s %s\n",
subckt_name.c_str(),
@ -515,7 +515,7 @@ WritePathSpice::writeGateStage(Stage stage)
const Path *drvr_path = stageDrvrPath(stage);
const RiseFall *drvr_rf = drvr_path->transition(this);
Edge *gate_edge = stageGateEdge(stage);
const Edge *gate_edge = stageGateEdge(stage);
LibertyPortLogicValues port_values;
bool is_clked;
@ -579,7 +579,7 @@ WritePathSpice::findPathCellNames()
path_cell_names.insert(cell->name());
}
// Include side receivers.
Pin *drvr_pin = stageDrvrPin(stage);
const Pin *drvr_pin = stageDrvrPin(stage);
auto pin_iter = network_->connectedPinIterator(drvr_pin);
while (pin_iter->hasNext()) {
const Pin *pin = pin_iter->next();
@ -673,49 +673,49 @@ WritePathSpice::stageWireArc(Stage stage)
return path_expanded_.path(path_index)->prevArc(this);
}
Edge *
const Edge *
WritePathSpice::stageGateEdge(Stage stage)
{
const Path *path = stageDrvrPath(stage);
return path->prevEdge(this);
}
Edge *
const Edge *
WritePathSpice::stageWireEdge(Stage stage)
{
const Path *path = stageLoadPath(stage);
return path->prevEdge(this);
}
Pin *
const Pin *
WritePathSpice::stageGateInputPin(Stage stage)
{
const Path *path = stageGateInputPath(stage);
return path->pin(this);
}
LibertyPort *
const LibertyPort *
WritePathSpice::stageGateInputPort(Stage stage)
{
Pin *pin = stageGateInputPin(stage);
const Pin *pin = stageGateInputPin(stage);
return network_->libertyPort(pin);
}
Pin *
const Pin *
WritePathSpice::stageDrvrPin(Stage stage)
{
const Path *path = stageDrvrPath(stage);
return path->pin(this);
}
LibertyPort *
const LibertyPort *
WritePathSpice::stageDrvrPort(Stage stage)
{
Pin *pin = stageDrvrPin(stage);
const Pin *pin = stageDrvrPin(stage);
return network_->libertyPort(pin);
}
Pin *
const Pin *
WritePathSpice::stageLoadPin(Stage stage)
{
const Path *path = stageLoadPath(stage);
@ -725,35 +725,35 @@ WritePathSpice::stageLoadPin(Stage stage)
const char *
WritePathSpice::stageGateInputPinName(Stage stage)
{
Pin *pin = stageGateInputPin(stage);
const Pin *pin = stageGateInputPin(stage);
return network_->pathName(pin);
}
const char *
WritePathSpice::stageDrvrPinName(Stage stage)
{
Pin *pin = stageDrvrPin(stage);
const Pin *pin = stageDrvrPin(stage);
return network_->pathName(pin);
}
const char *
WritePathSpice::stageLoadPinName(Stage stage)
{
Pin *pin = stageLoadPin(stage);
const Pin *pin = stageLoadPin(stage);
return network_->pathName(pin);
}
Instance *
const Instance *
WritePathSpice::stageInstance(Stage stage)
{
Pin *pin = stageDrvrPin(stage);
const Pin *pin = stageDrvrPin(stage);
return network_->instance(pin);
}
LibertyCell *
const LibertyCell *
WritePathSpice::stageLibertyCell(Stage stage)
{
Pin *pin = stageDrvrPin(stage);
const Pin *pin = stageDrvrPin(stage);
return network_->libertyPort(pin)->libertyCell();
}

View File

@ -35,7 +35,7 @@ class StaState;
// Write a spice deck for path.
// Throws FileNotReadable, FileNotWritable, SubcktEndsMissing
void
writePathSpice(Path *path,
writePathSpice(const Path *path,
// Spice file written for path.
const char *spice_filename,
// Subckts used by path included in spice file.

View File

@ -33,7 +33,7 @@
%inline %{
void
write_path_spice_cmd(Path *path,
write_path_spice_cmd(const Path *path,
const char *spice_filename,
const char *subckt_filename,
const char *lib_subckt_filename,