@@ -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 ]
0 commit comments