mirror of
https://github.com/enjoy-digital/litex.git
synced 2025-01-04 09:52:26 -05:00
soc/cores/cpu/vexriscv: add support for the new variants.
This commit is contained in:
parent
2ace45e6f8
commit
35155e5172
1 changed files with 19 additions and 10 deletions
|
@ -14,7 +14,10 @@ class VexRiscv(Module, AutoCSR):
|
||||||
linker_output_format = "elf32-littleriscv"
|
linker_output_format = "elf32-littleriscv"
|
||||||
|
|
||||||
def __init__(self, platform, cpu_reset_address, variant=None):
|
def __init__(self, platform, cpu_reset_address, variant=None):
|
||||||
assert variant in (None, "debug"), "Unsupported variant %s" % variant
|
variant = "std" if variant is None else variant
|
||||||
|
variant = "std_debug" if variant == "debug" else variant
|
||||||
|
variants = ("std", "std_debug", "lite", "lite_debug", "min", "min_debug")
|
||||||
|
assert variant in variants, "Unsupported variant %s" % variant
|
||||||
self.reset = Signal()
|
self.reset = Signal()
|
||||||
self.ibus = i = wishbone.Interface()
|
self.ibus = i = wishbone.Interface()
|
||||||
self.dbus = d = wishbone.Interface()
|
self.dbus = d = wishbone.Interface()
|
||||||
|
@ -26,15 +29,22 @@ class VexRiscv(Module, AutoCSR):
|
||||||
# Output reset signal -- set to 1 when CPU reset is asserted
|
# Output reset signal -- set to 1 when CPU reset is asserted
|
||||||
self.debug_reset = Signal()
|
self.debug_reset = Signal()
|
||||||
|
|
||||||
if variant == None:
|
verilog_variants = {
|
||||||
cpu_reset = ResetSignal()
|
"std": "VexRiscv.v",
|
||||||
cpu_args = {}
|
"std_debug": "VexRiscv_Debug.v",
|
||||||
cpu_filename = "VexRiscv.v"
|
"lite": "VexRiscv_Lite.v",
|
||||||
elif variant == "debug":
|
"lite_debug": "VexRiscv_LiteDebug.v",
|
||||||
|
"min": "VexRiscv_Lite.v",
|
||||||
|
"min_debug": "VexRiscv_LiteDebug.v",
|
||||||
|
}
|
||||||
|
|
||||||
|
cpu_reset = ResetSignal()
|
||||||
|
cpu_args = {}
|
||||||
|
cpu_filename = verilog_variants[variant]
|
||||||
|
|
||||||
|
if "debug" in variant:
|
||||||
cpu_reset = Signal()
|
cpu_reset = Signal()
|
||||||
cpu_args = {}
|
cpu_args = {}
|
||||||
cpu_filename = "VexRiscv-Debug.v"
|
|
||||||
|
|
||||||
|
|
||||||
self.i_cmd_valid = Signal()
|
self.i_cmd_valid = Signal()
|
||||||
self.i_cmd_payload_wr = Signal()
|
self.i_cmd_payload_wr = Signal()
|
||||||
|
@ -157,5 +167,4 @@ class VexRiscv(Module, AutoCSR):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def add_sources(platform, cpu_filename):
|
def add_sources(platform, cpu_filename):
|
||||||
vdir = os.path.join(os.path.abspath(os.path.dirname(__file__)), "verilog")
|
vdir = os.path.join(os.path.abspath(os.path.dirname(__file__)), "verilog")
|
||||||
platform.add_sources(os.path.join(vdir), cpu_filename)
|
platform.add_source(os.path.join(vdir, cpu_filename))
|
||||||
platform.add_verilog_include_path(vdir)
|
|
||||||
|
|
Loading…
Reference in a new issue