[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)
|