我正试图在 Chisel 中找到 Verilog 幂运算符 ** 的等价物。我经历了Chisel Cheat sheet和 tutorial但我没有找到我要找的东西。在浏览了用 Chisel 编写的设计后,我发现 log2xx 函数是流行的选择,而从未使用过幂运算符。当然,我总是可以使用移位运算符来获得 2 的幂,但我希望 Chisel 中有通用的幂运算符。我尝试使用 scala 的数学函数来完成这项工作,但我遇到了编译错误。
最佳答案
由于您正在尝试计算在细化时间(即当 Scala 细化硬件图时)计算的位宽,我们可以使用 Scala 函数。 Scala 只提供了一个power function for Doubles ,但这对这种情况来说效果很好。尝试 math.pow(base, exp).toInt
,注意 base
和 exp
都可以是 Ints,Scala 会自动将它们转换为 Double用于函数调用。您只需将生成的 Double 转换为 Int 以用作位宽。
关于scala - Chisel 中的电源操作符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44149000/