New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Boolean expression in sensitivity list unsupported #934
Comments
Original Redmine Comment Unfortunately this syntax requires an event simulator. While Verilator could ignore it, it would almost certainly just result in a mismatch with other simulators. |
Original Redmine Comment Hi Wilson- It be great if the parser supported this syntax and then errored out during elaboration of some other stage. This behavior is important for three use cases:
I would really like to use Verilator for all three purposes. ~John |
Original Redmine Comment Parsing of && is now supported, but not arbitrary equations due to certain difficulties. This errors out later when the module is consumed (unless --bbox-unsup is used) In git towards 3.891. |
Original Redmine Comment Excellent! Thanks, Wilson. I'll check it out in the next few days. Would be great if it not gets through that monster of an altera_mf.sv. |
Original Redmine Comment In 3.900. |
Author Name: Luke Yang
Original Redmine Issue: 934 from https://www.veripool.org
Original Assignee: Wilson Snyder (@wsnyder)
The parser front-end fails to recognize a boolean expression as an event_expression in a sensitivity list.
For example,
always @((i && j) or posedge clk)
would cause a syntax error where&&
is unexpected.However, the LRM says
clocking_event ::=
@ identifier
|@ ( event_expression )
event_expression ::=
[edge_identifier] expression [iff expression]
| // others...
Therefore a boolean expression should be legal.
This error comes from compiling Altera Quartus 14.0's altera_mf.v
The text was updated successfully, but these errors were encountered: