offset = 0;
}
+RTLIL::SigChunk::SigChunk(RTLIL::Wire *wire)
+{
+ this->wire = wire;
+ this->width = wire->width;
+ this->offset = 0;
+}
+
RTLIL::SigChunk::SigChunk(RTLIL::Wire *wire, int width, int offset)
{
this->wire = wire;
this->offset = offset;
}
+RTLIL::SigChunk RTLIL::SigChunk::grml(RTLIL::Wire *wire, int offset, int width)
+{
+ RTLIL::SigChunk chunk;
+ chunk.wire = wire;
+ chunk.width = width;
+ chunk.offset = offset;
+ return chunk;
+}
+
RTLIL::SigChunk::SigChunk(const std::string &str)
{
wire = NULL;
check();
}
+RTLIL::SigSpec::SigSpec(RTLIL::Wire *wire)
+{
+ chunks_.push_back(RTLIL::SigChunk(wire));
+ width_ = chunks_.back().width;
+ check();
+}
+
RTLIL::SigSpec::SigSpec(RTLIL::Wire *wire, int width, int offset)
{
chunks_.push_back(RTLIL::SigChunk(wire, width, offset));
check();
}
+RTLIL::SigSpec RTLIL::SigSpec::grml(RTLIL::Wire *wire, int offset, int width)
+{
+ RTLIL::SigSpec sig;
+ sig.chunks_.push_back(RTLIL::SigChunk::grml(wire, offset, width));
+ sig.width_ = sig.chunks_.back().width;
+ sig.check();
+ return sig;
+}
+
RTLIL::SigSpec::SigSpec(const std::string &str)
{
chunks_.push_back(RTLIL::SigChunk(str));
int width, offset;
SigChunk();
SigChunk(const RTLIL::Const &value);
- SigChunk(RTLIL::Wire *wire, int width, int offset);
+ SigChunk(RTLIL::Wire *wire);
+ SigChunk(RTLIL::Wire *wire, int width); // <-- using this will cause a linker error
+ SigChunk(RTLIL::Wire *wire, int width, int offset) __attribute__((deprecated));
+ static SigChunk grml(RTLIL::Wire *wire, int offset, int width = 1);
SigChunk(const std::string &str);
SigChunk(int val, int width = 32);
SigChunk(RTLIL::State bit, int width = 1);
SigSpec();
SigSpec(const RTLIL::Const &value);
SigSpec(const RTLIL::SigChunk &chunk);
- SigSpec(RTLIL::Wire *wire, int width = -1, int offset = 0);
+ SigSpec(RTLIL::Wire *wire);
+ SigSpec(RTLIL::Wire *wire, int width); // <-- using this will cause a linker error
+ SigSpec(RTLIL::Wire *wire, int width, int offset) __attribute__((deprecated));
+ static SigSpec grml(RTLIL::Wire *wire, int offset, int width = 1);
SigSpec(const std::string &str);
SigSpec(int val, int width = 32);
SigSpec(RTLIL::State bit, int width = 1);
clk_str = clk_str.substr(1);
}
if (module->wires.count(RTLIL::escape_id(clk_str)) != 0)
- clk_sig = assign_map(RTLIL::SigSpec(module->wires.at(RTLIL::escape_id(clk_str)), 1));
+ clk_sig = assign_map(RTLIL::SigSpec(module->wires.at(RTLIL::escape_id(clk_str)), 1, 0));
}
if (dff_mode && clk_sig.size() == 0)
supercell->connections["\\Y"] = y;
module->add(supercell);
- RTLIL::SigSpec new_y1(y, y1.size());
- RTLIL::SigSpec new_y2(y, y2.size());
+ RTLIL::SigSpec new_y1(y, y1.size(), 0);
+ RTLIL::SigSpec new_y2(y, y2.size(), 0);
module->connections.push_back(RTLIL::SigSig(y1, new_y1));
module->connections.push_back(RTLIL::SigSig(y2, new_y2));
supercell->connections["\\Y"] = y;
supercell->check();
- RTLIL::SigSpec new_y1(y, y1.size());
- RTLIL::SigSpec new_y2(y, y2.size());
+ RTLIL::SigSpec new_y1(y, y1.size(), 0);
+ RTLIL::SigSpec new_y2(y, y2.size(), 0);
module->connections.push_back(RTLIL::SigSig(y1, new_y1));
module->connections.push_back(RTLIL::SigSig(y2, new_y2));