Giter Site home page Giter Site logo

Comments (4)

MikePopoloski avatar MikePopoloski commented on June 4, 2024 1

Fixed in d8d0237 and 9f02fd6

from slang.

MikePopoloski avatar MikePopoloski commented on June 4, 2024

Thanks for the kind words.

There are two separate problems described here. The first is the $countdrivers function. This is not a standard SystemVerilog system function. It's described in Annex D of the LRM, which says:

The system tasks and system functions described in this annex are for informative purposes only and are not
part of this standard.

That being said, I'm not against having slang support them anyway.

Second, state dependent path conditions are described in 30.4.4.1. There is a table there, Table 30-1, which lists the valid operators, and the triple-equals operator is not in the list, which is why slang is reporting an error. I assume some other tool is allowing this anyway as an extension. I can consider allowing this in slang for compatibility purposes.

For reference, here is Table 30-1:

Operator Description
~ bitwise negation
& reduction AND
& bitwise AND
| reduction OR
| bitwise OR
^ reduction XOR
^ bitwise XOR
~& reduction NAND
^~ ~^ bitwise XNOR
~| reduction NOR
== logical equality
^~ ~^ reduction XNOR
!= logical inequality
{} concatenation
&& logical AND
{ {} } replication
|| logical OR
?: conditional
! logical NOT

from slang.

vowstar avatar vowstar commented on June 4, 2024

Thank you for your detailed and informative response! I appreciate your willingness to consider extending slang's capabilities to include features like $countdrivers and state-dependent path conditions using the triple-equals operator. Indeed, my experiences are based on using the VCS simulator, which seems to allow these extensions.

from slang.

vowstar avatar vowstar commented on June 4, 2024

Thanks!

from slang.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.