aboutsummaryrefslogtreecommitdiffstats
path: root/passes/techmap/deminout.cc
diff options
context:
space:
mode:
authorJim Lawson <ucbjrl@berkeley.edu>2018-12-18 14:08:20 -0800
committerJim Lawson <ucbjrl@berkeley.edu>2018-12-18 14:08:20 -0800
commitf4d500f98e0e298a98099ec2177b43571e9cda61 (patch)
treee39952065ae50763d5ef47ec1495ad234eaca59e /passes/techmap/deminout.cc
parent3bb9288d65f547085b79fbaffb7046f336ff7f59 (diff)
parent2d73e1b60a43f2a621b387768134b83054f59e89 (diff)
downloadyosys-f4d500f98e0e298a98099ec2177b43571e9cda61.tar.gz
yosys-f4d500f98e0e298a98099ec2177b43571e9cda61.tar.bz2
yosys-f4d500f98e0e298a98099ec2177b43571e9cda61.zip
Merge remote-tracking branch 'upstream/master'
# Conflicts: # CHANGELOG # frontends/verific/verific.cc # frontends/verilog/verilog_parser.y
Diffstat (limited to 'passes/techmap/deminout.cc')
-rw-r--r--passes/techmap/deminout.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/passes/techmap/deminout.cc b/passes/techmap/deminout.cc
index 9f0c7bf67..47d0ff416 100644
--- a/passes/techmap/deminout.cc
+++ b/passes/techmap/deminout.cc
@@ -83,9 +83,9 @@ struct DeminoutPass : public Pass {
for (auto bit : sigmap(conn.second))
bits_used.insert(bit);
- if (conn.first == "\\Y" && cell->type.in("$mux", "$pmux", "$_MUX_", "$_TBUF_"))
+ if (conn.first == "\\Y" && cell->type.in("$mux", "$pmux", "$_MUX_", "$_TBUF_", "$tribuf"))
{
- bool tribuf = (cell->type == "$_TBUF_");
+ bool tribuf = (cell->type == "$_TBUF_" || cell->type == "$tribuf");
if (!tribuf) {
for (auto &c : cell->connections()) {
@@ -113,7 +113,8 @@ struct DeminoutPass : public Pass {
{
if (bits_numports[bit] > 1 || bits_inout.count(bit))
new_input = true, new_output = true;
-
+ if (bit == State::S0 || bit == State::S1)
+ new_output = true;
if (bits_written.count(bit)) {
new_output = true;
if (bits_tribuf.count(bit))