hdl.xfrm: add SampleLowerer.

This commit is contained in:
whitequark 2019-01-17 01:41:02 +00:00
parent b3de114d67
commit 198efcad31
4 changed files with 110 additions and 13 deletions

View file

@ -74,6 +74,15 @@ normalize = Const.normalize
class _ValueCompiler(ValueVisitor):
def on_AnyConst(self, value):
raise NotImplementedError # :nocov:
def on_AnySeq(self, value):
raise NotImplementedError # :nocov:
def on_Sample(self, value):
raise NotImplementedError # :nocov:
def on_Record(self, value):
return self(Cat(value.fields.values()))
@ -87,12 +96,6 @@ class _RHSValueCompiler(_ValueCompiler):
def on_Const(self, value):
return lambda state: value.value
def on_AnyConst(self, value):
raise NotImplementedError # :nocov:
def on_AnySeq(self, value):
raise NotImplementedError # :nocov:
def on_Signal(self, value):
if self.sensitivity is not None:
self.sensitivity.add(value)
@ -225,12 +228,6 @@ class _LHSValueCompiler(_ValueCompiler):
def on_Const(self, value):
raise TypeError # :nocov:
def on_AnyConst(self, value):
raise TypeError # :nocov:
def on_AnySeq(self, value):
raise TypeError # :nocov:
def on_Signal(self, value):
shape = value.shape()
value_slot = self.signal_slots[value]

View file

@ -308,6 +308,9 @@ class _ValueCompiler(xfrm.ValueVisitor):
def on_ResetSignal(self, value):
raise NotImplementedError # :nocov:
def on_Sample(self, value):
raise NotImplementedError # :nocov:
def on_Record(self, value):
return self(ast.Cat(value.fields.values()))