tilelink2 RegisterCrossing: Queues go from RV to Irrevocable
AsyncQueue is still a Queue.
This commit is contained in:
parent
02f89fb530
commit
422e6357a4
@ -3,7 +3,7 @@
|
|||||||
package uncore.tilelink2
|
package uncore.tilelink2
|
||||||
|
|
||||||
import Chisel._
|
import Chisel._
|
||||||
import chisel3.util.{Irrevocable, IrrevocableIO}
|
import chisel3.util.{Irrevocable}
|
||||||
import util.{AsyncResetRegVec, AsyncQueue, AsyncScope}
|
import util.{AsyncResetRegVec, AsyncQueue, AsyncScope}
|
||||||
|
|
||||||
// A very simple flow control state machine, run in the specified clock domain
|
// A very simple flow control state machine, run in the specified clock domain
|
||||||
@ -25,7 +25,7 @@ class BusyRegisterCrossing(clock: Clock, reset: Bool)
|
|||||||
|
|
||||||
// RegField should support connecting to one of these
|
// RegField should support connecting to one of these
|
||||||
class RegisterWriteIO[T <: Data](gen: T) extends Bundle {
|
class RegisterWriteIO[T <: Data](gen: T) extends Bundle {
|
||||||
val request = Irrevocable(gen).flip()
|
val request = Decoupled(gen).flip()
|
||||||
val response = Irrevocable(Bool()) // ignore .bits
|
val response = Irrevocable(Bool()) // ignore .bits
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ class RegisterWriteCrossing[T <: Data](gen: T, sync: Int = 3) extends Module {
|
|||||||
|
|
||||||
// RegField should support connecting to one of these
|
// RegField should support connecting to one of these
|
||||||
class RegisterReadIO[T <: Data](gen: T) extends Bundle {
|
class RegisterReadIO[T <: Data](gen: T) extends Bundle {
|
||||||
val request = Irrevocable(Bool()).flip() // ignore .bits
|
val request = Decoupled(Bool()).flip() // ignore .bits
|
||||||
val response = Irrevocable(gen)
|
val response = Irrevocable(gen)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user