From 9b0654be52781c57ac0e1f9c58c471399591258a Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Fri, 30 Sep 2016 01:48:47 -0700 Subject: [PATCH] tilelink2 Crossing: helpful constructor objects --- .../scala/uncore/tilelink2/Crossing.scala | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main/scala/uncore/tilelink2/Crossing.scala b/src/main/scala/uncore/tilelink2/Crossing.scala index ac63f1a1..c5de8d9e 100644 --- a/src/main/scala/uncore/tilelink2/Crossing.scala +++ b/src/main/scala/uncore/tilelink2/Crossing.scala @@ -71,6 +71,26 @@ class TLAsyncCrossingSink(depth: Int = 8, sync: Int = 3) extends LazyModule } } +object TLAsyncCrossingSource +{ + // applied to the TL source node; y.node := TLAsyncCrossingSource()(x.node) + def apply(sync: Int = 3)(x: TLOutwardNode)(implicit sourceInfo: SourceInfo): TLAsyncOutwardNode = { + val source = LazyModule(new TLAsyncCrossingSource(sync)) + source.node := x + source.node + } +} + +object TLAsyncCrossingSink +{ + // applied to the TL source node; y.node := TLAsyncCrossingSink()(x.node) + def apply(depth: Int = 8, sync: Int = 3)(x: TLAsyncOutwardNode)(implicit sourceInfo: SourceInfo): TLOutwardNode = { + val sink = LazyModule(new TLAsyncCrossingSink(depth, sync)) + sink.node := x + sink.node + } +} + class TLAsyncCrossing(depth: Int = 8, sync: Int = 3) extends LazyModule { val nodeIn = TLInputNode()