1444 RTLIL::Cell *cell = addCell(name, _type); \
1445 cell->parameters[
"\\WIDTH"] = sig_a.size();
\
1446 if (_pmux) cell->parameters["\\S_WIDTH"] = sig_s.size(); \
1447 cell->setPort("\\A", sig_a); \
1448 cell->setPort("\\B", sig_b); \
1449 cell->setPort("\\S", sig_s); \
1450 cell->setPort("\\Y", sig_y); \
1453 RTLIL::SigSpec RTLIL::Module::_func(RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_b, RTLIL::SigSpec sig_s) { \
1454 RTLIL::SigSpec sig_y = addWire(
NEW_ID, sig_a.size()); \
1455 add ## _func(name, sig_a, sig_b, sig_s, sig_y); \
1462 #define DEF_METHOD_2(_func, _type, _P1, _P2) \
1463 RTLIL::Cell* RTLIL::Module::add ## _func(RTLIL::IdString name, RTLIL::SigBit sig1, RTLIL::SigBit sig2) { \
1464 RTLIL::Cell *cell = addCell(name, _type); \
1465 cell->setPort("\\" #_P1, sig1); \
1466 cell->setPort("\\" #_P2, sig2); \
1469 RTLIL::SigBit RTLIL::Module::_func(RTLIL::IdString name, RTLIL::SigBit sig1) { \
1470 RTLIL::SigBit sig2 = addWire(NEW_ID); \
1471 add ## _func(name, sig1, sig2); \
1474 #define DEF_METHOD_3(_func, _type, _P1, _P2, _P3) \
1475 RTLIL::Cell* RTLIL::Module::add ## _func(RTLIL::IdString name, RTLIL::SigBit sig1, RTLIL::SigBit sig2, RTLIL::SigBit sig3) { \
1476 RTLIL::Cell *cell = addCell(name, _type); \
1477 cell->setPort("\\" #_P1, sig1); \
1478 cell->setPort("\\" #_P2, sig2); \
1479 cell->setPort("\\" #_P3, sig3); \
1482 RTLIL::SigBit RTLIL::Module::_func(RTLIL::IdString name, RTLIL::SigBit sig1, RTLIL::SigBit sig2) { \
1483 RTLIL::SigBit sig3 = addWire(NEW_ID); \
1484 add ## _func(name, sig1, sig2, sig3); \
1487 #define DEF_METHOD_4(_func, _type, _P1, _P2, _P3, _P4) \
1488 RTLIL::Cell* RTLIL::Module::add ## _func(RTLIL::IdString name, RTLIL::SigBit sig1, RTLIL::SigBit sig2, RTLIL::SigBit sig3, RTLIL::SigBit sig4) { \
1489 RTLIL::Cell *cell = addCell(name, _type); \
1490 cell->setPort("\\" #_P1, sig1); \
1491 cell->setPort("\\" #_P2, sig2); \
1492 cell->setPort("\\" #_P3, sig3); \
1493 cell->setPort("\\" #_P4, sig4); \
1496 RTLIL::SigBit RTLIL::Module::_func(RTLIL::IdString name, RTLIL::SigBit sig1, RTLIL::SigBit sig2, RTLIL::SigBit sig3) { \
1497 RTLIL::SigBit sig4 = addWire(NEW_ID); \
1498 add ## _func(name, sig1, sig2, sig3, sig4); \
1501 #define DEF_METHOD_5(_func, _type, _P1, _P2, _P3, _P4, _P5) \
1502 RTLIL::Cell* RTLIL::Module::add ## _func(RTLIL::IdString name, RTLIL::SigBit sig1, RTLIL::SigBit sig2, RTLIL::SigBit sig3, RTLIL::SigBit sig4, RTLIL::SigBit sig5) { \
1503 RTLIL::Cell *cell = addCell(name, _type); \
1504 cell->setPort("\\" #_P1, sig1); \
1505 cell->setPort("\\" #_P2, sig2); \
1506 cell->setPort("\\" #_P3, sig3); \
1507 cell->setPort("\\" #_P4, sig4); \
1508 cell->setPort("\\" #_P5, sig5); \
1511 RTLIL::SigBit RTLIL::Module::_func(RTLIL::IdString name, RTLIL::SigBit sig1, RTLIL::SigBit sig2, RTLIL::SigBit sig3, RTLIL::SigBit sig4) { \
1512 RTLIL::SigBit sig5 = addWire(NEW_ID); \
1513 add ## _func(name, sig1, sig2, sig3, sig4, sig5); \
#define DEF_METHOD_3(_func, _type, _P1, _P2, _P3)
RTLIL::Cell * addCell(RTLIL::IdString name, RTLIL::IdString type)
void setPort(RTLIL::IdString portname, RTLIL::SigSpec signal)
std::map< RTLIL::IdString, RTLIL::Const > parameters
#define DEF_METHOD_5(_func, _type, _P1, _P2, _P3, _P4, _P5)
#define DEF_METHOD(_func, _y_size, _type)
#define DEF_METHOD_4(_func, _type, _P1, _P2, _P3, _P4)
#define DEF_METHOD_2(_func, _type, _P1, _P2)
RTLIL::Cell * cell(RTLIL::IdString id)
RTLIL::Cell * addPow(RTLIL::IdString name, RTLIL::SigSpec sig_a, RTLIL::SigSpec sig_b, RTLIL::SigSpec sig_y, bool a_signed=false, bool b_signed=false)