parent
855a4fdeb7
commit
f5421da02d
|
@ -72,7 +72,7 @@ namespace {
|
||||||
class DefParser {
|
class DefParser {
|
||||||
public:
|
public:
|
||||||
const uint32_t NoPatch = 0;
|
const uint32_t NoPatch = 0;
|
||||||
const uint32_t Sky130 = (1 << 10);
|
const uint32_t Caravel = (1 << 10);
|
||||||
public:
|
public:
|
||||||
static AllianceFramework* getFramework ();
|
static AllianceFramework* getFramework ();
|
||||||
static Cell* getLefCell ( string name );
|
static Cell* getLefCell ( string name );
|
||||||
|
@ -89,7 +89,7 @@ namespace {
|
||||||
DefParser ( string file, AllianceLibrary*, unsigned int flags );
|
DefParser ( string file, AllianceLibrary*, unsigned int flags );
|
||||||
~DefParser ();
|
~DefParser ();
|
||||||
inline bool hasErrors ();
|
inline bool hasErrors ();
|
||||||
inline bool isSky130 () const;
|
inline bool isCaravel () const;
|
||||||
inline unsigned int getFlags () const;
|
inline unsigned int getFlags () const;
|
||||||
inline AllianceLibrary* getLibrary ();
|
inline AllianceLibrary* getLibrary ();
|
||||||
inline Cell* getCell ();
|
inline Cell* getCell ();
|
||||||
|
@ -182,9 +182,11 @@ namespace {
|
||||||
defrSetSNetCbk ( _snetCbk );
|
defrSetSNetCbk ( _snetCbk );
|
||||||
defrSetPathCbk ( _pathCbk );
|
defrSetPathCbk ( _pathCbk );
|
||||||
|
|
||||||
if (DataBase::getDB()->getTechnology()->getName() == "Sky130") {
|
if ( (DataBase::getDB()->getTechnology()->getName() == "Sky130")
|
||||||
cmess1 << " - Enabling SkyWater 130nm harness hacks." << endl;
|
|| (DataBase::getDB()->getTechnology()->getName() == "gf180mcu")
|
||||||
_flags |= Sky130;
|
) {
|
||||||
|
cmess1 << " - Enabling Caravel harness hacks." << endl;
|
||||||
|
_flags |= Caravel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,7 +200,7 @@ namespace {
|
||||||
AllianceFramework* DefParser::getFramework () { return _framework; }
|
AllianceFramework* DefParser::getFramework () { return _framework; }
|
||||||
inline void DefParser::setUnits ( double units ) { _defUnits = 1/units; }
|
inline void DefParser::setUnits ( double units ) { _defUnits = 1/units; }
|
||||||
inline DbU::Unit DefParser::fromDefUnits ( int u ) { return DbU::fromPhysical(_defUnits*(double)u,DbU::UnitPower::Micro); }
|
inline DbU::Unit DefParser::fromDefUnits ( int u ) { return DbU::fromPhysical(_defUnits*(double)u,DbU::UnitPower::Micro); }
|
||||||
inline bool DefParser::isSky130 () const { return _flags & Sky130; }
|
inline bool DefParser::isCaravel () const { return _flags & Caravel; }
|
||||||
inline bool DefParser::hasErrors () { return not _errors.empty(); }
|
inline bool DefParser::hasErrors () { return not _errors.empty(); }
|
||||||
inline unsigned int DefParser::getFlags () const { return _flags; }
|
inline unsigned int DefParser::getFlags () const { return _flags; }
|
||||||
inline string DefParser::getBusBits () const { return _busBits; }
|
inline string DefParser::getBusBits () const { return _busBits; }
|
||||||
|
@ -397,7 +399,7 @@ namespace {
|
||||||
|
|
||||||
Layer* DefParser::lookupLayer ( string layerName )
|
Layer* DefParser::lookupLayer ( string layerName )
|
||||||
{
|
{
|
||||||
if (_flags & Sky130) {
|
if (isCaravel()) {
|
||||||
if (layerName.substr(0,3) == "met") layerName.erase( 1, 2 );
|
if (layerName.substr(0,3) == "met") layerName.erase( 1, 2 );
|
||||||
}
|
}
|
||||||
return _technology->getLayer( layerName );
|
return _technology->getLayer( layerName );
|
||||||
|
@ -543,7 +545,7 @@ namespace {
|
||||||
string pinName = pin->pinName();
|
string pinName = pin->pinName();
|
||||||
parser->toHurricaneName( netName );
|
parser->toHurricaneName( netName );
|
||||||
parser->toHurricaneName( pinName );
|
parser->toHurricaneName( pinName );
|
||||||
if (parser->isSky130() and (pinName.substr(0,3) == "io_" ))
|
if (parser->isCaravel() and (pinName.substr(0,3) == "io_" ))
|
||||||
netName = pinName;
|
netName = pinName;
|
||||||
|
|
||||||
NetDatas* netDatas = parser->lookupNet( netName );
|
NetDatas* netDatas = parser->lookupNet( netName );
|
||||||
|
|
Loading…
Reference in New Issue