3

我试图在 Chisel 中找到相当于 Verilog 幂运算符 ** 的东西。我浏览了Chisel 备忘单教程,但没有找到我想要的东西。在浏览了用 Chisel 编写的设计后,我发现log2xx函数是流行的选择,而幂运算符从未使用过。当然,我总是可以使用移位运算符来获得 2 的幂,但我希望 Chisel 中有通用的幂运算符。我尝试使用 scala 的数学函数来完成这项工作,但出现编译错误。

4

1 回答 1

4

由于您正在尝试计算在精化时计算的位宽即,当 Scala 精化硬件图时),我们可以使用 Scala 函数。Scala 只为 Doubles 提供了一个幂函数,但在这种情况下效果很好。尝试一下math.pow(base, exp).toInt,注意baseandexp都可以是 Ints,Scala 会自动将它们转换为 Doubles 以进行函数调用。您只需将生成的 Double 转换为 Int 以用作位宽。

于 2017-05-24T17:08:19.477 回答