mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-23 09:05:32 +00:00
Renamed TRUE/FALSE to CONST_TRUE/CONST_FALSE because of name collision on Win32
This commit is contained in:
parent
4569a747f8
commit
7cb0d3aa1a
5 changed files with 118 additions and 118 deletions
104
kernel/satgen.h
104
kernel/satgen.h
|
@ -66,7 +66,7 @@ struct SatGen
|
|||
if (model_undef && dup_undef && bit == RTLIL::State::Sx)
|
||||
vec.push_back(ez->frozen_literal());
|
||||
else
|
||||
vec.push_back(bit == (undef_mode ? RTLIL::State::Sx : RTLIL::State::S1) ? ez->TRUE : ez->FALSE);
|
||||
vec.push_back(bit == (undef_mode ? RTLIL::State::Sx : RTLIL::State::S1) ? ez->CONST_TRUE : ez->CONST_FALSE);
|
||||
} else {
|
||||
std::string name = pf + stringf(bit.wire->width == 1 ? "%s" : "%s [%d]", RTLIL::id2cstr(bit.wire->name), bit.offset);
|
||||
vec.push_back(ez->frozen_literal(name));
|
||||
|
@ -160,9 +160,9 @@ struct SatGen
|
|||
if (!forced_signed && cell->parameters.count("\\A_SIGNED") > 0 && cell->parameters.count("\\B_SIGNED") > 0)
|
||||
is_signed = cell->parameters["\\A_SIGNED"].as_bool() && cell->parameters["\\B_SIGNED"].as_bool();
|
||||
while (vec_a.size() < vec_b.size() || vec_a.size() < y_width)
|
||||
vec_a.push_back(is_signed && vec_a.size() > 0 ? vec_a.back() : ez->FALSE);
|
||||
vec_a.push_back(is_signed && vec_a.size() > 0 ? vec_a.back() : ez->CONST_FALSE);
|
||||
while (vec_b.size() < vec_a.size() || vec_b.size() < y_width)
|
||||
vec_b.push_back(is_signed && vec_b.size() > 0 ? vec_b.back() : ez->FALSE);
|
||||
vec_b.push_back(is_signed && vec_b.size() > 0 ? vec_b.back() : ez->CONST_FALSE);
|
||||
}
|
||||
|
||||
void extendSignalWidth(std::vector<int> &vec_a, std::vector<int> &vec_b, std::vector<int> &vec_y, RTLIL::Cell *cell, bool forced_signed = false)
|
||||
|
@ -176,7 +176,7 @@ struct SatGen
|
|||
{
|
||||
bool is_signed = forced_signed || (cell->parameters.count("\\A_SIGNED") > 0 && cell->parameters["\\A_SIGNED"].as_bool());
|
||||
while (vec_a.size() < vec_y.size())
|
||||
vec_a.push_back(is_signed && vec_a.size() > 0 ? vec_a.back() : ez->FALSE);
|
||||
vec_a.push_back(is_signed && vec_a.size() > 0 ? vec_a.back() : ez->CONST_FALSE);
|
||||
while (vec_y.size() < vec_a.size())
|
||||
vec_y.push_back(ez->literal());
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ struct SatGen
|
|||
|
||||
if (is_arith_compare) {
|
||||
for (size_t i = 1; i < undef_y.size(); i++)
|
||||
ez->SET(ez->FALSE, undef_y.at(i));
|
||||
ez->SET(ez->CONST_FALSE, undef_y.at(i));
|
||||
ez->SET(undef_y_bit, undef_y.at(0));
|
||||
} else {
|
||||
std::vector<int> undef_y_bits(undef_y.size(), undef_y_bit);
|
||||
|
@ -307,7 +307,7 @@ struct SatGen
|
|||
int a = importDefSigSpec(cell->getPort("\\A"), timestep).at(0);
|
||||
int b = importDefSigSpec(cell->getPort("\\B"), timestep).at(0);
|
||||
int c = importDefSigSpec(cell->getPort("\\C"), timestep).at(0);
|
||||
int d = three_mode ? (aoi_mode ? ez->TRUE : ez->FALSE) : importDefSigSpec(cell->getPort("\\D"), timestep).at(0);
|
||||
int d = three_mode ? (aoi_mode ? ez->CONST_TRUE : ez->CONST_FALSE) : importDefSigSpec(cell->getPort("\\D"), timestep).at(0);
|
||||
int y = importDefSigSpec(cell->getPort("\\Y"), timestep).at(0);
|
||||
int yy = model_undef ? ez->literal() : y;
|
||||
|
||||
|
@ -321,7 +321,7 @@ struct SatGen
|
|||
int undef_a = importUndefSigSpec(cell->getPort("\\A"), timestep).at(0);
|
||||
int undef_b = importUndefSigSpec(cell->getPort("\\B"), timestep).at(0);
|
||||
int undef_c = importUndefSigSpec(cell->getPort("\\C"), timestep).at(0);
|
||||
int undef_d = three_mode ? ez->FALSE : importUndefSigSpec(cell->getPort("\\D"), timestep).at(0);
|
||||
int undef_d = three_mode ? ez->CONST_FALSE : importUndefSigSpec(cell->getPort("\\D"), timestep).at(0);
|
||||
int undef_y = importUndefSigSpec(cell->getPort("\\Y"), timestep).at(0);
|
||||
|
||||
if (aoi_mode)
|
||||
|
@ -433,14 +433,14 @@ struct SatGen
|
|||
std::vector<int> undef_s = importUndefSigSpec(cell->getPort("\\S"), timestep);
|
||||
std::vector<int> undef_y = importUndefSigSpec(cell->getPort("\\Y"), timestep);
|
||||
|
||||
int maybe_one_hot = ez->FALSE;
|
||||
int maybe_many_hot = ez->FALSE;
|
||||
int maybe_one_hot = ez->CONST_FALSE;
|
||||
int maybe_many_hot = ez->CONST_FALSE;
|
||||
|
||||
int sure_one_hot = ez->FALSE;
|
||||
int sure_many_hot = ez->FALSE;
|
||||
int sure_one_hot = ez->CONST_FALSE;
|
||||
int sure_many_hot = ez->CONST_FALSE;
|
||||
|
||||
std::vector<int> bits_set = std::vector<int>(undef_y.size(), ez->FALSE);
|
||||
std::vector<int> bits_clr = std::vector<int>(undef_y.size(), ez->FALSE);
|
||||
std::vector<int> bits_set = std::vector<int>(undef_y.size(), ez->CONST_FALSE);
|
||||
std::vector<int> bits_clr = std::vector<int>(undef_y.size(), ez->CONST_FALSE);
|
||||
|
||||
for (size_t i = 0; i < s.size(); i++)
|
||||
{
|
||||
|
@ -482,7 +482,7 @@ struct SatGen
|
|||
if (cell->type == "$pos") {
|
||||
ez->assume(ez->vec_eq(a, yy));
|
||||
} else {
|
||||
std::vector<int> zero(a.size(), ez->FALSE);
|
||||
std::vector<int> zero(a.size(), ez->CONST_FALSE);
|
||||
ez->assume(ez->vec_eq(ez->vec_sub(zero, a), yy));
|
||||
}
|
||||
|
||||
|
@ -524,7 +524,7 @@ struct SatGen
|
|||
if (cell->type == "$logic_not")
|
||||
ez->SET(ez->NOT(ez->expression(ez->OpOr, a)), yy.at(0));
|
||||
for (size_t i = 1; i < y.size(); i++)
|
||||
ez->SET(ez->FALSE, yy.at(i));
|
||||
ez->SET(ez->CONST_FALSE, yy.at(i));
|
||||
|
||||
if (model_undef)
|
||||
{
|
||||
|
@ -546,7 +546,7 @@ struct SatGen
|
|||
log_abort();
|
||||
|
||||
for (size_t i = 1; i < undef_y.size(); i++)
|
||||
ez->SET(ez->FALSE, undef_y.at(i));
|
||||
ez->SET(ez->CONST_FALSE, undef_y.at(i));
|
||||
|
||||
undefGating(y, yy, undef_y);
|
||||
}
|
||||
|
@ -569,7 +569,7 @@ struct SatGen
|
|||
else
|
||||
ez->SET(ez->expression(ez->OpOr, a, b), yy.at(0));
|
||||
for (size_t i = 1; i < y.size(); i++)
|
||||
ez->SET(ez->FALSE, yy.at(i));
|
||||
ez->SET(ez->CONST_FALSE, yy.at(i));
|
||||
|
||||
if (model_undef)
|
||||
{
|
||||
|
@ -592,7 +592,7 @@ struct SatGen
|
|||
log_abort();
|
||||
|
||||
for (size_t i = 1; i < undef_y.size(); i++)
|
||||
ez->SET(ez->FALSE, undef_y.at(i));
|
||||
ez->SET(ez->CONST_FALSE, undef_y.at(i));
|
||||
|
||||
undefGating(y, yy, undef_y);
|
||||
}
|
||||
|
@ -630,7 +630,7 @@ struct SatGen
|
|||
if (cell->type == "$gt")
|
||||
ez->SET(is_signed ? ez->vec_gt_signed(a, b) : ez->vec_gt_unsigned(a, b), yy.at(0));
|
||||
for (size_t i = 1; i < y.size(); i++)
|
||||
ez->SET(ez->FALSE, yy.at(i));
|
||||
ez->SET(ez->CONST_FALSE, yy.at(i));
|
||||
|
||||
if (model_undef && (cell->type == "$eqx" || cell->type == "$nex"))
|
||||
{
|
||||
|
@ -645,7 +645,7 @@ struct SatGen
|
|||
yy.at(0) = ez->OR(yy.at(0), ez->vec_ne(undef_a, undef_b));
|
||||
|
||||
for (size_t i = 0; i < y.size(); i++)
|
||||
ez->SET(ez->FALSE, undef_y.at(i));
|
||||
ez->SET(ez->CONST_FALSE, undef_y.at(i));
|
||||
|
||||
ez->assume(ez->vec_eq(y, yy));
|
||||
}
|
||||
|
@ -667,7 +667,7 @@ struct SatGen
|
|||
int undef_y_bit = ez->AND(undef_any, ez->NOT(masked_ne));
|
||||
|
||||
for (size_t i = 1; i < undef_y.size(); i++)
|
||||
ez->SET(ez->FALSE, undef_y.at(i));
|
||||
ez->SET(ez->CONST_FALSE, undef_y.at(i));
|
||||
ez->SET(undef_y_bit, undef_y.at(0));
|
||||
|
||||
undefGating(y, yy, undef_y);
|
||||
|
@ -689,7 +689,7 @@ struct SatGen
|
|||
std::vector<int> b = importDefSigSpec(cell->getPort("\\B"), timestep);
|
||||
std::vector<int> y = importDefSigSpec(cell->getPort("\\Y"), timestep);
|
||||
|
||||
int extend_bit = ez->FALSE;
|
||||
int extend_bit = ez->CONST_FALSE;
|
||||
|
||||
if (!cell->type.in("$shift", "$shiftx") && cell->parameters["\\A_SIGNED"].as_bool())
|
||||
extend_bit = a.back();
|
||||
|
@ -703,16 +703,16 @@ struct SatGen
|
|||
std::vector<int> shifted_a;
|
||||
|
||||
if (cell->type == "$shl" || cell->type == "$sshl")
|
||||
shifted_a = ez->vec_shift_left(a, b, false, ez->FALSE, ez->FALSE);
|
||||
shifted_a = ez->vec_shift_left(a, b, false, ez->CONST_FALSE, ez->CONST_FALSE);
|
||||
|
||||
if (cell->type == "$shr")
|
||||
shifted_a = ez->vec_shift_right(a, b, false, ez->FALSE, ez->FALSE);
|
||||
shifted_a = ez->vec_shift_right(a, b, false, ez->CONST_FALSE, ez->CONST_FALSE);
|
||||
|
||||
if (cell->type == "$sshr")
|
||||
shifted_a = ez->vec_shift_right(a, b, false, cell->parameters["\\A_SIGNED"].as_bool() ? a.back() : ez->FALSE, ez->FALSE);
|
||||
shifted_a = ez->vec_shift_right(a, b, false, cell->parameters["\\A_SIGNED"].as_bool() ? a.back() : ez->CONST_FALSE, ez->CONST_FALSE);
|
||||
|
||||
if (cell->type == "$shift" || cell->type == "$shiftx")
|
||||
shifted_a = ez->vec_shift_right(a, b, cell->parameters["\\B_SIGNED"].as_bool(), ez->FALSE, ez->FALSE);
|
||||
shifted_a = ez->vec_shift_right(a, b, cell->parameters["\\B_SIGNED"].as_bool(), ez->CONST_FALSE, ez->CONST_FALSE);
|
||||
|
||||
ez->assume(ez->vec_eq(shifted_a, yy));
|
||||
|
||||
|
@ -723,7 +723,7 @@ struct SatGen
|
|||
std::vector<int> undef_y = importUndefSigSpec(cell->getPort("\\Y"), timestep);
|
||||
std::vector<int> undef_a_shifted;
|
||||
|
||||
extend_bit = cell->type == "$shiftx" ? ez->TRUE : ez->FALSE;
|
||||
extend_bit = cell->type == "$shiftx" ? ez->CONST_TRUE : ez->CONST_FALSE;
|
||||
if (!cell->type.in("$shift", "$shiftx") && cell->parameters["\\A_SIGNED"].as_bool())
|
||||
extend_bit = undef_a.back();
|
||||
|
||||
|
@ -733,19 +733,19 @@ struct SatGen
|
|||
undef_a.push_back(extend_bit);
|
||||
|
||||
if (cell->type == "$shl" || cell->type == "$sshl")
|
||||
undef_a_shifted = ez->vec_shift_left(undef_a, b, false, ez->FALSE, ez->FALSE);
|
||||
undef_a_shifted = ez->vec_shift_left(undef_a, b, false, ez->CONST_FALSE, ez->CONST_FALSE);
|
||||
|
||||
if (cell->type == "$shr")
|
||||
undef_a_shifted = ez->vec_shift_right(undef_a, b, false, ez->FALSE, ez->FALSE);
|
||||
undef_a_shifted = ez->vec_shift_right(undef_a, b, false, ez->CONST_FALSE, ez->CONST_FALSE);
|
||||
|
||||
if (cell->type == "$sshr")
|
||||
undef_a_shifted = ez->vec_shift_right(undef_a, b, false, cell->parameters["\\A_SIGNED"].as_bool() ? undef_a.back() : ez->FALSE, ez->FALSE);
|
||||
undef_a_shifted = ez->vec_shift_right(undef_a, b, false, cell->parameters["\\A_SIGNED"].as_bool() ? undef_a.back() : ez->CONST_FALSE, ez->CONST_FALSE);
|
||||
|
||||
if (cell->type == "$shift")
|
||||
undef_a_shifted = ez->vec_shift_right(undef_a, b, cell->parameters["\\B_SIGNED"].as_bool(), ez->FALSE, ez->FALSE);
|
||||
undef_a_shifted = ez->vec_shift_right(undef_a, b, cell->parameters["\\B_SIGNED"].as_bool(), ez->CONST_FALSE, ez->CONST_FALSE);
|
||||
|
||||
if (cell->type == "$shiftx")
|
||||
undef_a_shifted = ez->vec_shift_right(undef_a, b, cell->parameters["\\B_SIGNED"].as_bool(), ez->TRUE, ez->TRUE);
|
||||
undef_a_shifted = ez->vec_shift_right(undef_a, b, cell->parameters["\\B_SIGNED"].as_bool(), ez->CONST_TRUE, ez->CONST_TRUE);
|
||||
|
||||
int undef_any_b = ez->expression(ezSAT::OpOr, undef_b);
|
||||
std::vector<int> undef_all_y_bits(undef_y.size(), undef_any_b);
|
||||
|
@ -764,10 +764,10 @@ struct SatGen
|
|||
|
||||
std::vector<int> yy = model_undef ? ez->vec_var(y.size()) : y;
|
||||
|
||||
std::vector<int> tmp(a.size(), ez->FALSE);
|
||||
std::vector<int> tmp(a.size(), ez->CONST_FALSE);
|
||||
for (int i = 0; i < int(a.size()); i++)
|
||||
{
|
||||
std::vector<int> shifted_a(a.size(), ez->FALSE);
|
||||
std::vector<int> shifted_a(a.size(), ez->CONST_FALSE);
|
||||
for (int j = i; j < int(a.size()); j++)
|
||||
shifted_a.at(j) = a.at(j-i);
|
||||
tmp = ez->vec_ite(b.at(i), ez->vec_add(tmp, shifted_a), tmp);
|
||||
|
@ -791,7 +791,7 @@ struct SatGen
|
|||
Macc macc;
|
||||
macc.from_cell(cell);
|
||||
|
||||
std::vector<int> tmp(GetSize(y), ez->FALSE);
|
||||
std::vector<int> tmp(GetSize(y), ez->CONST_FALSE);
|
||||
|
||||
for (auto &port : macc.ports)
|
||||
{
|
||||
|
@ -799,17 +799,17 @@ struct SatGen
|
|||
std::vector<int> in_b = importDefSigSpec(port.in_b, timestep);
|
||||
|
||||
while (GetSize(in_a) < GetSize(y))
|
||||
in_a.push_back(port.is_signed && !in_a.empty() ? in_a.back() : ez->FALSE);
|
||||
in_a.push_back(port.is_signed && !in_a.empty() ? in_a.back() : ez->CONST_FALSE);
|
||||
in_a.resize(GetSize(y));
|
||||
|
||||
if (GetSize(in_b))
|
||||
{
|
||||
while (GetSize(in_b) < GetSize(y))
|
||||
in_b.push_back(port.is_signed && !in_b.empty() ? in_b.back() : ez->FALSE);
|
||||
in_b.push_back(port.is_signed && !in_b.empty() ? in_b.back() : ez->CONST_FALSE);
|
||||
in_b.resize(GetSize(y));
|
||||
|
||||
for (int i = 0; i < GetSize(in_b); i++) {
|
||||
std::vector<int> shifted_a(in_a.size(), ez->FALSE);
|
||||
std::vector<int> shifted_a(in_a.size(), ez->CONST_FALSE);
|
||||
for (int j = i; j < int(in_a.size()); j++)
|
||||
shifted_a.at(j) = in_a.at(j-i);
|
||||
if (port.do_subtract)
|
||||
|
@ -828,7 +828,7 @@ struct SatGen
|
|||
}
|
||||
|
||||
for (int i = 0; i < GetSize(b); i++) {
|
||||
std::vector<int> val(GetSize(y), ez->FALSE);
|
||||
std::vector<int> val(GetSize(y), ez->CONST_FALSE);
|
||||
val.at(0) = b.at(i);
|
||||
tmp = ez->vec_add(tmp, val);
|
||||
}
|
||||
|
@ -871,14 +871,14 @@ struct SatGen
|
|||
}
|
||||
|
||||
std::vector<int> chain_buf = a_u;
|
||||
std::vector<int> y_u(a_u.size(), ez->FALSE);
|
||||
std::vector<int> y_u(a_u.size(), ez->CONST_FALSE);
|
||||
for (int i = int(a.size())-1; i >= 0; i--)
|
||||
{
|
||||
chain_buf.insert(chain_buf.end(), chain_buf.size(), ez->FALSE);
|
||||
chain_buf.insert(chain_buf.end(), chain_buf.size(), ez->CONST_FALSE);
|
||||
|
||||
std::vector<int> b_shl(i, ez->FALSE);
|
||||
std::vector<int> b_shl(i, ez->CONST_FALSE);
|
||||
b_shl.insert(b_shl.end(), b_u.begin(), b_u.end());
|
||||
b_shl.insert(b_shl.end(), chain_buf.size()-b_shl.size(), ez->FALSE);
|
||||
b_shl.insert(b_shl.end(), chain_buf.size()-b_shl.size(), ez->CONST_FALSE);
|
||||
|
||||
y_u.at(i) = ez->vec_ge_unsigned(chain_buf, b_shl);
|
||||
chain_buf = ez->vec_ite(y_u.at(i), ez->vec_sub(chain_buf, b_shl), chain_buf);
|
||||
|
@ -905,13 +905,13 @@ struct SatGen
|
|||
std::vector<int> div_zero_result;
|
||||
if (cell->type == "$div") {
|
||||
if (cell->parameters["\\A_SIGNED"].as_bool() && cell->parameters["\\B_SIGNED"].as_bool()) {
|
||||
std::vector<int> all_ones(y.size(), ez->TRUE);
|
||||
std::vector<int> only_first_one(y.size(), ez->FALSE);
|
||||
only_first_one.at(0) = ez->TRUE;
|
||||
std::vector<int> all_ones(y.size(), ez->CONST_TRUE);
|
||||
std::vector<int> only_first_one(y.size(), ez->CONST_FALSE);
|
||||
only_first_one.at(0) = ez->CONST_TRUE;
|
||||
div_zero_result = ez->vec_ite(a.back(), only_first_one, all_ones);
|
||||
} else {
|
||||
div_zero_result.insert(div_zero_result.end(), cell->getPort("\\A").size(), ez->TRUE);
|
||||
div_zero_result.insert(div_zero_result.end(), y.size() - div_zero_result.size(), ez->FALSE);
|
||||
div_zero_result.insert(div_zero_result.end(), cell->getPort("\\A").size(), ez->CONST_TRUE);
|
||||
div_zero_result.insert(div_zero_result.end(), y.size() - div_zero_result.size(), ez->CONST_FALSE);
|
||||
}
|
||||
} else {
|
||||
int copy_a_bits = std::min(cell->getPort("\\A").size(), cell->getPort("\\B").size());
|
||||
|
@ -919,7 +919,7 @@ struct SatGen
|
|||
if (cell->parameters["\\A_SIGNED"].as_bool() && cell->parameters["\\B_SIGNED"].as_bool())
|
||||
div_zero_result.insert(div_zero_result.end(), y.size() - div_zero_result.size(), div_zero_result.back());
|
||||
else
|
||||
div_zero_result.insert(div_zero_result.end(), y.size() - div_zero_result.size(), ez->FALSE);
|
||||
div_zero_result.insert(div_zero_result.end(), y.size() - div_zero_result.size(), ez->CONST_FALSE);
|
||||
}
|
||||
ez->assume(ez->vec_eq(yy, ez->vec_ite(ez->expression(ezSAT::OpOr, b), y_tmp, div_zero_result)));
|
||||
}
|
||||
|
@ -939,15 +939,15 @@ struct SatGen
|
|||
|
||||
std::vector<int> lut;
|
||||
for (auto bit : cell->getParam("\\LUT").bits)
|
||||
lut.push_back(bit == RTLIL::S1 ? ez->TRUE : ez->FALSE);
|
||||
lut.push_back(bit == RTLIL::S1 ? ez->CONST_TRUE : ez->CONST_FALSE);
|
||||
while (GetSize(lut) < (1 << GetSize(a)))
|
||||
lut.push_back(ez->FALSE);
|
||||
lut.push_back(ez->CONST_FALSE);
|
||||
lut.resize(1 << GetSize(a));
|
||||
|
||||
if (model_undef)
|
||||
{
|
||||
std::vector<int> undef_a = importUndefSigSpec(cell->getPort("\\A"), timestep);
|
||||
std::vector<int> t(lut), u(GetSize(t), ez->FALSE);
|
||||
std::vector<int> t(lut), u(GetSize(t), ez->CONST_FALSE);
|
||||
|
||||
for (int i = GetSize(a)-1; i >= 0; i--)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue