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 10 months 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 9 months 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