summaryrefslogtreecommitdiff
path: root/chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala
diff options
context:
space:
mode:
Diffstat (limited to 'chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala')
-rw-r--r--chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala28
1 files changed, 15 insertions, 13 deletions
diff --git a/chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala b/chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala
index c40b85ad..857b25aa 100644
--- a/chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala
+++ b/chiselFrontend/src/main/scala/chisel3/core/BiConnect.scala
@@ -167,32 +167,34 @@ object BiConnect {
case (None, Some(Input)) => issueConnectR2L(left, right)
case (Some(Input), Some(Input)) => {
- if (compileOptions.portDeterminesDirection)
- (left.binding, right.binding) match {
- case (PortBinding(_, _), PortBinding(_, _)) => throw BothDriversException
- case (PortBinding(_, _), _) => issueConnectL2R(left, right)
- case (_, PortBinding(_, _)) => issueConnectR2L(left, right)
- case _ => throw BothDriversException
- } else {
+ if (compileOptions.dontAssumeDirectionality) {
throw BothDriversException
+ } else {
+ (left.binding, right.binding) match {
+ case (PortBinding(_, _), PortBinding(_, _)) => throw BothDriversException
+ case (PortBinding(_, _), _) => issueConnectL2R(left, right)
+ case (_, PortBinding(_, _)) => issueConnectR2L(left, right)
+ case _ => throw BothDriversException
+ }
}
}
case (Some(Output), Some(Output)) => {
- if (compileOptions.portDeterminesDirection)
+ if (compileOptions.dontAssumeDirectionality) {
+ throw BothDriversException
+ } else {
(left.binding, right.binding) match {
case (PortBinding(_, _), PortBinding(_, _)) => throw BothDriversException
case (PortBinding(_, _), _) => issueConnectR2L(left, right)
case (_, PortBinding(_, _)) => issueConnectL2R(left, right)
case _ => throw BothDriversException
- } else {
- throw BothDriversException
+ }
}
}
case (None, None) => {
- if (compileOptions.assumeLHSIsOutput) {
- issueConnectR2L(left, right)
- } else {
+ if (compileOptions.dontAssumeDirectionality) {
throw UnknownDriverException
+ } else {
+ issueConnectR2L(left, right)
}
}
}