aboutsummaryrefslogtreecommitdiffstats
path: root/frontends
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2020-01-07 13:30:31 -0800
committerEddie Hung <eddie@fpgeh.com>2020-01-07 13:30:31 -0800
commit2ac36031d4da8d2e99d89f16cb69871c9e3c59aa (patch)
treeec566ad437952384a0b665b6d3d65b8fd3e57296 /frontends
parent0d3f10d3cc55e83ae6a39881227feb843769d6b1 (diff)
downloadyosys-2ac36031d4da8d2e99d89f16cb69871c9e3c59aa.tar.gz
yosys-2ac36031d4da8d2e99d89f16cb69871c9e3c59aa.tar.bz2
yosys-2ac36031d4da8d2e99d89f16cb69871c9e3c59aa.zip
read_aiger: consistency between ascii and binary; also name latches
Diffstat (limited to 'frontends')
-rw-r--r--frontends/aiger/aigerparse.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/frontends/aiger/aigerparse.cc b/frontends/aiger/aigerparse.cc
index f7b9146ce..8a114b18c 100644
--- a/frontends/aiger/aigerparse.cc
+++ b/frontends/aiger/aigerparse.cc
@@ -507,13 +507,15 @@ void AigerReader::parse_aiger_ascii()
unsigned l1, l2, l3;
// Parse inputs
+ int digits = ceil(log10(I));
for (unsigned i = 1; i <= I; ++i, ++line_count) {
if (!(f >> l1))
log_error("Line %u cannot be interpreted as an input!\n", line_count);
log_debug2("%d is an input\n", l1);
log_assert(!(l1 & 1)); // Inputs can't be inverted
- RTLIL::Wire *wire = createWireIfNotExists(module, l1);
+ RTLIL::Wire *wire = module->addWire(stringf("$i%0*d", digits, l1 >> 1));
wire->port_input = true;
+ module->connect(createWireIfNotExists(module, l1), wire);
inputs.push_back(wire);
}
@@ -527,12 +529,14 @@ void AigerReader::parse_aiger_ascii()
clk_wire->port_input = true;
clk_wire->port_output = false;
}
+ digits = ceil(log10(L));
for (unsigned i = 0; i < L; ++i, ++line_count) {
if (!(f >> l1 >> l2))
log_error("Line %u cannot be interpreted as a latch!\n", line_count);
log_debug2("%d %d is a latch\n", l1, l2);
log_assert(!(l1 & 1));
- RTLIL::Wire *q_wire = createWireIfNotExists(module, l1);
+ RTLIL::Wire *q_wire = module->addWire(stringf("$l%0*d", digits, l1 >> 1));
+ module->connect(createWireIfNotExists(module, l1), q_wire);
RTLIL::Wire *d_wire = createWireIfNotExists(module, l2);
if (clk_wire)
@@ -655,12 +659,14 @@ void AigerReader::parse_aiger_binary()
clk_wire->port_input = true;
clk_wire->port_output = false;
}
+ digits = ceil(log10(L));
l1 = (I+1) * 2;
for (unsigned i = 0; i < L; ++i, ++line_count, l1 += 2) {
if (!(f >> l2))
log_error("Line %u cannot be interpreted as a latch!\n", line_count);
log_debug("%d %d is a latch\n", l1, l2);
- RTLIL::Wire *q_wire = createWireIfNotExists(module, l1);
+ RTLIL::Wire *q_wire = module->addWire(stringf("$l%0*d", digits, l1 >> 1));
+ module->connect(createWireIfNotExists(module, l1), q_wire);
RTLIL::Wire *d_wire = createWireIfNotExists(module, l2);
if (clk_wire)