mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-25 10:05:33 +00:00
rtlil: Make Process handling more uniform with Cell and Wire.
- add a backlink to module from Process - make constructor and destructor protected, expose Module functions to add and remove processes
This commit is contained in:
parent
726fabd65e
commit
009940f56c
8 changed files with 62 additions and 25 deletions
|
@ -319,16 +319,14 @@ struct AST_INTERNAL::ProcessGenerator
|
|||
LookaheadRewriter la_rewriter(always);
|
||||
|
||||
// generate process and simple root case
|
||||
proc = new RTLIL::Process;
|
||||
proc = current_module->addProcess(stringf("$proc$%s:%d$%d", always->filename.c_str(), always->location.first_line, autoidx++));
|
||||
set_src_attr(proc, always);
|
||||
proc->name = stringf("$proc$%s:%d$%d", always->filename.c_str(), always->location.first_line, autoidx++);
|
||||
for (auto &attr : always->attributes) {
|
||||
if (attr.second->type != AST_CONSTANT)
|
||||
log_file_error(always->filename, always->location.first_line, "Attribute `%s' with non-constant value!\n",
|
||||
attr.first.c_str());
|
||||
proc->attributes[attr.first] = attr.second->asAttrConst();
|
||||
}
|
||||
current_module->processes[proc->name] = proc;
|
||||
current_case = &proc->root_case;
|
||||
|
||||
// create initial temporary signal for all output registers
|
||||
|
|
|
@ -283,10 +283,8 @@ proc_stmt:
|
|||
TOK_PROCESS TOK_ID EOL {
|
||||
if (current_module->processes.count($2) != 0)
|
||||
rtlil_frontend_yyerror(stringf("RTLIL error: redefinition of process %s.", $2).c_str());
|
||||
current_process = new RTLIL::Process;
|
||||
current_process->name = $2;
|
||||
current_process = current_module->addProcess($2);
|
||||
current_process->attributes = attrbuf;
|
||||
current_module->processes[$2] = current_process;
|
||||
switch_stack.clear();
|
||||
switch_stack.push_back(¤t_process->root_case.switches);
|
||||
case_stack.clear();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue