[myhdl-list] AttributeError: '_ConvertFunctionVisitor' object has no attribute 'funcBuf'
Brought to you by:
jandecaluwe
|
From: Neal B. <ndb...@gm...> - 2009-03-04 18:20:52
|
Translating to verilog produced the above error. This is basically the
code.
def maxval (bits):
return ~(-1 << (bits-1))
def minval (bits):
return (-1 << (bits-1))
def sat_rnd (x, bits, outbits):
y1 = x >> (bits-1)
y2 = y1 + 1
y3 = y2 >> 1
if (y3 > maxval (outbits)):
return maxval (outbits)
elif (y3 < minval (outbits)):
return minval (outbits)
else:
return y3
def Counter (count, clock, en, n, reset):
@always (clock.posedge, reset.posedge)
def cntLogic():
if reset == 1:
count.next = 0
elif en:
if count == n-1:
count.next = 0
else:
count.next = count + 1
# print "count:", count
return cntLogic
def accum (x, result, count, clock, en, n, reset):
def log2 (x):
"positive only!"
cnt = 0
while (x != 0):
x >>= 1
cnt += 1
return cnt-1
sumbits = log2 (n) + len (result)
_sum = Signal (intbv(0)[sumbits:])
@always (clock.posedge, reset.posedge)
def accum_logic():
if reset == 1:
_sum.next = 0
result.next = 0
elif en:
_sum.next = _sum + x
if count == n-1:
##print 'count:', count, 'sum:', _sum
result.next = sat_rnd (_sum, log2 (n), len (result))
_sum.next = 0
return accum_logic
def Decimator (clock, en, x, n, count, result, reset):
cnt1 = Counter (count, clock, en, n, reset)
acc1 = accum (x, result, count, clock, en, n, reset)
return cnt1, acc1
Traceback (most recent call last):
File "test3.py", line 163, in <module>
verilog()
File "test3.py", line 150, in verilog
toVerilog (Decimator, clock, en, x, n, count, result, reset)
File "/usr/lib/python2.5/site-packages/myhdl/conversion/_toVerilog.py",
line 122, in __call__
_convertGens(genlist, vfile)
File "/usr/lib/python2.5/site-packages/myhdl/conversion/_toVerilog.py",
line 313, in _convertGens
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/lib/python2.5/site-packages/myhdl/conversion/_toVerilog.py",
line 841, in visitModule
self.visit(stmt)
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/_toVerilog.py",
line 1134, in visitFunction
self.visit(node.code)
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/_toVerilog.py",
line 989, in visitStmt
self.visit(stmt)
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/_toVerilog.py",
line 776, in visitIf
self.mapToIf(node, *args)
File "/usr/lib/python2.5/site-packages/myhdl/conversion/_toVerilog.py",
line 823, in mapToIf
self.visit(suite)
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/_toVerilog.py",
line 989, in visitStmt
self.visit(stmt)
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/_toVerilog.py",
line 776, in visitIf
self.mapToIf(node, *args)
File "/usr/lib/python2.5/site-packages/myhdl/conversion/_toVerilog.py",
line 823, in mapToIf
self.visit(suite)
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/_toVerilog.py",
line 989, in visitStmt
self.visit(stmt)
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/_toVerilog.py",
line 541, in visitAssign
self.visit(node.expr)
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/_toVerilog.py",
line 646, in visitCallFunc
compiler.walk(node.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/lib/python2.5/site-packages/myhdl/conversion/_toVerilog.py",
line 841, in visitModule
self.visit(stmt)
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/_toVerilog.py",
line 1168, in visitFunction
self.visit(node.code)
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/_toVerilog.py",
line 989, in visitStmt
self.visit(stmt)
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/_toVerilog.py",
line 776, in visitIf
self.mapToIf(node, *args)
File "/usr/lib/python2.5/site-packages/myhdl/conversion/_toVerilog.py",
line 820, in mapToIf
self.visit(test)
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/_toVerilog.py",
line 656, in visitCompare
self.visit(code, context)
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/_toVerilog.py",
line 645, in visitCallFunc
v = Visitor(node.ast, self.funcBuf)
AttributeError: '_ConvertFunctionVisitor' object has no attribute 'funcBuf'
|