Chisel3: Как создать регистр без сигнала сброса в RawModule?

#chisel

#chisel

Вопрос:

Я хочу создать RegNext в RawModule с помощью withClock. Однако он не может работать, пока информация об ошибке показывает, что отсутствует неявный сброс. Итак, я должен написать это так:

 class Test extends RawModule {
  ...
  val nothing = Wire(Bool())
  nothing := DontCare
  val a = withClockAndReset(io.ui_clk, nothing) {
    RegNext(~io.in)
  }
  ...
}
  

Есть ли какое-либо лучшее решение?

Ответ №1:

Вы можете немного сократить его, используя

 withClockAndReset(io.ui_clk, false.B)
  

но я не могу придумать, как сделать это иначе. withClock используется withClockAndReset внутренне, и это приводит к ошибке. Может быть, у кого-то другого есть ответ получше.

Комментарии:

1. Это ошибка, вы должны быть в состоянии сделать это без неявного сброса. Просто к сведению, RegNext с одним аргументом (например, RegNext(~io.in) , как указано выше) не выполняется сброс, независимо от того, что такое неявный сброс.

2. Я согласен @jkoenig, я отправлю проблему

3. Я создал отчет об ошибке как chisel3 выпуск 1041