Remove simulated annealing placer Nimbus/Metis/Mauka.
This commit is contained in:
parent
5dc60415e7
commit
393b5a735f
|
@ -14,9 +14,9 @@ projects = [ { 'name' : "importeds"
|
|||
, "vlsisapd"
|
||||
, "hurricane"
|
||||
, "crlcore"
|
||||
, "nimbus"
|
||||
, "metis"
|
||||
, "mauka"
|
||||
#, "nimbus"
|
||||
#, "metis"
|
||||
#, "mauka"
|
||||
, "etesian"
|
||||
, "knik"
|
||||
, "katabatic"
|
||||
|
|
|
@ -90,9 +90,9 @@ def coriolisConfigure():
|
|||
, (helpers.symbolicDir+'/patterns.conf', SystemFile|PatternsHelper)
|
||||
, (helpers.symbolicDir+'/display.conf' , SystemFile|DisplayHelper)
|
||||
, (helpers.symbolicDir+'/misc.conf' , SystemFile|ConfigurationHelper)
|
||||
, (helpers.symbolicDir+'/hMetis.conf' , SystemFile|ConfigurationHelper)
|
||||
, (helpers.symbolicDir+'/nimbus.conf' , SystemFile|ConfigurationHelper)
|
||||
, (helpers.symbolicDir+'/mauka.conf' , SystemFile|ConfigurationHelper)
|
||||
#, (helpers.symbolicDir+'/hMetis.conf' , SystemFile|ConfigurationHelper)
|
||||
#, (helpers.symbolicDir+'/nimbus.conf' , SystemFile|ConfigurationHelper)
|
||||
#, (helpers.symbolicDir+'/mauka.conf' , SystemFile|ConfigurationHelper)
|
||||
, (helpers.symbolicDir+'/etesian.conf' , SystemFile|ConfigurationHelper)
|
||||
, (helpers.symbolicDir+'/kite.conf' , SystemFile|ConfigurationHelper)
|
||||
, (helpers.symbolicDir+'/stratus1.conf', SystemFile|ConfigurationHelper)
|
||||
|
|
|
@ -6,7 +6,7 @@ import Cfg
|
|||
from Hurricane import *
|
||||
from helpers import ErrorMessage
|
||||
import CRL
|
||||
import Mauka
|
||||
#import Mauka
|
||||
|
||||
#import Knik
|
||||
#import Kite
|
||||
|
|
|
@ -45,9 +45,9 @@ try:
|
|||
import helpers
|
||||
from helpers import ErrorMessage
|
||||
from helpers import WarningMessage
|
||||
import Nimbus
|
||||
import Metis
|
||||
import Mauka
|
||||
#import Nimbus
|
||||
#import Metis
|
||||
#import Mauka
|
||||
import Etesian
|
||||
import Katabatic
|
||||
import Kite
|
||||
|
|
|
@ -26,7 +26,7 @@ try:
|
|||
import helpers
|
||||
from helpers import trace
|
||||
from helpers import ErrorMessage
|
||||
import Mauka
|
||||
#import Mauka
|
||||
import Etesian
|
||||
import Unicorn
|
||||
import plugins
|
||||
|
|
|
@ -42,9 +42,9 @@ try:
|
|||
import helpers
|
||||
from helpers import trace
|
||||
from helpers import ErrorMessage
|
||||
import Nimbus
|
||||
import Metis
|
||||
import Mauka
|
||||
#import Nimbus
|
||||
#import Metis
|
||||
#import Mauka
|
||||
import Katabatic
|
||||
import Kite
|
||||
import Unicorn
|
||||
|
|
|
@ -15,9 +15,9 @@ try:
|
|||
import Viewer
|
||||
import CRL
|
||||
from helpers import ErrorMessage
|
||||
import Nimbus
|
||||
import Metis
|
||||
import Mauka
|
||||
#import Nimbus
|
||||
#import Metis
|
||||
#import Mauka
|
||||
import Etesian
|
||||
import Katabatic
|
||||
import Kite
|
||||
|
|
|
@ -1327,18 +1327,18 @@ class Model :
|
|||
#############################################################################
|
||||
############################## Place and route ##############################
|
||||
#############################################################################
|
||||
def getCore ( self ) :
|
||||
'''This function returns the instance "core" : the only one which is not a pad'''
|
||||
#def getCore ( self ) :
|
||||
# '''This function returns the instance "core" : the only one which is not a pad'''
|
||||
|
||||
from placeandroute import isPad
|
||||
# from placeandroute import isPad
|
||||
|
||||
cores = []
|
||||
for instance in self._hur_cell.getInstances():
|
||||
if not isPad ( instance ):
|
||||
cores.append ( instance )
|
||||
# cores = []
|
||||
# for instance in self._hur_cell.getInstances():
|
||||
# if not isPad ( instance ):
|
||||
# cores.append ( instance )
|
||||
|
||||
if len(cores) == 0 : err = "\n[Stratus ERROR] getCore : No core found.\n"
|
||||
elif len(cores) > 1 : err = "\n[Stratus ERROR] getCore : More than one core found.\n"
|
||||
if len(cores) != 1 : raise Exception ( err )
|
||||
# if len(cores) == 0 : err = "\n[Stratus ERROR] getCore : No core found.\n"
|
||||
# elif len(cores) > 1 : err = "\n[Stratus ERROR] getCore : More than one core found.\n"
|
||||
# if len(cores) != 1 : raise Exception ( err )
|
||||
|
||||
return cores[0]
|
||||
# return cores[0]
|
||||
|
|
|
@ -36,7 +36,7 @@ try:
|
|||
from st_net import *
|
||||
from st_instance import *
|
||||
from st_placement import *
|
||||
from st_placeAndRoute import *
|
||||
#from st_placeAndRoute import *
|
||||
from st_ref import *
|
||||
from st_generate import *
|
||||
from st_const import *
|
||||
|
@ -73,6 +73,7 @@ DoStop = 0x0004
|
|||
|
||||
def buildModel ( name, flags ):
|
||||
try:
|
||||
print name
|
||||
module = __import__( name, globals(), locals(), name )
|
||||
if not module.__dict__.has_key(name):
|
||||
print '[ERROR] Stratus module <%s> do not contains a design of the same name.' % name
|
||||
|
@ -95,6 +96,7 @@ def buildModel ( name, flags ):
|
|||
|
||||
print '[ERROR] The <%s> Stratus design cannot be loaded.' % module
|
||||
print ' Please check your design hierarchy.'
|
||||
print e
|
||||
sys.exit(1)
|
||||
except Exception, e:
|
||||
print '[ERROR] A strange exception occurred while loading the Stratus'
|
||||
|
|
|
@ -24,9 +24,9 @@
|
|||
find_package(VLSISAPD REQUIRED)
|
||||
find_package(HURRICANE REQUIRED)
|
||||
find_package(CORIOLIS REQUIRED)
|
||||
find_package(NIMBUS REQUIRED)
|
||||
find_package(METIS REQUIRED)
|
||||
find_package(MAUKA REQUIRED)
|
||||
#find_package(NIMBUS REQUIRED)
|
||||
#find_package(METIS REQUIRED)
|
||||
#find_package(MAUKA REQUIRED)
|
||||
find_package(ETESIAN REQUIRED)
|
||||
find_package(KNIK REQUIRED)
|
||||
find_package(KATABATIC REQUIRED)
|
||||
|
|
|
@ -55,14 +55,14 @@ using namespace Hurricane;
|
|||
#include "crlcore/DefExport.h"
|
||||
using namespace CRL;
|
||||
|
||||
#include "nimbus/NimbusEngine.h"
|
||||
using namespace Nimbus;
|
||||
// #include "nimbus/NimbusEngine.h"
|
||||
// using namespace Nimbus;
|
||||
|
||||
#include "metis/MetisEngine.h"
|
||||
using namespace Metis;
|
||||
// #include "metis/MetisEngine.h"
|
||||
// using namespace Metis;
|
||||
|
||||
#include "mauka/GraphicMaukaEngine.h"
|
||||
using namespace Mauka;
|
||||
// #include "mauka/GraphicMaukaEngine.h"
|
||||
// using namespace Mauka;
|
||||
|
||||
#include "etesian/GraphicEtesianEngine.h"
|
||||
using namespace Etesian;
|
||||
|
@ -327,7 +327,7 @@ int main ( int argc, char *argv[] )
|
|||
dbo_ptr<UnicornGui> unicorn ( UnicornGui::create() );
|
||||
unicorn->setApplicationName ( QObject::tr("cgt") );
|
||||
|
||||
unicorn->registerTool ( Mauka::GraphicMaukaEngine::grab() );
|
||||
//unicorn->registerTool ( Mauka::GraphicMaukaEngine::grab() );
|
||||
unicorn->registerTool ( Etesian::GraphicEtesianEngine::grab() );
|
||||
//unicorn->registerTool ( Knik::GraphicKnikEngine::grab() );
|
||||
unicorn->registerTool ( Kite::GraphicKiteEngine::grab() );
|
||||
|
@ -354,40 +354,40 @@ int main ( int argc, char *argv[] )
|
|||
if ( quadriPlace and annealingPlace )
|
||||
annealingPlace = false;
|
||||
|
||||
if ( not MetisEngine::isHMetisCapable() and quadriPlace ) {
|
||||
cerr << Warning("hMETIS is not avalaible, revert to simulated annealing.") << endl;
|
||||
// if ( not MetisEngine::isHMetisCapable() and quadriPlace ) {
|
||||
// cerr << Warning("hMETIS is not avalaible, revert to simulated annealing.") << endl;
|
||||
|
||||
annealingPlace = true;
|
||||
quadriPlace = false;
|
||||
}
|
||||
// annealingPlace = true;
|
||||
// quadriPlace = false;
|
||||
// }
|
||||
|
||||
bool runMaukaTool = quadriPlace or annealingPlace;
|
||||
// bool runMaukaTool = quadriPlace or annealingPlace;
|
||||
|
||||
if ( runMaukaTool ) {
|
||||
NimbusEngine* nimbus = NULL;
|
||||
MetisEngine* metis = NULL;
|
||||
MaukaEngine* mauka = NULL;
|
||||
// if ( runMaukaTool ) {
|
||||
// NimbusEngine* nimbus = NULL;
|
||||
// MetisEngine* metis = NULL;
|
||||
// MaukaEngine* mauka = NULL;
|
||||
|
||||
nimbus = NimbusEngine::create ( cell );
|
||||
if ( showConf ) nimbus->printConfiguration();
|
||||
// nimbus = NimbusEngine::create ( cell );
|
||||
// if ( showConf ) nimbus->printConfiguration();
|
||||
|
||||
if ( annealingPlace ) {
|
||||
Cfg::getParamPercentage("mauka.standardAnnealing")->setBool ( true );
|
||||
}
|
||||
// if ( annealingPlace ) {
|
||||
// Cfg::getParamPercentage("mauka.standardAnnealing")->setBool ( true );
|
||||
// }
|
||||
|
||||
if ( quadriPlace ) {
|
||||
metis = MetisEngine::create ( cell );
|
||||
if ( showConf ) metis->printConfiguration();
|
||||
// if ( quadriPlace ) {
|
||||
// metis = MetisEngine::create ( cell );
|
||||
// if ( showConf ) metis->printConfiguration();
|
||||
|
||||
MetisEngine::doQuadriPart ( cell );
|
||||
MaukaEngine::regroupOverloadedGCells ( cell );
|
||||
}
|
||||
// MetisEngine::doQuadriPart ( cell );
|
||||
// MaukaEngine::regroupOverloadedGCells ( cell );
|
||||
// }
|
||||
|
||||
mauka = MaukaEngine::create ( cell );
|
||||
if ( showConf ) mauka->printConfiguration();
|
||||
// mauka = MaukaEngine::create ( cell );
|
||||
// if ( showConf ) mauka->printConfiguration();
|
||||
|
||||
mauka->Run ();
|
||||
}
|
||||
// mauka->Run ();
|
||||
// }
|
||||
|
||||
if ( detailedRoute and not (loadGlobal or globalRoute) ) globalRoute = true;
|
||||
|
||||
|
|
|
@ -8,9 +8,6 @@ try:
|
|||
import Hurricane
|
||||
import Viewer
|
||||
import CRL
|
||||
import Nimbus
|
||||
import Metis
|
||||
import Mauka
|
||||
import Etesian
|
||||
import Katabatic
|
||||
import Kite
|
||||
|
@ -102,9 +99,7 @@ if __name__ == '__main__':
|
|||
parser.add_option( '-L', '--log-mode' , action='store_true', dest='logMode' , help='Disable ANSI escape sequences in console output.')
|
||||
parser.add_option( '-t', '--text' , action='store_true', dest='textMode' , help='Run in command line mode.')
|
||||
parser.add_option( '-m', '--margin' , type='float' , dest='margin' , help='Percentage of free area to add to the minimal placement area.')
|
||||
parser.add_option( '-Q', '--quadri-place' , action='store_true', dest='quadPlace' , help='Performs a quadri-partitionnement as first placement stage.')
|
||||
parser.add_option( '-P', '--annealing' , action='store_true', dest='annealingPlace' , help='Place using simulated annealing.')
|
||||
parser.add_option( '--min-psize' , type='int' , dest='minPSize' , help='Sets the size of a leaf partition (quadripartition stage).')
|
||||
parser.add_option( '-P', '--place' , action='store_true', dest='place' , help='Run the analytical placer (Etesian).')
|
||||
parser.add_option( '-G', '--global-route' , action='store_true', dest='globalRoute' , help='Run the global router (Knik).')
|
||||
parser.add_option( '-g', '--load-global' , action='store_true', dest='loadGlobal' , help='Reload a global routing from disk.')
|
||||
parser.add_option( '--save-global' , action='store_true', dest='saveGlobal' , help='Save the global routing solution.')
|
||||
|
@ -132,7 +127,7 @@ if __name__ == '__main__':
|
|||
if options.bug: Cfg.getParamBool ('misc.bug' ).setBool(True)
|
||||
if options.logMode: Cfg.getParamBool ('misc.logMode' ).setBool(True)
|
||||
if options.showConf: Cfg.getParamBool ('misc.showConf' ).setBool(True)
|
||||
if options.margin: Cfg.getParamPercentage('nimbus.spaceMargin').setPercentage(options.margin)
|
||||
if options.margin: Cfg.getParamPercentage('etesian.spaceMargin').setPercentage(options.margin)
|
||||
if options.minPSize: Cfg.getParamInt ('metis.numberOfInstancesStopCriterion').setInt(options.minPSize)
|
||||
if options.hTracksLocal: Cfg.getParamInt ('kite.hTracksReservedLocal').setInt(options.hTracksLocal)
|
||||
if options.vTracksLocal: Cfg.getParamInt ('kite.vTracksReservedLocal').setInt(options.vTracksLocal)
|
||||
|
@ -156,12 +151,11 @@ if __name__ == '__main__':
|
|||
elif options.cell:
|
||||
cell = af.getCell(options.cell, CRL.Catalog.State.Views)
|
||||
else:
|
||||
quadPlace = False
|
||||
annealingPlace = False
|
||||
loadGlobal = False
|
||||
saveGlobal = False
|
||||
globalRoute = False
|
||||
detailRoute = False
|
||||
place = False
|
||||
loadGlobal = False
|
||||
saveGlobal = False
|
||||
globalRoute = False
|
||||
detailRoute = False
|
||||
|
||||
if not options.textMode:
|
||||
# Run in graphic mode.
|
||||
|
@ -170,7 +164,6 @@ if __name__ == '__main__':
|
|||
|
||||
unicorn = Unicorn.UnicornGui.create()
|
||||
unicorn.setApplicationName ('cgt')
|
||||
unicorn.registerTool (Mauka.GraphicMaukaEngine.grab())
|
||||
unicorn.registerTool (Etesian.GraphicEtesianEngine.grab())
|
||||
unicorn.registerTool (Kite.GraphicKiteEngine.grab())
|
||||
#unicorn.setAnonNetSelectable(False)
|
||||
|
@ -192,32 +185,12 @@ if __name__ == '__main__':
|
|||
# Run in command line mode.
|
||||
kiteSuccess = False
|
||||
|
||||
if quadPlace or annealingPlace:
|
||||
loadGlobal = False
|
||||
globalRoute = True
|
||||
if quadPlace and annealingPlace:
|
||||
annealingPlace = False
|
||||
runEtesianTool = place
|
||||
|
||||
runMaukaTool = quadPlace or annealingPlace
|
||||
|
||||
if runMaukaTool:
|
||||
nimbus = Nimbus.NimbusEngine.create(cell)
|
||||
if options.showConf: nimbus.printConfiguration()
|
||||
|
||||
if annealingPlace:
|
||||
Cfg.getParamPercentage('mauka.standardAnnealing').setBool(True);
|
||||
|
||||
if quadPlace:
|
||||
metis = Metis.MetisEngine.create(cell)
|
||||
if options.showConf: metis.printConfiguration()
|
||||
|
||||
Metis.MetisEngine.doQuadriPart(cell)
|
||||
Mauka.MaukaEngine.regroupOverloadedGCells(cell)
|
||||
|
||||
mauka = Mauka.MaukaEngine.create(cell)
|
||||
if options.showConf: mauka.printConfiguration()
|
||||
|
||||
mauka.run()
|
||||
if runEtesianTool:
|
||||
etesian = Nimbus.NimbusEngine.create(cell)
|
||||
#if options.showConf: etesian.printConfiguration()
|
||||
etesian.run()
|
||||
|
||||
if detailRoute and not (loadGlobal or globalRoute): globalRoute = True
|
||||
runKiteTool = loadGlobal or globalRoute or detailRoute
|
||||
|
|
Loading…
Reference in New Issue