diff options
| author | Eddie Hung <eddie@fpgeh.com> | 2020-01-07 13:30:31 -0800 | 
|---|---|---|
| committer | Eddie Hung <eddie@fpgeh.com> | 2020-01-07 13:30:31 -0800 | 
| commit | 2ac36031d4da8d2e99d89f16cb69871c9e3c59aa (patch) | |
| tree | ec566ad437952384a0b665b6d3d65b8fd3e57296 /frontends | |
| parent | 0d3f10d3cc55e83ae6a39881227feb843769d6b1 (diff) | |
| download | yosys-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.cc | 12 | 
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) | 
