- Prefix for HCL objects needs to be specific so it is more easy to automatically update code after library updates
- visually separation of normal Python objects and HCL
- simplifies search in code
- type property name is too long
._dtype -> ._ht
def tv(signal):
return signal._dtype.getConstCls()
class RtlSignalOps():
def __invert__(self):
return self.naryOp(AllOps.NOT, tv(self).__invert__)
# currently the const class contains code also for signal/variable operator
class BitsConst:
def __invert__(self):
if isinstance(self, HConst):
return Bits3val.__invert__(self)
else:
...
flatten to parent:
- move constants from hwt.synthesizer.rtlLevel.constants, hwt.hdl.constants to hwt.constants
- hwt.synthesizer.interfaceLevel.interfaceUtils
- hwt.synthesizer.rtlLevel.signalUtils
- walkers -> rtlSignalWalkers
- ops -> rtlSignalOps
- hwt.synthesizer.hObjList -> hwt.hObjList
Names of signal, interface or component
.name->._name- logical name, name from user description._name->._hdlName- physical name, full name with resolved name collisions etc.Backward type reference of signals and constant
._dtype->._htflatten to parent: