Wilson Snyder
eae1e5bdf2
Internals/Tests: Cleanup some missing dev coverage items
2025-10-11 20:58:03 -04:00
Bartłomiej Chmiel
31e73f1645
Support simple cycle delay sequence expressions inside assertion properties ( #6508 )
...
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
2025-10-10 16:16:15 +02:00
Igor Zaworski
2ac7cf51a9
Optimization of typedef params ( #6543 ) ( #6547 )
2025-10-10 10:05:47 -04:00
Igor Zaworski
1a91ab02cf
Fix passing typedef value as parameter ( #6543 )
2025-10-09 10:08:06 -04:00
Geza Lore
838b8a2bec
Internals: Remove dead code, fix or sign off coverage
...
Remove/fix/signoff uncontroversial code coverage holes. Also added a
couple TODOs that should be investigated at some point
2025-10-08 08:24:06 +01:00
Wilson Snyder
165622a9e9
Add NORETURN warning on functions without return values ( #6534 ).
2025-10-07 21:06:11 -04:00
Wilson Snyder
f979e459e8
Add error on ranges with tristate values ( #6534 ).
2025-10-07 20:36:50 -04:00
Wilson Snyder
5229ce8660
Fix error on circular structure typedef
2025-10-06 18:45:56 -04:00
Ryszard Rozak
09518ee207
Support aliases with more operands ( #6501 )
2025-09-29 13:23:51 -04:00
Geza Lore
603f4c615a
Improve Loop unrolling ( #6480 ) ( #6493 )
...
This patch implements #6480 . All loop statements are represented using
AstLoop and AstLoopTest.
This necessitates rework of the loop unroller to handle loops of
arbitrary form. To enable this, I have split the old unroller used for
'generate for' statements and moved it into V3Param, and subsequently
rewrote V3Unroll to handle the new representation. V3Unroll can now
unroll more complex loops, including with loop conditions containing
multiple variable references or inlined functions.
Handling the more generic code also requires some restrictions. If a
loop contains any of the following, it cannot be unrolled:
- A timing control that might suspend the loop
- A non-inlined call to a non-pure function
These constructs can change the values of variables in the loop, so are
generally not safe to unroll if they are present. (We could still unroll
if all the variables needed for unrolling are automatic, however we
don't do that right now.)
These restrictions seem ok in the benchmark suite, where the new
unroller can generally unroll many more loops than before.
2025-09-29 15:25:25 +01:00
Wilson Snyder
3b623dc12e
Internals: Refactor to create VCMethod ( #3715 ). No functional change intended.
2025-09-27 08:22:17 -04:00
Wilson Snyder
b3350a4f3b
Add error on `virtual new` ( #6486 ).
2025-09-26 21:23:40 -04:00
Ryszard Rozak
500312c050
Support for simple alias statements ( #6339 )
2025-09-26 15:19:48 +02:00
Wilson Snyder
c9e021924f
Support class package reference on pattern keys ( #5653 ).
2025-09-25 06:52:42 -04:00
Geza Lore
63f5f5c328
Internals: Remove redundant AstNode methods ( #6481 )
...
AstNode::isFirstInMyListOfStatements
AstNode::isStandaloneBodyStmt
2025-09-24 09:53:39 +02:00
Geza Lore
800af37975
Internals: Refactor generate construct Ast handling ( #6280 ) ( #6470 )
...
Internals: Refactor generate construct Ast handling (#6280 )
We introduce AstNodeGen, the common base class of AstGenBlock,
AstGenCase, AstGenFor, and AstGenIf, which together represent all SV
generate constructs. Subsequently remove AstNodeFor, AstNodeCase
(AstCase is now directly derived from AstNodeStmt) and adjust internals
to work on the new representation.
Output is identical modulo hashes do to changed AstNode type ids, no
functional change intended.
Step towards #6280 .
2025-09-23 19:49:01 +01:00
Wilson Snyder
a647747260
Add IMPLICITSTATIC also on procedure variables.
2025-09-21 19:52:19 -04:00
Wilson Snyder
53b8a5b027
Add error on zero/negative unpacked dimensions ( #1642 ).
2025-09-21 09:41:58 -04:00
Wilson Snyder
af54a26b43
Fix parsing of `with (...) {...}` but still unsupported
2025-09-20 19:59:31 -04:00
Wilson Snyder
b237eec801
Add error on string addition
2025-09-20 13:47:17 -04:00
Geza Lore
e0e8503151
Internals: Make all AstBegin constructor arguments explicit ( #6464 )
2025-09-20 13:16:03 -04:00
Artur Bieniek
c1ac2a79db
Resolve data types of method calls without parenthesis ( #6457 )
...
Signed-off-by: Artur Bieniek <abieniek@internships.antmicro.com>
2025-09-19 07:43:22 -04:00
Wilson Snyder
46e56ca6fc
Fix elaboration displays with some `%p` ( #6451 ).
2025-09-18 08:35:07 -04:00
Wilson Snyder
c15489b711
Fix associative array default type resolution
2025-09-17 23:39:47 -04:00
Wilson Snyder
7f871467bf
Internals: Cleanup assertion
2025-09-17 23:38:00 -04:00
Wilson Snyder
542ffcca60
Prevent internal error on pattern mismatch
2025-09-17 21:01:11 -04:00
Wilson Snyder
b10c6293d9
Fix elaboration displays with `%m` ( #6445 ).
2025-09-16 20:50:15 -04:00
github action
841254e9e8
Apply 'make format'
2025-09-16 23:02:39 +00:00
Wilson Snyder
d7f4dbfd13
Fix class.randomize without parens.
2025-09-16 18:56:04 -04:00
Geza Lore
ef458be855
Fix memory leaks in assignment pattern processing ( #6437 ).
2025-09-16 12:31:16 -04:00
Wilson Snyder
5e4668c146
Support get/set_randstate as class method.
2025-09-14 10:33:50 -04:00
Geza Lore
56927fb955
Fix memory leaks - batch 3 ( #6419 )
2025-09-11 12:01:36 +01:00
Wilson Snyder
220a3faf7c
Fix parameter implicit type from string ( #6414 ).
2025-09-09 19:49:11 -04:00
Wilson Snyder
a9f95f2f08
Fix false CONSTVAR error on initializers ( #4992 ).
2025-09-09 19:27:43 -04:00
Geza Lore
dd11d5a598
Fix memory leaks - batch 1 ( #6411 )
2025-09-09 22:39:44 +01:00
Krzysztof Bieganski
0743d84bcc
Fix timing control under fork under function ( #6407 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2025-09-09 14:12:24 +02:00
Artur Bieniek
905c0c4f6d
Optimize dead functions without references ( #6380 )
2025-09-05 13:23:43 -04:00
Geza Lore
5161cea8cd
Internals: Improve astgen type enums to be switch statement friendly ( #6362 )
...
- Remove _ENUM_END, so -Wswitch does not demand it's covered. Use the
new NUM_TYPES constexpr member instead.
- Remove 'at' prefix. This seems historical and is not particularly useful.
- Fix some cppcheck warts while at it
2025-09-03 13:56:11 +01:00
Wilson Snyder
91ae4c35b7
Add error on force/release non-constant selects.
2025-08-29 21:19:37 -04:00
Wilson Snyder
409e036eca
Add error on gate primitive connection width mismatch
2025-08-27 22:28:09 -04:00
Wilson Snyder
ac2859bf24
Internals: Upgrade to clang-format-18 ( #6333 )
2025-08-25 20:47:48 -04:00
Wilson Snyder
ac2a75fbb5
Support future sampled value functions.
2025-08-23 21:16:53 -04:00
Wilson Snyder
b96f35b8fe
Internals: Add AstToStringN ( #4732 prep)
2025-08-21 21:09:10 -04:00
Igor Zaworski
631714c50a
Fix expression type comparison ( #6316 )
2025-08-21 06:26:30 -04:00
Geza Lore
327d55d13d
Internals: Fix remaining cppcheck errors ( #6319 )
...
Fixed the non const-related issue and added suppressions for the const
ones. With that `make cppcheck` should be clean.
2025-08-21 09:43:37 +01:00
Wilson Snyder
dc5a17fea0
Support unpacked array `with` methods ( #6134 ).
2025-08-20 21:01:34 -04:00
Geza Lore
0bf9fc270f
Iternals: Remove AstAssignPre/AstAssignPost ( #6307 )
...
Replace with AstAlwaysPre/AstAlwaysPost with AstAssign under them.
Step towards #6280
2025-08-19 09:27:59 +01:00
Wilson Snyder
c90f9e53b7
Add ALWNEVER warning, for `always @*` that never execute ( #6291 ) ( #6303 )
2025-08-18 12:00:53 -04:00
Wilson Snyder
7126293086
Support enum.next with a parameter
2025-08-16 21:06:35 -04:00
Geza Lore
6f69c990fd
Internals: Remove AstCondBound and AstNodeCond ( #6293 ) ( #6294 )
...
Fixes #6293
2025-08-15 15:49:06 -07:00
Wilson Snyder
60cbbf0ec1
Add error on mismatching prototypes ( #6207 ).
2025-08-11 19:50:47 -04:00
Wilson Snyder
6a225d5d00
Internals: Remove AstSysFuncAsTask
2025-08-08 05:09:54 -04:00
Wilson Snyder
870c398094
Fix incorrect Non-ANSI I/O declaration conflict error ( #6258 ) broke with #bd1ac038
2025-08-05 16:33:28 -04:00
Wilson Snyder
52ac3b3a0d
Add error on too many pattern members for structure
2025-08-03 17:26:51 -04:00
Wilson Snyder
dca504c706
Internals: Use UINFOTREE istead of dumpTree
2025-08-02 13:44:40 -04:00
Igor Zaworski
2b62f5a625
Add error when trying to assign class object to variable of non-class types ( #6237 )
2025-07-30 09:48:02 +02:00
Wilson Snyder
0da9f6eb03
Fix queue typedef with unbounded slice ( #6236 ).
2025-07-28 19:36:52 -04:00
Wilson Snyder
64a82508f2
Fix error on `with` to give UNSUPPORTED ( #6134 )
2025-07-27 16:12:16 -04:00
Paul Swirhun
bd2cb989d1
Support bit queue streaming ( #5830 ) ( #6103 ).
2025-07-27 15:29:56 -04:00
Wilson Snyder
470f99694e
Revert d8dbb08a: Support bit queue streaming ( #5830 ) ( #6103 )
2025-07-26 17:59:52 -04:00
Paul Swirhun
d8dbb08a95
Support bit queue streaming ( #5830 ) ( #6103 )
2025-07-26 16:53:51 -04:00
Yilou Wang
10ac99ac05
Support randomization of scope variables with 'std::randomize()' ( #5438 ) ( #6185 )
2025-07-25 12:13:46 +02:00
Wilson Snyder
b408e097f6
Fix unsigned replicate ( #6229 )
2025-07-24 22:55:26 -04:00
Wilson Snyder
460bfbf181
Fix replicate of negative giving 'REPLICATE has no expected width' internal error ( #6048 ).
2025-07-23 18:07:50 -04:00
Wilson Snyder
050e5ddb5b
Fix internal error after bad method
2025-07-23 17:17:35 -04:00
Geza Lore
763183f067
Internals: Remove AstWhile::precondsp() ( #6219 ). No functional change intended.
2025-07-23 08:50:39 -04:00
Bartłomiej Chmiel
d419c49921
Internals: Fix unused variable, no functional change ( #6204 )
...
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
2025-07-21 07:28:01 -04:00
Wilson Snyder
078bb21a89
Add wire data type checking per IEEE.
2025-07-20 07:21:30 -04:00
Wilson Snyder
b8b9478938
Improve enum base type checking error message.
2025-07-19 22:37:07 -04:00
Wilson Snyder
c1506deef9
Add enum base type checking per IEEE.
2025-07-17 20:20:43 -04:00
Wilson Snyder
7f1011e5f7
Make some CVTREAL fatal where IEEE requires it.
2025-07-16 18:07:07 -04:00
Wilson Snyder
371ac07c6f
Fix CVTREAL not being able to be disabled in e.g. primitive terminals.
2025-07-14 20:08:44 -04:00
Wilson Snyder
2f199f20cf
Add ENUMITEMWIDTH error, and apply to X-extended and ranged values.
2025-07-12 14:14:17 -04:00
Artur Bieniek
4dc6a31276
Fix omitting error when assigning to an input ( #6169 )
2025-07-10 20:37:55 -04:00
Wilson Snyder
77908447e6
Support scoped `new` ( #4199 ).
2025-07-02 19:54:57 -04:00
Wilson Snyder
73ca2ab997
Support `$past_gclk`
2025-07-01 18:00:04 -04:00
Wilson Snyder
e015805194
Fix stripping on randomize ( #6144 partial)
2025-07-01 08:57:08 -04:00
Wilson Snyder
2df0390c04
Commentary
2025-06-25 21:14:25 -04:00
Wilson Snyder
6af694b04b
Support `$timeformat` with missing arguments ( #6113 ).
2025-06-24 17:30:05 -04:00
Geza Lore
916d473eff
Internals: Replace unnecessary AstSel::widthp() child node with const in node ( #6117 )
2025-06-24 11:59:09 -04:00
Todd Strader
206a0b4fd2
Fix casting reals to large integrals ( #6085 )
2025-06-12 11:53:10 -04:00
Todd Strader
a044697990
Fix signed cast ( #6912 ) ( #6068 )
2025-06-06 21:13:31 -04:00
Wilson Snyder
79de1ff507
Fix WIDTHCONCAT on packed pattern assignment ( #6045 ).
2025-05-31 07:38:15 -04:00
Wilson Snyder
8031ca2616
Add `MODMISSING` error, in place of unnamed error ( #6054 ).
2025-05-29 21:02:00 -04:00
Petr Nohavica
22d484d54d
Fix associative arrays with enum keys ( #6034 ) ( #6035 )
2025-05-24 17:59:23 -04:00
Wilson Snyder
46c7b69c64
Internals: UINFO now includes newline itself. No functional change.
2025-05-22 20:29:32 -04:00
Todd Strader
d400584460
Fix concatenation and type casting ( #6012 ) ( #6013 )
2025-05-21 08:41:29 -04:00
Shou-Li Hsu
25cb31c38b
Add aggregate type error checks ( #5570 ) ( #5950 )
2025-05-20 09:10:22 -04:00
Wilson Snyder
27eb8cfe8a
Fix extraneous WIDTH warning on assoc.exists()
2025-05-18 11:25:25 -04:00
Wilson Snyder
3b632739a8
Internals: Add RequireDType and check for recursive data types, in prep for future parser.
2025-05-17 20:40:03 -04:00
Wilson Snyder
4c4fdb5dfe
Internals: Refactor some JSON and error code
2025-05-13 22:26:15 -04:00
Wilson Snyder
680236b03e
Internals: Redo post-error additional information to be part of error calls.
2025-05-10 16:20:12 -04:00
Wilson Snyder
fe562d4715
Internals: Move Stream dtype conversion to V3Width, towards future parser
2025-05-05 19:54:52 -04:00
Wilson Snyder
a3662cc3f5
Internals: Refactor to create replaceWithKeepDType. No functional change.
2025-05-05 06:31:06 -04:00
Geza Lore
223bb9ba9a
Fix streaming to/from packed arrays ( #5976 )
...
bug from 6bb57e4630
Fixes RTLMeter OpenTitan. Fixes #5955 .
2025-05-04 19:28:51 +01:00
Wilson Snyder
4e667fabb7
Internals: Add V3Number width-and-opAssign. No functional change.
2025-04-30 08:08:44 -04:00
Wilson Snyder
8da539ed8a
Fix sign extension of signed compared with unsigned case items ( #5968 ).
2025-04-28 22:22:50 -04:00
Wilson Snyder
3658e5f0f1
Internals: Rename widthToFit, no functional change.
2025-04-28 21:54:58 -04:00
Wilson Snyder
5083972536
Internals: Defer AstCast into V3LinkDot, in preparation for future parser
2025-04-28 19:34:40 -04:00
github action
e3e8f18a4e
Apply 'make format'
2025-04-15 01:41:13 +00:00