I am having trouble with the scala .getorElse command. I want to generate AVec at all times, but I only want AVec and BVec when elemA >= 50, and lastly, I want all of them to be generated when elemA >= 100. I have tried .get with no luck and below you can see the implementation with .getorElse.
Any advice on how to implement this correctly would be greatly appreciated. Thanks!
val AVec = Reg(Vec(10, Valid(Vec(10, UInt(8.W)))))
val BVec = if(elemA >= 50){
Some(Reg(Vec(11, Valid(Vec(11, UInt(8.W))))))
} else {
None
}
val CVec = if(elemA >= 100){
Some(Reg(Vec(12, Valid(Vec(12, UInt(8.W))))))
} else {
None
}
when(io.elemB.fire()){
when(io.elemC === 0.U){
AVec.map{_.valid := false.B}
}.elsewhen(io.elemC === 1.U){
AVec.map{_.valid := false.B}
BVec.getOrElse(AVec).map{_.valid := false.B}
}.otherwise{
AVec.map{_.valid := false.B}
BVec.getOrElse(AVec).map{_.valid := false.B}
CVec.getOrElse(CVec).map{_.valid := false.B} //<------Issues coming here
}
}