我想做一个列表中的信号总和,自然我使用了变量和 for(就像我在 VHDL 中一样):
@always_comb
def sum():
sum = 0
for i in range(len(summands)):
sum = sum + summands[i]
product.next = sum
问题是这将使用整数(在 VHDL 中)作为 sum 变量,这在 sum 的宽度超过 32 位时没有多大用处。
所以我试着做这样的事情:
@always_comb
def sum():
sum = intbv(0, min=vmin, max=vmax)
for i in range(len(summands)):
sum = sum + summands[i]
product.next = sum
我收到以下错误(在转换期间):
Type mismatch with earlier assignment: sum
我不明白如何解决。我猜它以整数形式获得 intbv 的值,因此是不同的类型。
感谢您的任何建议