Bug in topology management switch in NetBuilder::construct().
* Bug: In NetBuilder::construct(), the xG_xM1 topologies where wrongly redirected towards xG_1M1, so only one M1 was connected, all others left floating. Now direct them towards xG_xM1_xM3. * Bug: In NetBuilderHybridVH, activate topology management for 2G_1M1.
This commit is contained in:
parent
b65e6f83ff
commit
b8cd4264bd
|
@ -719,7 +719,7 @@ namespace Anabatic {
|
|||
case Conn_2G_6M1:
|
||||
case Conn_2G_7M1:
|
||||
case Conn_2G_8M1:
|
||||
case Conn_2G_9M1:
|
||||
case Conn_2G_9M1: _do_xG_xM1_xM3(); break;
|
||||
case Conn_3G_1M1: if (_do_xG_1M1()) break;
|
||||
case Conn_3G_2M1:
|
||||
case Conn_3G_3M1:
|
||||
|
@ -731,7 +731,7 @@ namespace Anabatic {
|
|||
case Conn_3G_9M1:
|
||||
case Conn_3G_2M3:
|
||||
case Conn_3G_3M3:
|
||||
case Conn_3G_4M3:
|
||||
case Conn_3G_4M3: _do_xG_xM1_xM3(); break;
|
||||
case Conn_4G_1M1: if (_do_xG_1M1()) break;
|
||||
case Conn_4G_2M1:
|
||||
case Conn_4G_3M1:
|
||||
|
|
|
@ -86,7 +86,7 @@ namespace Anabatic {
|
|||
cdebug_log(145,0) << rp << endl;
|
||||
|
||||
const Layer* rpLayer = rp->getLayer();
|
||||
const Layer* viaLayer = Session::getDContactLayer();
|
||||
//const Layer* viaLayer = Session::getDContactLayer();
|
||||
DbU::Unit viaSide = Session::getDContactWidth();
|
||||
Point position = rp->getCenter();
|
||||
AutoContact* rpContact = AutoContactTerminal::create( gcell, rp, rpLayer, position, viaSide, viaSide );
|
||||
|
@ -215,6 +215,17 @@ namespace Anabatic {
|
|||
}
|
||||
|
||||
|
||||
bool NetBuilderHybridVH::_do_2G_1M1 ()
|
||||
{
|
||||
cdebug_log(145,1) << getTypeName() << "::_do_2G_1M1()" << endl;
|
||||
|
||||
doRp_xG_1M1( getRoutingPads()[0] );
|
||||
|
||||
cdebug_tabw(145,-1);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool NetBuilderHybridVH::doRp_xG_xM1_xM3 ( const vector<RoutingPad*>& rps )
|
||||
{
|
||||
cdebug_log(145,1) << getTypeName() << "::doRp_xG_xM1()" << endl;
|
||||
|
@ -396,8 +407,6 @@ namespace Anabatic {
|
|||
else
|
||||
doRp_xG_1M1( rpsM1[0] );
|
||||
|
||||
Pin* pin = dynamic_cast<Pin*>( rpM2->getOccurrence().getEntity() );
|
||||
Pin::AccessDirection pinDir = pin->getAccessDirection();
|
||||
AutoContact* rpContact = doRp_AccessNorthSouthPin( getGCell(), rpM2 );
|
||||
AutoContact* rpM1Contact = doRp_Access( getGCell(), rpsM1.front(), NoFlags );
|
||||
AutoContact* turn1 = AutoContactTurn::create( getGCell(), getNet(), Session::getContactLayer(0) );
|
||||
|
@ -511,7 +520,6 @@ namespace Anabatic {
|
|||
|
||||
|
||||
bool NetBuilderHybridVH::_do_1G_1M1 () { return false; }
|
||||
bool NetBuilderHybridVH::_do_2G_1M1 () { return false; }
|
||||
// bool NetBuilderHybridVH::_do_xG_1Pad () { return false; }
|
||||
// bool NetBuilderHybridVH::_do_xG_xM2 () { return false; }
|
||||
// bool NetBuilderHybridVH::_do_1G_1M3 () { return false; }
|
||||
|
|
Loading…
Reference in New Issue