Пожалуйста, у меня проблемы с манипуляциями с арифметическими операциями с дублями в долоте. Я видел примеры, в которых используются только следующие типы: Int, UInt, SInt. Я видел здесь, что арифметические операции описаны только для SInt и UInt. А как насчет Double? Я попытался объявить свой вывод как Double, но не знал, как это сделать. Поскольку вывод моего кода - Double. Есть ли способ объявить в Bundle вход и выход типа Double?
Вот мой код:
class hashfunc(val k:Int, val n: Int ) extends Module {
val a = k + k
val io = IO(new Bundle {
val b=Input(UInt(k.W))
val w=Input(UInt(k.W))
var out = Output(UInt(a.W))
})
val tabHash1 = new Array[Array[Double]](n)
val x = new ArrayBuffer[(Double, Data)]
val tabHash = new Array[Double](tabHash1.size)
for (ind <- tabHash1.indices){
var sum=0.0
for (ind2 <- 0 until x.size){
sum += ( x(ind2) * tabHash1(ind)(ind2) )
}
tabHash(ind) = ((sum + io.b) / io.w)
}
io.out := tabHash.reduce(_ + _)
}
При компиляции кода я получаю следующую ошибку: ошибка кода
Спасибо за внимание, с нетерпением жду ваших отзывов.
verilog
? - person Serge   schedule 26.08.2017