From 2bd19d33bcddfccf2da87d272b29d788b4044329 Mon Sep 17 00:00:00 2001 From: Abraham Gonzalez Date: Thu, 10 Oct 2019 21:00:41 +0000 Subject: [PATCH 1/4] basic working example of checking for hwacha --- .../example/src/main/scala/Generator.scala | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/generators/example/src/main/scala/Generator.scala b/generators/example/src/main/scala/Generator.scala index f164b481..0f6f9557 100644 --- a/generators/example/src/main/scala/Generator.scala +++ b/generators/example/src/main/scala/Generator.scala @@ -1,10 +1,15 @@ package example +import scala.util.control.Exception + import chisel3._ import freechips.rocketchip.config.{Parameters} import freechips.rocketchip.util.{GeneratorApp} -import utilities.TestSuiteHelper +import freechips.rocketchip.tile.{BuildRoCC} +import freechips.rocketchip.system.{TestGeneration} + +import utilities.{TestSuiteHelper} object Generator extends GeneratorApp { // add unique test suites @@ -12,14 +17,28 @@ object Generator extends GeneratorApp { implicit val p: Parameters = params TestSuiteHelper.addRocketTestSuites TestSuiteHelper.addBoomTestSuites + + // if hwacha parameter exists then generate its tests + // TODO: find a more elegant way to do this + Exception.ignoring(classOf[java.lang.IllegalArgumentException]){ + if (p(hwacha.HwachaIcacheKey) != null) { + // add hwacha bmarks + asm tests + import hwacha.HwachaTestSuites._ + TestGeneration.addSuites(rv64uv.map(_("p"))) + TestGeneration.addSuites(rv64uv.map(_("vp"))) + TestGeneration.addSuite(rv64sv("p")) + TestGeneration.addSuite(hwachaBmarks) + } + } } // specify the name that the generator outputs files as val longName = names.topModuleProject + "." + names.topModuleClass + "." + names.configs // generate files + generateTestSuiteMakefrags generateFirrtl generateAnno - generateTestSuiteMakefrags + //generateTestSuiteMakefrags generateArtefacts } From d6bcf2870f1eb2e439e7765b5b29c53633dec20d Mon Sep 17 00:00:00 2001 From: abejgonzalez Date: Sun, 13 Oct 2019 08:37:38 -0700 Subject: [PATCH 2/4] cleaner test for hwacha param --- .../example/src/main/scala/Generator.scala | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/generators/example/src/main/scala/Generator.scala b/generators/example/src/main/scala/Generator.scala index 0f6f9557..ddbe783d 100644 --- a/generators/example/src/main/scala/Generator.scala +++ b/generators/example/src/main/scala/Generator.scala @@ -1,6 +1,6 @@ package example -import scala.util.control.Exception +import scala.util.Try import chisel3._ @@ -19,16 +19,15 @@ object Generator extends GeneratorApp { TestSuiteHelper.addBoomTestSuites // if hwacha parameter exists then generate its tests - // TODO: find a more elegant way to do this - Exception.ignoring(classOf[java.lang.IllegalArgumentException]){ - if (p(hwacha.HwachaIcacheKey) != null) { - // add hwacha bmarks + asm tests - import hwacha.HwachaTestSuites._ - TestGeneration.addSuites(rv64uv.map(_("p"))) - TestGeneration.addSuites(rv64uv.map(_("vp"))) - TestGeneration.addSuite(rv64sv("p")) - TestGeneration.addSuite(hwachaBmarks) - } + // TODO: find a more elegant way to do this. either through + // trying to disambiguate BuildRoCC, having a AccelParamsKey, + // or having the Accelerator/Tile add its own tests + import hwacha.HwachaTestSuites._ + if (Try(p(hwacha.HwachaNLanes)).getOrElse(0) > 0) { + TestGeneration.addSuites(rv64uv.map(_("p"))) + TestGeneration.addSuites(rv64uv.map(_("vp"))) + TestGeneration.addSuite(rv64sv("p")) + TestGeneration.addSuite(hwachaBmarks) } } @@ -36,9 +35,8 @@ object Generator extends GeneratorApp { val longName = names.topModuleProject + "." + names.topModuleClass + "." + names.configs // generate files - generateTestSuiteMakefrags generateFirrtl generateAnno - //generateTestSuiteMakefrags + generateTestSuiteMakefrags generateArtefacts } From 9babeb974301a8d1d60586c1e94f756bdeb36571 Mon Sep 17 00:00:00 2001 From: Abraham Gonzalez Date: Sun, 13 Oct 2019 08:41:21 -0700 Subject: [PATCH 3/4] Remove `BuildRoCC` param --- generators/example/src/main/scala/Generator.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/generators/example/src/main/scala/Generator.scala b/generators/example/src/main/scala/Generator.scala index ddbe783d..7c6b5168 100644 --- a/generators/example/src/main/scala/Generator.scala +++ b/generators/example/src/main/scala/Generator.scala @@ -6,7 +6,6 @@ import chisel3._ import freechips.rocketchip.config.{Parameters} import freechips.rocketchip.util.{GeneratorApp} -import freechips.rocketchip.tile.{BuildRoCC} import freechips.rocketchip.system.{TestGeneration} import utilities.{TestSuiteHelper} From 8af172c3131791282016422fa0bfc47f9fc2d5df Mon Sep 17 00:00:00 2001 From: abejgonzalez Date: Sun, 13 Oct 2019 08:43:52 -0700 Subject: [PATCH 4/4] update ci to use example generator --- .circleci/defaults.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/defaults.sh b/.circleci/defaults.sh index 855ca4a5..eff2941d 100755 --- a/.circleci/defaults.sh +++ b/.circleci/defaults.sh @@ -46,7 +46,7 @@ mapping["boomrocketexample"]="SUB_PROJECT=example CONFIG=LargeBoomAndRocketConfi mapping["boom"]="SUB_PROJECT=example CONFIG=SmallBoomConfig" mapping["rocketchip"]="SUB_PROJECT=rocketchip" mapping["blockdevrocketchip"]="SUB_PROJECT=example CONFIG=SimBlockDeviceRocketConfig TOP=TopWithBlockDevice" -mapping["hwacha"]="SUB_PROJECT=example CONFIG=HwachaRocketConfig GENERATOR_PACKAGE=hwacha" +mapping["hwacha"]="SUB_PROJECT=example CONFIG=HwachaRocketConfig" mapping["firesim"]="DESIGN=FireSim TARGET_CONFIG=DDR3FRFCFSLLC4MB_FireSimRocketChipConfig PLATFORM_CONFIG=BaseF1Config" mapping["fireboom"]="DESIGN=FireSim TARGET_CONFIG=DDR3FRFCFSLLC4MB_FireSimBoomConfig PLATFORM_CONFIG=BaseF1Config" mapping["firesim-clockdiv"]="DESIGN=FireSim TARGET_CONFIG=DDR3FRFCFSLLC4MB3Div_FireSimRocketChipConfig PLATFORM_CONFIG=BaseF1Config"