from ..tools import flatten
from ..hdl.ast import *
+from ..hdl.ir import *
from ..hdl.xfrm import ValueVisitor, StatementVisitor
self._gtkw_file = gtkw_file
self._traces = traces
+ while not isinstance(self._fragment, Fragment):
+ self._fragment = self._fragment.get_fragment(platform=None)
+
@staticmethod
def _check_process(process):
if inspect.isgeneratorfunction(process):
--- /dev/null
+from .tools import *
+from ..hdl.ast import *
+from ..back.pysim import *
+from ..lib.cdc import *
+
+
+class MultiRegTestCase(FHDLTestCase):
+ def test_basic(self):
+ i = Signal()
+ o = Signal()
+ frag = MultiReg(i, o)
+ with Simulator(frag) as sim:
+ sim.add_clock(1e-6)
+ def process():
+ self.assertEqual((yield o), 0)
+ yield i.eq(1)
+ yield Tick()
+ self.assertEqual((yield o), 0)
+ yield Tick()
+ self.assertEqual((yield o), 0)
+ yield Tick()
+ self.assertEqual((yield o), 1)
+ sim.add_process(process)
+
+ def test_basic(self):
+ i = Signal(reset=1)
+ o = Signal()
+ frag = MultiReg(i, o, reset=1)
+ with Simulator(frag) as sim:
+ sim.add_clock(1e-6)
+ def process():
+ self.assertEqual((yield o), 1)
+ yield i.eq(0)
+ yield Tick()
+ self.assertEqual((yield o), 1)
+ yield Tick()
+ self.assertEqual((yield o), 1)
+ yield Tick()
+ self.assertEqual((yield o), 0)
+ sim.add_process(process)