[myhdl-list] not supported, extra positional arguments
Brought to you by:
jandecaluwe
From: Neal B. <ndb...@gm...> - 2009-03-04 20:30:09
|
BTW, all I'm trying to do here is declare a signed number the same size as the one passed in. Is there an easier way? This is OK: def sat_rnd (x, bits, outbits, output): @always_comb def sat_rnd_logic(): y1 = intbv (int (x >> (bits-1)), min_signed (len (x)), max_signed (len (x))) y2 = intbv (int (y1 + 1), min_signed (len (x)), max_signed (len (x))) y3 = intbv (int (y2 >> 1), min_signed (len (x)), max_signed (len (x))) if (y3 > max_signed (outbits)): output.next = max_signed (outbits) elif (y3 < min_signed (outbits)): output.next = min_signed (outbits) else: output.next = y3 return sat_rnd_logic But this is not: def sat_rnd (x, bits, outbits, output): @always_comb def sat_rnd_logic(): y1 = intbv (int (x >> (bits-1)), *extrema_signed (len (x))) y2 = intbv (int (y1 + 1), *extrema_signed (len (x))) y3 = intbv (int (y2 >> 1), *extrema_signed (len (x))) if (y3 > max_signed (outbits)): output.next = max_signed (outbits) elif (y3 < min_signed (outbits)): output.next = min_signed (outbits) else: output.next = y3 return sat_rnd_logic python test3.py Traceback (most recent call last): File "test3.py", line 174, in <module> verilog() File "test3.py", line 161, in verilog toVerilog (Decimator, clock, en, x, log2_n, count, result, reset) File "/usr/lib/python2.5/site-packages/myhdl/conversion/_toVerilog.py", line 115, in __call__ genlist = _analyzeGens(arglist, h.absnames) File "/usr/lib/python2.5/site-packages/myhdl/conversion/_analyze.py", line 155, in _analyzeGens compiler.walk(ast, v) File "/usr/lib64/python2.5/compiler/visitor.py", line 106, in walk walker.preorder(tree, visitor) File "/usr/lib64/python2.5/compiler/visitor.py", line 63, in preorder self.dispatch(tree, *args) # XXX *args make sense? File "/usr/lib64/python2.5/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib64/python2.5/compiler/visitor.py", line 40, in default self.dispatch(child, *args) File "/usr/lib64/python2.5/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib64/python2.5/compiler/visitor.py", line 40, in default self.dispatch(child, *args) File "/usr/lib64/python2.5/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib/python2.5/site-packages/myhdl/conversion/_analyze.py", line 261, in visitFunction self.visitChildNodes(node, *args) File "/usr/lib/python2.5/site-packages/myhdl/conversion/_misc.py", line 137, in visitChildNodes self.visit(n, *args) File "/usr/lib64/python2.5/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib64/python2.5/compiler/visitor.py", line 40, in default self.dispatch(child, *args) File "/usr/lib64/python2.5/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib/python2.5/site-packages/myhdl/conversion/_analyze.py", line 240, in visitAssign self.visit(node.expr, *args) File "/usr/lib64/python2.5/compiler/visitor.py", line 57, in dispatch return meth(node, *args) File "/usr/lib/python2.5/site-packages/myhdl/conversion/_analyze.py", line 244, in visitCallFunc self.raiseError(node, _error.NotSupported, "extra positional arguments") File "/usr/lib/python2.5/site-packages/myhdl/conversion/_misc.py", line 128, in raiseError raise ConversionError(kind, msg, info) |