crossings: change defaults to sync=3 for safer settling time
Make the matching AsyncQueue depth=8 to support full throughput
This commit is contained in:
parent
3348236320
commit
44501cdbf8
@ -708,7 +708,7 @@ class NastiMemoryDemux(nRoutes: Int)(implicit p: Parameters) extends NastiModule
|
|||||||
|
|
||||||
object AsyncNastiCrossing {
|
object AsyncNastiCrossing {
|
||||||
// takes from_source from the 'from' clock domain to the 'to' clock domain
|
// takes from_source from the 'from' clock domain to the 'to' clock domain
|
||||||
def apply(from_clock: Clock, from_reset: Bool, from_source: NastiIO, to_clock: Clock, to_reset: Bool, depth: Int = 3, sync: Int = 2) = {
|
def apply(from_clock: Clock, from_reset: Bool, from_source: NastiIO, to_clock: Clock, to_reset: Bool, depth: Int = 8, sync: Int = 3) = {
|
||||||
val to_sink = Wire(new NastiIO()(from_source.p))
|
val to_sink = Wire(new NastiIO()(from_source.p))
|
||||||
|
|
||||||
to_sink.aw <> AsyncDecoupledCrossing(from_clock, from_reset, from_source.aw, to_clock, to_reset, depth, sync)
|
to_sink.aw <> AsyncDecoupledCrossing(from_clock, from_reset, from_source.aw, to_clock, to_reset, depth, sync)
|
||||||
@ -723,7 +723,7 @@ object AsyncNastiCrossing {
|
|||||||
|
|
||||||
object AsyncNastiTo {
|
object AsyncNastiTo {
|
||||||
// takes source from your clock domain and puts it into the 'to' clock domain
|
// takes source from your clock domain and puts it into the 'to' clock domain
|
||||||
def apply(to_clock: Clock, to_reset: Bool, source: NastiIO, depth: Int = 3, sync: Int = 2): NastiIO = {
|
def apply(to_clock: Clock, to_reset: Bool, source: NastiIO, depth: Int = 8, sync: Int = 3): NastiIO = {
|
||||||
val scope = AsyncScope()
|
val scope = AsyncScope()
|
||||||
AsyncNastiCrossing(scope.clock, scope.reset, source, to_clock, to_reset, depth, sync)
|
AsyncNastiCrossing(scope.clock, scope.reset, source, to_clock, to_reset, depth, sync)
|
||||||
}
|
}
|
||||||
@ -731,7 +731,7 @@ object AsyncNastiTo {
|
|||||||
|
|
||||||
object AsyncNastiFrom {
|
object AsyncNastiFrom {
|
||||||
// takes from_source from the 'from' clock domain and puts it into your clock domain
|
// takes from_source from the 'from' clock domain and puts it into your clock domain
|
||||||
def apply(from_clock: Clock, from_reset: Bool, from_source: NastiIO, depth: Int = 3, sync: Int = 2): NastiIO = {
|
def apply(from_clock: Clock, from_reset: Bool, from_source: NastiIO, depth: Int = 8, sync: Int = 3): NastiIO = {
|
||||||
val scope = AsyncScope()
|
val scope = AsyncScope()
|
||||||
AsyncNastiCrossing(from_clock, from_reset, from_source, scope.clock, scope.reset, depth, sync)
|
AsyncNastiCrossing(from_clock, from_reset, from_source, scope.clock, scope.reset, depth, sync)
|
||||||
}
|
}
|
||||||
|
@ -994,7 +994,7 @@ object AsyncDebugBusCrossing {
|
|||||||
|
|
||||||
object AsyncDebugBusFrom { // OutsideClockDomain
|
object AsyncDebugBusFrom { // OutsideClockDomain
|
||||||
// takes from_source from the 'from' clock domain and puts it into your clock domain
|
// takes from_source from the 'from' clock domain and puts it into your clock domain
|
||||||
def apply(from_clock: Clock, from_reset: Bool, from_source: DebugBusIO, depth: Int = 0, sync: Int = 2): DebugBusIO = {
|
def apply(from_clock: Clock, from_reset: Bool, from_source: DebugBusIO, depth: Int = 1, sync: Int = 3): DebugBusIO = {
|
||||||
val scope = AsyncScope()
|
val scope = AsyncScope()
|
||||||
AsyncDebugBusCrossing(from_clock, from_reset, from_source, scope.clock, scope.reset, depth, sync)
|
AsyncDebugBusCrossing(from_clock, from_reset, from_source, scope.clock, scope.reset, depth, sync)
|
||||||
}
|
}
|
||||||
@ -1002,7 +1002,7 @@ object AsyncDebugBusFrom { // OutsideClockDomain
|
|||||||
|
|
||||||
object AsyncDebugBusTo { // OutsideClockDomain
|
object AsyncDebugBusTo { // OutsideClockDomain
|
||||||
// takes source from your clock domain and puts it into the 'to' clock domain
|
// takes source from your clock domain and puts it into the 'to' clock domain
|
||||||
def apply(to_clock: Clock, to_reset: Bool, source: DebugBusIO, depth: Int = 0, sync: Int = 2): DebugBusIO = {
|
def apply(to_clock: Clock, to_reset: Bool, source: DebugBusIO, depth: Int = 1, sync: Int = 3): DebugBusIO = {
|
||||||
val scope = AsyncScope()
|
val scope = AsyncScope()
|
||||||
AsyncDebugBusCrossing(scope.clock, scope.reset, source, to_clock, to_reset, depth, sync)
|
AsyncDebugBusCrossing(scope.clock, scope.reset, source, to_clock, to_reset, depth, sync)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user