diff --git a/src/main/scala/Configs.scala b/src/main/scala/Configs.scala deleted file mode 100644 index 1e70e7a2..00000000 --- a/src/main/scala/Configs.scala +++ /dev/null @@ -1,27 +0,0 @@ -package example - -import cde.{Parameters, Config, CDEMatchError} -import testchipip.WithSerialAdapter -import chisel3._ -import diplomacy.LazyModule - -class WithExampleTop extends Config( - (pname, site, here) => pname match { - case BuildExampleTop => (p: Parameters) => LazyModule(new ExampleTop(p)) - case _ => throw new CDEMatchError - }) - -class WithPWM extends Config( - (pname, site, here) => pname match { - case BuildExampleTop => (p: Parameters) => LazyModule(new ExampleTopWithPWM(p)) - case _ => throw new CDEMatchError - }) - -class SerialAdapterConfig extends Config( - new WithSerialAdapter ++ new rocketchip.BaseConfig) - -class DefaultExampleConfig extends Config( - new WithExampleTop ++ new SerialAdapterConfig) - -class PWMExampleConfig extends Config( - new WithPWM ++ new SerialAdapterConfig) diff --git a/src/main/scala/example/Configs.scala b/src/main/scala/example/Configs.scala new file mode 100644 index 00000000..d718908a --- /dev/null +++ b/src/main/scala/example/Configs.scala @@ -0,0 +1,7 @@ +package example + +import cde.{Parameters, Config, CDEMatchError} +import testchipip.WithSerialAdapter + +class DefaultExampleConfig extends Config( + new WithSerialAdapter ++ new rocketchip.BaseConfig) diff --git a/src/main/scala/TestHarness.scala b/src/main/scala/example/TestHarness.scala similarity index 85% rename from src/main/scala/TestHarness.scala rename to src/main/scala/example/TestHarness.scala index afbae389..adef3094 100644 --- a/src/main/scala/TestHarness.scala +++ b/src/main/scala/example/TestHarness.scala @@ -5,9 +5,7 @@ import diplomacy.LazyModule import rocketchip._ import testchipip._ import chisel3._ -import cde.{Parameters, Field} - -case object BuildExampleTop extends Field[Parameters => ExampleTop] +import cde.Parameters class TestHarness(implicit val p: Parameters) extends Module { val io = new Bundle { @@ -16,7 +14,7 @@ class TestHarness(implicit val p: Parameters) extends Module { def buildTop(p: Parameters): ExampleTop = LazyModule(new ExampleTop(p)) - val dut = p(BuildExampleTop)(p).module + val dut = buildTop(p).module val ser = Module(new SimSerialWrapper(p(SerialInterfaceWidth))) val nMemChannels = dut.io.mem_axi.size diff --git a/src/main/scala/Top.scala b/src/main/scala/example/Top.scala similarity index 64% rename from src/main/scala/Top.scala rename to src/main/scala/example/Top.scala index c3b364de..3174227d 100644 --- a/src/main/scala/Top.scala +++ b/src/main/scala/example/Top.scala @@ -2,7 +2,6 @@ package example import chisel3._ import cde.Parameters -import diplomacy.LazyModule import testchipip._ import rocketchip._ @@ -22,15 +21,3 @@ class ExampleTopModule[+L <: ExampleTop, +B <: ExampleTopBundle](p: Parameters, with PeripheryBootROMModule with PeripheryCoreplexLocalInterrupterModule with PeripheryMasterMemModule with PeripherySerialModule with HardwiredResetVector with DirectConnection with NoDebug - -class ExampleTopWithPWM(q: Parameters) extends ExampleTop(q) - with PeripheryPWM { - override lazy val module = Module( - new ExampleTopWithPWMModule(p, this, new ExampleTopWithPWMBundle(p))) -} - -class ExampleTopWithPWMBundle(p: Parameters) extends ExampleTopBundle(p) - with PeripheryPWMBundle - -class ExampleTopWithPWMModule(p: Parameters, l: ExampleTopWithPWM, b: => ExampleTopWithPWMBundle) - extends ExampleTopModule(p, l, b) with PeripheryPWMModule diff --git a/src/main/scala/pwm/Configs.scala b/src/main/scala/pwm/Configs.scala new file mode 100644 index 00000000..26a34143 --- /dev/null +++ b/src/main/scala/pwm/Configs.scala @@ -0,0 +1,6 @@ +package pwm + +import cde.{Parameters, Config, CDEMatchError} +import testchipip.WithSerialAdapter + +class PWMConfig extends Config(new example.DefaultExampleConfig) diff --git a/src/main/scala/PWM.scala b/src/main/scala/pwm/PWM.scala similarity index 99% rename from src/main/scala/PWM.scala rename to src/main/scala/pwm/PWM.scala index 8df8f02c..6f8ee9c9 100644 --- a/src/main/scala/PWM.scala +++ b/src/main/scala/pwm/PWM.scala @@ -1,4 +1,4 @@ -package example +package pwm import chisel3._ import chisel3.util._ diff --git a/src/main/scala/pwm/TestHarness.scala b/src/main/scala/pwm/TestHarness.scala new file mode 100644 index 00000000..eb8487f8 --- /dev/null +++ b/src/main/scala/pwm/TestHarness.scala @@ -0,0 +1,17 @@ +package pwm + +import util.GeneratorApp +import cde.Parameters +import diplomacy.LazyModule + +class TestHarness(q: Parameters) extends example.TestHarness()(q) { + override def buildTop(p: Parameters) = + LazyModule(new ExampleTopWithPWM(p)) +} + +object Generator extends GeneratorApp { + val longName = names.topModuleProject + "." + + names.topModuleClass + "." + + names.configs + generateFirrtl +} diff --git a/src/main/scala/pwm/Top.scala b/src/main/scala/pwm/Top.scala new file mode 100644 index 00000000..b6e3bc6d --- /dev/null +++ b/src/main/scala/pwm/Top.scala @@ -0,0 +1,17 @@ +package pwm + +import chisel3._ +import example._ +import cde.Parameters + +class ExampleTopWithPWM(q: Parameters) extends ExampleTop(q) + with PeripheryPWM { + override lazy val module = Module( + new ExampleTopWithPWMModule(p, this, new ExampleTopWithPWMBundle(p))) +} + +class ExampleTopWithPWMBundle(p: Parameters) extends ExampleTopBundle(p) + with PeripheryPWMBundle + +class ExampleTopWithPWMModule(p: Parameters, l: ExampleTopWithPWM, b: => ExampleTopWithPWMBundle) + extends ExampleTopModule(p, l, b) with PeripheryPWMModule