From 047e34f9536258d2008cf19a60dd3e6a9fa1d88a Mon Sep 17 00:00:00 2001 From: Maxpicca-Li Date: Tue, 9 May 2023 10:50:24 +0800 Subject: [PATCH] Fix constant (#2071) * constant: fix dead loop * util: fix constant dynamic switch * util: fix constant --- Makefile | 10 ++++++++++ src/main/scala/top/ArgParser.scala | 4 ++++ src/main/scala/top/Top.scala | 3 ++- src/main/scala/xiangshan/Parameters.scala | 1 + src/test/scala/top/SimTop.scala | 3 ++- utility | 2 +- 6 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 0d8a49b8b..bea1b1dee 100644 --- a/Makefile +++ b/Makefile @@ -48,6 +48,16 @@ endif override SIM_ARGS += --with-dramsim3 endif +# dynamic switch CONSTANTIN +ifeq ($(WITH_CONSTANTIN),0) +$(info disable WITH_CONSTANTIN) +else +ifndef NOOP_HOME +$(error NOOP_HOME is not set) +endif +override SIM_ARGS += --with-constantin +endif + # top-down ifeq ($(CONFIG),DefaultConfig) ENABLE_TOPDOWN ?= 1 diff --git a/src/main/scala/top/ArgParser.scala b/src/main/scala/top/ArgParser.scala index f4e202cac..fb048bf37 100644 --- a/src/main/scala/top/ArgParser.scala +++ b/src/main/scala/top/ArgParser.scala @@ -72,6 +72,10 @@ object ArgParser { nextOption(config.alter((site, here, up) => { case DebugOptionsKey => up(DebugOptionsKey).copy(UseDRAMSim = true) }), tail) + case "--with-constantin" :: tail => + nextOption(config.alter((site, here, up) => { + case DebugOptionsKey => up(DebugOptionsKey).copy(EnableConstantin = true) + }), tail) case "--fpga-platform" :: tail => nextOption(config.alter((site, here, up) => { case DebugOptionsKey => up(DebugOptionsKey).copy(FPGAPlatform = true) diff --git a/src/main/scala/top/Top.scala b/src/main/scala/top/Top.scala index dadcce397..9cfca0e14 100644 --- a/src/main/scala/top/Top.scala +++ b/src/main/scala/top/Top.scala @@ -206,7 +206,8 @@ object TopMain extends App with HasRocketChipStageUtils { // tools: init to close dpi-c when in fpga val envInFPGA = config(DebugOptionsKey).FPGAPlatform - Constantin.init(envInFPGA) + val enableConstantin = config(DebugOptionsKey).EnableConstantin + Constantin.init(enableConstantin && !envInFPGA) ChiselDB.init(envInFPGA) val soc = DisableMonitors(p => LazyModule(new XSTop()(p)))(config) diff --git a/src/main/scala/xiangshan/Parameters.scala b/src/main/scala/xiangshan/Parameters.scala index e13f779ba..a959d1eb1 100644 --- a/src/main/scala/xiangshan/Parameters.scala +++ b/src/main/scala/xiangshan/Parameters.scala @@ -287,6 +287,7 @@ case class DebugOptions EnableDebug: Boolean = false, EnablePerfDebug: Boolean = true, UseDRAMSim: Boolean = false, + EnableConstantin: Boolean = false, EnableTopDown: Boolean = false ) diff --git a/src/test/scala/top/SimTop.scala b/src/test/scala/top/SimTop.scala index cde055a0a..a692c008b 100644 --- a/src/test/scala/top/SimTop.scala +++ b/src/test/scala/top/SimTop.scala @@ -112,7 +112,8 @@ object SimTop extends App { // tools: init to close dpi-c when in fpga val envInFPGA = config(DebugOptionsKey).FPGAPlatform - Constantin.init(envInFPGA) + val enableConstantin = config(DebugOptionsKey).EnableConstantin + Constantin.init(enableConstantin && !envInFPGA) ChiselDB.init(envInFPGA) Generator.execute( diff --git a/utility b/utility index 854ac9a6b..ce351e186 160000 --- a/utility +++ b/utility @@ -1 +1 @@ -Subproject commit 854ac9a6befda4c779b45e0262906545c1d16cc3 +Subproject commit ce351e1862f9118c04c32de55fafb5bd17963ab4 -- GitLab