From: whitequark Date: Wed, 12 Dec 2018 14:11:19 +0000 (+0000) Subject: compat.fhdl.bitcontainer: import/wrap Migen code. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cd1af7aa94c1411991af7f2b9011c99b3f6c61cc;p=nmigen.git compat.fhdl.bitcontainer: import/wrap Migen code. --- diff --git a/nmigen/compat/__init__.py b/nmigen/compat/__init__.py new file mode 100644 index 0000000..47014fa --- /dev/null +++ b/nmigen/compat/__init__.py @@ -0,0 +1,11 @@ +# from .fhdl.structure import * +# from .fhdl.module import * +# from .fhdl.specials import * +from .fhdl.bitcontainer import * +# from .fhdl.decorators import * +# from .fhdl.simplify import * + +# from .sim import * + +# from .genlib.record import * +# from .genlib.fsm import * diff --git a/nmigen/compat/fhdl/__init__.py b/nmigen/compat/fhdl/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/nmigen/compat/fhdl/bitcontainer.py b/nmigen/compat/fhdl/bitcontainer.py new file mode 100644 index 0000000..5b766ed --- /dev/null +++ b/nmigen/compat/fhdl/bitcontainer.py @@ -0,0 +1,21 @@ +from ... import tools +from ...fhdl import ast +from ...tools import deprecated + + +__all__ = ["log2_int", "bits_for", "value_bits_sign"] + + +@deprecated("instead of `log2_int`, use `nmigen.tools.log2_int`") +def log2_int(n, need_pow2=True): + return tools.log2_int(n, need_pow2) + + +@deprecated("instead of `bits_for`, use `nmigen.tools.bits_for`") +def bits_for(n, require_sign_bit=False): + return tools.bits_for(n, require_sign_bit) + + +@deprecated("instead of `value_bits_sign(v)`, use `v.bits_sign()`") +def value_bits_sign(v): + return ast.Value.wrap(v).bits_sign() diff --git a/nmigen/tools.py b/nmigen/tools.py index 4df7958..3a2b968 100644 --- a/nmigen/tools.py +++ b/nmigen/tools.py @@ -1,7 +1,9 @@ from collections import Iterable +import functools +import warnings -__all__ = ["flatten", "union", "log2_int", "bits_for"] +__all__ = ["flatten", "union", "log2_int", "bits_for", "deprecated"] def flatten(i): @@ -40,3 +42,13 @@ def bits_for(n, require_sign_bit=False): if require_sign_bit: r += 1 return r + + +def deprecated(message): + def decorator(f): + @functools.wraps(f) + def wrapper(*args, **kwargs): + warnings.warn(message, DeprecationWarning, stacklevel=2) + return f(*args, **kwargs) + return wrapper + return decorator