Comments (4)
from slang.
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.
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.
Thanks!
from slang.
Related Issues (20)
- Upload executables in releases HOT 1
- Assertion 'T::isKind(kind)' failed HOT 5
- Incorrect compilation errors with expressions like "=> ##[X]" HOT 1
- The bit/part-select results should be unsigned. But not in slang v3.0. HOT 3
- slang does not accept DPI task calls without parentheses HOT 1
- Slang incorrectly claims that a parameter is recursively defined HOT 6
- Add unused import check HOT 1
- SVInt(T value) constructor fails to compile for char values on aarch64 HOT 5
- Function name used as variable causes error in VCS compatibility mode HOT 1
- Support for Comment-Based Warning Control HOT 2
- Array with size from body parameter is <error> HOT 3
- --ast-json-depth <x> flag HOT 3
- -Wunused-but-set-net behavior for a wire connecting two inout ports together HOT 1
- slang-netlist assertion failure
- Defaultless parameters cause submodule port/param checks to be skipped HOT 1
- slang-tidy does not find functions from different files. HOT 3
- netlist handling of in multiple blocking assignments of same var in always_comb HOT 5
- [Struct]When translating stuct expression and the memberaccess kind, member symbol is the same while clang will give the different symbol. HOT 6
- uninstantiated generic classes should not include an invalid specialization in the AST HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from slang.