mirror of https://github.com/YosysHQ/yosys.git
abc: Warn about replacing undef bits
This commit is contained in:
parent
11a2de815a
commit
e995dddeaa
|
@ -127,10 +127,15 @@ bool clk_polarity, en_polarity, arst_polarity, srst_polarity;
|
||||||
RTLIL::SigSpec clk_sig, en_sig, arst_sig, srst_sig;
|
RTLIL::SigSpec clk_sig, en_sig, arst_sig, srst_sig;
|
||||||
dict<int, std::string> pi_map, po_map;
|
dict<int, std::string> pi_map, po_map;
|
||||||
|
|
||||||
|
int undef_bits_lost;
|
||||||
|
|
||||||
int map_signal(RTLIL::SigBit bit, gate_type_t gate_type = G(NONE), int in1 = -1, int in2 = -1, int in3 = -1, int in4 = -1)
|
int map_signal(RTLIL::SigBit bit, gate_type_t gate_type = G(NONE), int in1 = -1, int in2 = -1, int in3 = -1, int in4 = -1)
|
||||||
{
|
{
|
||||||
assign_map.apply(bit);
|
assign_map.apply(bit);
|
||||||
|
|
||||||
|
if (bit == State::Sx)
|
||||||
|
undef_bits_lost++;
|
||||||
|
|
||||||
if (signal_map.count(bit) == 0) {
|
if (signal_map.count(bit) == 0) {
|
||||||
gate_t gate;
|
gate_t gate;
|
||||||
gate.id = signal_list.size();
|
gate.id = signal_list.size();
|
||||||
|
@ -880,10 +885,15 @@ void abc_module(RTLIL::Design *design, RTLIL::Module *current_module, std::strin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
undef_bits_lost = 0;
|
||||||
|
|
||||||
had_init = false;
|
had_init = false;
|
||||||
for (auto c : cells)
|
for (auto c : cells)
|
||||||
extract_cell(c, keepff);
|
extract_cell(c, keepff);
|
||||||
|
|
||||||
|
if (undef_bits_lost)
|
||||||
|
log("Replacing %d occurrences of constant undef bits with constant zero bits\n", undef_bits_lost);
|
||||||
|
|
||||||
for (auto wire : module->wires()) {
|
for (auto wire : module->wires()) {
|
||||||
if (wire->port_id > 0 || wire->get_bool_attribute(ID::keep))
|
if (wire->port_id > 0 || wire->get_bool_attribute(ID::keep))
|
||||||
mark_port(wire);
|
mark_port(wire);
|
||||||
|
|
Loading…
Reference in New Issue