Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

State of GHDL's support of PSL #1616

Open
tmeissner opened this issue Jan 18, 2021 · 0 comments
Open

State of GHDL's support of PSL #1616

tmeissner opened this issue Jan 18, 2021 · 0 comments
Labels
Feature: PSL Requested feature addition related to the Property Specification Language (PSL).

Comments

@tmeissner
Copy link
Contributor

tmeissner commented Jan 18, 2021

This issue serves as a reference of the current state of GHDL's implementation of PSL. What's left and what are the most desired features. I take the information from my psl_with_ghdl repo and from issues which are marked with the psl tag.

Please check my psl_with_ghdl project for a more detailed list and examples which parts of PSL are supported by GHDL and which not. It would be tedious and wasteful work to copy and sync it into this issue.

I have to say, that the current PSL support is amazing, even if there are some features missing 👍 GHDL is the only free & open source tool I know with that wide support for Assertion Based Verification, even for use with formal methods (with SymbiYosys).

Hint: Support for synthesis means that it can also used for formal verification using SymbiYosys.

Currently not yet supported by GHDL:

I emphasized the features which I think are the most desired ones.

  1. PSL functions (prev(), stable(),rose(), fell(), onehot()( & onehot0() are implemented for synthesis)
    Support of PSL functions #662 Supporting PSL functions for simulation #1498 Crash when using PSL stable in simulation #1530
  2. PSL vunits (implemented for synthesis only)
    Not able to compile PSL verification unit file and bind to module.  #1027
  3. Named properties & sequences (partial support, some parameter types missing)
    Allowing parameters for PSL sequences & properties #245 sem_psl_verification_unit: cannot handle IIR_KIND_PSL_DECLARATION #1889 Synth: add support for PSL declarations (sequences, properties) in inline PSL #1891
  4. Using generic-derived constants
    Support generic-derived constants as "numbers" in PSL #600
  5. Unclocked PSL
    Not able to compile PSL verification unit file and bind to module.  #1027
  6. forall operator
    Request: PSL 'forall' support. #250
  7. for operator
  8. Synthesis of strong operator versions
  9. PSL macros (%for, %if)
  10. Multi-clock properties

I think the most desired thing is to streamline and align PSL support in simulation & synthesis. That is shown by point 1-3. Point 4 makes the life a lot easier when you want to check a lot of similar cases, as you could generate them using generate construct. It is also a workaround for missing forall, for operators and the macros.

Maybe we can have a discussion here - which features are realistic and easy to implement, which not.

@tmeissner tmeissner changed the title PSL: State of GHDL's support for PSL State of GHDL's support for PSL Jan 18, 2021
@Paebbels Paebbels added the Feature: PSL Requested feature addition related to the Property Specification Language (PSL). label Jan 18, 2021
@eine eine pinned this issue Jan 18, 2021
@tmeissner tmeissner changed the title State of GHDL's support for PSL State of GHDL's support of PSL Jan 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature: PSL Requested feature addition related to the Property Specification Language (PSL).
Projects
None yet
Development

No branches or pull requests

2 participants