Source code for hwtLib.examples.errors.multipleDriversOfChildNet
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from hwt.hwIOs.std import HwIODataRdVld
from hwt.hwModule import HwModule
from hwt.pyUtils.typingFuture import override
[docs]
class ExampleChild(HwModule):
@override
def hwDeclr(self):
self.c = HwIODataRdVld()
self.d = HwIODataRdVld()._m()
@override
def hwImpl(self):
self.d(self.c)
[docs]
class MultipleDriversOfChildNet(HwModule):
@override
def hwDeclr(self):
self.a = HwIODataRdVld()
self.b = HwIODataRdVld()._m()
self.ch = ExampleChild()
@override
def hwImpl(self):
# interface directions in collision
self.ch.d(self.a)
self.ch.c.data(1)
self.ch.c.vld(1)
self.b(self.ch.c)
[docs]
class MultipleDriversOfChildNet2(MultipleDriversOfChildNet):
@override
def hwImpl(self):
self.ch.c(self.a)
self.b(self.ch.d)
# another colliding driver for b.vld
self.b.vld(1)
if __name__ == "__main__":
from hwt.synth import to_rtl_str
m = MultipleDriversOfChildNet()
# hwt.serializer.exceptions.SerializerException
print(to_rtl_str(m))