Added previousely missed functions

This commit is contained in:
Benedikt Tutzer 2018-08-21 13:15:08 +02:00
parent 29efc9d0b1
commit 334bfce4c4
1 changed files with 445 additions and 1 deletions

View File

@ -36,7 +36,7 @@ namespace YOSYS_PYTHON {
void log(std::string text)
{
Yosys::log(text.c_str());
Yosys::log("%s",text.c_str());
}
struct IdString
@ -74,11 +74,23 @@ namespace YOSYS_PYTHON {
//WRAPPED static inline void put_reference(int idx)
static inline void put_reference(int idx);
//WRAPPED std::string str() const {
std::string str();
//WRAPPED bool empty() const {
bool empty();
//WRAPPED void clear() {
void clear();
//WRAPPED bool in(IdString rhs) const { return *this == rhs; }
bool in_IdString(IdString *rhs);
//WRAPPED bool in(const std::string &rhs) const { return *this == rhs; }
bool in_std_string(std::string rhs);
//WRAPPED bool in(const pool<IdString> &rhs) const { return rhs.count(*this) != 0; }
bool in_pool_IdString(boost::python::list *rhs);
};
std::ostream &operator<<(std::ostream &ostr, const IdString &ref)
@ -110,12 +122,36 @@ namespace YOSYS_PYTHON {
return ref_obj;
}
//WRAPPED bool as_bool() const;
bool as_bool();
//WRAPPED int as_int(bool is_signed = false) const;
int as_int(bool is_signed = false);
//WRAPPED std::string as_string() const;
std::string as_string();
//WRAPPED static Const from_string(std::string str);
static Const from_string(std::string str);
//WRAPPED std::string decode_string() const;
std::string decode_string();
//WRAPPED inline int size() const { return bits.size(); }
inline int size();
//WRAPPED bool is_fully_zero() const;
bool is_fully_zero();
//WRAPPED bool is_fully_ones() const;
bool is_fully_ones();
//WRAPPED bool is_fully_def() const;
bool is_fully_def();
//WRAPPED bool is_fully_undef() const;
bool is_fully_undef();
//WRAPPED inline RTLIL::Const extract(int offset, int len = 1, RTLIL::State padding = RTLIL::State::S0) const {
inline Const extract(int offset, int len = 1, State padding = RTLIL::State::S0);
};
@ -148,6 +184,9 @@ namespace YOSYS_PYTHON {
{
return ref_obj;
}
//WRAPPED RTLIL::CaseRule *clone() const;
CaseRule clone();
};
std::ostream &operator<<(std::ostream &ostr, const CaseRule &ref)
@ -178,6 +217,9 @@ namespace YOSYS_PYTHON {
{
return ref_obj;
}
//WRAPPED RTLIL::SwitchRule *clone() const;
SwitchRule clone();
};
std::ostream &operator<<(std::ostream &ostr, const SwitchRule &ref)
@ -208,6 +250,9 @@ namespace YOSYS_PYTHON {
{
return ref_obj;
}
//WRAPPED RTLIL::SyncRule *clone() const;
SyncRule clone();
};
std::ostream &operator<<(std::ostream &ostr, const SyncRule &ref)
@ -238,6 +283,9 @@ namespace YOSYS_PYTHON {
{
return ref_obj;
}
//WRAPPED RTLIL::Process *clone() const;
Process clone();
};
std::ostream &operator<<(std::ostream &ostr, const Process &ref)
@ -332,6 +380,12 @@ namespace YOSYS_PYTHON {
return ref_obj;
}
//WRAPPED inline int size() const { return width_; }
inline int size();
//WRAPPED inline bool empty() const { return width_ == 0; }
inline bool empty();
//WRAPPED void replace(const RTLIL::SigSpec &pattern, const RTLIL::SigSpec &with);
void replace_SigSpec_SigSpec(SigSpec *pattern, SigSpec *with);
@ -383,9 +437,57 @@ namespace YOSYS_PYTHON {
//WRAPPED RTLIL::SigSpec repeat(int num) const;
SigSpec repeat(int num);
//WRAPPED bool is_wire() const;
bool is_wire();
//WRAPPED bool is_chunk() const;
bool is_chunk();
//WRAPPED inline bool is_bit() const { return width_ == 1; }
inline bool is_bit();
//WRAPPED bool is_fully_const() const;
bool is_fully_const();
//WRAPPED bool is_fully_zero() const;
bool is_fully_zero();
//WRAPPED bool is_fully_ones() const;
bool is_fully_ones();
//WRAPPED bool is_fully_def() const;
bool is_fully_def();
//WRAPPED bool is_fully_undef() const;
bool is_fully_undef();
//WRAPPED bool has_const() const;
bool has_const();
//WRAPPED bool has_marked_bits() const;
bool has_marked_bits();
//WRAPPED bool as_bool() const;
bool as_bool();
//WRAPPED int as_int(bool is_signed = false) const;
int as_int(bool is_signed = false);
//WRAPPED std::string as_string() const;
std::string as_string();
//WRAPPED RTLIL::Const as_const() const;
Const as_const();
//WRAPPED RTLIL::Wire *as_wire() const;
Wire as_wire();
//WRAPPED RTLIL::SigChunk as_chunk() const;
SigChunk as_chunk();
//WRAPPED RTLIL::SigBit as_bit() const;
SigBit as_bit();
//WRAPPED bool match(std::string pattern) const;
bool match(std::string pattern);
@ -397,6 +499,9 @@ namespace YOSYS_PYTHON {
//WRAPPED static bool parse_rhs(const RTLIL::SigSpec &lhs, RTLIL::SigSpec &sig, RTLIL::Module *module, std::string str);
static bool parse_rhs(SigSpec *lhs, SigSpec *sig, Module *module, std::string str);
//WRAPPED void check() const;
void check();
};
std::ostream &operator<<(std::ostream &ostr, const SigSpec &ref)
@ -432,6 +537,9 @@ namespace YOSYS_PYTHON {
//WRAPPED void setPort(RTLIL::IdString portname, RTLIL::SigSpec signal);
void setPort(IdString *portname, SigSpec *signal);
//WRAPPED bool known() const;
bool known();
//WRAPPED bool input(RTLIL::IdString portname) const;
bool input(IdString *portname);
@ -449,6 +557,9 @@ namespace YOSYS_PYTHON {
//WRAPPED void fixup_parameters(bool set_a_signed = false, bool set_b_signed = false);
void fixup_parameters(bool set_a_signed = false, bool set_b_signed = false);
//WRAPPED bool has_keep_attr() const {
bool has_keep_attr();
};
std::ostream &operator<<(std::ostream &ostr, const Cell &ref)
@ -578,6 +689,24 @@ namespace YOSYS_PYTHON {
//WRAPPED void cloneInto(RTLIL::Module *new_mod) const;
void cloneInto(Module *new_mod);
//WRAPPED bool has_memories() const;
bool has_memories();
//WRAPPED bool has_processes() const;
bool has_processes();
//WRAPPED bool has_memories_warn() const;
bool has_memories_warn();
//WRAPPED bool has_processes_warn() const;
bool has_processes_warn();
//WRAPPED RTLIL::Wire* wire(RTLIL::IdString id) { return wires_.count(id) ? wires_.at(id) : nullptr; }
Wire wire(IdString *id);
//WRAPPED RTLIL::Cell* cell(RTLIL::IdString id) { return cells_.count(id) ? cells_.at(id) : nullptr; }
Cell cell(IdString *id);
//WRAPPED void remove(const pool<RTLIL::Wire*> &wires);
void remove_pool_Wire(boost::python::list *wires);
@ -1104,6 +1233,9 @@ namespace YOSYS_PYTHON {
//WRAPPED bool selected_whole_module(RTLIL::Module *mod) const;
bool selected_whole_module_Module(Module *mod);
//WRAPPED bool full_selection() const {
bool full_selection();
};
std::ostream &operator<<(std::ostream &ostr, const Design &ref)
@ -1557,6 +1689,24 @@ namespace YOSYS_PYTHON {
Yosys::RTLIL::IdString::put_reference(idx);
}
//WRAPPED std::string str() const {
std::string IdString::str()
{
return this->get_cpp_obj()->str();
}
//WRAPPED bool empty() const {
bool IdString::empty()
{
return this->get_cpp_obj()->empty();
}
//WRAPPED void clear() {
void IdString::clear()
{
this->get_cpp_obj()->clear();
}
//WRAPPED bool in(IdString rhs) const { return *this == rhs; }
bool IdString::in_IdString(IdString *rhs)
{
@ -1569,30 +1719,124 @@ namespace YOSYS_PYTHON {
return this->get_cpp_obj()->in(rhs);
}
//WRAPPED bool in(const pool<IdString> &rhs) const { return rhs.count(*this) != 0; }
bool IdString::in_pool_IdString(boost::python::list *rhs)
{
pool<Yosys::RTLIL::IdString> rhs_;
for(int i = 0; i < len(*rhs); ++i)
{
}
return this->get_cpp_obj()->in(rhs_);
}
//WRAPPED bool as_bool() const;
bool Const::as_bool()
{
return this->get_cpp_obj()->as_bool();
}
//WRAPPED int as_int(bool is_signed = false) const;
int Const::as_int(bool is_signed)
{
return this->get_cpp_obj()->as_int(is_signed);
}
//WRAPPED std::string as_string() const;
std::string Const::as_string()
{
return this->get_cpp_obj()->as_string();
}
//WRAPPED static Const from_string(std::string str);
Const Const::from_string(std::string str)
{
return Const(Yosys::RTLIL::Const::from_string(str));
}
//WRAPPED std::string decode_string() const;
std::string Const::decode_string()
{
return this->get_cpp_obj()->decode_string();
}
//WRAPPED inline int size() const { return bits.size(); }
inline int Const::size()
{
return this->get_cpp_obj()->size();
}
//WRAPPED bool is_fully_zero() const;
bool Const::is_fully_zero()
{
return this->get_cpp_obj()->is_fully_zero();
}
//WRAPPED bool is_fully_ones() const;
bool Const::is_fully_ones()
{
return this->get_cpp_obj()->is_fully_ones();
}
//WRAPPED bool is_fully_def() const;
bool Const::is_fully_def()
{
return this->get_cpp_obj()->is_fully_def();
}
//WRAPPED bool is_fully_undef() const;
bool Const::is_fully_undef()
{
return this->get_cpp_obj()->is_fully_undef();
}
//WRAPPED inline RTLIL::Const extract(int offset, int len = 1, RTLIL::State padding = RTLIL::State::S0) const {
inline Const Const::extract(int offset, int len, State padding)
{
return Const(this->get_cpp_obj()->extract(offset, len, padding));
}
//WRAPPED RTLIL::CaseRule *clone() const;
CaseRule CaseRule::clone()
{
return CaseRule(this->get_cpp_obj()->clone());
}
//WRAPPED RTLIL::SwitchRule *clone() const;
SwitchRule SwitchRule::clone()
{
return SwitchRule(this->get_cpp_obj()->clone());
}
//WRAPPED RTLIL::SyncRule *clone() const;
SyncRule SyncRule::clone()
{
return SyncRule(this->get_cpp_obj()->clone());
}
//WRAPPED RTLIL::Process *clone() const;
Process Process::clone()
{
return Process(this->get_cpp_obj()->clone());
}
//WRAPPED RTLIL::SigChunk extract(int offset, int length) const;
SigChunk SigChunk::extract(int offset, int length)
{
return SigChunk(this->get_cpp_obj()->extract(offset, length));
}
//WRAPPED inline int size() const { return width_; }
inline int SigSpec::size()
{
return this->get_cpp_obj()->size();
}
//WRAPPED inline bool empty() const { return width_ == 0; }
inline bool SigSpec::empty()
{
return this->get_cpp_obj()->empty();
}
//WRAPPED void replace(const RTLIL::SigSpec &pattern, const RTLIL::SigSpec &with);
void SigSpec::replace_SigSpec_SigSpec(SigSpec *pattern, SigSpec *with)
{
@ -1711,12 +1955,108 @@ namespace YOSYS_PYTHON {
return SigSpec(this->get_cpp_obj()->repeat(num));
}
//WRAPPED bool is_wire() const;
bool SigSpec::is_wire()
{
return this->get_cpp_obj()->is_wire();
}
//WRAPPED bool is_chunk() const;
bool SigSpec::is_chunk()
{
return this->get_cpp_obj()->is_chunk();
}
//WRAPPED inline bool is_bit() const { return width_ == 1; }
inline bool SigSpec::is_bit()
{
return this->get_cpp_obj()->is_bit();
}
//WRAPPED bool is_fully_const() const;
bool SigSpec::is_fully_const()
{
return this->get_cpp_obj()->is_fully_const();
}
//WRAPPED bool is_fully_zero() const;
bool SigSpec::is_fully_zero()
{
return this->get_cpp_obj()->is_fully_zero();
}
//WRAPPED bool is_fully_ones() const;
bool SigSpec::is_fully_ones()
{
return this->get_cpp_obj()->is_fully_ones();
}
//WRAPPED bool is_fully_def() const;
bool SigSpec::is_fully_def()
{
return this->get_cpp_obj()->is_fully_def();
}
//WRAPPED bool is_fully_undef() const;
bool SigSpec::is_fully_undef()
{
return this->get_cpp_obj()->is_fully_undef();
}
//WRAPPED bool has_const() const;
bool SigSpec::has_const()
{
return this->get_cpp_obj()->has_const();
}
//WRAPPED bool has_marked_bits() const;
bool SigSpec::has_marked_bits()
{
return this->get_cpp_obj()->has_marked_bits();
}
//WRAPPED bool as_bool() const;
bool SigSpec::as_bool()
{
return this->get_cpp_obj()->as_bool();
}
//WRAPPED int as_int(bool is_signed = false) const;
int SigSpec::as_int(bool is_signed)
{
return this->get_cpp_obj()->as_int(is_signed);
}
//WRAPPED std::string as_string() const;
std::string SigSpec::as_string()
{
return this->get_cpp_obj()->as_string();
}
//WRAPPED RTLIL::Const as_const() const;
Const SigSpec::as_const()
{
return Const(this->get_cpp_obj()->as_const());
}
//WRAPPED RTLIL::Wire *as_wire() const;
Wire SigSpec::as_wire()
{
return Wire(this->get_cpp_obj()->as_wire());
}
//WRAPPED RTLIL::SigChunk as_chunk() const;
SigChunk SigSpec::as_chunk()
{
return SigChunk(this->get_cpp_obj()->as_chunk());
}
//WRAPPED RTLIL::SigBit as_bit() const;
SigBit SigSpec::as_bit()
{
return SigBit(this->get_cpp_obj()->as_bit());
}
//WRAPPED bool match(std::string pattern) const;
bool SigSpec::match(std::string pattern)
{
@ -1741,6 +2081,12 @@ namespace YOSYS_PYTHON {
return Yosys::RTLIL::SigSpec::parse_rhs(*lhs->get_cpp_obj(), *sig->get_cpp_obj(), module->get_cpp_obj(), str);
}
//WRAPPED void check() const;
void SigSpec::check()
{
this->get_cpp_obj()->check();
}
//WRAPPED bool hasPort(RTLIL::IdString portname) const;
bool Cell::hasPort(IdString *portname)
{
@ -1759,6 +2105,12 @@ namespace YOSYS_PYTHON {
this->get_cpp_obj()->setPort(*portname->get_cpp_obj(), *signal->get_cpp_obj());
}
//WRAPPED bool known() const;
bool Cell::known()
{
return this->get_cpp_obj()->known();
}
//WRAPPED bool input(RTLIL::IdString portname) const;
bool Cell::input(IdString *portname)
{
@ -1795,6 +2147,12 @@ namespace YOSYS_PYTHON {
this->get_cpp_obj()->fixup_parameters(set_a_signed, set_b_signed);
}
//WRAPPED bool has_keep_attr() const {
bool Cell::has_keep_attr()
{
return this->get_cpp_obj()->has_keep_attr();
}
//WRAPPED void connect(const RTLIL::SigSig &conn);
void Module::connect_SigSig(PyObject* conn)
{
@ -1828,6 +2186,42 @@ namespace YOSYS_PYTHON {
this->get_cpp_obj()->cloneInto(new_mod->get_cpp_obj());
}
//WRAPPED bool has_memories() const;
bool Module::has_memories()
{
return this->get_cpp_obj()->has_memories();
}
//WRAPPED bool has_processes() const;
bool Module::has_processes()
{
return this->get_cpp_obj()->has_processes();
}
//WRAPPED bool has_memories_warn() const;
bool Module::has_memories_warn()
{
return this->get_cpp_obj()->has_memories_warn();
}
//WRAPPED bool has_processes_warn() const;
bool Module::has_processes_warn()
{
return this->get_cpp_obj()->has_processes_warn();
}
//WRAPPED RTLIL::Wire* wire(RTLIL::IdString id) { return wires_.count(id) ? wires_.at(id) : nullptr; }
Wire Module::wire(IdString *id)
{
return Wire(this->get_cpp_obj()->wire(*id->get_cpp_obj()));
}
//WRAPPED RTLIL::Cell* cell(RTLIL::IdString id) { return cells_.count(id) ? cells_.at(id) : nullptr; }
Cell Module::cell(IdString *id)
{
return Cell(this->get_cpp_obj()->cell(*id->get_cpp_obj()));
}
//WRAPPED void remove(const pool<RTLIL::Wire*> &wires);
void Module::remove_pool_Wire(boost::python::list *wires)
{
@ -2780,6 +3174,12 @@ namespace YOSYS_PYTHON {
return this->get_cpp_obj()->selected_whole_module(mod->get_cpp_obj());
}
//WRAPPED bool full_selection() const {
bool Design::full_selection()
{
return this->get_cpp_obj()->full_selection();
}
struct Initializer
{
Initializer() {
@ -2853,36 +3253,52 @@ namespace YOSYS_PYTHON {
.def(boost::python::self_ns::repr(boost::python::self_ns::self))
.def("get_reference", &IdString::get_reference)
.def("put_reference", &IdString::put_reference)
.def("str", &IdString::str)
.def("empty", &IdString::empty)
.def("clear", &IdString::clear)
.def("in_IdString", &IdString::in_IdString)
.def("in_std_string", &IdString::in_std_string)
.def("in_pool_IdString", &IdString::in_pool_IdString)
;
class_<Const>("Const")
.def(boost::python::self_ns::str(boost::python::self_ns::self))
.def(boost::python::self_ns::repr(boost::python::self_ns::self))
.def("as_bool", &Const::as_bool)
.def("as_int", &Const::as_int)
.def("as_string", &Const::as_string)
.def("from_string", &Const::from_string)
.def("decode_string", &Const::decode_string)
.def("size", &Const::size)
.def("is_fully_zero", &Const::is_fully_zero)
.def("is_fully_ones", &Const::is_fully_ones)
.def("is_fully_def", &Const::is_fully_def)
.def("is_fully_undef", &Const::is_fully_undef)
.def("extract", &Const::extract)
;
class_<CaseRule>("CaseRule")
.def(boost::python::self_ns::str(boost::python::self_ns::self))
.def(boost::python::self_ns::repr(boost::python::self_ns::self))
.def("clone", &CaseRule::clone)
;
class_<SwitchRule>("SwitchRule")
.def(boost::python::self_ns::str(boost::python::self_ns::self))
.def(boost::python::self_ns::repr(boost::python::self_ns::self))
.def("clone", &SwitchRule::clone)
;
class_<SyncRule>("SyncRule")
.def(boost::python::self_ns::str(boost::python::self_ns::self))
.def(boost::python::self_ns::repr(boost::python::self_ns::self))
.def("clone", &SyncRule::clone)
;
class_<Process>("Process")
.def(boost::python::self_ns::str(boost::python::self_ns::self))
.def(boost::python::self_ns::repr(boost::python::self_ns::self))
.def("clone", &Process::clone)
;
class_<SigChunk>("SigChunk")
@ -2899,6 +3315,8 @@ namespace YOSYS_PYTHON {
class_<SigSpec>("SigSpec")
.def(boost::python::self_ns::str(boost::python::self_ns::self))
.def(boost::python::self_ns::repr(boost::python::self_ns::self))
.def("size", &SigSpec::size)
.def("empty", &SigSpec::empty)
.def("replace_SigSpec_SigSpec", &SigSpec::replace_SigSpec_SigSpec)
.def("replace_SigSpec_SigSpec_SigSpec", &SigSpec::replace_SigSpec_SigSpec_SigSpec)
.def("replace_int_SigSpec", &SigSpec::replace_int_SigSpec)
@ -2916,11 +3334,28 @@ namespace YOSYS_PYTHON {
.def("append_bit", &SigSpec::append_bit)
.def("extend_u0", &SigSpec::extend_u0)
.def("repeat", &SigSpec::repeat)
.def("is_wire", &SigSpec::is_wire)
.def("is_chunk", &SigSpec::is_chunk)
.def("is_bit", &SigSpec::is_bit)
.def("is_fully_const", &SigSpec::is_fully_const)
.def("is_fully_zero", &SigSpec::is_fully_zero)
.def("is_fully_ones", &SigSpec::is_fully_ones)
.def("is_fully_def", &SigSpec::is_fully_def)
.def("is_fully_undef", &SigSpec::is_fully_undef)
.def("has_const", &SigSpec::has_const)
.def("has_marked_bits", &SigSpec::has_marked_bits)
.def("as_bool", &SigSpec::as_bool)
.def("as_int", &SigSpec::as_int)
.def("as_string", &SigSpec::as_string)
.def("as_const", &SigSpec::as_const)
.def("as_wire", &SigSpec::as_wire)
.def("as_chunk", &SigSpec::as_chunk)
.def("as_bit", &SigSpec::as_bit)
.def("match", &SigSpec::match)
.def("parse", &SigSpec::parse)
.def("parse_sel", &SigSpec::parse_sel)
.def("parse_rhs", &SigSpec::parse_rhs)
.def("check", &SigSpec::check)
;
class_<Cell>("Cell", no_init)
@ -2929,12 +3364,14 @@ namespace YOSYS_PYTHON {
.def("hasPort", &Cell::hasPort)
.def("unsetPort", &Cell::unsetPort)
.def("setPort", &Cell::setPort)
.def("known", &Cell::known)
.def("input", &Cell::input)
.def("output", &Cell::output)
.def("hasParam", &Cell::hasParam)
.def("unsetParam", &Cell::unsetParam)
.def("setParam", &Cell::setParam)
.def("fixup_parameters", &Cell::fixup_parameters)
.def("has_keep_attr", &Cell::has_keep_attr)
;
class_<Wire>("Wire", no_init)
@ -2957,6 +3394,12 @@ namespace YOSYS_PYTHON {
.def("connect_SigSpec_SigSpec", &Module::connect_SigSpec_SigSpec)
.def("new_connections", &Module::new_connections)
.def("cloneInto", &Module::cloneInto)
.def("has_memories", &Module::has_memories)
.def("has_processes", &Module::has_processes)
.def("has_memories_warn", &Module::has_memories_warn)
.def("has_processes_warn", &Module::has_processes_warn)
.def("wire", &Module::wire)
.def("cell", &Module::cell)
.def("remove_pool_Wire", &Module::remove_pool_Wire)
.def("remove_Cell", &Module::remove_Cell)
.def("rename_Wire_IdString", &Module::rename_Wire_IdString)
@ -3123,6 +3566,7 @@ namespace YOSYS_PYTHON {
.def("selected_member", &Design::selected_member)
.def("selected_module_Module", &Design::selected_module_Module)
.def("selected_whole_module_Module", &Design::selected_whole_module_Module)
.def("full_selection", &Design::full_selection)
;
def("escape_id", escape_id);