aboutsummaryrefslogtreecommitdiffstats
path: root/frontends/ast/simplify.cc
diff options
context:
space:
mode:
authortklam <tklam@easylogic.hk>2018-10-03 21:17:03 +0800
committertklam <tklam@easylogic.hk>2018-10-03 21:17:03 +0800
commit27c46d94e32a45762b3a424d6c7bfcd3ce7a1b12 (patch)
tree24b47553fb2aff94f4bd15315f3d43e29db5d30f /frontends/ast/simplify.cc
parentb86eb3deef7d80fc5450379c80047636832ef458 (diff)
parent76baae4b946cdeb04026120b495c87a6146358d0 (diff)
downloadyosys-27c46d94e32a45762b3a424d6c7bfcd3ce7a1b12.tar.gz
yosys-27c46d94e32a45762b3a424d6c7bfcd3ce7a1b12.tar.bz2
yosys-27c46d94e32a45762b3a424d6c7bfcd3ce7a1b12.zip
Merge branch 'master' of https://github.com/YosysHQ/yosys
Diffstat (limited to 'frontends/ast/simplify.cc')
-rw-r--r--frontends/ast/simplify.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc
index 04c429f7f..71eba547c 100644
--- a/frontends/ast/simplify.cc
+++ b/frontends/ast/simplify.cc
@@ -1781,7 +1781,7 @@ skip_dynamic_range_lvalue_expansion:;
if (GetSize(children) == 2)
{
AstNode *buf = children[1]->clone();
- while (buf->simplify(true, false, false, stage, width_hint, sign_hint, false)) { }
+ while (buf->simplify(true, false, false, stage, -1, false, false)) { }
if (buf->type != AST_CONSTANT)
log_file_error(filename, linenum, "Failed to evaluate system function `%s' with non-constant value.\n", str.c_str());
@@ -1836,7 +1836,7 @@ skip_dynamic_range_lvalue_expansion:;
goto apply_newNode;
}
- if (str == "\\$stable" || str == "\\$rose" || str == "\\$fell")
+ if (str == "\\$stable" || str == "\\$rose" || str == "\\$fell" || str == "\\$changed")
{
if (GetSize(children) != 1)
log_file_error(filename, linenum, "System function %s got %d arguments, expected 1.\n",
@@ -1853,6 +1853,9 @@ skip_dynamic_range_lvalue_expansion:;
if (str == "\\$stable")
newNode = new AstNode(AST_EQ, past, present);
+ else if (str == "\\$changed")
+ newNode = new AstNode(AST_NE, past, present);
+
else if (str == "\\$rose")
newNode = new AstNode(AST_LOGIC_AND, new AstNode(AST_LOGIC_NOT, past), present);