diff options
author | Clifford Wolf <clifford@clifford.at> | 2013-11-07 18:17:10 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2013-11-07 18:17:10 +0100 |
commit | 947bd9b96bb978e204275d6fbbc9ce9ff6eda28c (patch) | |
tree | c9f0f53390c6fdfba52d26a3571d761ef28449f9 | |
parent | 0e1661f84e99f1d4a487e7a432b05a6cb2071714 (diff) | |
download | yosys-947bd9b96bb978e204275d6fbbc9ce9ff6eda28c.tar.gz yosys-947bd9b96bb978e204275d6fbbc9ce9ff6eda28c.tar.bz2 yosys-947bd9b96bb978e204275d6fbbc9ce9ff6eda28c.zip |
Renamed extend_un0() to extend_u0() and use it in genrtlil
-rw-r--r-- | frontends/ast/genrtlil.cc | 12 | ||||
-rw-r--r-- | kernel/rtlil.cc | 2 | ||||
-rw-r--r-- | kernel/rtlil.h | 2 | ||||
-rw-r--r-- | passes/opt/opt_const.cc | 4 |
4 files changed, 12 insertions, 8 deletions
diff --git a/frontends/ast/genrtlil.cc b/frontends/ast/genrtlil.cc index e901a3b52..c701c2fa0 100644 --- a/frontends/ast/genrtlil.cc +++ b/frontends/ast/genrtlil.cc @@ -966,7 +966,7 @@ RTLIL::SigSpec AstNode::genRTLIL(int width_hint, bool sign_hint) case AST_TO_UNSIGNED: { RTLIL::SigSpec sig = children[0]->genRTLIL(); if (sig.width < width_hint) - sig.extend(width_hint, sign_hint); + sig.extend_u0(width_hint, sign_hint); is_signed = sign_hint; return sig; } @@ -983,7 +983,7 @@ RTLIL::SigSpec AstNode::genRTLIL(int width_hint, bool sign_hint) } } if (sig.width < width_hint) - sig.extend(width_hint, false); + sig.extend_u0(width_hint, false); return sig; } @@ -998,7 +998,7 @@ RTLIL::SigSpec AstNode::genRTLIL(int width_hint, bool sign_hint) for (int i = 0; i < count; i++) sig.append(right); if (sig.width < width_hint) - sig.extend(width_hint, false); + sig.extend_u0(width_hint, false); is_signed = false; return sig; } @@ -1153,7 +1153,11 @@ RTLIL::SigSpec AstNode::genRTLIL(int width_hint, bool sign_hint) widthExtend(this, val1, width, is_signed); widthExtend(this, val2, width, is_signed); - return mux2rtlil(this, cond, val1, val2); + RTLIL::SigSpec sig = mux2rtlil(this, cond, val1, val2); + + if (sig.width < width_hint) + sig.extend_u0(width_hint, sign_hint); + return sig; } // generate $memrd cells for memory read ports diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc index 4388acb1d..d03fb0448 100644 --- a/kernel/rtlil.cc +++ b/kernel/rtlil.cc @@ -940,7 +940,7 @@ void RTLIL::SigSpec::extend(int width, bool is_signed) optimize(); } -void RTLIL::SigSpec::extend_un0(int width, bool is_signed) +void RTLIL::SigSpec::extend_u0(int width, bool is_signed) { if (this->width > width) remove(width, this->width - width); diff --git a/kernel/rtlil.h b/kernel/rtlil.h index 376a09abf..7628bf0a8 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -342,7 +342,7 @@ struct RTLIL::SigSpec { void append(const RTLIL::SigSpec &signal); bool combine(RTLIL::SigSpec signal, RTLIL::State freeState = RTLIL::State::Sz, bool override = false); void extend(int width, bool is_signed = false); - void extend_un0(int width, bool is_signed = false); + void extend_u0(int width, bool is_signed = false); void check() const; bool operator <(const RTLIL::SigSpec &other) const; bool operator ==(const RTLIL::SigSpec &other) const; diff --git a/passes/opt/opt_const.cc b/passes/opt/opt_const.cc index f20181f1e..b7b361e95 100644 --- a/passes/opt/opt_const.cc +++ b/passes/opt/opt_const.cc @@ -151,8 +151,8 @@ void replace_const_cells(RTLIL::Design *design, RTLIL::Module *module, bool cons if (cell->parameters["\\A_WIDTH"].as_int() != cell->parameters["\\B_WIDTH"].as_int()) { int width = std::max(cell->parameters["\\A_WIDTH"].as_int(), cell->parameters["\\B_WIDTH"].as_int()); - a.extend_un0(width, cell->parameters["\\A_SIGNED"].as_bool() && cell->parameters["\\B_SIGNED"].as_bool()); - b.extend_un0(width, cell->parameters["\\A_SIGNED"].as_bool() && cell->parameters["\\B_SIGNED"].as_bool()); + a.extend_u0(width, cell->parameters["\\A_SIGNED"].as_bool() && cell->parameters["\\B_SIGNED"].as_bool()); + b.extend_u0(width, cell->parameters["\\A_SIGNED"].as_bool() && cell->parameters["\\B_SIGNED"].as_bool()); } RTLIL::SigSpec new_a, new_b; |