diff options
| author | Aditya Naik | 2024-03-07 09:26:46 -0800 |
|---|---|---|
| committer | Aditya Naik | 2024-03-07 09:26:46 -0800 |
| commit | 7e16bac1a2d7caf9f38c3934eab7bf0db982a312 (patch) | |
| tree | 4a0505e87385889746f30889b5f37592be5fd047 /core/src | |
| parent | 6a132a490c280684fd27f09a3af2249faf4d13d1 (diff) | |
Move methods to library
Diffstat (limited to 'core/src')
| -rw-r--r-- | core/src/main/scala/chisel3/AbstractModule.scala | 17 | ||||
| -rw-r--r-- | core/src/main/scala/chisel3/MetaConnect.scala | 1 |
2 files changed, 11 insertions, 7 deletions
diff --git a/core/src/main/scala/chisel3/AbstractModule.scala b/core/src/main/scala/chisel3/AbstractModule.scala index 7c4be632..61cad9c2 100644 --- a/core/src/main/scala/chisel3/AbstractModule.scala +++ b/core/src/main/scala/chisel3/AbstractModule.scala @@ -9,19 +9,22 @@ import chisel3.internal.Builder._ import chisel3.internal.firrtl._ import chisel3.experimental.BaseModule -class AbstractInterface[T <: Data](params: T) { - println(params) - val ioNode = IO(params) +case class AbstractInterface[T](params: T) + +case class Interface(ifaceContainer: AbstractInterface[_]*) + +class Op[A, B, C](func: A => B => C) { + val f: A => B => C = func } /** A module that uses types from its metaconnects to type its IOs. */ class AbstractModule(iface: Seq[AbstractInterface[_]]) extends BaseModule { - iface.foreach(x => { - println(x, x.ioNode) - }) - println(iface) + // iface.foreach(x => { + // // println(x, x.ioNode) + // }) + // println(iface) def generateComponent(): Option[chisel3.internal.firrtl.Component] = ??? def initializeInParent(parentCompileOptions: chisel3.CompileOptions): Unit = ??? } diff --git a/core/src/main/scala/chisel3/MetaConnect.scala b/core/src/main/scala/chisel3/MetaConnect.scala index 0f338e6c..acaef86f 100644 --- a/core/src/main/scala/chisel3/MetaConnect.scala +++ b/core/src/main/scala/chisel3/MetaConnect.scala @@ -6,4 +6,5 @@ object MetaConnect { f(that)(me) } } + implicit def abstractInterfaceConnection[A, B, C](implicit f: A => B => C): AbstractInterface[A] => AbstractInterface[B] => AbstractInterface[C] = (a: AbstractInterface[A]) => (b: AbstractInterface[B]) => new AbstractInterface(f(a.params)(b.params)) } |
