mirror of https://github.com/YosysHQ/yosys.git
parent
c39ebe6ae0
commit
b4a4cb081d
|
@ -801,11 +801,31 @@ struct TechmapWorker
|
|||
}
|
||||
}
|
||||
|
||||
// Handle outputs first, as these cannot be remapped.
|
||||
for (auto &conn : cell->connections())
|
||||
{
|
||||
Wire *twire = tpl->wire(conn.first);
|
||||
if (!twire->port_output)
|
||||
continue;
|
||||
|
||||
for (int i = 0; i < GetSize(conn.second); i++) {
|
||||
RTLIL::SigBit bit = sigmap(conn.second[i]);
|
||||
RTLIL::SigBit tplbit(twire, i);
|
||||
cellbits_to_tplbits[bit] = tplbit;
|
||||
}
|
||||
}
|
||||
|
||||
// Now handle inputs, remapping as necessary.
|
||||
for (auto &conn : cell->connections())
|
||||
{
|
||||
Wire *twire = tpl->wire(conn.first);
|
||||
if (twire->port_output)
|
||||
continue;
|
||||
|
||||
for (int i = 0; i < GetSize(conn.second); i++)
|
||||
{
|
||||
RTLIL::SigBit bit = sigmap(conn.second[i]);
|
||||
RTLIL::SigBit tplbit(tpl->wire(conn.first), i);
|
||||
RTLIL::SigBit tplbit(twire, i);
|
||||
|
||||
if (bit.wire == nullptr)
|
||||
{
|
||||
|
@ -820,6 +840,7 @@ struct TechmapWorker
|
|||
else
|
||||
cellbits_to_tplbits[bit] = tplbit;
|
||||
}
|
||||
}
|
||||
|
||||
RTLIL::SigSig port_conn;
|
||||
for (auto &it : port_connmap) {
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
read_verilog <<EOT
|
||||
module m (input i, output o);
|
||||
wire [1023:0] _TECHMAP_DO_00_ = "CONSTMAP; ";
|
||||
endmodule
|
||||
EOT
|
||||
|
||||
design -stash map
|
||||
|
||||
read_verilog <<EOT
|
||||
module top(output o);
|
||||
m m (.o(o), .i(o));
|
||||
endmodule
|
||||
EOT
|
||||
|
||||
techmap -map %map
|
Loading…
Reference in New Issue