coriolis/cumulus/src/plugins/core2chip_cmos.py

58 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
#
# This file is part of the Coriolis Software.
# Copyright (c) Sorbonne Université 2019-2021, All Rights Reserved
#
# +-----------------------------------------------------------------+
# | C O R I O L I S |
# | C u m u l u s - P y t h o n T o o l s |
# | |
# | Author : Jean-Paul CHAPUT |
# | E-mail : Jean-Paul.Chaput@lip6.fr |
# | =============================================================== |
# | Python : "./plugins/core2chip_cmos.py" |
# +-----------------------------------------------------------------+
import sys
import helpers
from helpers.io import ErrorMessage
from helpers.io import WarningMessage
import plugins
import plugins.core2chip.cmos
# --------------------------------------------------------------------
# Plugin hook functions, unicornHook:menus, ScritMain:call
def unicornHook ( **kw ):
kw['beforeAction'] = 'placeAndRoute.stepByStep'
#kw['beforeAction'] = 'placeAndRoute.clockTree'
plugins.kwAddMenu ( 'placeAndRoute' , 'P&&R', **kw )
plugins.kwAddMenu ( 'placeAndRoute.core2chip', 'Core To Chip', **kw )
plugins.kwUnicornHook( 'placeAndRoute.core2chip.cmos'
, 'Symbolic CMOS I/O pads'
, 'Wrap a complete chip around a Core for Alliance generic CMOS'
, sys.modules[__name__].__file__
, **kw
)
return
def scriptMain ( **kw ):
rvalue = True
try:
#helpers.setTraceLevel( 550 )
cell, editor = plugins.kwParseMain( **kw )
if not cell:
raise ErrorMessage( 1, 'CoreToChip_cmos.scriptMain(): No cell (core) loaded in the editor yet.' )
chip_cmos = plugins.core2chip.cmos.cmos( cell )
chip_cmos.buildChip()
if editor: editor.setCell( chip_cmos.chip )
except Exception as e:
helpers.io.catch( e )
rvalue = False
sys.stdout.flush()
sys.stderr.flush()
return rvalue