2015-09-18 5 views
1

Существует очередь в классе ChiselUtil, который описан в инструкции как:Как очистить очередь ChiselUtil?

// 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

Там нет «Смываемого» логического входа в коде , Я не могу найти значение параметра «pipe» и «flow».

Кто-нибудь знает, как использовать Очередь, чтобы иметь возможность ее промыть?

ответ

2

Параметр flushable не существует. Не уверен, что они имели в виду. Тем не менее, есть способ, чтобы очистить очереди, нажав на _reset параметра `», как показано ниже:

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

Параметр flow указывает, может ли входы потребляться на том же цикле (входы „потока“ через очередь сразу). «Действующие» сигналы связаны.

Параметр pipe указывает, являются ли «готовые» сигналы комбинационно связанными. Это позволяет одной очереди очереди работать при полной пропускной способности (например, конвейер).

+1

Thanks @Chris. Вы думаете, что это хороший способ использовать сигнал _reset для промывки? – FabienM

Смежные вопросы