Skip to content

Commit

Permalink
back.rtlil: Generate $anyconst and $anyseq cells.
Browse files Browse the repository at this point in the history
  • Loading branch information
cr1901 authored and whitequark committed Jan 15, 2019
1 parent 77728c2 commit 655d02d
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions nmigen/back/rtlil.py
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,26 @@ def on_Const(self, value):
value_twos_compl = value.value & ((1 << value.nbits) - 1)
return "{}'{:0{}b}".format(value.nbits, value_twos_compl, value.nbits)

def on_AnyConst(self, value):
res_bits, res_sign = value.shape()
res = self.s.rtlil.wire(width=res_bits)
self.s.rtlil.cell("$anyconst", ports={
"\\Y": res,
}, params={
"Y_WIDTH": res_bits,
}, src=src(value.src_loc))
return res

def on_AnySeq(self, value):
res_bits, res_sign = value.shape()
res = self.s.rtlil.wire(width=res_bits)
self.s.rtlil.cell("$anyseq", ports={
"\\Y": res,
}, params={
"Y_WIDTH": res_bits,
}, src=src(value.src_loc))
return res

def on_Signal(self, value):
wire_curr, wire_next = self.s.resolve(value)
return wire_curr
Expand Down Expand Up @@ -503,6 +523,12 @@ 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_Operator(self, value):
raise TypeError # :nocov:

Expand Down

0 comments on commit 655d02d

Please sign in to comment.