Wilson Snyder
c03affa544
Fix enum.next(0) and enum.prev(0).
2023-02-26 15:24:24 -05:00
Wilson Snyder
9bf0e54937
Internals: add const
2023-02-26 12:21:17 -05:00
Wilson Snyder
b039f246df
Lint check posedge of nonintegral
2023-02-26 12:08:10 -05:00
Ryszard Rozak
063f9a7a4c
Fix dicts declared with ref type ( #3960 )
2023-02-16 12:49:45 -05:00
Wilson Snyder
94ef1b76d0
Fix error text on packed struct init.
2023-02-13 20:58:49 -05:00
Wilson Snyder
5064ec2806
Support type case and type equality comparisons.
2023-02-12 20:09:10 -05:00
Wilson Snyder
4f19eeaffa
Fix type(typedef) operation core dump
2023-02-12 19:57:52 -05:00
Wilson Snyder
15d0ec317d
Fix lint for non-integral types in packed structs.
2023-02-12 16:32:36 -05:00
Wilson Snyder
5aa4f46101
Internals: Add some std::. No functional change intended.
2023-02-10 20:32:39 -05:00
Kamil Rakoczy
93d50c4499
Internals: Add mutex to V3Error ( #3680 )
2023-02-09 22:15:37 -05:00
Ryszard Rozak
072d76fe8e
Use VAR_BASE as attr type if a select's base is a ref ( #3943 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
2023-02-07 15:10:19 +01:00
Wilson Snyder
88e5017564
Internals: Directly assign dtype instead of using dtype's dtype
2023-02-05 13:50:29 -05:00
Wilson Snyder
508f6f7e5a
Fix core dump with initial variable delays
2023-02-05 13:17:35 -05:00
Wilson Snyder
eb5aad94f1
Support to packed array
2023-02-05 10:18:03 -05:00
Aleksander Kiryk
31130c4b4a
Fix std:: to be parsed first ( #3864 ) ( #3928 )
2023-02-03 09:04:16 -05:00
Andrew Nolte
d3c14cc1ac
Split WIDTH warning into WIDTHEXPAND and WIDTHTRUNC ( #3900 )
2023-02-02 18:25:25 -05:00
Wilson Snyder
ef9f443532
Fix single-element replication to dynarray/unpacked/queue ( #3548 ).
2023-01-31 22:43:41 -05:00
Wilson Snyder
6a7dfb7696
Fix pattern assignment to unpacked structs ( #3510 ).
2023-01-29 16:50:10 -05:00
Wilson Snyder
7855a78a0f
Support %p of union with real
2023-01-28 21:41:50 -05:00
Wilson Snyder
248bd173d3
Support interface classes and class implements.
2023-01-28 18:06:37 -05:00
Wilson Snyder
ba8700f99d
Support $changed_gclk, $fell_gclk, $rose_gclk, $stable_gclk
2023-01-28 14:05:26 -05:00
Wilson Snyder
93517b8378
Support unpacked unions.
2023-01-27 22:41:12 -05:00
Wilson Snyder
e94023367f
Fix elaboration of member selected classes ( #3890 ).
2023-01-19 17:44:27 -05:00
Ilya Barkov
ff2f711d0c
Fix chain call of abstract class constructor ( #3868 ) ( #3883 )
2023-01-17 13:02:39 -05:00
Aleksander Kiryk
a1160a85a3
Support p format for UnpackArray ( #3877 )
2023-01-16 12:41:02 -04:00
Wilson Snyder
b24d7c83d3
Copyright year update
2023-01-01 10:18:39 -05:00
Wilson Snyder
9255707dd4
Fix detecting multiple pattern defaults
2022-12-29 20:16:30 -05:00
Larry Doolittle
80a144797d
Commentary: Fix more spelling ( #3828 )
2022-12-26 10:30:41 +01:00
Wilson Snyder
c0499da28b
Spelling fixes
2022-12-23 11:32:38 -05:00
Krzysztof Bieganski
bb44d4e4f2
Support clocking blocks ( #3674 )
2022-12-23 07:34:49 -05:00
Aleksander Kiryk
c2b09e35f8
Support unpacked structs ( #3802 )
2022-12-20 19:22:42 -05:00
Wilson Snyder
609bfa46e8
Fix ENUMVALUE on parameter, again ( #3777 ).
2022-12-11 21:10:12 -05:00
Wilson Snyder
86b07423a9
Fix ENUMVALUE on parameter ( #3777 ).
2022-12-11 13:28:24 -05:00
Wilson Snyder
3f4d4dec77
Fix ENUMVALUE on typedef ( #3777 )
2022-12-11 11:50:22 -05:00
Wilson Snyder
ea1b141d13
Support probablity distribution functions.
2022-12-04 17:30:51 -05:00
Larry Doolittle
f27cf4c804
Commentary: Fix spelling in C++ comments ( #3797 ) ( #3798 )
2022-12-02 18:46:38 -05:00
Wilson Snyder
31d8b4cb8e
Internals: Rename AstNodeSystem*D etc. No functional change intended.
2022-11-30 22:08:57 -05:00
Wilson Snyder
4f4c26383c
Support unpacked byte assignment from strings.
2022-11-30 19:17:28 -05:00
Ryszard Rozak
073dc03adc
Support super.new calls ( #3789 )
2022-11-30 06:42:48 -05:00
Krzysztof Bieganski
68e1b473e2
Support `std::semaphore` and typed `std::mailbox` ( #3708 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-11-28 16:53:55 +01:00
Wilson Snyder
f4be3d5d2b
Fix empty string literals converting to string types ( #3774 ).
2022-11-27 13:28:57 -05:00
Wilson Snyder
054b792021
Fix ENUMVALUE error to show value location ( #3783 )
2022-11-27 08:44:30 -05:00
Wilson Snyder
2c7f1ef40f
Internals: Cleanup debug dumps so can grep-out leading-dashed lines
2022-11-27 08:31:22 -05:00
Ryszard Rozak
57975c82b7
Support 'with' in unique, unique_index, min, max in queues ( #3772 )
2022-11-22 09:10:25 -05:00
Wilson Snyder
66d85b3381
Internals: Fix cppcheck warnings. No functional change intended.
2022-11-21 21:40:49 -05:00
Wilson Snyder
73d6de4471
Internals: Fix constructor style.
2022-11-21 20:41:32 -05:00
Wilson Snyder
2eed4452ad
Internals: Fix constructor style.
2022-11-20 20:13:55 -05:00
Geza Lore
3abb65d732
Strengthen AstNode types to AstNodeExpr
...
Declare every AstNode children and variables as AstNodeExpr where we
statically know this is the appropriate sub-type.
2022-11-20 19:31:28 +00:00
Wilson Snyder
3a27e3d67b
Fix false ENUMVALUE errors in unstable branch ( #3761 )
2022-11-19 14:07:39 -05:00
Wilson Snyder
09dff9c3a7
Fix false ENUMVALUE errors in unstable branch ( #3761 )
2022-11-19 13:30:23 -05:00
Wilson Snyder
b2d92b7c25
Allow ENCAPSULATED and ENUMVALUE to be disabled
2022-11-18 21:30:34 -05:00
Ryszard Rozak
ef72b73a59
Support foreach loops on strings ( #3760 )
2022-11-18 07:07:56 -05:00
github action
cd8528e83b
Apply 'make format'
2022-11-18 00:14:05 +00:00
Wilson Snyder
e8a1e4745c
Support $stacktrace
2022-11-17 19:12:54 -05:00
Ryszard Rozak
d41efb189d
Fix pre/postincrement operations ( #3744 ) ( #3756 )
2022-11-17 13:26:45 -05:00
Wilson Snyder
3c77c7bb92
Support and
2022-11-16 21:10:54 -05:00
Wilson Snyder
d25834e57b
Add ENUMVALUE warning when value misused for enum ( #726 ).
2022-11-12 20:11:05 -05:00
Wilson Snyder
4f50073feb
Internals: Fix constructor style.
2022-11-12 19:51:03 -05:00
Wilson Snyder
6736e92cdb
Internals: Fix some ugly line breaks. No functional change.
2022-11-11 22:33:17 -05:00
Wilson Snyder
a427860825
Support randcase.
2022-11-11 21:53:05 -05:00
William D. Jones
41d2ebe288
Fix CONTEXT compile error on mingw64 ( #3741 ).
2022-11-11 21:43:10 -05:00
Wilson Snyder
b2e61425d6
Fix const initial assignments.
2022-11-11 17:45:34 -05:00
Wilson Snyder
21926eeb6b
Tests: Improve some coverage
2022-11-05 11:40:34 -04:00
Ryszard Rozak
8d61cea366
Fix return type of $countbits functions to int ( #3725 )
2022-11-04 08:58:17 -04:00
Geza Lore
65e08f4dbf
Make all expressions derive from AstNodeExpr ( #3721 ).
...
Apart from the representational changes below, this patch renames
AstNodeMath to AstNodeExpr, and AstCMath to AstCExpr.
Now every expression (i.e.: those AstNodes that represent a [possibly
void] value, with value being interpreted in a very general sense) has
AstNodeExpr as a super class. This necessitates the introduction of an
AstStmtExpr, which represents an expression in statement position, e.g :
'foo();' would be represented as AstStmtExpr(AstCCall(foo)). In exchange
we can get rid of isStatement() in AstNodeStmt, which now really always
represent a statement
Peak memory consumption and verilation speed are not measurably changed.
Partial step towards #3420
2022-11-03 16:02:16 +00:00
Ryszard Rozak
bac98df46b
Support named properties ( #3667 )
2022-11-01 18:53:47 -04:00
Wilson Snyder
5c658f8cd5
Fix width mismatch on inside operator ( #3714 ).
2022-10-28 06:38:49 -04:00
Wilson Snyder
3487701b04
Tests: Cover some previously uncovered warnings
2022-10-22 16:03:42 -04:00
Wilson Snyder
347e9b4ec8
Fix cell assigning integer array parameters ( #3299 ).
2022-10-21 18:26:39 -04:00
Arkadiusz Kozdra
0e4da3b0bf
Support virtual interfaces ( #3654 )
2022-10-20 06:31:00 -04:00
Wilson Snyder
14f58ed6c7
Add error on real edge event control.
2022-10-15 06:21:34 -04:00
Arkadiusz Kozdra
038d57070b
Support standalone 'this' in classes ( #3675 ) ( #2594 ) ( #3248 )
2022-10-14 08:55:55 -04:00
Krzysztof Bieganski
68927d4fd3
Make class ref typing stricter ( #3671 )
...
Prevents the possibility of assigning an integer to a class reference,
both at the SystemVerilog and the emitted C++ levels.
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-10-13 14:33:15 +02:00
Wilson Snyder
10fc1f757c
Internals: cppcheck cleanups. No functional change intended.
2022-10-02 23:04:55 -04:00
Geza Lore
ddb678cc5b
Merge branch 'master' into develop-v5
2022-09-22 17:33:36 +01:00
Geza Lore
63c694f65f
Streamline dump control options
...
- Rename `--dump-treei` option to `--dumpi-tree`, which itself is now a
special case of `--dumpi-<tag>` where tag can be a magic word, or a
filename
- Control dumping via static `dump*()` functions, analogous to `debug()`
- Make dumping independent of the value of `debug()` (so dumping always
works even without the debug flag)
- Add separate `--dumpi-graph` for dumping V3Graphs, which is again a
special case of `--dumpi-<tag>`
- Alias `--dump-<tag>` to `--dumpi-<tag> 3` as before
2022-09-22 17:24:41 +01:00
Geza Lore
95145038b4
Generate AstNode accessors via astgen
...
Introduce the @astgen directives parsed by astgen, currently used for
the generation child node (operand) accessors. Please see the updated
internal documentation for details.
2022-09-21 14:05:27 +01:00
Geza Lore
ce03293128
Generate AstNode accessors via astgen
...
Introduce the @astgen directives parsed by astgen, currently used for
the generation child node (operand) accessors. Please see the updated
internal documentation for details.
2022-09-21 13:56:03 +01:00
Geza Lore
af305bf280
Merge branch 'master' into develop-v5
2022-09-16 16:24:36 +01:00
Geza Lore
0c70a0dcbf
Remove redundant 'virtual' keywords from overridden methods
...
'virtual' is redundant when 'override' is present, so keep only
'override'.
Add t/t_dist_cppstyle.pl to check for this.
2022-09-16 15:19:38 +01:00
Wilson Snyder
2dc85a5acd
Internals: enum constructor cleanups. No functional change intended.
2022-09-15 19:58:10 -04:00
Geza Lore
27031ed688
Merge branch 'master' into develop-v5
2022-09-15 10:28:35 +01:00
Wilson Snyder
d85b909054
Internals: Use std:: for mem and str functions.
2022-09-14 21:10:19 -04:00
Wilson Snyder
81fe35ee2e
Fix typedef'ed class conversion to boolean ( #3616 ).
2022-09-12 18:03:56 -04:00
Wilson Snyder
752f425025
Tests: Process/Semaphore/Mailbox testing (all fail until supported)
2022-09-11 13:05:24 -04:00
Gustav Svensk
47262cd4ec
Fix arguments in non-static method call ( #3547 ) ( #3582 )
2022-09-11 12:33:31 -04:00
Wilson Snyder
819e8741cc
Merge branch 'master' into develop-v5
2022-08-30 00:20:21 -04:00
Arkadiusz Kozdra
0a3a15a66e
Support class parameters ( #2231 ) ( #3541 )
2022-08-28 10:24:55 -04:00
Krzysztof Bieganski
39af5d020e
Timing support ( #3363 )
...
Adds timing support to Verilator. It makes it possible to use delays,
event controls within processes (not just at the start), wait
statements, and forks.
Building a design with those constructs requires a compiler that
supports C++20 coroutines (GCC 10, Clang 5).
The basic idea is to have processes and tasks with delays/event controls
implemented as C++20 coroutines. This allows us to suspend and resume
them at any time.
There are five main runtime classes responsible for managing suspended
coroutines:
* `VlCoroutineHandle`, a wrapper over C++20's `std::coroutine_handle`
with move semantics and automatic cleanup.
* `VlDelayScheduler`, for coroutines suspended by delays. It resumes
them at a proper simulation time.
* `VlTriggerScheduler`, for coroutines suspended by event controls. It
resumes them if its corresponding trigger was set.
* `VlForkSync`, used for syncing `fork..join` and `fork..join_any`
blocks.
* `VlCoroutine`, the return type of all verilated coroutines. It allows
for suspending a stack of coroutines (normally, C++ coroutines are
stackless).
There is a new visitor in `V3Timing.cpp` which:
* scales delays according to the timescale,
* simplifies intra-assignment timing controls and net delays into
regular timing controls and assignments,
* simplifies wait statements into loops with event controls,
* marks processes and tasks with timing controls in them as
suspendable,
* creates delay, trigger scheduler, and fork sync variables,
* transforms timing controls and fork joins into C++ awaits
There are new functions in `V3SchedTiming.cpp` (used by `V3Sched.cpp`)
that integrate static scheduling with timing. This involves providing
external domains for variables, so that the necessary combinational
logic gets triggered after coroutine resumption, as well as statements
that need to be injected into the design eval function to perform this
resumption at the correct time.
There is also a function that transforms forked processes into separate
functions.
See the comments in `verilated_timing.h`, `verilated_timing.cpp`,
`V3Timing.cpp`, and `V3SchedTiming.cpp`, as well as the internals
documentation for more details.
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-08-22 13:26:32 +01:00
Krzysztof Bieganski
10cf492946
Add support for expressions in event controls ( #3550 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-08-19 20:18:38 +02:00
Geza Lore
1404319b28
Merge branch 'master' into develop-v5
2022-08-19 13:39:44 +01:00
Wilson Snyder
f435d96241
Fix case statement comparing string literal ( #3544 ).
2022-08-15 21:56:09 -04:00
github action
d32e3f042f
Apply 'make format'
2022-08-12 10:56:12 +00:00
Mostafa Gamal
df5f95a5bd
Fix nested default assignment for struct pattern ( #3511 ) ( #3524 )
2022-08-12 06:55:07 -04:00
Drew Ranck
b0c475205b
Fix void-cast queue pop_front or pop_back ( #3542 ) ( #3364 )
...
Fix compile error for queue method usage, if it is the
first statement in a block of code, and the return
value is not used. Example:
> if (foo)
> void'(bar.pop_front());
2022-08-12 06:51:25 -04:00
Geza Lore
c266739e9f
Merge branch 'master' into develop-v5
2022-08-05 12:17:57 +01:00
Geza Lore
96a4b3e5a5
Update clang-format config and apply
...
- Regroup and sort #include directives (like we used to, but automatic)
- Set AlwaysBreakTemplateDeclarations to true
2022-08-05 12:00:24 +01:00
Wilson Snyder
4859f5e1fa
Merge branch 'master' into develop-v5
2022-07-30 10:26:16 -04:00
Wilson Snyder
b9d7819faa
Internals: Fix some cppcheck issues. Some dump functions fixed.
2022-07-30 10:01:39 -04:00
Geza Lore
ad2fbfe62d
Merge branch 'master' into develop-v5
2022-07-29 12:04:24 +01:00
github action
e871cd8a44
Apply 'make format'
2022-07-25 21:47:29 +00:00
Mostafa Gamal
7b431b37c7
Fix struct pattern assignment ( #2328 ) ( #3517 ).
2022-07-25 17:46:22 -04:00
Geza Lore
89924bda51
Always type '$clog2' as signed 32
2022-07-25 12:48:13 +01:00
Geza Lore
f9ecbdc70b
Merge branch 'master' into develop-v5
2022-07-21 09:56:14 +01:00
Arkadiusz Kozdra
542e324869
Wildcard index type support for associative arrays ( #3501 ).
...
Associative arrays that specify a wildcard index type may be indexed by
integral expressions of any size, with leading zeros removed
automatically. A natural representation for such expressions is a
string, especially that the standard explicitly specifies automatic
casts from string indices to bit vectors of equivalent size.
The automatic cast part is done implicitly by the existing type system.
A simpler way to just make this work would be to convert wildcard index
type to a string type directly in the parser code, but several new AST
classes are needed to make sure illegal method calls are detected.
The verilated data structure implementation is reused, because there is
no need for differentiating the behavior on C++ side.
2022-07-20 15:01:36 +02:00
Geza Lore
c9ac9a75a6
Merge branch 'master' into develop-v5
2022-07-12 17:29:45 +01:00
Arkadiusz Kozdra
8377514127
Add support for $test$plusargs(expr) ( #3489 )
2022-07-11 06:21:35 -04:00
Wilson Snyder
0f324c8309
Merge branch 'master' into develop-v5
2022-06-04 11:59:49 -04:00
Wilson Snyder
59dc2853e3
Support concat assignment to packed array ( #3446 ).
2022-06-03 21:32:13 -04:00
Krzysztof Bieganski
d7a75dc026
Merge branch 'master' into develop-v5
2022-05-25 11:06:38 +02:00
Krzysztof Bieganski
9edccfdffa
Initial support for intra-assignment timing controls, net delays ( #3427 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-05-17 19:19:44 +01:00
Krzysztof Bieganski
ecaa07a72a
Rename AstTimingControl to AstEventControl ( #3425 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-05-16 20:44:41 +01:00
Geza Lore
599d23697d
IEEE compliant scheduler ( #3384 )
...
This is a major re-design of the way code is scheduled in Verilator,
with the goal of properly supporting the Active and NBA regions of the
SystemVerilog scheduling model, as defined in IEEE 1800-2017 chapter 4.
With this change, all internally generated clocks should simulate
correctly, and there should be no more need for the `clock_enable` and
`clocker` attributes for correctness in the absence of Verilator
generated library models (`--lib-create`).
Details of the new scheduling model and algorithm are provided in
docs/internals.rst.
Implements #3278
2022-05-15 16:03:32 +01:00
Wilson Snyder
3c4131d45d
Fix 'with' operator with type casting ( #3387 ).
2022-05-15 09:53:48 -04:00
Kamil Rakoczy
5de1c619c8
Fix foreach segmentation fault ( #3400 ).
2022-04-28 06:11:31 -04:00
Geza Lore
9abab2c366
Add separate AstInitialStatic node for static initializers
...
Static variable initializers run before initial blocks, so use an
explicitly different procedure type for them. This also enables us to
now raise errors for assignments to const variables in initial blocks.
2022-04-23 15:12:49 +01:00
Geza Lore
b22e368b25
Add default parameters to some Ast nodes for convenience
...
Also update usage to utilize. No functional change.
2022-04-23 14:47:16 +01:00
Wilson Snyder
e02f97854c
Deprecate 'vluint64_t' and similar types ( #3255 ).
2022-03-27 15:27:40 -04:00
Todd Strader
29c4b0a141
Fix cast to array types ( #3333 )
2022-03-03 07:48:04 -05:00
Wilson Snyder
77e68acf54
Suppress WIDTH warning on negate using carry bit ( #2395 ). [Peter Monsson]
2022-02-13 15:27:31 -05:00
Wilson Snyder
0e91d8a10e
Internal: Rename for clarity. No functional change.
2022-01-19 19:14:09 -05:00
Geza Lore
539c9d4c63
Merge alternate 'force'/'release' implementation
...
- Add more tests, including for tracing.
- Apply some cleaner, more generic abstractions in the implementation.
- Use clearer AstRelease which is not an assignment.
2022-01-16 15:31:37 +00:00
Wilson Snyder
b989ac6db5
Internals: Support linking recursive function calls (but not later stages)
2022-01-03 18:50:41 -05:00
Wilson Snyder
4d1f4bbf49
Backout last commit; is unstable.
2022-01-03 13:04:47 -05:00
Wilson Snyder
e9ad665d32
Internals: Support linking recursive function calls (but not later stages)
2022-01-03 12:25:50 -05:00
Wilson Snyder
e6857df5c6
Internals: Rename Ast on non-node classes ( #3262 ). No functional change.
...
This commit has the following replacements applied:
s/\bAstUserInUseBase\b/VNUserInUseBase/g;
s/\bAstAttrType\b/VAttrType/g;
s/\bAstBasicDTypeKwd\b/VBasicDTypeKwd/g;
s/\bAstDisplayType\b/VDisplayType/g;
s/\bAstNDeleter\b/VNDeleter/g;
s/\bAstNRelinker\b/VNRelinker/g;
s/\bAstNVisitor\b/VNVisitor/g;
s/\bAstPragmaType\b/VPragmaType/g;
s/\bAstType\b/VNType/g;
s/\bAstUser1InUse\b/VNUser1InUse/g;
s/\bAstUser2InUse\b/VNUser2InUse/g;
s/\bAstUser3InUse\b/VNUser3InUse/g;
s/\bAstUser4InUse\b/VNUser4InUse/g;
s/\bAstUser5InUse\b/VNUser5InUse/g;
s/\bAstVarType\b/VVarType/g;
2022-01-02 14:03:20 -05:00
Wilson Snyder
b7ad1e6d61
Internals: Rename some non-nodes to avoid Ast prefix. No functional change.
2022-01-02 10:37:20 -05:00
Wilson Snyder
bf972963f4
Misc internal and test work towards enum type checks ( #726 ).
2022-01-01 22:16:58 -05:00
Wilson Snyder
655910d486
Fix associative array first method as statement ( #3228 ).
2022-01-01 17:10:26 -05:00
Wilson Snyder
65de118e51
Internals: Factor common V3Width function.
2022-01-01 16:15:53 -05:00
Wilson Snyder
ca42be982c
Copyright year update.
2022-01-01 08:26:40 -05:00
Wilson Snyder
6b0601fd54
Support lower dimension looping in foreach loops ( #3172 ).
2021-12-11 20:39:58 -05:00
Wilson Snyder
740fee660e
Fix associative array foreach loop ( #3229 ).
2021-12-11 18:38:23 -05:00
Wilson Snyder
984ee624ed
Fix break under foreach loop ( #3230 ).
...
Internals: Move Foreach handling into V3Width.
2021-12-11 15:06:33 -05:00
Wilson Snyder
59d170c6f8
Support up to 64 bit enums for .next/.prev/.name ( #3244 ).
2021-12-11 11:29:01 -05:00
Wilson Snyder
748fa4cb80
Fix coredump after huge enum warning.
2021-12-10 23:08:03 -05:00
Wilson Snyder
ffdc0afe5f
Disable unintended debug message
2021-11-28 14:10:50 -05:00
Wilson Snyder
c6dae40cf6
Support task name in $display %m ( #3211 ).
2021-11-26 20:38:48 -05:00
Wilson Snyder
cd737065f2
Internals: More const. No functional change intended.
2021-11-26 17:55:36 -05:00
Wilson Snyder
2742a8c813
Internals: No need for variable name on immediate visitors. No functional change intended.
2021-11-26 10:52:45 -05:00
Wilson Snyder
62387a0e32
Fix display of empty string constant ( #3207 ) ( #3215 ).
2021-11-25 08:03:27 -05:00
Wilson Snyder
31079ca8b5
Fix $size on dynamic strings ( #3216 ).
2021-11-25 07:50:47 -05:00
Wilson Snyder
2ccf49031b
Fix $display of signed/unsigned without format ( #3207 ).
2021-11-17 18:50:52 -05:00
Wilson Snyder
37e3c6da70
Internals: Add more const. No functional change intended.
2021-11-13 13:50:44 -05:00
Geza Lore
70603bb752
Add static assertions for unnecessary VN_IS/VN_AS/VN_CAST
...
Fail at compile time if the result of these macros can be statically
determined (i.e.: they aways succeed or always fail). Remove unnecessary
casts discovered. No functional change.
2021-10-22 19:39:24 +01:00
Geza Lore
dae9fa5053
Use VN_AS wherever possible and obvious. No functional change.
2021-10-22 14:06:00 +01:00
Wilson Snyder
b64e89f7ed
Fix calling new with arguments in same class ( #3166 ).
2021-10-12 21:22:59 -04:00
Wilson Snyder
02aa639425
Internals: Add some const etc. No functional change.
2021-10-05 19:42:31 -04:00
Wilson Snyder
f37c875be8
Internal: Remove fixme
2021-09-04 08:07:48 -04:00
Krzysztof Bieganski
cd9e9da4b5
Support assignment patterns as children of pins ( #3041 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2021-08-30 10:44:03 -04:00
Wilson Snyder
43aa3229fb
Support empty queue assignment to delete queue
2021-08-28 17:23:35 -04:00
Wilson Snyder
8ecdc85cf7
Internals: C++11 style cleanups. No functional change.
2021-07-11 18:42:01 -04:00
Wilson Snyder
512fe0a2d1
Internals: Add const. No functional change.
2021-06-20 18:33:13 -04:00
Wilson Snyder
b976b8dac9
Fix slowdown in elaboration ( #2911 ).
2021-06-06 22:09:30 -04:00
Yutetsu TAKATSUKASA
31779b8b8b
Format time string using integer ( #2940 )
...
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
2021-05-16 19:01:03 +09:00
Geza Lore
76494891cf
Speed up V3Width by pulling skip condition before node iteration.
2021-05-02 16:58:30 +01:00
Todd Strader
53a6830f71
Fix cast from packed, typedef'ed interface signal ( #2884 )
2021-04-16 15:25:47 -04:00
Wilson Snyder
2ca21c01d2
Internal coverage improvements
2021-03-28 20:03:08 -04:00
Wilson Snyder
ca01d6f18d
Internals: Add some std::'s. No functional change intended.
2021-03-26 21:23:18 -04:00
Wilson Snyder
7ea014dab5
Fix false WIDTHCONCAT on casted constant ( #2849 ).
2021-03-23 19:49:57 -04:00
Wilson Snyder
a159c41219
Fix USERINFO etc to show message with no arguments
2021-03-18 18:46:07 -04:00
Wilson Snyder
689d5b5090
Internals: Add std:: to make_pair. No functional change.
2021-03-12 18:17:49 -05:00
Wilson Snyder
3a55600913
Internals: Restyle with C++11 using replacing typedef
2021-03-12 18:10:45 -05:00
Wilson Snyder
404b323f8c
Internals: Remove some unnecessary typedefs. No functional change.
2021-03-12 17:26:53 -05:00
Wilson Snyder
be31fdcfe4
Use Google-style-guide header guard naming, to avoid __ prefix.
2021-03-03 21:57:07 -05:00
Wilson Snyder
9650aefa42
Internals: Cleanup unneeded {}. No functional change
2021-02-21 21:25:21 -05:00
Wilson Snyder
975c1b39a9
Fix little endian packed array pattern assignment ( #2795 ).
2021-02-20 20:29:28 -05:00
Pierre-Henri Horrein
3c849d7ce0
Generate SELRANGE instead of errors for potentially unreachable code ( #2625 ) ( #2754 )
...
When using a "if" statement inside an always block, part of the code may
be unreachable. This can be used to avoid errors, but it generated an
error, this commit demotes this to a warning. Partly fixes #2625 .
2021-01-15 07:31:48 -05:00
Wilson Snyder
bd602d0e2d
Copyright year update
2021-01-01 10:29:54 -05:00
Wilson Snyder
c39a8b439a
Internals: Use emplace instead of insert(make_pair(...)). No functional change intended.
2020-12-18 18:24:47 -05:00
Yutetsu TAKATSUKASA
7821da6ad5
Fix DPI-C and protect-lib if port is implicit logic ( #2699 )
2020-12-15 09:51:14 -05:00
Wilson Snyder
82fc142c1c
Add error on real to non-real output pins ( #2690 ).
2020-12-13 13:33:48 -05:00
Wilson Snyder
5898c22b3b
Internals: Cleanup variables for pin interconnection
2020-12-13 13:22:42 -05:00
Wilson Snyder
e2e3cc8463
Better error on inside on unpacked, queues, etc ( #2566 )
2020-12-12 21:20:42 -05:00
Wilson Snyder
517fdb7587
Support queue of arrays
2020-12-12 19:19:32 -05:00
Wilson Snyder
a5fa468343
Fix cast from packed structs, broke with $cast ( #2684 )
2020-12-10 18:36:06 -05:00
Wilson Snyder
af0e535015
Internals: Remove Xnor node type.
...
Convert to Not(Xor(x)) up front, to help code coverage and optimize out extra nots sooner.
2020-12-10 00:04:10 -05:00
Wilson Snyder
7d05be802d
Misc internal coverage hole and related bug fixes
2020-12-09 19:18:12 -05:00
Wilson Snyder
8e06b1e925
Misc internal coverage cleanups
2020-12-07 23:15:29 -05:00
Krzysztof Bieganski
cf7ea06b5d
Support randomize() class method and rand
2020-12-07 17:55:22 -05:00
Wilson Snyder
cd248f6bd7
Internals: Make consistent left/right/lo/hi accessors to ranges.
...
Change order of Range to store always left:right.
XML output changes to now show left:right (previously info was lost), no other change intended.
2020-12-06 21:13:56 -05:00
Wilson Snyder
b32d530000
Error message cleanup
2020-12-06 20:33:08 -05:00
Wilson Snyder
74ef35d3b3
Support $cast and new CASTCONST warning.
2020-12-05 22:58:36 -05:00
Wilson Snyder
8b8ebb0e43
Internals: Use restorer. No functional change.
2020-12-05 22:21:30 -05:00
Wilson Snyder
9c2785b49b
Internals: Swap lhs/rhs $cast args.
2020-12-05 17:11:00 -05:00
Wilson Snyder
1e69167191
Internals: Move function in V3Width. No functional change.
2020-12-02 18:51:29 -05:00
Wilson Snyder
a54ac52a35
Internals: Use 'Bit' where mean 2-state type. No functional change.
2020-11-29 08:23:36 -05:00
Wilson Snyder
9a9931fb9d
Support complex function arguments.
2020-11-28 13:46:14 -05:00
Wilson Snyder
30686d8550
Support passing of objects to functions
2020-11-28 12:43:24 -05:00
Wilson Snyder
05f3fd7c6e
Fix class new with math.
2020-11-28 12:26:44 -05:00
Wilson Snyder
1a92a44c7d
Internals: Assert on misexpected 'new'.
2020-11-26 09:38:47 -05:00
Wilson Snyder
114ab1378f
Internals: Track class package on membersels
2020-11-24 23:36:09 -05:00
Wilson Snyder
e1c45440fc
Internals: Rename packagep(). No functional change.
2020-11-24 21:56:03 -05:00
Wilson Snyder
b0cb43b2f2
Fix not iterating some extended classes depending on declaration order.
2020-11-24 21:41:32 -05:00
Wilson Snyder
e85a2e860e
Support 'with item.index'.
2020-11-23 23:18:58 -05:00
Wilson Snyder
b684995292
Support $random and $urandom seeds.
2020-11-19 21:32:33 -05:00
Yutetsu TAKATSUKASA
0102efd4ea
Support unpacked array in DPI-C ( #2648 )
...
* Add tests for unpacked array in DPI-C
* Add more generic parameter generator to AstNodes
* Supports multi dimensional array in DPI ( DPI argmuments <=> Verilator internal type conversion)
consider typedef in V3Task
fix export test
fix inout for scalar
support export func of time
* V3Premit does not show an error for wide words nor ArraySel
* Unnecessary pack func for unapcked array does not appear anymore
* Support unpacked array in runtime header
- Add an overload for lvalue VL_CVT_PACK_STR_NN
- Allow conversion from void *
* touch up tests for codacy advices
* resolve free functions. no functional change intended.
2020-11-19 22:02:58 +09:00
Wilson Snyder
b6ded59c2b
Internals: Use and enforce class final for ~5% performance boost.
2020-11-18 21:32:16 -05:00
Wilson Snyder
c0888c1b0f
Internals: Use newline instead of endl to avoid unneeded flush.
2020-11-18 21:03:23 -05:00
Wilson Snyder
e6f7510895
Add check for rand_mode/constraint_mode.
2020-11-17 22:14:18 -05:00