From dd9558f45d83bdc8ccb9219bf0b69534161a88f4 Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Mon, 26 Sep 2016 01:42:46 -0700 Subject: [PATCH] rocketchip: generate GraphML output --- src/main/scala/rocketchip/BaseTop.scala | 3 ++- src/main/scala/rocketchip/Generator.scala | 1 + src/main/scala/util/GeneratorUtils.scala | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/scala/rocketchip/BaseTop.scala b/src/main/scala/rocketchip/BaseTop.scala index a9ff54e6..31a94bb1 100644 --- a/src/main/scala/rocketchip/BaseTop.scala +++ b/src/main/scala/rocketchip/BaseTop.scala @@ -8,7 +8,7 @@ import junctions._ import uncore.tilelink._ import uncore.tilelink2._ import uncore.devices._ -import util.{ParameterizedBundle, ConfigStringOutput} +import util.{ParameterizedBundle, ConfigStringOutput, GraphMLOutput} import rocket._ import rocket.Util._ import coreplex._ @@ -91,6 +91,7 @@ abstract class BaseTopModule[+L <: BaseTop, +B <: BaseTopBundle]( println("Generated Configuration String") println(p(ConfigString)) ConfigStringOutput.contents = Some(p(ConfigString)) + GraphMLOutput.contents = Some(outer.graphML) io.success := coreplexIO.success } diff --git a/src/main/scala/rocketchip/Generator.scala b/src/main/scala/rocketchip/Generator.scala index ea7d212e..28e101a3 100644 --- a/src/main/scala/rocketchip/Generator.scala +++ b/src/main/scala/rocketchip/Generator.scala @@ -79,5 +79,6 @@ object Generator extends util.GeneratorApp { generateTestSuiteMakefrags generateDSEConstraints generateConfigString + generateGraphML generateParameterDump } diff --git a/src/main/scala/util/GeneratorUtils.scala b/src/main/scala/util/GeneratorUtils.scala index 8937e9e4..7c782fa3 100644 --- a/src/main/scala/util/GeneratorUtils.scala +++ b/src/main/scala/util/GeneratorUtils.scala @@ -117,9 +117,17 @@ trait GeneratorApp extends App with HasGeneratorUtilities { def generateConfigString { ConfigStringOutput.contents.foreach(c => writeOutputFile(td, s"${names.configs}.cfg", c)) } + + /** Output a global LazyModule topology for documentation purposes. */ + def generateGraphML { + GraphMLOutput.contents.foreach(c => writeOutputFile(td, s"${names.configs}.graphml", c)) + } } object ConfigStringOutput { var contents: Option[String] = None } +object GraphMLOutput { + var contents: Option[String] = None +}