-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
Configs.scala
107 lines (88 loc) · 4.01 KB
/
Configs.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// See LICENSE.SiFive for license details.
// See LICENSE.Berkeley for license details.
package freechips.rocketchip.system
import org.chipsalliance.cde.config.Config
import freechips.rocketchip.subsystem._
import freechips.rocketchip.rocket.{WithNBigCores, WithNMedCores, WithNSmallCores, WithRV32, WithFP16, WithHypervisor, With1TinyCore, WithScratchpadsOnly, WithCloneRocketTiles, WithB}
class WithJtagDTMSystem extends freechips.rocketchip.subsystem.WithJtagDTM
class WithDebugSBASystem extends freechips.rocketchip.subsystem.WithDebugSBA
class WithDebugAPB extends freechips.rocketchip.subsystem.WithDebugAPB
class BaseConfig extends Config(
new WithDefaultMemPort ++
new WithDefaultMMIOPort ++
new WithDefaultSlavePort ++
new WithTimebase(BigInt(1000000)) ++ // 1 MHz
new WithDTS("freechips,rocketchip-unknown", Nil) ++
new WithNExtTopInterrupts(2) ++
new BaseSubsystemConfig
)
class DefaultConfig extends Config(new WithNBigCores(1) ++ new WithCoherentBusTopology ++ new BaseConfig)
class DefaultBufferlessConfig extends Config(new WithBufferlessBroadcastHub ++ new DefaultConfig)
class DefaultSmallConfig extends Config(new WithNSmallCores(1) ++ new WithCoherentBusTopology ++ new BaseConfig)
class DefaultRV32Config extends Config(new WithRV32 ++ new DefaultConfig)
class DefaultFP16Config extends Config(new WithFP16 ++ new DefaultConfig)
class DefaultBConfig extends Config(new WithB ++ new DefaultConfig)
class DefaultRV32BConfig extends Config(new WithB ++ new DefaultRV32Config)
class HypervisorConfig extends Config(new WithHypervisor ++ new DefaultConfig)
class DualBankConfig extends Config(new WithNBanks(2) ++ new DefaultConfig)
class DualCoreConfig extends Config(new WithNBigCores(2) ++ new WithCoherentBusTopology ++ new BaseConfig)
class DualChannelConfig extends Config(new WithNMemoryChannels(2) ++ new DefaultConfig)
class EightChannelConfig extends Config(new WithNMemoryChannels(8) ++ new DefaultConfig)
class ClusterConfig extends Config(
new WithNBigCores(2, InCluster(3)) ++
new WithNBigCores(2, InCluster(1)) ++
new WithNBigCores(2, InCluster(0)) ++
new WithCluster(3, location=InCluster(2)) ++
new WithCluster(2) ++
new WithCluster(1) ++
new WithCluster(0) ++
new DefaultConfig
)
class DualChannelDualBankConfig extends Config(
new WithNMemoryChannels(2) ++
new WithNBanks(4) ++ new DefaultConfig
)
class RoccExampleConfig extends Config(new WithRoccExample ++ new DefaultConfig)
class HeterogeneousTileExampleConfig extends Config(
new WithNBigCores(n = 1) ++
new WithNMedCores(n = 1) ++
new WithNSmallCores(n = 1) ++
new WithCoherentBusTopology ++
new BaseConfig
)
class Edge128BitConfig extends Config(
new WithEdgeDataBits(128) ++ new DefaultConfig
)
class Edge32BitConfig extends Config(
new WithEdgeDataBits(32) ++ new DefaultConfig
)
class SingleChannelBenchmarkConfig extends Config(new DefaultConfig)
class DualChannelBenchmarkConfig extends Config(new WithNMemoryChannels(2) ++ new SingleChannelBenchmarkConfig)
class QuadChannelBenchmarkConfig extends Config(new WithNMemoryChannels(4) ++ new SingleChannelBenchmarkConfig)
class OctoChannelBenchmarkConfig extends Config(new WithNMemoryChannels(8) ++ new SingleChannelBenchmarkConfig)
class TinyConfig extends Config(
new WithNoMemPort ++
new WithNMemoryChannels(0) ++
new WithNBanks(0) ++
new With1TinyCore ++
new WithIncoherentBusTopology ++
new BaseConfig
)
class MemPortOnlyConfig extends Config(
new WithNoMMIOPort ++
new WithNoSlavePort ++
new DefaultConfig
)
class MMIOPortOnlyConfig extends Config(
new WithNoSlavePort ++
new WithNoMemPort ++
new WithNMemoryChannels(0) ++
new WithNBanks(0) ++
new WithIncoherentTiles ++
new WithScratchpadsOnly ++
new WithIncoherentBusTopology ++
new DefaultConfig
)
class BaseFPGAConfig extends Config(new BaseConfig ++ new WithCoherentBusTopology)
class DefaultFPGAConfig extends Config(new WithNSmallCores(1) ++ new BaseFPGAConfig)
class CloneTileConfig extends Config(new WithCloneRocketTiles(7) ++ new WithNBigCores(1) ++ new WithCoherentBusTopology ++ new BaseConfig)