diff options
| author | Jim Lawson | 2016-08-18 15:26:39 -0700 |
|---|---|---|
| committer | Jim Lawson | 2016-08-18 15:26:39 -0700 |
| commit | 471a9e2d15d4c968fc6eca9a86c232c6c9c9322d (patch) | |
| tree | b9c30d372884ab2e7c8f28bd9bde58443a1b2dd4 /chiselFrontend/src | |
| parent | bd6e69c19aef76b6e87f7e328e03d1b93f8a1472 (diff) | |
Add assumeNoDirectionIsOutput.
Diffstat (limited to 'chiselFrontend/src')
| -rw-r--r-- | chiselFrontend/src/main/scala/chisel3/core/MonoConnect.scala | 16 | ||||
| -rw-r--r-- | chiselFrontend/src/main/scala/chisel3/internal/CompileOptions.scala | 1 |
2 files changed, 15 insertions, 2 deletions
diff --git a/chiselFrontend/src/main/scala/chisel3/core/MonoConnect.scala b/chiselFrontend/src/main/scala/chisel3/core/MonoConnect.scala index 4ba921fa..74373e22 100644 --- a/chiselFrontend/src/main/scala/chisel3/core/MonoConnect.scala +++ b/chiselFrontend/src/main/scala/chisel3/core/MonoConnect.scala @@ -133,7 +133,13 @@ object MonoConnect { case (None, Some(Input)) => issueConnect(sink, source) case (Some(Output), Some(Output)) => issueConnect(sink, source) case (Some(Output), Some(Input)) => issueConnect(sink, source) - case (_, None) => throw UnreadableSourceException + case (_, None) => { + if (compileOptions.assumeNoDirectionIsOutput) { + issueConnect(sink, source) + } else { + throw UnreadableSourceException + } + } case (Some(Input), Some(Output)) if (compileOptions.tryConnectionsSwapped) => issueConnect(source, sink) case (Some(Input), _) => throw UnwritableSinkException } @@ -165,7 +171,13 @@ object MonoConnect { case (Some(Input), Some(Input)) => issueConnect(sink, source) case (Some(Input), Some(Output)) => issueConnect(sink, source) case (Some(Output), _) => throw UnwritableSinkException - case (_, None) => throw UnreadableSourceException + case (_, None) => { + if (compileOptions.assumeNoDirectionIsOutput) { + issueConnect(sink, source) + } else { + throw UnreadableSourceException + } + } case (None, _) => throw UnwritableSinkException } } diff --git a/chiselFrontend/src/main/scala/chisel3/internal/CompileOptions.scala b/chiselFrontend/src/main/scala/chisel3/internal/CompileOptions.scala index e040201b..912184fb 100644 --- a/chiselFrontend/src/main/scala/chisel3/internal/CompileOptions.scala +++ b/chiselFrontend/src/main/scala/chisel3/internal/CompileOptions.scala @@ -19,4 +19,5 @@ class CompileOptions(optionsMap: Map[String, String]) { val portDeterminesDirection: Boolean = optionsMap.getOrElse("portDeterminesDirection", looseDefault).toBoolean val tryConnectionsSwapped: Boolean = optionsMap.getOrElse("tryConnectionsSwapped", looseDefault).toBoolean val assumeLHSIsOutput: Boolean = optionsMap.getOrElse("assumeLHSIsOutput", looseDefault).toBoolean + val assumeNoDirectionIsOutput: Boolean = optionsMap.getOrElse("assumeNoDirectionIsOutput", looseDefault).toBoolean } |
