Makefile: Added rule for generating mw-compatible core with SVP64
authorAndrey Miroshnikov <andrey@technepisteme.xyz>
Thu, 27 Jul 2023 11:35:00 +0000 (11:35 +0000)
committerAndrey Miroshnikov <andrey@technepisteme.xyz>
Thu, 27 Jul 2023 11:35:00 +0000 (11:35 +0000)
issue_verilog.py: Added argument for mw+svp64.

It's intended to be an unintrusive change for testing. No default behaviour
has been changed.

Makefile
src/soc/simple/issuer_verilog.py

index 2a6409b663126891d5d8b3687aca4598551fbdd4..15670cf8b3babf7f8e0991cd3e5100fecb68d273 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -63,6 +63,14 @@ microwatt_external_core:
        python3 src/soc/simple/issuer_verilog.py --microwatt-compat --enable-mmu \
             external_core_top.v
 
+# build microwatt "external core" with fixed 64-bit width SVP64
+# note that the TLB set size is set to 16
+# for I/D-Cache which needs a corresponding alteration of the device-tree
+# entries for linux
+microwatt_external_core_svp64:
+       python3 src/soc/simple/issuer_verilog.py --microwatt-compat-svp64 --enable-mmu \
+            external_core_top.v
+
 microwatt_external_core_spi:
        python3 src/soc/simple/issuer_verilog.py --microwatt-compat \
             --small-cache \
index abd050275a9d5a347b29c88648412dbe6a4d49ff..d56c140d39791dabb42b01c76380746905db9d4a 100644 (file)
@@ -69,6 +69,10 @@ if __name__ == '__main__':
                         action="store_true",
                         help="generate microwatt-compatible interface",
                         default=False)
+    parser.add_argument("--microwatt-compat-svp64", dest='mwcompatsvp64',
+                        action="store_true",
+                        help="generate microwatt-compatible interface + SVP64",
+                        default=False)
     parser.add_argument("--old-microwatt-compat", dest='old_mwcompat',
                         action="store_true",
                         help="generate old microwatt-compatible interface",
@@ -106,6 +110,18 @@ if __name__ == '__main__':
         args.sram4x4kblock = False
         args.svp64 = False
 
+    # Yes, this is duplicating mwcompat, but for the sake of simplicity
+    # adding support for svp64 like this
+    if args.mwcompatsvp64:
+        args.pll = False
+        args.debug = 'dmi'
+        args.core = True
+        args.xics = False
+        args.gpio = False
+        args.sram4x4kblock = False
+        args.svp64 = True
+        args.mwcompat = True # Ensures TestMemPspec gets the expected value
+
     print(args)
 
     units = {'alu': 1,