36 for (
auto &bit : sig) {
57 HilomapPass() :
Pass(
"hilomap",
"technology mapping of constant hi- and/or lo-drivers") { }
61 log(
" hilomap [options] [selection]\n");
63 log(
"Map constants to 'tielo' and 'tiehi' driver cells.\n");
65 log(
" -hicell <celltype> <portname>\n");
66 log(
" Replace constant hi bits with this cell.\n");
68 log(
" -locell <celltype> <portname>\n");
69 log(
" Replace constant lo bits with this cell.\n");
72 log(
" Create only one hi/lo cell and connect all constant bits\n");
73 log(
" to that cell. Per default a separate cell is created for\n");
74 log(
" each constant bit.\n");
79 log_header(
"Executing HILOMAP pass (mapping to constant drivers).\n");
88 for (argidx = 1; argidx < args.size(); argidx++)
90 if (args[argidx] ==
"-hicell" && argidx+2 < args.size()) {
95 if (args[argidx] ==
"-locell" && argidx+2 < args.size()) {
100 if (args[argidx] ==
"-singleton") {
USING_YOSYS_NAMESPACE static PRIVATE_NAMESPACE_BEGIN std::string hicell_portname
bool selected(T1 *module) const
static bool singleton_mode
RTLIL::Cell * addCell(RTLIL::IdString name, RTLIL::IdString type)
void log_header(const char *format,...)
static RTLIL::SigBit last_lo
void rewrite_sigspecs(T functor)
void setPort(RTLIL::IdString portname, RTLIL::SigSpec signal)
USING_YOSYS_NAMESPACE static PRIVATE_NAMESPACE_BEGIN std::string hicell_celltype
static std::string locell_portname
static std::string escape_id(std::string str)
static RTLIL::SigBit last_hi
virtual void execute(std::vector< std::string > args, RTLIL::Design *design)
void hilomap_worker(RTLIL::SigSpec &sig)
#define PRIVATE_NAMESPACE_BEGIN
RTLIL::Wire * addWire(RTLIL::IdString name, int width=1)
#define PRIVATE_NAMESPACE_END
static RTLIL::Module * module
#define USING_YOSYS_NAMESPACE
std::map< RTLIL::IdString, RTLIL::Module * > modules_
void log(const char *format,...)
void extra_args(std::vector< std::string > args, size_t argidx, RTLIL::Design *design, bool select=true)
static std::string locell_celltype