3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-06-06 06:03:23 +00:00

Add Const methods is_fully_zero(), is_fully_def(), and is_fully_undef()

This commit is contained in:
Clifford Wolf 2017-08-18 11:40:08 +02:00
parent 0be738eaac
commit 4ba5bd12c6
2 changed files with 37 additions and 0 deletions

View file

@ -161,6 +161,39 @@ std::string RTLIL::Const::decode_string() const
return string;
}
bool RTLIL::Const::is_fully_zero() const
{
cover("kernel.rtlil.const.is_fully_zero");
for (auto bit : bits)
if (bit != RTLIL::State::S0)
return false;
return true;
}
bool RTLIL::Const::is_fully_def() const
{
cover("kernel.rtlil.const.is_fully_def");
for (auto bit : bits)
if (bit != RTLIL::State::S0 && bit != RTLIL::State::S1)
return false;
return true;
}
bool RTLIL::Const::is_fully_undef() const
{
cover("kernel.rtlil.const.is_fully_undef");
for (auto bit : bits)
if (bit != RTLIL::State::Sx && bit != RTLIL::State::Sz)
return false;
return true;
}
void RTLIL::AttrObject::set_bool_attribute(RTLIL::IdString id)
{
attributes[id] = RTLIL::Const(1);