New parameter "katana.trackFill" to control the dummy fill ratio.
This commit is contained in:
parent
106bc89cb5
commit
c6f703b1cc
|
@ -51,6 +51,7 @@ namespace Katana {
|
|||
, _ripupCost (Cfg::getParamInt ("katana.ripupCost" , 3)->asInt())
|
||||
, _eventsLimit (Cfg::getParamInt ("katana.eventsLimit" ,4000000)->asInt())
|
||||
, _bloatOverloadAdd (Cfg::getParamInt ("katana.bloatOverloadAdd" , 4)->asInt())
|
||||
, _trackFill (Cfg::getParamInt ("katana.trackFill" , 0)->asInt())
|
||||
, _flags (0)
|
||||
, _profileEventCosts (Cfg::getParamBool("katana.profileEventCosts" ,false )->asBool())
|
||||
, _runRealignStage (Cfg::getParamBool("katana.runRealignStage" ,true )->asBool())
|
||||
|
@ -99,6 +100,7 @@ namespace Katana {
|
|||
, _ripupCost (other._ripupCost)
|
||||
, _eventsLimit (other._eventsLimit)
|
||||
, _bloatOverloadAdd (other._bloatOverloadAdd)
|
||||
, _trackFill (other._trackFill)
|
||||
, _flags (other._flags)
|
||||
, _profileEventCosts (other._profileEventCosts)
|
||||
, _runRealignStage (other._runRealignStage)
|
||||
|
@ -188,6 +190,7 @@ namespace Katana {
|
|||
cout << Dots::asUInt (" - Ripup limit, globals" ,_ripupLimits[GlobalRipupLimit]) << endl;
|
||||
cout << Dots::asUInt (" - Ripup limit, long globals" ,_ripupLimits[LongGlobalRipupLimit]) << endl;
|
||||
cout << Dots::asUInt (" - Bloat overload additional penalty" ,_bloatOverloadAdd) << endl;
|
||||
cout << Dots::asUInt (" - Fill every nth track" ,_trackFill) << endl;
|
||||
|
||||
Super::print( cell );
|
||||
}
|
||||
|
|
|
@ -1168,7 +1168,8 @@ namespace Katana {
|
|||
|
||||
void Track::fillHole ( DbU::Unit umin, DbU::Unit umax ) const
|
||||
{
|
||||
if (getIndex() % 2) return;
|
||||
if (not getKatanaEngine()->getTrackFill()) return;
|
||||
if (getIndex() % getKatanaEngine()->getTrackFill() != 0) return;
|
||||
if (getLayerGauge()->getType() == Constant::PinOnly) return;
|
||||
if (getLayerGauge()->getDepth() > getKatanaEngine()->getConfiguration()->getAllowedDepth()) return;
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
// -*- mode: C++; explicit-buffer-name: "Configuration.h<katana>" -*-
|
||||
//
|
||||
// This file is part of the Coriolis Software.
|
||||
// Copyright (c) UPMC 2008-2018, All Rights Reserved
|
||||
// Copyright (c) SU 2008-2021, All Rights Reserved
|
||||
//
|
||||
// +-----------------------------------------------------------------+
|
||||
// | C O R I O L I S |
|
||||
// | K i t e - D e t a i l e d R o u t e r |
|
||||
// | |
|
||||
// | Author : Jean-Paul CHAPUT |
|
||||
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
||||
// | =============================================================== |
|
||||
// | C++ Header : "./katana/Configuration.h" |
|
||||
// +-----------------------------------------------------------------+
|
||||
|
@ -81,6 +81,7 @@ namespace Katana {
|
|||
inline uint32_t getHTracksReservedMin () const;
|
||||
inline uint32_t getVTracksReservedMin () const;
|
||||
inline uint32_t getTermSatThreshold () const;
|
||||
inline uint32_t getTrackFill () const;
|
||||
inline void setEventsLimit ( uint64_t );
|
||||
inline void setRipupCost ( uint32_t );
|
||||
void setRipupLimit ( uint32_t limit, uint32_t type );
|
||||
|
@ -112,6 +113,7 @@ namespace Katana {
|
|||
uint32_t _ripupCost;
|
||||
uint64_t _eventsLimit;
|
||||
uint32_t _bloatOverloadAdd;
|
||||
uint32_t _trackFill;
|
||||
unsigned int _flags;
|
||||
bool _profileEventCosts;
|
||||
bool _runRealignStage;
|
||||
|
@ -135,6 +137,7 @@ namespace Katana {
|
|||
inline uint32_t Configuration::getHTracksReservedMin () const { return _hTracksReservedMin; }
|
||||
inline uint32_t Configuration::getVTracksReservedMin () const { return _vTracksReservedMin; }
|
||||
inline uint32_t Configuration::getTermSatThreshold () const { return _termSatThreshold; }
|
||||
inline uint32_t Configuration::getTrackFill () const { return _trackFill; }
|
||||
inline void Configuration::setBloatOverloadAdd ( uint32_t add ) { _bloatOverloadAdd = add; }
|
||||
inline void Configuration::setRipupCost ( uint32_t cost ) { _ripupCost = cost; }
|
||||
inline void Configuration::setPostEventCb ( PostEventCb_t cb ) { _postEventCb = cb; }
|
||||
|
|
|
@ -95,6 +95,7 @@ namespace Katana {
|
|||
inline uint32_t getVTracksReservedLocal () const;
|
||||
inline uint32_t getTermSatReservedLocal () const;
|
||||
inline uint32_t getTermSatThreshold () const;
|
||||
inline uint32_t getTrackFill () const;
|
||||
inline bool profileEventCosts () const;
|
||||
virtual const Name& getName () const;
|
||||
inline Configuration::PostEventCb_t&
|
||||
|
@ -211,6 +212,7 @@ namespace Katana {
|
|||
inline uint32_t KatanaEngine::getTermSatReservedLocal () const { return _configuration->getTermSatReservedLocal(); }
|
||||
inline uint32_t KatanaEngine::getTermSatThreshold () const { return _configuration->getTermSatThreshold(); }
|
||||
inline uint32_t KatanaEngine::getRipupLimit ( uint32_t type ) const { return _configuration->getRipupLimit(type); }
|
||||
inline uint32_t KatanaEngine::getTrackFill () const { return _configuration->getTrackFill(); }
|
||||
inline bool KatanaEngine::profileEventCosts () const { return _configuration->profileEventCosts(); }
|
||||
inline const DataSymmetricMap& KatanaEngine::getSymmetrics () const { return _symmetrics; }
|
||||
inline Block* KatanaEngine::getBlock ( size_t i ) const { return (i < _blocks.size()) ? _blocks[i] : NULL; }
|
||||
|
|
Loading…
Reference in New Issue