compat.fhdl.specials: fix Tristate, TSTriple.

* fix TSTriple instance.
* TSTriple, Tristate: tag as Elaboratable
This commit is contained in:
Alain Péteut 2019-04-22 11:57:12 +02:00 committed by whitequark
parent 371dc8bebe
commit c8e92c0612

View file

@ -2,6 +2,7 @@ import warnings
from ...tools import deprecated, extend from ...tools import deprecated, extend
from ...hdl.ast import * from ...hdl.ast import *
from ...hdl.ir import Elaboratable
from ...hdl.mem import Memory as NativeMemory from ...hdl.mem import Memory as NativeMemory
from ...hdl.ir import Fragment, Instance from ...hdl.ir import Fragment, Instance
from .module import Module as CompatModule from .module import Module as CompatModule
@ -10,7 +11,7 @@ from .module import Module as CompatModule
__all__ = ["TSTriple", "Instance", "Memory", "READ_FIRST", "WRITE_FIRST", "NO_CHANGE"] __all__ = ["TSTriple", "Instance", "Memory", "READ_FIRST", "WRITE_FIRST", "NO_CHANGE"]
class TSTriple: class TSTriple(Elaboratable):
def __init__(self, bits_sign=None, min=None, max=None, reset_o=0, reset_oe=0, reset_i=0, def __init__(self, bits_sign=None, min=None, max=None, reset_o=0, reset_oe=0, reset_i=0,
name=None): name=None):
self.o = Signal(bits_sign, min=min, max=max, reset=reset_o, self.o = Signal(bits_sign, min=min, max=max, reset=reset_o,
@ -30,7 +31,7 @@ class TSTriple:
return Tristate(io, self.o, self.oe, self.i) return Tristate(io, self.o, self.oe, self.i)
class Tristate: class Tristate(Elaboratable):
def __init__(self, target, o, oe, i=None): def __init__(self, target, o, oe, i=None):
self.target = target self.target = target
self.triple = TSTriple() self.triple = TSTriple()
@ -49,7 +50,7 @@ class Tristate:
p_WIDTH=len(self.target), p_WIDTH=len(self.target),
i_EN=self.triple.oe, i_EN=self.triple.oe,
i_A=self.triple.o, i_A=self.triple.o,
o_Y=self.io, o_Y=self.target,
) )
f = m.elaborate(platform) f = m.elaborate(platform)