diff options
| author | Megan Wachs | 2022-07-14 08:30:13 -0700 |
|---|---|---|
| committer | GitHub | 2022-07-14 15:30:13 +0000 |
| commit | 80035d2a7b94faf9bfef962f83f9257f57419a35 (patch) | |
| tree | ffaffdd307b5febe561fca378ecc18e9b85b2a30 /core/src/main/scala | |
| parent | dbffb8779efca6bea8699ed80a04b1d47d657d93 (diff) | |
3.5x: Make explicit copy constructors for ExplicitCompileOptions (#2629)
* Add copy constructors for compile options
* Add tests for the copy constructors
Co-authored-by: Jiuyang Liu <liu@jiuyang.me>
Diffstat (limited to 'core/src/main/scala')
| -rw-r--r-- | core/src/main/scala/chisel3/CompileOptions.scala | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/core/src/main/scala/chisel3/CompileOptions.scala b/core/src/main/scala/chisel3/CompileOptions.scala index d7d30306..aca00d1f 100644 --- a/core/src/main/scala/chisel3/CompileOptions.scala +++ b/core/src/main/scala/chisel3/CompileOptions.scala @@ -82,7 +82,28 @@ object ExplicitCompileOptions { explicitInvalidate = false, inferModuleReset = false ) { + override def migrateInferModuleReset = false override def emitStrictConnects = false + override def copy( + connectFieldsMustMatch: Boolean = false, + declaredTypeMustBeUnbound: Boolean = false, + dontTryConnectionsSwapped: Boolean = false, + dontAssumeDirectionality: Boolean = false, + checkSynthesizable: Boolean = false, + explicitInvalidate: Boolean = false, + inferModuleReset: Boolean = false + ) = new CompileOptionsClass( + connectFieldsMustMatch, + declaredTypeMustBeUnbound, + dontTryConnectionsSwapped, + dontAssumeDirectionality, + checkSynthesizable, + explicitInvalidate, + inferModuleReset + ) { + override def migrateInferModuleReset = false + override def emitStrictConnects = false + } } // Collection of "strict" connection compile options, preferred for new code. @@ -94,5 +115,30 @@ object ExplicitCompileOptions { checkSynthesizable = true, explicitInvalidate = true, inferModuleReset = true - ) + ) { + + override def migrateInferModuleReset = false + override def emitStrictConnects = true + + override def copy( + connectFieldsMustMatch: Boolean = true, + declaredTypeMustBeUnbound: Boolean = true, + dontTryConnectionsSwapped: Boolean = true, + dontAssumeDirectionality: Boolean = true, + checkSynthesizable: Boolean = true, + explicitInvalidate: Boolean = true, + inferModuleReset: Boolean = true + ) = new CompileOptionsClass( + connectFieldsMustMatch, + declaredTypeMustBeUnbound, + dontTryConnectionsSwapped, + dontAssumeDirectionality, + checkSynthesizable, + explicitInvalidate, + inferModuleReset + ) { + override def migrateInferModuleReset = false + override def emitStrictConnects = true + } + } } |
