Add blocking D$
This commit is contained in:
parent
a8462d3cfc
commit
e82c080c3c
63
README.md
63
README.md
@ -287,20 +287,20 @@ Now take a look in the emulator/generated-src directory. You will find
|
|||||||
Chisel generated C++ code.
|
Chisel generated C++ code.
|
||||||
|
|
||||||
$ ls $ROCKETCHIP/emulator/generated-src
|
$ ls $ROCKETCHIP/emulator/generated-src
|
||||||
Top.DefaultCPPConfig-0.cpp
|
Top.DefaultConfig-0.cpp
|
||||||
Top.DefaultCPPConfig-0.o
|
Top.DefaultConfig-0.o
|
||||||
Top.DefaultCPPConfig-1.cpp
|
Top.DefaultConfig-1.cpp
|
||||||
Top.DefaultCPPConfig-1.o
|
Top.DefaultConfig-1.o
|
||||||
Top.DefaultCPPConfig-2.cpp
|
Top.DefaultConfig-2.cpp
|
||||||
Top.DefaultCPPConfig-2.o
|
Top.DefaultConfig-2.o
|
||||||
Top.DefaultCPPConfig-3.cpp
|
Top.DefaultConfig-3.cpp
|
||||||
Top.DefaultCPPConfig-3.o
|
Top.DefaultConfig-3.o
|
||||||
Top.DefaultCPPConfig-4.cpp
|
Top.DefaultConfig-4.cpp
|
||||||
Top.DefaultCPPConfig-4.o
|
Top.DefaultConfig-4.o
|
||||||
Top.DefaultCPPConfig-5.cpp
|
Top.DefaultConfig-5.cpp
|
||||||
Top.DefaultCPPConfig-5.o
|
Top.DefaultConfig-5.o
|
||||||
Top.DefaultCPPConfig.cpp
|
Top.DefaultConfig.cpp
|
||||||
Top.DefaultCPPConfig.h
|
Top.DefaultConfig.h
|
||||||
emulator.h
|
emulator.h
|
||||||
emulator_api.h
|
emulator_api.h
|
||||||
emulator_mod.h
|
emulator_mod.h
|
||||||
@ -366,13 +366,13 @@ You can generate Verilog for your VLSI flow with the following commands:
|
|||||||
$ make verilog
|
$ make verilog
|
||||||
|
|
||||||
Now take a look at vsim/generated-src, and the contents of the
|
Now take a look at vsim/generated-src, and the contents of the
|
||||||
Top.DefaultVLSIConfig.conf file:
|
Top.DefaultConfig.conf file:
|
||||||
|
|
||||||
$ cd $ROCKETCHIP/vsim/generated-src
|
$ cd $ROCKETCHIP/vsim/generated-src
|
||||||
Top.DefaultVLSIConfig.conf
|
Top.DefaultConfig.conf
|
||||||
Top.DefaultVLSIConfig.prm
|
Top.DefaultConfig.prm
|
||||||
Top.DefaultVLSIConfig.v
|
Top.DefaultConfig.v
|
||||||
consts.DefaultVLSIConfig.vh
|
consts.DefaultConfig.vh
|
||||||
$ cat $ROCKETCHIP/vsim/generated-src/*.conf
|
$ cat $ROCKETCHIP/vsim/generated-src/*.conf
|
||||||
name MetadataArray_tag_arr depth 128 width 84 ports mwrite,read mask_gran 21
|
name MetadataArray_tag_arr depth 128 width 84 ports mwrite,read mask_gran 21
|
||||||
name ICache_tag_array depth 128 width 38 ports mrw mask_gran 19
|
name ICache_tag_array depth 128 width 38 ports mrw mask_gran 19
|
||||||
@ -387,7 +387,7 @@ script with the generated configuration file as an argument, which will
|
|||||||
fill in the Verilog for the SRAMs. Currently, the $(mem\_gen) script
|
fill in the Verilog for the SRAMs. Currently, the $(mem\_gen) script
|
||||||
points to vsim/vlsi\_mem\_gen, which simply instantiates behavioral
|
points to vsim/vlsi\_mem\_gen, which simply instantiates behavioral
|
||||||
SRAMs. You will see those SRAMs being appended at the end of
|
SRAMs. You will see those SRAMs being appended at the end of
|
||||||
vsim/generated-src/Top.DefaultVLSIConfig.v. To target vendor-specific
|
vsim/generated-src/Top.DefaultConfig.v. To target vendor-specific
|
||||||
SRAMs, you will need to make necessary changes to vsim/vlsi\_mem\_gen.
|
SRAMs, you will need to make necessary changes to vsim/vlsi\_mem\_gen.
|
||||||
|
|
||||||
Similarly, if you have access to VCS, you can run assembly tests and
|
Similarly, if you have access to VCS, you can run assembly tests and
|
||||||
@ -403,20 +403,17 @@ tests and benchmarks.
|
|||||||
|
|
||||||
## <a name="param"></a> How can I parameterize my Rocket chip?
|
## <a name="param"></a> How can I parameterize my Rocket chip?
|
||||||
|
|
||||||
By now, you probably figured out that all generated files have a
|
By now, you probably figured out that all generated files have a configuration
|
||||||
configuration name attached, e.g. DefaultCPPConfig and
|
name attached, e.g. DefaultConfig. Take a look at
|
||||||
DefaultVLSIConfig. Take a look at src/main/scala/Configs.scala.
|
src/main/scala/Configs.scala. Search for NSets and NWays defined in
|
||||||
Search for NSets and NWays defined in DefaultConfig. You can change
|
BaseConfig. You can change those numbers to get a Rocket core with different
|
||||||
those numbers to get a Rocket core with different cache parameters. For
|
cache parameters. For example, by changing L1I, NWays to 4, you will get
|
||||||
example, by changing L1I, NWays to 4, you will get a 32KB 4-way
|
a 32KB 4-way set-associative L1 instruction cache rather than a 16KB 2-way
|
||||||
set-associative L1 instruction cache rather than a 16KB 2-way
|
set-associative L1 instruction cache.
|
||||||
set-associative L1 instruction cache. By searching further for
|
|
||||||
DefaultVLSIConfig and DefaultCPPConfig, you will see that currently both
|
|
||||||
are set to be identical to DefaultConfig.
|
|
||||||
|
|
||||||
Further down, you will be able to see two FPGA configurations:
|
Further down, you will be able to see two FPGA configurations:
|
||||||
DefaultFPGAConfig and DefaultFPGASmallConfig. DefaultFPGAConfig inherits from
|
DefaultFPGAConfig and DefaultFPGASmallConfig. DefaultFPGAConfig inherits from
|
||||||
DefaultConfig, but overrides the low-performance memory port (i.e., backup
|
BaseConfig, but overrides the low-performance memory port (i.e., backup
|
||||||
memory port) to be turned off. This is because the high-performance memory
|
memory port) to be turned off. This is because the high-performance memory
|
||||||
port is directly connected to the high-performance AXI interface on the ZYNQ
|
port is directly connected to the high-performance AXI interface on the ZYNQ
|
||||||
FPGA. DefaultFPGASmallConfig inherits from DefaultFPGAConfig, but changes the
|
FPGA. DefaultFPGASmallConfig inherits from DefaultFPGAConfig, but changes the
|
||||||
@ -426,12 +423,12 @@ This small configuration is used for the Zybo FPGA board, which has the
|
|||||||
smallest ZYNQ part.
|
smallest ZYNQ part.
|
||||||
|
|
||||||
Towards the end, you can also find that ExampleSmallConfig inherits all
|
Towards the end, you can also find that ExampleSmallConfig inherits all
|
||||||
parameters from DefaultConfig but overrides the same parameters of
|
parameters from BaseConfig but overrides the same parameters of
|
||||||
SmallConfig.
|
SmallConfig.
|
||||||
|
|
||||||
Now take a look at fsim/Makefile and vsim/Makefile. Search for the
|
Now take a look at fsim/Makefile and vsim/Makefile. Search for the
|
||||||
CONFIG variable. DefaultFPGAConfig is used for the FPGA build, while
|
CONFIG variable. DefaultFPGAConfig is used for the FPGA build, while
|
||||||
DefaultVLSIConfig is used for the VLSI build. You can also change the
|
DefaultConfig is used for the VLSI build. You can also change the
|
||||||
CONFIG variable on the make command line:
|
CONFIG variable on the make command line:
|
||||||
|
|
||||||
$ cd $ROCKETCHIP/vsim
|
$ cd $ROCKETCHIP/vsim
|
||||||
|
@ -7,7 +7,7 @@ sim_dir = .
|
|||||||
output_dir = $(sim_dir)/output
|
output_dir = $(sim_dir)/output
|
||||||
|
|
||||||
BACKEND = c
|
BACKEND = c
|
||||||
CONFIG ?= DefaultCPPConfig
|
CONFIG ?= DefaultConfig
|
||||||
|
|
||||||
include $(base_dir)/Makefrag
|
include $(base_dir)/Makefrag
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 7aaaa59d96f998d38d0969894cf9ec0e1fcfed22
|
Subproject commit c02574d2fa6710978642bce85dfda95505eb8c8a
|
@ -1 +1 @@
|
|||||||
Subproject commit b9b3f491ba8987bb94e3a85dcc0c8d80716d8d41
|
Subproject commit ffd20b64afa18acdc60bc799346477d96236f21d
|
2
rocket
2
rocket
@ -1 +1 @@
|
|||||||
Subproject commit ffbbb85829d6e9d36aee871d8af2891c1c0ba99e
|
Subproject commit 8df0593d0ed0c2e58f3687c37ac03784fcad075f
|
@ -19,7 +19,7 @@ object ConfigUtils {
|
|||||||
}
|
}
|
||||||
import ConfigUtils._
|
import ConfigUtils._
|
||||||
|
|
||||||
class DefaultConfig extends Config (
|
class BaseConfig extends Config (
|
||||||
topDefinitions = { (pname,site,here) =>
|
topDefinitions = { (pname,site,here) =>
|
||||||
type PF = PartialFunction[Any,Any]
|
type PF = PartialFunction[Any,Any]
|
||||||
def findBy(sname:Any):Any = here[PF](site[Any](sname))(pname)
|
def findBy(sname:Any):Any = here[PF](site[Any](sname))(pname)
|
||||||
@ -78,7 +78,7 @@ class DefaultConfig extends Config (
|
|||||||
res append "};\n"
|
res append "};\n"
|
||||||
res append "core {\n"
|
res append "core {\n"
|
||||||
for (i <- 0 until site(NTiles)) {
|
for (i <- 0 until site(NTiles)) {
|
||||||
val isa = s"rv${site(XLen)}ima${if (site(UseFPU)) "fd" else ""}"
|
val isa = s"rv${site(XLen)}im${if (site(UseAtomics)) "a" else ""}${if (site(UseFPU)) "fd" else ""}"
|
||||||
val timecmpAddr = addrMap("io:int:rtc").start + 8*(i+1)
|
val timecmpAddr = addrMap("io:int:rtc").start + 8*(i+1)
|
||||||
val prciAddr = addrMap(s"io:int:prci$i").start
|
val prciAddr = addrMap(s"io:int:prci$i").start
|
||||||
res append s" $i {\n"
|
res append s" $i {\n"
|
||||||
@ -215,6 +215,11 @@ class DefaultConfig extends Config (
|
|||||||
else TestGeneration.addSuites(env.map(rv64ufNoDiv))
|
else TestGeneration.addSuites(env.map(rv64ufNoDiv))
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
case UseAtomics => {
|
||||||
|
val env = if(site(UseVM)) List("p","v") else List("p")
|
||||||
|
TestGeneration.addSuites(env.map(if (site(XLen) == 64) rv64ua else rv32ua))
|
||||||
|
true
|
||||||
|
}
|
||||||
case NExtInterrupts => 2
|
case NExtInterrupts => 2
|
||||||
case NExtMMIOChannels => 0
|
case NExtMMIOChannels => 0
|
||||||
case PLICKey => PLICConfig(site(NTiles), site(UseVM), site(NExtInterrupts), site(NExtInterrupts))
|
case PLICKey => PLICConfig(site(NTiles), site(UseVM), site(NExtInterrupts), site(NExtInterrupts))
|
||||||
@ -304,8 +309,7 @@ class DefaultConfig extends Config (
|
|||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
class DefaultVLSIConfig extends DefaultConfig
|
class DefaultConfig extends Config(new WithBlockingL1 ++ new BaseConfig)
|
||||||
class DefaultCPPConfig extends DefaultConfig
|
|
||||||
|
|
||||||
class With2Cores extends Config(knobValues = { case "NTILES" => 2; case _ => throw new CDEMatchError })
|
class With2Cores extends Config(knobValues = { case "NTILES" => 2; case _ => throw new CDEMatchError })
|
||||||
class With4Cores extends Config(knobValues = { case "NTILES" => 4; case _ => throw new CDEMatchError })
|
class With4Cores extends Config(knobValues = { case "NTILES" => 4; case _ => throw new CDEMatchError })
|
||||||
@ -379,9 +383,7 @@ class With1L2Ways extends Config(knobValues = { case "L2_WAYS" => 1; case _ => t
|
|||||||
class With2L2Ways extends Config(knobValues = { case "L2_WAYS" => 2; case _ => throw new CDEMatchError })
|
class With2L2Ways extends Config(knobValues = { case "L2_WAYS" => 2; case _ => throw new CDEMatchError })
|
||||||
class With4L2Ways extends Config(knobValues = { case "L2_WAYS" => 4; case _ => throw new CDEMatchError })
|
class With4L2Ways extends Config(knobValues = { case "L2_WAYS" => 4; case _ => throw new CDEMatchError })
|
||||||
|
|
||||||
class DefaultL2Config extends Config(new WithL2Cache ++ new DefaultConfig)
|
class DefaultL2Config extends Config(new WithL2Cache ++ new BaseConfig)
|
||||||
class DefaultL2VLSIConfig extends Config(new WithL2Cache ++ new DefaultVLSIConfig)
|
|
||||||
class DefaultL2CPPConfig extends Config(new WithL2Cache ++ new DefaultCPPConfig)
|
|
||||||
class DefaultL2FPGAConfig extends Config(new WithL2Capacity64 ++ new WithL2Cache ++ new DefaultFPGAConfig)
|
class DefaultL2FPGAConfig extends Config(new WithL2Capacity64 ++ new WithL2Cache ++ new DefaultFPGAConfig)
|
||||||
|
|
||||||
class PLRUL2Config extends Config(new WithPLRU ++ new DefaultL2Config)
|
class PLRUL2Config extends Config(new WithPLRU ++ new DefaultL2Config)
|
||||||
@ -390,6 +392,7 @@ class WithRV32 extends Config(
|
|||||||
(pname,site,here) => pname match {
|
(pname,site,here) => pname match {
|
||||||
case XLen => 32
|
case XLen => 32
|
||||||
case UseVM => false
|
case UseVM => false
|
||||||
|
case UseAtomics => false
|
||||||
case UseFPU => false
|
case UseFPU => false
|
||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
}
|
}
|
||||||
@ -403,7 +406,14 @@ class FPGAConfig extends Config (
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
class DefaultFPGAConfig extends Config(new FPGAConfig ++ new DefaultConfig)
|
class WithBlockingL1 extends Config (
|
||||||
|
knobValues = {
|
||||||
|
case "L1D_MSHRS" => 0
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
class DefaultFPGAConfig extends Config(new FPGAConfig ++ new BaseConfig)
|
||||||
|
|
||||||
class SmallConfig extends Config (
|
class SmallConfig extends Config (
|
||||||
topDefinitions = { (pname,site,here) => pname match {
|
topDefinitions = { (pname,site,here) => pname match {
|
||||||
@ -421,30 +431,30 @@ class SmallConfig extends Config (
|
|||||||
case "L1D_WAYS" => 1
|
case "L1D_WAYS" => 1
|
||||||
case "L1I_SETS" => 64
|
case "L1I_SETS" => 64
|
||||||
case "L1I_WAYS" => 1
|
case "L1I_WAYS" => 1
|
||||||
case "L1D_MSHRS" => 1
|
case "L1D_MSHRS" => 0
|
||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
class DefaultFPGASmallConfig extends Config(new SmallConfig ++ new DefaultFPGAConfig)
|
class DefaultFPGASmallConfig extends Config(new SmallConfig ++ new DefaultFPGAConfig)
|
||||||
|
|
||||||
class DefaultRV32Config extends Config(new SmallConfig ++ new WithRV32 ++ new DefaultConfig)
|
class DefaultRV32Config extends Config(new SmallConfig ++ new WithRV32 ++ new BaseConfig)
|
||||||
|
|
||||||
class ExampleSmallConfig extends Config(new SmallConfig ++ new DefaultConfig)
|
class ExampleSmallConfig extends Config(new SmallConfig ++ new BaseConfig)
|
||||||
|
|
||||||
class DualBankConfig extends Config(new With2BanksPerMemChannel ++ new DefaultConfig)
|
class DualBankConfig extends Config(new With2BanksPerMemChannel ++ new BaseConfig)
|
||||||
class DualBankL2Config extends Config(
|
class DualBankL2Config extends Config(
|
||||||
new With2BanksPerMemChannel ++ new WithL2Cache ++ new DefaultConfig)
|
new With2BanksPerMemChannel ++ new WithL2Cache ++ new BaseConfig)
|
||||||
|
|
||||||
class DualChannelConfig extends Config(new With2MemoryChannels ++ new DefaultConfig)
|
class DualChannelConfig extends Config(new With2MemoryChannels ++ new BaseConfig)
|
||||||
class DualChannelL2Config extends Config(
|
class DualChannelL2Config extends Config(
|
||||||
new With2MemoryChannels ++ new WithL2Cache ++ new DefaultConfig)
|
new With2MemoryChannels ++ new WithL2Cache ++ new BaseConfig)
|
||||||
|
|
||||||
class DualChannelDualBankConfig extends Config(
|
class DualChannelDualBankConfig extends Config(
|
||||||
new With2MemoryChannels ++ new With2BanksPerMemChannel ++ new DefaultConfig)
|
new With2MemoryChannels ++ new With2BanksPerMemChannel ++ new BaseConfig)
|
||||||
class DualChannelDualBankL2Config extends Config(
|
class DualChannelDualBankL2Config extends Config(
|
||||||
new With2MemoryChannels ++ new With2BanksPerMemChannel ++
|
new With2MemoryChannels ++ new With2BanksPerMemChannel ++
|
||||||
new WithL2Cache ++ new DefaultConfig)
|
new WithL2Cache ++ new BaseConfig)
|
||||||
|
|
||||||
class WithRoccExample extends Config(
|
class WithRoccExample extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
@ -464,7 +474,7 @@ class WithRoccExample extends Config(
|
|||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
class RoccExampleConfig extends Config(new WithRoccExample ++ new DefaultConfig)
|
class RoccExampleConfig extends Config(new WithRoccExample ++ new BaseConfig)
|
||||||
|
|
||||||
class WithDmaController extends Config(
|
class WithDmaController extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
@ -500,9 +510,9 @@ class DualChannelBenchmarkConfig extends Config(new With2MemoryChannels ++ new S
|
|||||||
class QuadChannelBenchmarkConfig extends Config(new With4MemoryChannels ++ new SingleChannelBenchmarkConfig)
|
class QuadChannelBenchmarkConfig extends Config(new With4MemoryChannels ++ new SingleChannelBenchmarkConfig)
|
||||||
class OctoChannelBenchmarkConfig extends Config(new With8MemoryChannels ++ new SingleChannelBenchmarkConfig)
|
class OctoChannelBenchmarkConfig extends Config(new With8MemoryChannels ++ new SingleChannelBenchmarkConfig)
|
||||||
|
|
||||||
class EightChannelVLSIConfig extends Config(new With8MemoryChannels ++ new DefaultVLSIConfig)
|
class EightChannelConfig extends Config(new With8MemoryChannels ++ new BaseConfig)
|
||||||
|
|
||||||
class WithSplitL2Metadata extends Config(knobValues = { case "L2_SPLIT_METADATA" => true; case _ => throw new CDEMatchError })
|
class WithSplitL2Metadata extends Config(knobValues = { case "L2_SPLIT_METADATA" => true; case _ => throw new CDEMatchError })
|
||||||
class SplitL2MetadataTestConfig extends Config(new WithSplitL2Metadata ++ new DefaultL2Config)
|
class SplitL2MetadataTestConfig extends Config(new WithSplitL2Metadata ++ new DefaultL2Config)
|
||||||
|
|
||||||
class DualCoreConfig extends Config(new With2Cores ++ new DefaultConfig)
|
class DualCoreConfig extends Config(new With2Cores ++ new BaseConfig)
|
||||||
|
@ -141,7 +141,7 @@ class WithTraceGen extends Config(
|
|||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
class GroundTestConfig extends Config(new WithGroundTest ++ new DefaultConfig)
|
class GroundTestConfig extends Config(new WithGroundTest ++ new BaseConfig)
|
||||||
class MemtestConfig extends Config(new WithMemtest ++ new GroundTestConfig)
|
class MemtestConfig extends Config(new WithMemtest ++ new GroundTestConfig)
|
||||||
class MemtestL2Config extends Config(
|
class MemtestL2Config extends Config(
|
||||||
new WithMemtest ++ new WithL2Cache ++ new GroundTestConfig)
|
new WithMemtest ++ new WithL2Cache ++ new GroundTestConfig)
|
||||||
|
@ -103,7 +103,7 @@ object DefaultTestSuites {
|
|||||||
val rv32umNames = LinkedHashSet("mul", "mulh", "mulhsu", "mulhu", "div", "divu", "rem", "remu")
|
val rv32umNames = LinkedHashSet("mul", "mulh", "mulhsu", "mulhu", "div", "divu", "rem", "remu")
|
||||||
val rv32um = new AssemblyTestSuite("rv32um", "rv32ui", rv32umNames)(_)
|
val rv32um = new AssemblyTestSuite("rv32um", "rv32ui", rv32umNames)(_)
|
||||||
|
|
||||||
val rv32uaNames = LinkedHashSet("amoadd_w", "amoand_w", "amoor_w", "amoxor_w", "amoswap_w", "amomax_w", "amomaxu_w", "amomin_w", "amominu_w")
|
val rv32uaNames = LinkedHashSet("lrsc", "amoadd_w", "amoand_w", "amoor_w", "amoxor_w", "amoswap_w", "amomax_w", "amomaxu_w", "amomin_w", "amominu_w")
|
||||||
val rv32ua = new AssemblyTestSuite("rv32ua", "rv32ui", rv32uaNames)(_)
|
val rv32ua = new AssemblyTestSuite("rv32ua", "rv32ui", rv32uaNames)(_)
|
||||||
|
|
||||||
val rv32siNames = LinkedHashSet("csr", "ma_fetch", "scall", "sbreak", "wfi")
|
val rv32siNames = LinkedHashSet("csr", "ma_fetch", "scall", "sbreak", "wfi")
|
||||||
@ -112,7 +112,7 @@ object DefaultTestSuites {
|
|||||||
val rv32miNames = LinkedHashSet("csr", "mcsr", "dirty", "illegal", "ma_addr", "ma_fetch", "sbreak", "scall")
|
val rv32miNames = LinkedHashSet("csr", "mcsr", "dirty", "illegal", "ma_addr", "ma_fetch", "sbreak", "scall")
|
||||||
val rv32mi = new AssemblyTestSuite("rv32mi", "rv32mi", rv32miNames)(_)
|
val rv32mi = new AssemblyTestSuite("rv32mi", "rv32mi", rv32miNames)(_)
|
||||||
|
|
||||||
val rv32u = List(rv32ui, rv32um, rv32ua)
|
val rv32u = List(rv32ui, rv32um)
|
||||||
val rv32i = List(rv32ui, rv32si, rv32mi)
|
val rv32i = List(rv32ui, rv32si, rv32mi)
|
||||||
|
|
||||||
val rv64uiNames = LinkedHashSet("addw", "addiw", "ld", "lwu", "sd", "slliw", "sllw", "sltiu", "sltu", "sraiw", "sraw", "srliw", "srlw", "subw")
|
val rv64uiNames = LinkedHashSet("addw", "addiw", "ld", "lwu", "sd", "slliw", "sllw", "sltiu", "sltu", "sraiw", "sraw", "srliw", "srlw", "subw")
|
||||||
@ -140,7 +140,7 @@ object DefaultTestSuites {
|
|||||||
|
|
||||||
// TODO: "rv64ui-pm-lrsc", "rv64mi-pm-ipi",
|
// TODO: "rv64ui-pm-lrsc", "rv64mi-pm-ipi",
|
||||||
|
|
||||||
val rv64u = List(rv64ui, rv64um, rv64ua)
|
val rv64u = List(rv64ui, rv64um)
|
||||||
val rv64i = List(rv64ui, rv64si, rv64mi)
|
val rv64i = List(rv64ui, rv64si, rv64mi)
|
||||||
|
|
||||||
val bmarks = new BenchmarkTestSuite("basic", "$(RISCV)/riscv64-unknown-elf/share/riscv-tests/benchmarks", LinkedHashSet(
|
val bmarks = new BenchmarkTestSuite("basic", "$(RISCV)/riscv64-unknown-elf/share/riscv-tests/benchmarks", LinkedHashSet(
|
||||||
|
2
uncore
2
uncore
@ -1 +1 @@
|
|||||||
Subproject commit cf7534a5369e8af03e8d793c6b32f36916c1a13b
|
Subproject commit 2b1da9213aa43cb37d3e7da7d9146825856ec6ef
|
@ -16,7 +16,7 @@ sim_dir = .
|
|||||||
output_dir = $(sim_dir)/output
|
output_dir = $(sim_dir)/output
|
||||||
|
|
||||||
BACKEND ?= v
|
BACKEND ?= v
|
||||||
CONFIG ?= DefaultVLSIConfig
|
CONFIG ?= DefaultConfig
|
||||||
TB ?= rocketTestHarness
|
TB ?= rocketTestHarness
|
||||||
|
|
||||||
include $(base_dir)/Makefrag
|
include $(base_dir)/Makefrag
|
||||||
|
Loading…
Reference in New Issue
Block a user