【发布时间】:2020-04-06 02:33:04
【问题描述】:
我正在尝试获取 UInt 向量中 Max 元素的索引。 我的代码是这样的
val pwr = Vec.tabulate(N) {i => energyMeters(i).io.pwr}
val maxPwr = pwr.indexOf(pwr.max)
但是这段代码会产生编译错误:
No implicit Ordering Defined for Chisel.UInt.
val maxPwr = pwr.indexOf(pwr.max)
^
我知道我可能需要实现 max 函数,有人可以举例说明应该如何完成吗?
编辑: 我也试过这个:
val pwr = Vec.tabulate(N) {i => energyMeters(i).io.pwr}
val maxPwr = pwr reduceLeft {(x,y) => Mux(x > y,x,y)}
val maxPwridx = pwr.indexOf(maxPwr)
但是当我尝试将 maxPwridx 转换为 UInt 时,它在详细说明中失败了。 我最终得到了这个解决方法:
val pwr = Vec.tabulate(N) {i => energyMeters(i).io.pwr}
val maxPwr = pwr reduceLeft {(x,y) => Mux(x > y,x,y)}
val maxPwridx = pwr.indexWhere((x : UInt => x === maxPwr))
【问题讨论】:
标签: chisel