New bloat profile for channel routing (named "channel").
This commit is contained in:
parent
bba364eecc
commit
288d1c70b9
|
@ -147,6 +147,39 @@ namespace Etesian {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BloatChannel::BloatChannel ()
|
||||||
|
: BloatCell("channel")
|
||||||
|
{ }
|
||||||
|
|
||||||
|
|
||||||
|
BloatChannel::~BloatChannel ()
|
||||||
|
{ }
|
||||||
|
|
||||||
|
|
||||||
|
DbU::Unit BloatChannel::getDx ( const Cell* cell, const EtesianEngine* etesian ) const
|
||||||
|
{
|
||||||
|
int terminals = 0;
|
||||||
|
for ( Net* net : cell->getNets() ) {
|
||||||
|
if (net->isExternal() and not net->isPower()) ++terminals;
|
||||||
|
}
|
||||||
|
|
||||||
|
Box ab ( cell->getAbutmentBox() );
|
||||||
|
DbU::Unit vpitch = etesian->getSliceStep();;
|
||||||
|
int xsize = (ab.getWidth() + vpitch - 1) / vpitch;
|
||||||
|
|
||||||
|
// float termRatio = (float)terminals / (float)(ab.getWidth() / vpitch);
|
||||||
|
// if (termRatio > 0.5) {
|
||||||
|
// return vpitch*6;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (xsize < 4) return vpitch*4;
|
||||||
|
// if (xsize < 6) return vpitch*2;
|
||||||
|
// if (xsize < 8) return vpitch*1;
|
||||||
|
|
||||||
|
return vpitch*3;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Bloat90Percents::Bloat90Percents ()
|
Bloat90Percents::Bloat90Percents ()
|
||||||
: BloatCell("90%")
|
: BloatCell("90%")
|
||||||
{ }
|
{ }
|
||||||
|
|
|
@ -99,6 +99,14 @@ namespace Etesian {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class BloatChannel : public BloatCell {
|
||||||
|
public:
|
||||||
|
BloatChannel ();
|
||||||
|
virtual ~BloatChannel ();
|
||||||
|
virtual DbU::Unit getDx ( const Cell*, const EtesianEngine* ) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class Bloat90Percents : public BloatCell {
|
class Bloat90Percents : public BloatCell {
|
||||||
public:
|
public:
|
||||||
Bloat90Percents ();
|
Bloat90Percents ();
|
||||||
|
@ -133,6 +141,7 @@ namespace Etesian {
|
||||||
_bloatCells.insert( new BloatNsxlib () );
|
_bloatCells.insert( new BloatNsxlib () );
|
||||||
_bloatCells.insert( new BloatFlexlib () );
|
_bloatCells.insert( new BloatFlexlib () );
|
||||||
_bloatCells.insert( new Bloat3Metals () );
|
_bloatCells.insert( new Bloat3Metals () );
|
||||||
|
_bloatCells.insert( new BloatChannel () );
|
||||||
_bloatCells.insert( new Bloat90Percents() );
|
_bloatCells.insert( new Bloat90Percents() );
|
||||||
select( "disabled" );
|
select( "disabled" );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue