Boolean expression in sensitivity list unsupported
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
#2 Updated by John Demme over 1 year ago
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: - The simulated design is pulling in a module which does not use this syntax, but is contained in a file with other modules which contain this syntax. This is common, especially for supporting simulation libraries from Altera. - Verilator is being used for linting rather than simulation - Verilator's parser is being pulled out and used for another purpose
I would really like to use Verilator for all three purposes.
#3 Updated by Wilson Snyder over 1 year ago
- Category set to Lint
- Status changed from WillNotFix to Resolved
- Assignee set to Wilson Snyder
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.
Also available in: Atom