MikePopoloski / slang

SystemVerilog compiler and language services
MIT License
546 stars 114 forks source link

Finish support for 1800-2023 LRM changes #950

Open MikePopoloski opened 1 month ago

MikePopoloski commented 1 month ago

Some raw notes I took on remaining changes to review, everything else should be done already:

14.3 Delay controls shall be non-negative, not just positive

14.16 changes to cycle delay syntax ?

15.5.1 Allowing selects during event triggers

16.6 Clarification of boolean expressions in assertions

16.7 Sequence actual arg can be $

16.9.3 It shall be illegal to use automatic variables in clocking events and expression2 of $past.

16.14.6 It shall be illegal to use automatic variables in clocking events.

16.14.7 Clarification of rules for inferred value functions

17.3 .* token is actually two tokens? True everywhere?

18.3 Clarification of constraint type rules

18.4 Random variables can be real Also rules about array size constraints

18.5 uniqueness constraint, dist item can have default keyword

18.5.2 Rules about constraint inheritance (dynamic override specifiers)

18.5.3 Dist operator rules were rewritten

18.5.7.1 Foreach constraints

18.5.9 solve_before_primary -> constraint_primary array.size is allowed as a variable

18.5.13 Soft constraints

18.8 rand_mode changed to function 18.9 Same for constraint_mode

19.4 Derived covergroups

19.5 Coverpoints can be real Covergroup value range new operators like dist Functions can't have output or inout

19.5.1 is rewritten 19.5.2 covergroup value range default sequence doesn't accept multiple transition bins

19.6 updated for real coverpoints 19.7 new coverage option 19.7.3 new static options 19.10 changed structs

20.4.1 New timescale system functions

20.6.3 isunbounded argument must be a parameter name

20.17.2 $stacktrace function

24.3 Programs allow some more items in them

30.4.3 Changes to edge-sensitive path syntax?