如何刷新 ChiselUtil 队列?

How to flush a ChiselUtil Queue?

ChiselUtil class 中有一个队列,手册中将其描述为:

// Generic hardware queue. Required
// parameter entries controls the
// depth of the queues. The width of
// the queue is determined from the
// inputs.
// Example usage:
//    val q = new Queue(UInt(), 16)
//    q.io.enq <> producer.io.out
//    consumer.io.in <> q.io.deq
class Queue[T <: Data]
    (type: T, entries: Int,
     pipe: Boolean = false,
     flow: Boolean = false
     flushable: Boolean = false)
    extends Module  

但是在scala代码中,接口参数不同: https://github.com/ucb-bar/chisel/blob/master/src/main/scala/ChiselUtil.scala#L426

代码中没有 "flushable" 布尔值输入。我找不到 "pipe" 和 "flow" 参数的含义。

有人知道如何使用队列来刷新它吗?

flushable 参数不存在。不确定他们的意思。但是,有一种方法可以通过点击“_reset”参数来清除队列,如下所示:

val my_queue = Module(new Queue(gen = new MyBundle,
                            entries = queue_sz,
                               pipe = false,
                               flow = true,
                             _reset = (kill_queue || reset.toBool)))

flow参数指定是否可以在同一周期内消费输入(输入"flow"立即通过队列)。 "valid" 信号耦合。

pipe参数指定"ready"信号是否组合耦合。这允许一个条目队列以 运行 全吞吐量(如管道)。