Add support for using non-compat Elaboratable instances with compat.fhdl.verilog.convert and compat.run_simulation

Fixes #344
This commit is contained in:
Jacob Lifshay 2020-04-01 19:38:14 -07:00 committed by whitequark
parent 6e1145e2e7
commit 995f3a147b
3 changed files with 36 additions and 2 deletions

View file

@ -3,6 +3,7 @@ import inspect
from collections.abc import Iterable
from ...hdl.cd import ClockDomain
from ...back.pysim import *
from ...hdl.ir import Fragment
__all__ = ["run_simulation", "passive"]
@ -17,9 +18,12 @@ def run_simulation(fragment_or_module, generators, clocks={"sync": 10}, vcd_name
else:
fragment = fragment_or_module
fragment = Fragment.get(fragment, platform=None)
if not isinstance(generators, dict):
generators = {"sync": generators}
fragment.domains += ClockDomain("sync")
if "sync" not in fragment.domains:
fragment.add_domains(ClockDomain("sync"))
sim = Simulator(fragment)
for domain, period in clocks.items():