v0.8: Assertions
Highlights
Support was added for concurrent assertions, including sequences, properties, and clocking blocks.
Language Support
- Support for declaring sequences, including all sequence expressions
- Support for declaring properties, including all property expressions
- Support for all concurrent assertion statements
- Initial support for parsing checker declarations
- Support for
#1step
delay values - Support for clocking blocks and clocking variables
- Support for default and global clocking blocks
- Support for cycle delays
- Support for synchronous drives
- Added the $global_clock system function
- Added the global clocking sampled value system functions
- Support for default disable declarations
- Support for slicing arrays of instances in hierarchical selections
- Initial parsing support for net aliases
- Initial parsing support for package exports
- Initial parsing support for randsequence statements
- Support for assigning unbounded literals to parameters
- Added the $isunbounded system function
General Features
- Added a specialized diagnostic for when
wire
is misused as a data type - Added a set of CLI options to control the format of printed diagnostics, such as whether they include line numbers, column numbers, source snippets, etc.
- Added a
--allow-use-before-declare
flag which suppresses errors about names being referenced before their declarations, to ease compatibility with less compliant tools --libdir
will now search for missing packages in addition to missing modules
Fixes
- Fixed many parsing issues related to assertion expressions
- Fixed the printing of type aliases in diagnostics when they point to virtual interfaces
- Fixed type compatibility checking for virtual interfaces
- Fixed issues with parsing let declarations
- Fixed a bug where predefined integer types that had a signed qualifier added would no longer be treated as a predefined type
- Fixed interconnect net parsing
- Fixes for covergroup parsing
- Fixed a bug related to assigning lookup indices to generate blocks
- Correctly enforce rules about the contents of deferred assertion action blocks
- Correctly disallow system functions with output arguments from being used in invalid contexts
- Fixed the elaboration system tasks to correctly check for constant evaluation errors