Skip to content

Commit 0710e47

Browse files
committed
fixup! [svsim] Add -j, --build-jobs, and --verilate-jobs
1 parent fbb2f4c commit 0710e47

File tree

3 files changed

+174
-4
lines changed

3 files changed

+174
-4
lines changed

src/main/scala/chisel3/simulator/scalatest/Cli.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ object Cli {
129129
traceSettings = options.traceSettings.copy(enableVcd = true)
130130
)
131131
case options: svsim.verilator.Backend.CompilationSettings =>
132-
options.copy(
133-
traceStyle = options.traceStyle match {
132+
options.withTraceStyle(
133+
options.traceStyle match {
134134
case None =>
135135
Some(
136136
svsim.verilator.Backend.CompilationSettings

svsim/src/main/scala/verilator/Backend.scala

Lines changed: 171 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,49 @@ object Backend {
9090
}
9191
}
9292

93+
@deprecated("use newer CompilationSettings case class apply", "Chisel 7.1.0")
94+
def apply(
95+
traceStyle: Option[CompilationSettings.TraceStyle],
96+
outputSplit: Option[Int],
97+
outputSplitCFuncs: Option[Int],
98+
disabledWarnings: Seq[String],
99+
disableFatalExitOnWarnings: Boolean,
100+
enableAllAssertions: Boolean,
101+
timing: Option[CompilationSettings.Timing.Type]
102+
): CompilationSettings = CompilationSettings(
103+
traceStyle,
104+
outputSplit,
105+
outputSplitCFuncs,
106+
disabledWarnings,
107+
disableFatalExitOnWarnings,
108+
enableAllAssertions,
109+
timing,
110+
Some(CompilationSettings.Parallelism.Uniform(0))
111+
)
112+
113+
@deprecated("avoid use of unapply", "Chisel 7.1.0")
114+
def unapply(compilationSettings: CompilationSettings): Option[
115+
(
116+
Option[CompilationSettings.TraceStyle],
117+
Option[Int],
118+
Option[Int],
119+
Seq[String],
120+
Boolean,
121+
Boolean,
122+
Option[CompilationSettings.Timing.Type]
123+
)
124+
] = Some(
125+
(
126+
compilationSettings.traceStyle,
127+
compilationSettings.outputSplit,
128+
compilationSettings.outputSplitCFuncs,
129+
compilationSettings.disabledWarnings,
130+
compilationSettings.disableFatalExitOnWarnings,
131+
compilationSettings.enableAllAssertions,
132+
compilationSettings.timing
133+
)
134+
)
135+
93136
}
94137

95138
case class CompilationSettings(
@@ -101,7 +144,134 @@ object Backend {
101144
enableAllAssertions: Boolean = false,
102145
timing: Option[CompilationSettings.Timing.Type] = None,
103146
parallelism: Option[CompilationSettings.Parallelism.Type] = Some(CompilationSettings.Parallelism.Uniform(0))
104-
) extends svsim.Backend.Settings
147+
) extends svsim.Backend.Settings {
148+
def this(
149+
traceStyle: Option[CompilationSettings.TraceStyle],
150+
outputSplit: Option[Int],
151+
outputSplitCFuncs: Option[Int],
152+
disabledWarnings: Seq[String],
153+
disableFatalExitOnWarnings: Boolean,
154+
enableAllAssertions: Boolean,
155+
timing: Option[CompilationSettings.Timing.Type]
156+
) = this(
157+
traceStyle,
158+
outputSplit,
159+
outputSplitCFuncs,
160+
disabledWarnings,
161+
disableFatalExitOnWarnings,
162+
enableAllAssertions,
163+
timing,
164+
Some(CompilationSettings.Parallelism.Uniform(0))
165+
)
166+
167+
@deprecated("don't use the copy method, use 'with<name>' single setters", "Chisel 7.1.0")
168+
def copy(
169+
traceStyle: Option[CompilationSettings.TraceStyle] = this.traceStyle,
170+
outputSplit: Option[Int] = this.outputSplit,
171+
outputSplitCFuncs: Option[Int] = this.outputSplitCFuncs,
172+
disabledWarnings: Seq[String] = this.disabledWarnings,
173+
disableFatalExitOnWarnings: Boolean = this.disableFatalExitOnWarnings,
174+
enableAllAssertions: Boolean = this.enableAllAssertions,
175+
timing: Option[CompilationSettings.Timing.Type] = this.timing
176+
): CompilationSettings = CompilationSettings(
177+
traceStyle = traceStyle,
178+
outputSplit = outputSplit,
179+
outputSplitCFuncs = outputSplitCFuncs,
180+
disabledWarnings = disabledWarnings,
181+
disableFatalExitOnWarnings = disableFatalExitOnWarnings,
182+
enableAllAssertions = enableAllAssertions,
183+
timing = timing,
184+
parallelism = this.parallelism
185+
)
186+
187+
def withTraceStyle(traceStyle: Option[CompilationSettings.TraceStyle]) = CompilationSettings(
188+
traceStyle,
189+
this.outputSplit,
190+
this.outputSplitCFuncs,
191+
this.disabledWarnings,
192+
this.disableFatalExitOnWarnings,
193+
this.enableAllAssertions,
194+
this.timing,
195+
this.parallelism
196+
)
197+
198+
def withOutputSplit(outputSplit: Option[Int]) = CompilationSettings(
199+
this.traceStyle,
200+
this.outputSplit,
201+
outputSplitCFuncs,
202+
this.disabledWarnings,
203+
this.disableFatalExitOnWarnings,
204+
this.enableAllAssertions,
205+
this.timing,
206+
this.parallelism
207+
)
208+
209+
def withOutputSplitCFuncs(outputSplitCFuncs: Option[Int]) = CompilationSettings(
210+
this.traceStyle,
211+
this.outputSplit,
212+
outputSplitCFuncs,
213+
this.disabledWarnings,
214+
this.disableFatalExitOnWarnings,
215+
this.enableAllAssertions,
216+
this.timing,
217+
this.parallelism
218+
)
219+
220+
def withDisabledWarnings(disabledWarnings: Seq[String]) = CompilationSettings(
221+
this.traceStyle,
222+
this.outputSplit,
223+
this.outputSplitCFuncs,
224+
disabledWarnings,
225+
this.disableFatalExitOnWarnings,
226+
this.enableAllAssertions,
227+
this.timing,
228+
this.parallelism
229+
)
230+
231+
def withDisableFatalExitOnWarnings(disableFatalExitOnWarnings: Boolean) = CompilationSettings(
232+
this.traceStyle,
233+
this.outputSplit,
234+
this.outputSplitCFuncs,
235+
this.disabledWarnings,
236+
disableFatalExitOnWarnings,
237+
this.enableAllAssertions,
238+
this.timing,
239+
this.parallelism
240+
)
241+
242+
def withEnableAllAssertions(enableAllAssertions: Boolean) = CompilationSettings(
243+
this.traceStyle,
244+
this.outputSplit,
245+
this.outputSplitCFuncs,
246+
this.disabledWarnings,
247+
this.disableFatalExitOnWarnings,
248+
enableAllAssertions,
249+
this.timing,
250+
this.parallelism
251+
)
252+
253+
def withTiming(timing: Option[CompilationSettings.Timing.Type]) = CompilationSettings(
254+
this.traceStyle,
255+
this.outputSplit,
256+
this.outputSplitCFuncs,
257+
this.disabledWarnings,
258+
this.disableFatalExitOnWarnings,
259+
this.enableAllAssertions,
260+
timing,
261+
this.parallelism
262+
)
263+
264+
def withParallelism(parallelism: Option[CompilationSettings.Parallelism.Type]) = CompilationSettings(
265+
this.traceStyle,
266+
this.outputSplit,
267+
this.outputSplitCFuncs,
268+
this.disabledWarnings,
269+
this.disableFatalExitOnWarnings,
270+
this.enableAllAssertions,
271+
this.timing,
272+
parallelism
273+
)
274+
}
105275

106276
def initializeFromProcessEnvironment() = {
107277
val output = mutable.ArrayBuffer.empty[String]

svsim/src/test/scala/BackendSpec.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ class VerilatorSpec extends BackendSpec {
174174
)(
175175
workingDirectoryTag = "verilator",
176176
commonSettings = CommonCompilationSettings(),
177-
backendSpecificSettings = compilationSettings.copy(traceStyle = None),
177+
backendSpecificSettings = compilationSettings.withTraceStyle(None),
178178
customSimulationWorkingDirectory = None,
179179
verbose = false
180180
)

0 commit comments

Comments
 (0)