Enable P&R command line options in graphic mode

This commit is contained in:
Gabriel Gouvine 2023-06-04 13:18:20 +02:00
parent 26184c5016
commit 2ea099afec
1 changed files with 41 additions and 42 deletions

View File

@ -191,54 +191,53 @@ if __name__ == '__main__':
unicorn.setLayerVisible ("text.instance" , False); unicorn.setLayerVisible ("text.instance" , False);
unicorn.setLayerVisible ("text.component", False); unicorn.setLayerVisible ("text.component", False);
if options.script: if options.script:
runScript(options.script,unicorn) runScript(options.script,unicorn)
# Run in command line mode.
if options.script: runScript(options.script,None)
kiteSuccess = True
if runEtesianTool:
etesian = Etesian.EtesianEngine.create(cell)
#if options.showConf: etesian.printConfiguration()
etesian.place()
if detailRoute and not (loadGlobal or globalRoute): globalRoute = True
runKiteTool = loadGlobal or globalRoute or detailRoute
if useKatana and runKiteTool:
runKiteTool = False
katana = Katana.KatanaEngine.create( cell )
#katana.printConfiguration ()
katana.digitalInit ()
#katana.runNegociatePreRouted()
katana.runGlobalRouter ( Katana.Flags.NoFlags )
katana.loadGlobalRouting ( Anabatic.EngineLoadGrByNet )
katana.layerAssign ( Anabatic.EngineNoNetLayerAssign )
katana.runNegociate ( Katana.Flags.NoFlags )
kiteSuccess = katana.isDetailedRoutingSuccess()
#katana.finalizeLayout()
katana.destroy()
if options.saveDesign:
views = CRL.Catalog.State.Physical
if options.vstUseConcat: views |= CRL.Catalog.State.VstUseConcat
if options.saveDesign != cell.getName():
cell.setName(options.saveDesign)
views |= CRL.Catalog.State.Logical
af.saveCell(cell, views)
if not options.textMode:
setCgtBanner(unicorn.getBanner()) setCgtBanner(unicorn.getBanner())
#print( unicorn.getBanner() )
#print( credits() )
if cell: unicorn.setCell(cell) if cell: unicorn.setCell(cell)
unicorn.show() unicorn.show()
ha.qtExec() ha.qtExec()
else: else:
# Run in command line mode. sys.exit(not kiteSuccess)
if options.script: runScript(options.script,None)
kiteSuccess = True
if runEtesianTool:
etesian = Etesian.EtesianEngine.create(cell)
#if options.showConf: etesian.printConfiguration()
etesian.place()
if detailRoute and not (loadGlobal or globalRoute): globalRoute = True
runKiteTool = loadGlobal or globalRoute or detailRoute
if useKatana and runKiteTool:
runKiteTool = False
katana = Katana.KatanaEngine.create( cell )
#katana.printConfiguration ()
katana.digitalInit ()
#katana.runNegociatePreRouted()
katana.runGlobalRouter ( Katana.Flags.NoFlags )
katana.loadGlobalRouting ( Anabatic.EngineLoadGrByNet )
katana.layerAssign ( Anabatic.EngineNoNetLayerAssign )
katana.runNegociate ( Katana.Flags.NoFlags )
kiteSuccess = katana.isDetailedRoutingSuccess()
#katana.finalizeLayout()
katana.destroy()
if options.saveDesign:
views = CRL.Catalog.State.Physical
if options.vstUseConcat: views |= CRL.Catalog.State.VstUseConcat
if options.saveDesign != cell.getName():
cell.setName(options.saveDesign)
views |= CRL.Catalog.State.Logical
af.saveCell(cell, views)
sys.exit(not kiteSuccess)
except Exception as e: except Exception as e:
helpers.io.showPythonTrace( sys.argv[0], e ) helpers.io.showPythonTrace( sys.argv[0], e )