Remove simulated annealing placer Nimbus/Metis/Mauka.

This commit is contained in:
Jean-Paul Chaput 2015-03-17 22:50:00 +01:00
parent 5dc60415e7
commit 393b5a735f
12 changed files with 78 additions and 103 deletions

View File

@ -14,9 +14,9 @@ projects = [ { 'name' : "importeds"
, "vlsisapd"
, "hurricane"
, "crlcore"
, "nimbus"
, "metis"
, "mauka"
#, "nimbus"
#, "metis"
#, "mauka"
, "etesian"
, "knik"
, "katabatic"

View File

@ -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)

View File

@ -6,7 +6,7 @@ import Cfg
from Hurricane import *
from helpers import ErrorMessage
import CRL
import Mauka
#import Mauka
#import Knik
#import Kite

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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'

View File

@ -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)

View File

@ -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;

View File

@ -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