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
${CMAKE_CURRENT_SOURCE_DIR}/plugins/ClockTreePlugin.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/ChipRoute.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/RSavePlugin.py
@ -22,7 +22,7 @@
set ( pyPluginC2C ${CMAKE_CURRENT_SOURCE_DIR}/plugins/core2chip/__init__.py
${CMAKE_CURRENT_SOURCE_DIR}/plugins/core2chip/CoreToChip.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
${CMAKE_CURRENT_SOURCE_DIR}/plugins/chip/Configuration.py

View File

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

View File

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