|  | 
| static void | call (RTLIL::Design *design, std::string command) | 
|  | 
| static void | call (RTLIL::Design *design, std::vector< std::string > args) | 
|  | 
| static void | call_on_selection (RTLIL::Design *design, const RTLIL::Selection &selection, std::string command) | 
|  | 
| static void | call_on_selection (RTLIL::Design *design, const RTLIL::Selection &selection, std::vector< std::string > args) | 
|  | 
| static void | call_on_module (RTLIL::Design *design, RTLIL::Module *module, std::string command) | 
|  | 
| static void | call_on_module (RTLIL::Design *design, RTLIL::Module *module, std::vector< std::string > args) | 
|  | 
| static void | init_register () | 
|  | 
| static void | done_register () | 
|  | 
Definition at line 122 of file fsm_recode.cc.
 
  
  | 
        
          | FsmRecodePass::FsmRecodePass | ( |  | ) |  |  | inline | 
 
Definition at line 123 of file fsm_recode.cc.
  123 : 
Pass(
"fsm_recode", 
"recoding finite state machines") { }
 
Pass(std::string name, std::string short_help="** document me **")
 
 
Definition at line 146 of file register.cc.
  148     std::vector<std::string> 
args;
 
  150     std::string cmd_buf = command;
 
  151     std::string tok = 
next_token(cmd_buf, 
" \t\r\n");
 
  153     if (tok.empty() || tok[0] == 
'#')
 
  157         cmd_buf = command.substr(command.find(
'!') + 1);
 
  158         while (!cmd_buf.empty() && (cmd_buf.back() == 
' ' || cmd_buf.back() == 
'\t' ||
 
  159                 cmd_buf.back() == 
'\r' || cmd_buf.back() == 
'\n'))
 
  160             cmd_buf.resize(cmd_buf.size()-1);
 
  161         log_header(
"Shell command: %s\n", cmd_buf.c_str());
 
  164             log_cmd_error(
"Shell command returned error code %d.\n", retCode);
 
  168     while (!tok.empty()) {
 
  171         if (tok.back() == 
';') {
 
  172             int num_semikolon = 0;
 
  173             while (!tok.empty() && tok.back() == 
';')
 
  174                 tok.resize(tok.size()-1), num_semikolon++;
 
  179             if (num_semikolon == 2)
 
  180                 call(design, 
"clean");
 
  181             if (num_semikolon == 3)
 
  182                 call(design, 
"clean -purge");
 
static std::string next_token(bool pass_newline=false)
void log_header(const char *format,...)
int run_command(const std::string &command, std::function< void(const std::string &)> process_line)
void log_cmd_error(const char *format,...)
static void call(RTLIL::Design *design, std::string command)
 
 
 
  
  | 
        
          | void Pass::call | ( | RTLIL::Design * | design, |  
          |  |  | std::vector< std::string > | args |  
          |  | ) |  |  |  | staticinherited | 
 
Definition at line 191 of file register.cc.
  193     if (
args.size() == 0 || 
args[0][0] == 
'#')
 
  198         for (
size_t i = 0; i < 
args.size(); i++)
 
  199             log(
"%s%s", i ? 
" " : 
"", 
args[i].c_str());
 
  204         log_cmd_error(
"No such command: %s (type 'help' for a command overview)\n", 
args[0].c_str());
 
std::vector< RTLIL::Selection > selection_stack
const char * create_prompt(RTLIL::Design *design, int recursion_counter)
void log_cmd_error(const char *format,...)
void log(const char *format,...)
std::map< std::string, Pass * > pass_register
 
 
 
Definition at line 240 of file register.cc.
std::vector< RTLIL::Selection > selection_stack
std::string selected_active_module
static void call(RTLIL::Design *design, std::string command)
 
 
 
Definition at line 253 of file register.cc.
std::vector< RTLIL::Selection > selection_stack
std::string selected_active_module
static void call(RTLIL::Design *design, std::string command)
 
 
 
Definition at line 216 of file register.cc.
std::vector< RTLIL::Selection > selection_stack
std::string selected_active_module
static void call(RTLIL::Design *design, std::string command)
 
 
 
Definition at line 228 of file register.cc.
std::vector< RTLIL::Selection > selection_stack
std::string selected_active_module
static void call(RTLIL::Design *design, std::string command)
 
 
 
  
  | 
        
          | void Pass::cmd_error | ( | const std::vector< std::string > & | args, |  
          |  |  | size_t | argidx, |  
          |  |  | std::string | msg |  
          |  | ) |  |  |  | inherited | 
 
Definition at line 110 of file register.cc.
  112     std::string command_text;
 
  115     for (
size_t i = 0; i < 
args.size(); i++) {
 
  117             error_pos += 
args[i].size() + 1;
 
  118         command_text = command_text + (command_text.empty() ? 
"" : 
" ") + 
args[i];
 
  121     log(
"\nSyntax error in command `%s':\n", command_text.c_str());
 
  125             msg.c_str(), command_text.c_str(), error_pos, 
"");
 
void log_cmd_error(const char *format,...)
void log(const char *format,...)
 
 
 
  
  | 
        
          | void Pass::cmd_log_args | ( | const std::vector< std::string > & | args | ) |  |  | inherited | 
 
Definition at line 100 of file register.cc.
  102     if (
args.size() <= 1)
 
  104     log(
"Full command line:");
 
  105     for (
size_t i = 0; i < 
args.size(); i++)
 
void log(const char *format,...)
 
 
 
  
  | 
        
          | void Pass::done_register | ( |  | ) |  |  | staticinherited | 
 
Definition at line 62 of file register.cc.
std::map< std::string, Frontend * > frontend_register
#define log_assert(_assert_expr_)
std::map< std::string, Pass * > pass_register
std::map< std::string, Backend * > backend_register
 
 
 
  
  | 
        
          | virtual void FsmRecodePass::execute | ( | std::vector< std::string > | args, |  
          |  |  | RTLIL::Design * | design |  
          |  | ) |  |  |  | inlinevirtual | 
 
Implements Pass.
Definition at line 140 of file fsm_recode.cc.
  142         FILE *fm_set_fsm_file = 
NULL;
 
  143         std::string default_encoding;
 
  145         log_header(
"Executing FSM_RECODE pass (re-assigning FSM state encoding).\n");
 
  147         for (argidx = 1; argidx < 
args.size(); argidx++) {
 
  148             std::string arg = 
args[argidx];
 
  149             if (arg == 
"-fm_set_fsm_file" && argidx+1 < 
args.size() && fm_set_fsm_file == 
NULL) {
 
  150                 fm_set_fsm_file = fopen(
args[++argidx].c_str(), 
"w");
 
  151                 if (fm_set_fsm_file == 
NULL)
 
  152                     log_error(
"Can't open fm_set_fsm_file `%s' for writing: %s\n", 
args[argidx].c_str(), strerror(errno));
 
  155             if (arg == 
"-encoding" && argidx+1 < 
args.size() && fm_set_fsm_file == 
NULL) {
 
  156                 default_encoding = 
args[++argidx];
 
  163         for (
auto &mod_it : design->
modules_)
 
  164             if (design->
selected(mod_it.second))
 
  165                 for (
auto &cell_it : mod_it.second->cells_)
 
  166                     if (cell_it.second->type == 
"$fsm" && design->
selected(mod_it.second, cell_it.second))
 
  167                         fsm_recode(cell_it.second, mod_it.second, fm_set_fsm_file, default_encoding);
 
  169         if (fm_set_fsm_file != 
NULL)
 
  170             fclose(fm_set_fsm_file);
 
bool selected(T1 *module) const 
void log_header(const char *format,...)
void log_error(const char *format,...)
static void fsm_recode(RTLIL::Cell *cell, RTLIL::Module *module, FILE *fm_set_fsm_file, std::string default_encoding)
std::map< RTLIL::IdString, RTLIL::Module * > modules_
void extra_args(std::vector< std::string > args, size_t argidx, RTLIL::Design *design, bool select=true)
 
 
 
  
  | 
        
          | void Pass::extra_args | ( | std::vector< std::string > | args, |  
          |  |  | size_t | argidx, |  
          |  |  | RTLIL::Design * | design, |  
          |  |  | bool | select = true |  
          |  | ) |  |  |  | inherited | 
 
Definition at line 128 of file register.cc.
  130     for (; argidx < 
args.size(); argidx++)
 
  132         std::string arg = 
args[argidx];
 
  134         if (arg.substr(0, 1) == 
"-")
 
  135             cmd_error(
args, argidx, 
"Unknown option or option in arguments.");
 
void cmd_error(const std::vector< std::string > &args, size_t argidx, std::string msg)
void handle_extra_select_args(Pass *pass, std::vector< std::string > args, size_t argidx, size_t args_size, RTLIL::Design *design)
 
 
 
  
  | 
        
          | virtual void FsmRecodePass::help | ( |  | ) |  |  | inlinevirtual | 
 
Reimplemented from Pass.
Definition at line 124 of file fsm_recode.cc.
  128         log(
"    fsm_recode [-encoding type] [-fm_set_fsm_file file] [selection]\n");
 
  130         log(
"This pass reassign the state encodings for FSM cells. At the moment only\n");
 
  131         log(
"one-hot encoding and binary encoding is supported. The option -encoding\n");
 
  132         log(
"can be used to specify the encoding scheme used for FSMs without the\n");
 
  133         log(
"`fsm_encoding' attribute (or with the attribute set to `auto'.\n");
 
  135         log(
"The option -fm_set_fsm_file can be used to generate a file containing the\n");
 
  136         log(
"mapping from old to new FSM encoding in form of Synopsys Formality set_fsm_*\n");
 
void log(const char *format,...)
 
 
 
  
  | 
        
          | void Pass::init_register | ( |  | ) |  |  | staticinherited | 
 
Definition at line 54 of file register.cc.
virtual void run_register()
 
 
 
Definition at line 74 of file register.cc.
   76     pre_post_exec_state_t state;
 
 
 
 
  
  | 
        
          | void Pass::run_register | ( |  | ) |  |  | virtualinherited | 
 
Reimplemented in Backend, and Frontend.
Definition at line 48 of file register.cc.
#define log_assert(_assert_expr_)
std::map< std::string, Pass * > pass_register
 
 
 
  
  | 
        
          | Pass* Pass::next_queued_pass |  | inherited | 
 
 
  
  | 
        
          | std::string Pass::pass_name |  | inherited | 
 
 
  
  | 
        
          | std::string Pass::short_help |  | inherited | 
 
 
The documentation for this struct was generated from the following file: