Skip to content

Conversation

kroening
Copy link
Collaborator

The left-hand side of assignments requires special-case synthesis; the symbol to be assigned must not be replaced by its value, but any array indices must be.

@kroening kroening marked this pull request as ready for review August 14, 2024 17:26
Copy link
Collaborator

@tautschnig tautschnig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs a rebase.

Comment on lines +424 to +466
else if(expr.id() == ID_concatenation)
{
for(auto &op : expr.operands())
op = synth_lhs_expr(op);

return expr;
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are the semantics of a concatenation as an lvalue?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Piece-wise assignment to each component.

The left-hand side of assignments requires special-case synthesis; the
symbol to be assigned must not be replaced by its value, but any array
indices must be.
@tautschnig tautschnig merged commit f3569b9 into main Aug 14, 2024
8 checks passed
@tautschnig tautschnig deleted the synth_lhs_expr branch August 14, 2024 18:52
Romy15200 pushed a commit to Romy15200/nws that referenced this pull request Aug 19, 2025
Verilog: separate synthesis for LHS expressions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants