Попытка понять, как реализовать регистр чтения-очистки в долоте, используя механизм regmap-chip regmap
Я пытаюсь реализовать регистр состояния чтения и очистки в среде с микропроцессором, который обновляется HW, и программное обеспечение считывает его, чтобы получить статус HW. Также после считывания значение регистра очищается до тех пор, пока HW не изменит его снова. Я использовал механизм regmap и до сих пор получил следующий код, который не очищает регистр:
val FifoUnderFlow = Reg(init = Bool(false))
val fifo =Module(new AsyncQueue(UInt(width = c.bitwidth),c.depth,3,true,true))
// read attempt while not valid
when(!fifo.io.deq.valid & fifo.io.deq.ready) {
FifoUnderFlow := Bool(true)
}
regmap(
0x0 -> Seq(RegField(1, FifoUnderFlow, RegFieldDesc("fifo underflow","This Bit indicates that there
was at least one read attempt while empty",
access = RegFieldAccessType.R,
rdAction = Some(RegFieldRdAction.CLEAR)))
)
)
хотя я могу прочитать реестр, я не могу его очистить. Я не нашел четкого примера для этого в репо с ракетным чипом. Любая помощь будет оценена.