Skip to content

v0.8: Assertions

Compare
Choose a tag to compare
@MikePopoloski MikePopoloski released this 14 Aug 15:05
· 1965 commits to master since this release

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