58 lines
1.3 KiB
Python
58 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from Hurricane import DataBase
|
|
from Hurricane import UpdateSession
|
|
from Hurricane import DbU
|
|
from Hurricane import Box
|
|
import helpers
|
|
import helpers.io
|
|
from helpers import trace, u
|
|
|
|
helpers.setTraceLevel( 1000 )
|
|
|
|
import Analog
|
|
import ParamsMatrix
|
|
import oroshi
|
|
|
|
|
|
def checkCoherency ( device, bbMode ):
|
|
valid = True
|
|
message = 'ResistorSnake.checkCoherency():\n'
|
|
|
|
techno = DataBase.getDB().getTechnology()
|
|
rules = oroshi.getRules()
|
|
|
|
bends = device.getParameter( 'bends' )
|
|
if bends is None:
|
|
message += ' Missing "bends" parameter on %s' % str(device)
|
|
print message
|
|
return (False, message)
|
|
|
|
if not valid: return (False, message)
|
|
|
|
return (True, "")
|
|
|
|
|
|
def layout ( device, bbMode ):
|
|
|
|
trace( 100, ',+', '\tResistorSnake.layout() called.\n' )
|
|
|
|
paramsMatrix = ParamsMatrix.ParamsMatrix()
|
|
|
|
try:
|
|
bends = device.getParameter( 'bends' )
|
|
print 'bends = ', bends
|
|
|
|
device.setAbutmentBox( Box( u(0.0), u(0.0), u(10.0), u((bends.getValue()+1)*10.0)) )
|
|
|
|
paramsMatrix.setGlobalResistorParams( device.getAbutmentBox() )
|
|
trace( 100, '++' )
|
|
#paramsMatrix.trace()
|
|
|
|
except Exception, e:
|
|
helpers.io.catch( e )
|
|
|
|
trace( 100, '---' )
|
|
|
|
return paramsMatrix.getMatrix()
|