Slim down generator, using RC's GeneratorUtils

This commit is contained in:
David Biancolin 2016-08-12 12:45:42 -07:00
parent e4a8b949f4
commit 51c29c24c9
2 changed files with 6 additions and 26 deletions

View File

@ -5,6 +5,7 @@ import Chisel._
import junctions._
import cde.{Parameters, Config, CDEMatchError}
import rocketchip._
import rocketchip.GeneratorUtils._
import uncore.devices.{DebugBusIO}
class Top(implicit val p: Parameters) extends Module
@ -42,35 +43,14 @@ class ZynqConfig extends Config(
class DefaultFPGAConfig extends Config(new rocketchip.DefaultFPGAConfig)
class DefaultFPGASmallConfig extends Config(new rocketchip.DefaultFPGASmallConfig)
// This copied directly from rocketchip 2a5aeea
// Could invoke RC main directly, but don't want all the test generation
object Generator extends App {
val projectName = args(0)
val topModuleName = args(1)
val configClassName = args(2)
val aggregateConfigs = configClassName.split('_')
val config = getConfig(projectName, configClassName)
val world = config.toInstance
val paramsFromConfig = Parameters.root(world)
val finalConfig = aggregateConfigs.foldRight(new Config()) { case (currentConfigName, finalConfig) =>
val currentConfig = try {
Class.forName(s"$projectName.$currentConfigName").newInstance.asInstanceOf[Config]
} catch {
case e: java.lang.ClassNotFoundException =>
throwException("Unable to find part \"" + currentConfigName +
"\" of configClassName \"" + configClassName +
"\", did you misspell it?", e)
}
currentConfig ++ finalConfig
}
val world = finalConfig.toInstance
val paramsFromConfig: Parameters = Parameters.root(world)
val gen = () =>
Class.forName(s"$projectName.$topModuleName")
.getConstructor(classOf[cde.Parameters])
.newInstance(paramsFromConfig)
.asInstanceOf[Module]
chiselMain.run(args.drop(3), gen)
elaborate(s"$projectName.$topModuleName", args.drop(3), paramsFromConfig)
}

@ -1 +1 @@
Subproject commit 2906c7516739f2eed1299bb07457583fa1fdcbc4
Subproject commit fb476d193cc21dd66d81cc5890883bd466f889f7