ioNet used as "enable" should not get the name of the pad.

* Bug: In Cumulus/plugins/core2chip/CoreToChip.py, when creating the ioNet
    objects, when a signal is an enable we must not set the external chip
    net (the name for the PAD terminal) as it may be set later if it is
    also used as an individual pad.
This commit is contained in:
Jean-Paul Chaput 2019-08-09 18:45:19 +02:00
parent 15cd9187de
commit 70a3960ba5
4 changed files with 8 additions and 10 deletions

View File

@ -7,7 +7,7 @@
set ( pyPlugins ${CMAKE_CURRENT_SOURCE_DIR}/plugins/__init__.py set ( pyPlugins ${CMAKE_CURRENT_SOURCE_DIR}/plugins/__init__.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/ClockTreePlugin.py ${CMAKE_CURRENT_SOURCE_DIR}/plugins/ClockTreePlugin.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/CoreToChip_cmos.py ${CMAKE_CURRENT_SOURCE_DIR}/plugins/CoreToChip_cmos.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/CoreToChip_c35b4.py #${CMAKE_CURRENT_SOURCE_DIR}/plugins/CoreToChip_c35b4.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/ChipPlace.py ${CMAKE_CURRENT_SOURCE_DIR}/plugins/ChipPlace.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/ChipRoute.py ${CMAKE_CURRENT_SOURCE_DIR}/plugins/ChipRoute.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/RSavePlugin.py ${CMAKE_CURRENT_SOURCE_DIR}/plugins/RSavePlugin.py
@ -22,7 +22,7 @@
set ( pyPluginC2C ${CMAKE_CURRENT_SOURCE_DIR}/plugins/core2chip/__init__.py set ( pyPluginC2C ${CMAKE_CURRENT_SOURCE_DIR}/plugins/core2chip/__init__.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/core2chip/CoreToChip.py ${CMAKE_CURRENT_SOURCE_DIR}/plugins/core2chip/CoreToChip.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/core2chip/cmos.py ${CMAKE_CURRENT_SOURCE_DIR}/plugins/core2chip/cmos.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/core2chip/c35b4.py #${CMAKE_CURRENT_SOURCE_DIR}/plugins/core2chip/c35b4.py
) )
set ( pyPluginChip ${CMAKE_CURRENT_SOURCE_DIR}/plugins/chip/__init__.py set ( pyPluginChip ${CMAKE_CURRENT_SOURCE_DIR}/plugins/chip/__init__.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/chip/Configuration.py ${CMAKE_CURRENT_SOURCE_DIR}/plugins/chip/Configuration.py

View File

@ -100,6 +100,7 @@ class HTree ( object ):
if self.minSide < DbU.fromLambda(100.0): if self.minSide < DbU.fromLambda(100.0):
raise ErrorMessage( 3, 'ClockTree: clockTree.minimumSide (%g) is less than 100 lambda.' \ raise ErrorMessage( 3, 'ClockTree: clockTree.minimumSide (%g) is less than 100 lambda.' \
% DbU.toLambda(self.minSide) ) % DbU.toLambda(self.minSide) )
print ' - Minimum side for clock area: %sl' % DbU.toLambda(self.minSide)
UpdateSession.open() UpdateSession.open()
self.framework = CRL.AllianceFramework.get() self.framework = CRL.AllianceFramework.get()

View File

@ -112,8 +112,6 @@ class IoNet ( object ):
return return
def buildNets ( self, context=DoExtNet ): def buildNets ( self, context=DoExtNet ):
print 'context:', context
netType = Net.Type.LOGICAL netType = Net.Type.LOGICAL
if self.coreNet.isPower (): netType = Net.Type.POWER if self.coreNet.isPower (): netType = Net.Type.POWER
if self.coreNet.isGround(): netType = Net.Type.GROUND if self.coreNet.isGround(): netType = Net.Type.GROUND
@ -143,7 +141,6 @@ class IoNet ( object ):
self.chipExtNet = Net.create( self.coreToChip.chip, self.padNetName ) self.chipExtNet = Net.create( self.coreToChip.chip, self.padNetName )
self.chipExtNet.setExternal ( True ) self.chipExtNet.setExternal ( True )
self.chipExtNet.setDirection( self.coreNet.getDirection() ) self.chipExtNet.setDirection( self.coreNet.getDirection() )
print 'PAD ', self.chipExtNet
return return
@ -218,7 +215,6 @@ class IoPad ( object ):
enableNet = None enableNet = None
for ioNet in self.nets: for ioNet in self.nets:
print 'BEFORE ', ioNet, ioNet.coreNet
context = 0 context = 0
if self.direction == IoPad.TRI_OUT: if self.direction == IoPad.TRI_OUT:
@ -238,7 +234,6 @@ class IoPad ( object ):
fromCoreNet = ioNet fromCoreNet = ioNet
ioNet.buildNets( context ) ioNet.buildNets( context )
print ioNet, context
if not self.coreToChip.ioPadInfos.has_key(self.direction): if not self.coreToChip.ioPadInfos.has_key(self.direction):
raise ErrorMessage( 1, 'IoPad.createPad(): Unsupported direction %d (%s) for pad "%s".' \ raise ErrorMessage( 1, 'IoPad.createPad(): Unsupported direction %d (%s) for pad "%s".' \
@ -399,13 +394,15 @@ class CoreToChip ( object ):
if not coreNet: if not coreNet:
raise ErrorMessage( 1, 'CoreToChip.buildChip(): "%s" doesn\'t have a "%s" net.' raise ErrorMessage( 1, 'CoreToChip.buildChip(): "%s" doesn\'t have a "%s" net.'
% (self.core.getName(),netName) ) % (self.core.getName(),netName) )
ioNet = self.getIoNet( coreNet ) ioNet = self.getIoNet( coreNet )
ioNet.padNetName = padConf.padNetName
if padConf.isBidir() or padConf.isTristate(): if padConf.isBidir() or padConf.isTristate():
if coreNet.getName() == padConf.enableNet: if coreNet.getName() == padConf.enableNet:
ioNet.setEnable( True ) ioNet.setEnable( True )
if not ioNet.isEnable():
ioNet.padNetName = padConf.padNetName
padConf.udata.addNet( ioNet ) padConf.udata.addNet( ioNet )
ioPads.append( padConf ) ioPads.append( padConf )

View File

@ -358,7 +358,7 @@ string Contact::_getString() const
s.insert(s.length() - 1, " [" + DbU::getValueString(getX())); s.insert(s.length() - 1, " [" + DbU::getValueString(getX()));
s.insert(s.length() - 1, " " + DbU::getValueString(getY())); s.insert(s.length() - 1, " " + DbU::getValueString(getY()));
s.insert(s.length() - 1, "] " + DbU::getValueString(_width)); s.insert(s.length() - 1, "] " + DbU::getValueString(_width));
s.insert(s.length() - 1, "x" + DbU::getValueString(_height)); s.insert(s.length() - 1, " x " + DbU::getValueString(_height));
return s; return s;
} }