Попытка понять, как реализовать регистр чтения-очистки в долоте, используя механизм 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)))
       )
  )    

хотя я могу прочитать реестр, я не могу его очистить. Я не нашел четкого примера для этого в репо с ракетным чипом. Любая помощь будет оценена.

0 ответов

Другие вопросы по тегам