summaryrefslogtreecommitdiff
path: root/chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala
diff options
context:
space:
mode:
authorJim Lawson2016-08-29 17:04:51 -0700
committerJim Lawson2016-08-29 17:04:51 -0700
commit1973e4d7333e2c57be4bcb7204210ecafdacab93 (patch)
tree9752427bbfa2487dc6250cfb0d2aa8b952c3d24a /chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala
parent62817134d222747f1eab34626fe7b1bb13b9f6df (diff)
Check module-specific compile options.
Import chisel3.NotStrict.CompileOptions in Chisel package. Add CompileOptions tests.
Diffstat (limited to 'chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala')
-rw-r--r--chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala12
1 files changed, 7 insertions, 5 deletions
diff --git a/chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala b/chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala
index 857b25aa..969e5654 100644
--- a/chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala
+++ b/chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala
@@ -1,3 +1,5 @@
+// See LICENSE for license details.
+
package chisel3.core
import chisel3.internal.Builder.{compileOptions, pushCommand}
@@ -70,7 +72,7 @@ object BiConnect {
// Verify right has no extra fields that left doesn't have
for((field, right_sub) <- right_b.elements) {
if(!left_b.elements.isDefinedAt(field)) {
- if (compileOptions.connectFieldsMustMatch) {
+ if (compileOptions.connectFieldsMustMatch || context_mod.compileOptions.connectFieldsMustMatch) {
throw MissingLeftFieldException(field)
}
}
@@ -81,7 +83,7 @@ object BiConnect {
right_b.elements.get(field) match {
case Some(right_sub) => connect(sourceInfo, left_sub, right_sub, context_mod)
case None => {
- if (compileOptions.connectFieldsMustMatch) {
+ if (compileOptions.connectFieldsMustMatch || context_mod.compileOptions.connectFieldsMustMatch) {
throw MissingRightFieldException(field)
}
}
@@ -167,7 +169,7 @@ object BiConnect {
case (None, Some(Input)) => issueConnectR2L(left, right)
case (Some(Input), Some(Input)) => {
- if (compileOptions.dontAssumeDirectionality) {
+ if (compileOptions.dontAssumeDirectionality || context_mod.compileOptions.dontAssumeDirectionality) {
throw BothDriversException
} else {
(left.binding, right.binding) match {
@@ -179,7 +181,7 @@ object BiConnect {
}
}
case (Some(Output), Some(Output)) => {
- if (compileOptions.dontAssumeDirectionality) {
+ if (compileOptions.dontAssumeDirectionality || context_mod.compileOptions.dontAssumeDirectionality) {
throw BothDriversException
} else {
(left.binding, right.binding) match {
@@ -191,7 +193,7 @@ object BiConnect {
}
}
case (None, None) => {
- if (compileOptions.dontAssumeDirectionality) {
+ if (compileOptions.dontAssumeDirectionality || context_mod.compileOptions.dontAssumeDirectionality) {
throw UnknownDriverException
} else {
issueConnectR2L(left, right)