From caa78388cd72d3473903357d52908cd5c84a37d8 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Tue, 10 Oct 2017 11:59:32 +0200 Subject: Allow $past, $stable, $rose, $fell in $global_clock blocks --- frontends/ast/simplify.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'frontends/ast/simplify.cc') diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc index cd2120b8c..4baed3bfc 100644 --- a/frontends/ast/simplify.cc +++ b/frontends/ast/simplify.cc @@ -405,9 +405,13 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage, current_always_clocked = false; if (type == AST_ALWAYS) - for (auto child : children) + for (auto child : children) { if (child->type == AST_POSEDGE || child->type == AST_NEGEDGE) current_always_clocked = true; + if (child->type == AST_EDGE && GetSize(child->children) == 1 && + child->children[0]->type == AST_IDENTIFIER && child->children[0]->str == "\\$global_clock") + current_always_clocked = true; + } } int backup_width_hint = width_hint; -- cgit v1.2.3 From bc80426d4579d4973feed80e804c59cc46a5368c Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Tue, 10 Oct 2017 12:00:48 +0200 Subject: Remove some dead code --- frontends/ast/simplify.cc | 15 --------------- 1 file changed, 15 deletions(-) (limited to 'frontends/ast/simplify.cc') diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc index 4baed3bfc..74e7b4675 100644 --- a/frontends/ast/simplify.cc +++ b/frontends/ast/simplify.cc @@ -1828,21 +1828,6 @@ skip_dynamic_range_lvalue_expansion:; goto apply_newNode; } - if (str == "\\$rose" || str == "\\$fell") - { - if (GetSize(children) != 1) - log_error("System function %s got %d arguments, expected 1 at %s:%d.\n", - RTLIL::unescape_id(str).c_str(), int(children.size()), filename.c_str(), linenum); - - if (!current_always_clocked) - log_error("System function %s is only allowed in clocked blocks at %s:%d.\n", - RTLIL::unescape_id(str).c_str(), filename.c_str(), linenum); - - newNode = new AstNode(AST_EQ, children.at(0)->clone(), clone()); - newNode->children.at(1)->str = "\\$past"; - goto apply_newNode; - } - // $anyconst and $anyseq are mapped in AstNode::genRTLIL() if (str == "\\$anyconst" || str == "\\$anyseq") { recursion_counter--; -- cgit v1.2.3