summaryrefslogtreecommitdiffstats
path: root/riscv/picorv32/scripts/torture/config.py
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2022-11-24 22:27:15 +0000
committerYann Herklotz <git@yannherklotz.com>2022-11-24 22:27:15 +0000
commitcfe60025ab06c73c44ce6b962a258668b3a90431 (patch)
tree292d7b2b01a6e0f2ee31b9d133312723980235c1 /riscv/picorv32/scripts/torture/config.py
parentc0056cea555efe0d6775e3b28ffa5a4a91293097 (diff)
downloadbutterstick-cfe60025ab06c73c44ce6b962a258668b3a90431.tar.gz
butterstick-cfe60025ab06c73c44ce6b962a258668b3a90431.zip
Move all files
Diffstat (limited to 'riscv/picorv32/scripts/torture/config.py')
-rw-r--r--riscv/picorv32/scripts/torture/config.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/riscv/picorv32/scripts/torture/config.py b/riscv/picorv32/scripts/torture/config.py
new file mode 100644
index 0000000..478f046
--- /dev/null
+++ b/riscv/picorv32/scripts/torture/config.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python3
+
+import numpy as np
+
+compressed_isa = np.random.randint(2)
+enable_mul = np.random.randint(2)
+enable_div = np.random.randint(2)
+
+with open("config.vh", "w") as f:
+ print("// march=RV32I%s%s" % (
+ "M" if enable_mul or enable_div else "",
+ "C" if compressed_isa else ""), file=f)
+ print(".ENABLE_COUNTERS(%d)," % np.random.randint(2), file=f)
+ print(".ENABLE_COUNTERS64(%d)," % np.random.randint(2), file=f)
+ print(".ENABLE_REGS_DUALPORT(%d)," % np.random.randint(2), file=f)
+ print(".TWO_STAGE_SHIFT(%d)," % np.random.randint(2), file=f)
+ print(".BARREL_SHIFTER(%d)," % np.random.randint(2), file=f)
+ print(".TWO_CYCLE_COMPARE(%d)," % np.random.randint(2), file=f)
+ print(".TWO_CYCLE_ALU(%d)," % np.random.randint(2), file=f)
+ print(".CATCH_MISALIGN(%d)," % np.random.randint(2), file=f)
+ print(".CATCH_ILLINSN(%d)," % np.random.randint(2), file=f)
+ print(".COMPRESSED_ISA(%d)," % compressed_isa, file=f)
+ print(".ENABLE_MUL(%d)," % enable_mul, file=f)
+ print(".ENABLE_DIV(%d)" % enable_div, file=f)
+
+with open("riscv-torture/config/default.config", "r") as fi:
+ with open("riscv-torture/config/test.config", "w") as fo:
+ for line in fi:
+ line = line.strip()
+ if line.startswith("torture.generator.mul "):
+ line = "torture.generator.mul %s" % ("true" if enable_mul else "false")
+ if line.startswith("torture.generator.divider "):
+ line = "torture.generator.divider %s" % ("true" if enable_div else "false")
+ print(line, file=fo)
+