mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-27 19:05:52 +00:00
Add support for memory writes in processes.
This commit is contained in:
parent
c00a29296c
commit
4e03865d5b
16 changed files with 246 additions and 44 deletions
|
@ -79,6 +79,7 @@ USING_YOSYS_NAMESPACE
|
|||
"global" { return TOK_GLOBAL; }
|
||||
"init" { return TOK_INIT; }
|
||||
"update" { return TOK_UPDATE; }
|
||||
"memwr" { return TOK_MEMWR; }
|
||||
"process" { return TOK_PROCESS; }
|
||||
"end" { return TOK_END; }
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ USING_YOSYS_NAMESPACE
|
|||
%token TOK_AUTOIDX TOK_MODULE TOK_WIRE TOK_WIDTH TOK_INPUT TOK_OUTPUT TOK_INOUT
|
||||
%token TOK_CELL TOK_CONNECT TOK_SWITCH TOK_CASE TOK_ASSIGN TOK_SYNC
|
||||
%token TOK_LOW TOK_HIGH TOK_POSEDGE TOK_NEGEDGE TOK_EDGE TOK_ALWAYS TOK_GLOBAL TOK_INIT
|
||||
%token TOK_UPDATE TOK_PROCESS TOK_END TOK_INVALID TOK_EOL TOK_OFFSET
|
||||
%token TOK_UPDATE TOK_MEMWR TOK_PROCESS TOK_END TOK_INVALID TOK_EOL TOK_OFFSET
|
||||
%token TOK_PARAMETER TOK_ATTRIBUTE TOK_MEMORY TOK_SIZE TOK_SIGNED TOK_REAL TOK_UPTO
|
||||
|
||||
%type <rsigspec> sigspec_list_reversed
|
||||
|
@ -155,6 +155,7 @@ param_defval_stmt:
|
|||
TOK_PARAMETER TOK_ID constant EOL {
|
||||
current_module->avail_parameters($2);
|
||||
current_module->parameter_default_values[$2] = *$3;
|
||||
delete $3;
|
||||
free($2);
|
||||
};
|
||||
|
||||
|
@ -389,6 +390,22 @@ update_list:
|
|||
delete $3;
|
||||
delete $4;
|
||||
} |
|
||||
update_list attr_list TOK_MEMWR TOK_ID sigspec sigspec sigspec constant EOL {
|
||||
RTLIL::MemWriteAction act;
|
||||
act.attributes = attrbuf;
|
||||
act.memid = $4;
|
||||
act.address = *$5;
|
||||
act.data = *$6;
|
||||
act.enable = *$7;
|
||||
act.priority_mask = *$8;
|
||||
current_process->syncs.back()->mem_write_actions.push_back(std::move(act));
|
||||
attrbuf.clear();
|
||||
free($4);
|
||||
delete $5;
|
||||
delete $6;
|
||||
delete $7;
|
||||
delete $8;
|
||||
} |
|
||||
/* empty */;
|
||||
|
||||
constant:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue