157 std::vector<RTLIL::State>
bits;
206 bool simplify(
bool const_fold,
bool at_zero,
bool in_lvalue,
int stage,
int width_hint,
bool sign_hint,
bool in_param);
207 AstNode *
readmem(
bool is_readmemh, std::string mem_filename,
AstNode *memory,
int start_addr,
int finish_addr);
208 void expand_genblock(std::string index_var, std::string prefix, std::map<std::string, std::string> &name_map);
209 void replace_ids(
const std::string &prefix,
const std::map<std::string, std::string> &rules);
211 std::map<AstNode*, uint32_t> &
mem2reg_flags, std::map<AstNode*, uint32_t> &proc_flags, uint32_t &status_flags);
214 void meminfo(
int &mem_width,
int &mem_size,
int &addr_bits);
223 void dumpAst(FILE *f, std::string indent);
224 void dumpVlog(FILE *f, std::string indent);
263 void process(
RTLIL::Design *design,
AstNode *ast,
bool dump_ast1,
bool dump_ast2,
bool dump_vlog,
bool nolatches,
bool nomem2reg,
bool mem2reg,
bool lib,
bool noopt,
bool icells,
bool ignore_redef,
bool defer,
bool autowire);
287 AstNode *
dpi_call(
const std::string &rtype,
const std::string &fname,
const std::vector<std::string> &argtypes,
const std::vector<AstNode*> &
args);
290 namespace AST_INTERNAL
300 struct ProcessGenerator;
std::map< std::string, AstNode * > current_scope
RTLIL::Const bitsAsConst(int width, bool is_signed)
RTLIL::SigSpec genWidthRTLIL(int width, const std::map< RTLIL::SigBit, RTLIL::SigBit > *new_subst_ptr=NULL)
static AstNode * mkconst_int(uint32_t v, bool is_signed, int width=32)
AstNode * current_top_block
AstNode * dpi_call(const std::string &rtype, const std::string &fname, const std::vector< std::string > &argtypes, const std::vector< AstNode * > &args)
virtual RTLIL::IdString derive(RTLIL::Design *design, std::map< RTLIL::IdString, RTLIL::Const > parameters)
static AstNode * mkconst_bits(const std::vector< RTLIL::State > &v, bool is_signed)
static AstNode * mkconst_str(const std::vector< RTLIL::State > &v)
RTLIL::Const asParaConst()
#define YOSYS_NAMESPACE_END
void dumpAst(FILE *f, std::string indent)
void mem2reg_as_needed_pass1(std::map< AstNode *, std::set< std::string >> &mem2reg_places, std::map< AstNode *, uint32_t > &mem2reg_flags, std::map< AstNode *, uint32_t > &proc_flags, uint32_t &status_flags)
virtual RTLIL::Module * clone() const
RTLIL::SigSpec genRTLIL(int width_hint=-1, bool sign_hint=false)
void(* set_line_num)(int)
std::map< RTLIL::IdString, AstNode * > attributes
void dumpVlog(FILE *f, std::string indent)
bool mem2reg_check(std::set< AstNode * > &mem2reg_set)
bool get_bool_attribute(RTLIL::IdString id)
std::string type2str(AstNodeType type)
bool operator==(const AstNode &other) const
void cloneInto(AstNode *other)
RTLIL::SigSpec ignoreThisSignalsInInitial
double asReal(bool is_signed)
AstNode(AstNodeType type=AST_NONE, AstNode *child1=NULL, AstNode *child2=NULL)
void detectSignWidth(int &width_hint, bool &sign_hint, bool *found_real=NULL)
AstNode * current_block_child
std::vector< int > multirange_dimensions
AstNode * eval_const_function(AstNode *fcall)
void detectSignWidthWorker(int &width_hint, bool &sign_hint, bool *found_real=NULL)
void meminfo(int &mem_width, int &mem_size, int &addr_bits)
void expand_genblock(std::string index_var, std::string prefix, std::map< std::string, std::string > &name_map)
bool contains(const AstNode *other) const
std::string current_filename
#define YOSYS_NAMESPACE_BEGIN
bool simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage, int width_hint, bool sign_hint, bool in_param)
void use_internal_line_num()
AstNode * current_ast_mod
AstNode * readmem(bool is_readmemh, std::string mem_filename, AstNode *memory, int start_addr, int finish_addr)
std::vector< AstNode * > children
void replace_ids(const std::string &prefix, const std::map< std::string, std::string > &rules)
std::vector< RTLIL::State > bits
void process(RTLIL::Design *design, AstNode *ast, bool dump_ast1, bool dump_ast2, bool dump_vlog, bool nolatches, bool nomem2reg, bool mem2reg, bool lib, bool noopt, bool icells, bool ignore_redef, bool defer, bool autowire)
const std::map< RTLIL::SigBit, RTLIL::SigBit > * genRTLIL_subst_ptr
AstModule * current_module
uint64_t asInt(bool is_signed)
void replace_variables(std::map< std::string, varinfo_t > &variables, AstNode *fcall)
RTLIL::Const realAsConst(int width)
void mem2reg_as_needed_pass2(std::set< AstNode * > &mem2reg_set, AstNode *mod, AstNode *block)
bool has_const_only_constructs(bool &recommend_const_eval)
bool operator!=(const AstNode &other) const
RTLIL::Const asAttrConst()