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:
		| @@ -708,7 +708,7 @@ class NastiMemoryDemux(nRoutes: Int)(implicit p: Parameters) extends NastiModule | ||||
|  | ||||
| object AsyncNastiCrossing { | ||||
|   // 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)) | ||||
|  | ||||
|     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 { | ||||
|   // 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() | ||||
|     AsyncNastiCrossing(scope.clock, scope.reset, source, to_clock, to_reset, depth, sync) | ||||
|   } | ||||
| @@ -731,7 +731,7 @@ object AsyncNastiTo { | ||||
|  | ||||
| object AsyncNastiFrom { | ||||
|   // 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() | ||||
|     AsyncNastiCrossing(from_clock, from_reset, from_source, scope.clock, scope.reset, depth, sync) | ||||
|   } | ||||
|   | ||||
| @@ -994,7 +994,7 @@ object AsyncDebugBusCrossing { | ||||
|  | ||||
| object AsyncDebugBusFrom { // OutsideClockDomain | ||||
|   // 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() | ||||
|     AsyncDebugBusCrossing(from_clock, from_reset, from_source, scope.clock, scope.reset, depth, sync) | ||||
|   } | ||||
| @@ -1002,7 +1002,7 @@ object AsyncDebugBusFrom { // OutsideClockDomain | ||||
|  | ||||
| object AsyncDebugBusTo { // OutsideClockDomain | ||||
|   // 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() | ||||
|     AsyncDebugBusCrossing(scope.clock, scope.reset, source, to_clock, to_reset, depth, sync) | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user