Мне нужен пример того, как параметризировать Вектор регистров в терминах битовой ширины и начальных значений, которые не равны '0' и различны для каждого регистра.
Мой вариант использования - это общий банк коэффициентов фильтра с некоторыми уникальными значениями сброса для каждого и, конечно же, возможностью переопределения значений.
Я подумал о чем-то вроде приведенного ниже кода (не совсем уверен, как написать итерацию, так что это своего рода псевдо):
class Coeffbank(bitWidth : UInt ,ncoeff : UInt, rstVal : Vec(SInt)) extends Module {
// how do iterate through the reset vector ?? //
val coeffs = Vec.fill(ncoeff) {Reg(init = SInt(rstVal(i),width = bitwidth))
}
Кроме того, при обновлении описанного выше (создание экземпляра этого модуля, как передать список значений сброса в список аргументов?
Надеюсь получить некоторую помощь о том, как правильно написать.