Elaborate signals in generated named blocks.
Named blocks create scopes, and generated named blocks' scopes can have signals declared in them. So the elaborate_sig for the generate scheme needs to call the elaborate_sig for the processes as well as the obvious gates and tasks/functions.
This commit is contained in:
parent
95065819f1
commit
5e174f54ee
|
|
@ -1144,6 +1144,11 @@ void PBlock::elaborate_scope(Design*des, NetScope*scope) const
|
||||||
des->errors += 1;
|
des->errors += 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (debug_scopes)
|
||||||
|
cerr << get_fileline() << ": debug: "
|
||||||
|
<< "Elaborate block scope " << use_name
|
||||||
|
<< " within " << scope_path(scope) << endl;
|
||||||
|
|
||||||
my_scope = new NetScope(scope, use_name, bl_type_==BL_PAR
|
my_scope = new NetScope(scope, use_name, bl_type_==BL_PAR
|
||||||
? NetScope::FORK_JOIN
|
? NetScope::FORK_JOIN
|
||||||
: NetScope::BEGIN_END);
|
: NetScope::BEGIN_END);
|
||||||
|
|
|
||||||
|
|
@ -486,6 +486,13 @@ bool PGenerate::elaborate_sig_(Design*des, NetScope*scope) const
|
||||||
(*cur) ->elaborate_sig(des, scope);
|
(*cur) ->elaborate_sig(des, scope);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef list<PProcess*>::const_iterator proc_it_t;
|
||||||
|
for (proc_it_t cur = behaviors.begin()
|
||||||
|
; cur != behaviors.end() ; cur ++ ) {
|
||||||
|
(*cur) -> statement() -> elaborate_sig(des, scope);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue