Ryszard Rozak
063f9a7a4c
Fix dicts declared with ref type ( #3960 )
2023-02-16 12:49:45 -05:00
Wilson Snyder
c82a098f2e
Internals: Parse class extends ::
2023-02-14 21:23:55 -05:00
Wilson Snyder
43d8de4f80
Support property var decls.
2023-02-14 20:44:14 -05:00
Wilson Snyder
026bbc306b
Removed deprecated --cdc option.
2023-02-13 22:49:51 -05:00
Wilson Snyder
f8b0e359b9
Support class parameters without initial values.
2023-02-13 22:06:52 -05:00
Wilson Snyder
94ef1b76d0
Fix error text on packed struct init.
2023-02-13 20:58:49 -05:00
Wilson Snyder
50929e5d43
Fix packed array structure replication.
2023-02-13 07:49:08 -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
260d58e47e
Tests: Add struct tests
2023-02-12 13:30:52 -05:00
Wilson Snyder
d9c4d9316f
Parse checkers as UNSUPPORTED.
2023-02-11 14:31:28 -05:00
Wilson Snyder
e9441cff50
Parse external constraints as UNSUPPORTED.
2023-02-11 13:29:52 -05:00
Wilson Snyder
daa545774e
Parse randsequence as UNSUPPORTED.
2023-02-11 13:03:10 -05:00
Wilson Snyder
dee2e45e27
Tests: Add defparam not resolved test
2023-02-11 11:00:07 -05:00
Wilson Snyder
4d29487e75
Fix -Wpedantic on std::process.
2023-02-11 10:55:06 -05:00
Ryszard Rozak
d34aa10faf
Fix class field linking when a super classes is a param ( #3949 )
2023-02-10 07:44:14 -05:00
Kamil Rakoczy
93d50c4499
Internals: Add mutex to V3Error ( #3680 )
2023-02-09 22:15:37 -05:00
Todd Strader
4eb280601e
handle constant format field widths ( #3946 )
2023-02-09 10:09:00 -05:00
Wilson Snyder
b778784333
Add --annotate-points option, change multipoint on line reporting ( #3876 ).
2023-02-08 20:22:54 -05:00
Todd Strader
9121a81a74
Fix constant enum methods ( #3621 )
2023-02-08 18:50:27 -05:00
Todd Strader
d3cbb1e53f
Fix constant string function assignment ( #3945 )
2023-02-08 18:48:07 -05:00
Wilson Snyder
cf88700fc2
Fix virus detection false positive ( #3944 ).
2023-02-08 18:44:07 -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
Aleksander Kiryk
3436d1780f
Fix namespace fallback resolution ( #3863 ) ( #3942 )
2023-02-07 07:13:55 -05:00
Wilson Snyder
1607225063
Fix VPI upper interface scopes not found ( #3937 ).
2023-02-05 16:16:39 -05:00
Wilson Snyder
dfc98e77c0
Commentary
2023-02-05 14:12:27 -05:00
Wilson Snyder
936bb7b1ed
Add error on size with unsized number
2023-02-05 14:06:03 -05:00
Wilson Snyder
508f6f7e5a
Fix core dump with initial variable delays
2023-02-05 13:17:35 -05:00
Wilson Snyder
70eceae3d8
Fix core dump on bad dotted reference.
2023-02-05 12:45:14 -05:00
Wilson Snyder
eb5aad94f1
Support to packed array
2023-02-05 10:18:03 -05:00
Wilson Snyder
2d89c458f6
Fix force/release of real.
2023-02-04 20:37:36 -05:00
Wilson Snyder
6908e471e7
Revert: e3558d9e: Support vpiDefName ( #3906 ) ( #3931 )
2023-02-03 21:26:21 -05:00
Andrew Nolte
e3558d9e1b
Support vpiDefName ( #3906 ) ( #3931 )
2023-02-03 19:14:41 -05:00
Wilson Snyder
4aa3e72509
Fix cmake 3.12+ warnings on MSWIN.
2023-02-03 17:16:39 -05:00
Aleksander Kiryk
31130c4b4a
Fix std:: to be parsed first ( #3864 ) ( #3928 )
2023-02-03 09:04:16 -05:00
Joseph Nwabueze
c8be50d40b
Add /*verilator public[flat|flat_rd|flat_rw| ]*/ metacomments ( #3894 )
2023-02-03 08:47:55 -05:00
github action
82f450d838
Apply 'make format'
2023-02-03 00:11:37 +00:00
Wilson Snyder
f6d4f1ad02
Fix very long VPI signal names ( #3929 ).
2023-02-02 19:10:23 -05:00
Wilson Snyder
645e1387e0
Tests: Fix merge conflict failure
2023-02-02 19:10:20 -05:00
Andrew Nolte
d3c14cc1ac
Split WIDTH warning into WIDTHEXPAND and WIDTHTRUNC ( #3900 )
2023-02-02 18:25:25 -05:00
Ryszard Rozak
33468fa0e7
Fix class extend parameter dot case ( #3926 )
2023-02-02 17:59:47 -05:00
Ryszard Rozak
0e955d503e
Handle references of static members of type aliases of a parametrized class ( #3922 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
2023-02-02 08:36:11 +01:00
Andrew Nolte
18e317fb78
Fix inconsistent naming of generate scope arrays ( #3840 )
2023-02-01 17:30:02 -05:00
Wilson Snyder
ef9f443532
Fix single-element replication to dynarray/unpacked/queue ( #3548 ).
2023-01-31 22:43:41 -05:00
Wilson Snyder
6e3b957b30
Tests: Add iterate check ( #3919 )
2023-01-31 19:34:27 -05:00
Ryszard Rozak
7f3e178b68
Fix paramaterized class function linkage ( #3917 )
...
* Visit function arguments even if the function is unlinkable
* Don't use m_unlinedScopep in AstLambdaArgRef handling
2023-01-30 22:20:56 -05:00
Larry Doolittle
29f4821d78
Tests: Check Makefiles for stray tabs ( #3914 )
2023-01-30 07:31:39 -05:00
Larry Doolittle
d80e0523cc
Fix nonsensical permissions of some files in test_regress/t ( #3912 )
...
chmod a-x *.out *.v *.vlt
2023-01-29 20:32:19 -05:00
Wilson Snyder
6a7dfb7696
Fix pattern assignment to unpacked structs ( #3510 ).
2023-01-29 16:50:10 -05:00
Wilson Snyder
4208db7811
Support multiple-output buf/not gate primitives
2023-01-28 23:20:48 -05:00
Wilson Snyder
a19dddf05e
Fix real parameters of infinity and NaN.
2023-01-28 22:11:09 -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
8d2be855f5
Internals: Parsing and tests for class interfaces
2023-01-28 16:30:47 -05:00
Wilson Snyder
ba8700f99d
Support $changed_gclk, $fell_gclk, $rose_gclk, $stable_gclk
2023-01-28 14:05:26 -05:00
Wilson Snyder
f20997a2f0
Support global clocking and $global_clock.
2023-01-28 12:31:52 -05:00
Wilson Snyder
bea225e191
Fix duplicate name check on extern symbols
2023-01-28 11:55:44 -05:00
Wilson Snyder
93517b8378
Support unpacked unions.
2023-01-27 22:41:12 -05:00
Kamil Rakoczy
a39c7f7dac
Internals: Add V3ThreadPool class ( #3898 )
...
The thread pool is self tested, but not otherwise used by the code yet.
2023-01-27 10:43:50 -05:00
Ilya Barkov
d118a739dc
Fix cinlude check ( #3907 )
2023-01-26 06:35:59 -05:00
Wilson Snyder
c2a8810eb1
Tests: Check for new .pl file copyrights
2023-01-25 22:14:43 -05:00
Ryszard Rozak
91c44d7830
Support class extending its parameter ( #3904 )
2023-01-25 20:33:18 -05:00
Wilson Snyder
21aafe8f50
Tests: Fix file length issue (cousin of #3905 )
2023-01-25 19:42:28 -05:00
Ryszard Rozak
4a8cfe367d
Support function calls without parenthesis ( #3903 ) ( #3902 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
2023-01-24 15:36:30 +01:00
Ryszard Rozak
b56e7f6910
Support static function variables ( #3830 )
2023-01-23 08:35:10 -05:00
Wilson Snyder
8a85cedaf5
Tests: Update test, part of ( #3378 ) ( #3892 )
2023-01-23 07:23:42 -05:00
Varun Koyyalagunta
be26e8da1b
Support struct I/O in --lib-create ( #3378 ) ( #3892 )
2023-01-22 22:24:36 -05:00
Wilson Snyder
b2dd5de860
Tests: Fix some unusual check_finished cases.
2023-01-22 22:21:36 -05:00
Kamil Rakoczy
6ea725f479
Add --verilate-jobs option ( #3889 )
...
Currently this option isn't used, but in the future it will be used to specify parallelization of Verilation step.
2023-01-22 21:52:52 -05:00
Geza Lore
3069860fdf
Allow mismatched widths in operands of shifts in DFG
...
Fixes #3872 .
Testing this is a bit tricky, as the front-end fixes up the operand
widths in shifts to match, and we need V3Const to introduce a mismatched
one by reducing `4'd2 ** x` (with x being 2 2-bit wide signal) to `4'd1
<< x`, but t_dfg_peephole runs with V3Const disabled exactly because it
makes it hard to write tests. Rather than fixing this one case in
V3Const (which we should do systematically at some point), I fixed DFG
to accept these just in case V3Const generates more of them. The
assertions were there only because of paranoia (as I thought these were
not possible inputs), the code otherwise works.
2023-01-22 10:55:03 +00:00
Wilson Snyder
3a8288b0f6
Move test driver documentation into internals.rst
2023-01-21 16:17:26 -05:00
Wilson Snyder
30fd49e21f
Tests: Suppress test leak
2023-01-21 14:46:21 -05:00
Wilson Snyder
a98eceb501
Tests: Call debug earlier to allow command line override
2023-01-21 14:05:11 -05:00
Wilson Snyder
c2bdd06fcc
Fix VPI one-time timed callbacks ( #2778 ).
2023-01-21 13:43:27 -05:00
Ilya Barkov
8918f17c17
Support class queue equality ( #3895 )
2023-01-21 13:20:02 -05:00
Wilson Snyder
604af511fc
Tests: Fix missing include ( #2778 partial)
2023-01-20 21:15:01 -05:00
Wilson Snyder
5a39fc4ba9
Tests: Add t_dist_copyright.pl
2023-01-20 20:42:46 -05:00
Wilson Snyder
30d6edd2e5
Cleanup missing copyrights and those on simply copied files. No functional change.
2023-01-20 20:42:30 -05:00
Wilson Snyder
79f99dddf7
Tests: Rename to .out suffix
2023-01-20 20:32:52 -05:00
James Shi
5ef373500f
Fix module parameter name collision ( #3854 ) ( #3855 )
2023-01-20 18:38:59 -05:00
Ryszard Rozak
be53eec5ca
Support property calls without parenthesis ( #3879 ) ( #3893 )
2023-01-20 07:25:37 -05:00
James Shi
c1c0aa61f9
Fix signed/unsigned parameter types ( #3866 )
2023-01-19 18:00:32 -05:00
Wilson Snyder
e94023367f
Fix elaboration of member selected classes ( #3890 ).
2023-01-19 17:44:27 -05:00
Wilson Snyder
035bf13e4a
Fix foreach unnamedblk duplicate error ( #3885 ).
2023-01-18 21:48:06 -05:00
Joey Liu
901d1d8087
Fix unpacked array expansion ( #3861 )
2023-01-18 14:35:48 -05:00
Gökçe Aydos
956fd89b87
Support import/export lists in modport ( #3886 )
2023-01-18 11:46:51 -05:00
Ilya Barkov
ff2f711d0c
Fix chain call of abstract class constructor ( #3868 ) ( #3883 )
2023-01-17 13:02:39 -05:00
Wilson Snyder
46cc7b5d07
Test ( #3876 )
2023-01-17 07:31:04 -05:00
Aleksander Kiryk
a1160a85a3
Support p format for UnpackArray ( #3877 )
2023-01-16 12:41:02 -04:00
Wilson Snyder
5fce23e90d
Fix empty case items crash ( #3851 ).
2023-01-10 07:18:12 -05:00
Larry Doolittle
2d6d1235d6
Commentary: Spelling (and grammar) fixes ( #3846 )
2023-01-08 18:17:24 -05:00
Wilson Snyder
1d2293b783
Fix some indents of warnMore
2023-01-05 17:59:51 -05:00
Ryszard Rozak
4784daa7dc
Add IMPLICITSTATIC warning when a ftask/function is implicitly static ( #3839 )
2023-01-05 17:42:05 -05:00
Larry Doolittle
2ab70ba452
Internals: Cleanup .txt file whitespace ( #3842 )
2023-01-05 05:00:54 -05:00
Larry Doolittle
4370490a71
Convert three files from Unicode to ASCII ( #3841 )
2023-01-04 21:19:07 -05:00
Yutetsu TAKATSUKASA
816cff009a
Fix #3824 of wrong bit op tree optimization ( #3825 )
...
* Tests: Add a test to reproduce #3824
* Fix #3824 of wrong bitOpTree optimization. Consider constant 1 in an Or-tree made by shift-out.
2023-01-04 23:10:55 +09:00
Wilson Snyder
e004ea7ae2
Revert ( #3835 ) ( #3836 )
2023-01-03 08:25:30 -05:00
Andrew Nolte
6159a7dd8d
Fix VPI generate scope array naming ( #3835 ) ( #3836 )
2023-01-03 07:38:55 -05:00
Wilson Snyder
b24d7c83d3
Copyright year update
2023-01-01 10:18:39 -05:00
Ryszard Rozak
bf4a844f2b
Fix self references when param class instantiated ( #3833 )
2022-12-30 06:05:01 -05:00
Wilson Snyder
5dbff89a90
Internal line coverage fixes
2022-12-29 20:18:28 -05:00
Wilson Snyder
24198ef0ed
Internal line coverage fix
2022-12-29 14:18:45 -05:00
Wilson Snyder
8064b78d4f
Test: Rename
2022-12-29 14:10:47 -05:00
Larry Doolittle
80a144797d
Commentary: Fix more spelling ( #3828 )
2022-12-26 10:30:41 +01:00
Wilson Snyder
1f58f48c05
Tests: Rename test of last commit
2022-12-23 13:12:21 -05:00
Wilson Snyder
c0499da28b
Spelling fixes
2022-12-23 11:32:38 -05:00
Wilson Snyder
3ccb2e0f2d
Fix initiation of function variables ( #3815 ).
2022-12-23 10:51:52 -05:00
Krzysztof Bieganski
bb44d4e4f2
Support clocking blocks ( #3674 )
2022-12-23 07:34:49 -05:00
Jevin Sweval
299261714b
Fix crash in DFT due to width use after free ( #3817 ) ( #3820 )
2022-12-20 19:36:04 -05:00
Aleksander Kiryk
c2b09e35f8
Support unpacked structs ( #3802 )
2022-12-20 19:22:42 -05:00
Wilson Snyder
c3b4bc85fa
Tests: Ignore tabs in .mk.in
2022-12-20 11:20:23 -05:00
Mariusz Glebocki
cb413aa264
Tests: Make it mt-safe to call operators on guarded and local objects. ( #3821 )
2022-12-19 10:53:28 -05:00
Wilson Snyder
a15cd76a28
Tests: Add copyright.
2022-12-16 18:09:00 -05:00
Kamil Rakoczy
7a15457511
Tests: Add multithreading attribute checks ( #3748 )
2022-12-16 11:19:27 -05:00
Wilson Snyder
f331c192b4
Tests: Fix duplicated if.
2022-12-12 21:32:45 -05:00
Wilson Snyder
972a11537c
Internals: Fix lint-py warnings
2022-12-11 21:58:02 -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
a0e7930036
docs: Fix spelling
2022-12-09 22:39:41 -05:00
Wilson Snyder
d61ad04f32
docs: Fix and test for AsciiDoc breaks ( #3728 )
2022-12-09 21:01:33 -05:00
Wilson Snyder
0824ef377f
wip
2022-12-09 20:32:09 -05:00
Wilson Snyder
2dc0053ea4
Tests: rename
2022-12-08 07:23:53 -05:00
Krzysztof Bieganski
4b6e15d0eb
Fix non-blocking assignments in forks ( #3781 ) ( #3800 )
2022-12-06 07:16:07 -05:00
Wilson Snyder
ea1b141d13
Support probablity distribution functions.
2022-12-04 17:30:51 -05:00
Wilson Snyder
0809c17ce1
Tests: Rename some tests that should be _bad.
2022-12-02 19:17:29 -05:00
Wilson Snyder
701d2277cd
Tests: rename
2022-12-02 07:34:34 -05:00
Wilson Snyder
e465a30eee
Fix lint_off EOFNEWLINE in .vlt files ( #3796 ).
2022-12-01 18:27:36 -05:00
Yutetsu TAKATSUKASA
889a1211f1
Fix 3786 (Internal error in bit op tree optimization) ( #3793 )
...
* Tests: Add a test to reproduce 3786
* Fix #3786 (Internal error in bit op tree optimization).
2022-12-01 22:00:24 +09:00
Wilson Snyder
d87ef8394a
Fix CASEINCOMPLETE when covers all enum values ( #3745 ) ( #3782 ).
...
Co-authored-by: "G-A. Kamendje" <gkamendje@gmail.com>
2022-11-30 19:42:21 -05:00
Wilson Snyder
4f4c26383c
Support unpacked byte assignment from strings.
2022-11-30 19:17:28 -05:00
Wilson Snyder
42e4e18ec8
Support multiple $dumpvar identifiers
2022-11-30 18:13:57 -05:00
Wilson Snyder
355c4f76d0
Add error when super.new is not first statement ( #3789 )
2022-11-30 07:41:57 -05:00
Ryszard Rozak
073dc03adc
Support super.new calls ( #3789 )
2022-11-30 06:42:48 -05:00
Ryszard Rozak
faedcc755b
Tests: Add test of passing this as argument ( #3790 )
2022-11-29 10:46:26 -05:00
Yinan Xu
e569ff2752
Add error when use --exe with --lib-create. ( #3785 )
2022-11-29 06:37:38 -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
d8071819fc
Fix unquoted name in dtype errors.
2022-11-27 05:59:40 -05:00
Wilson Snyder
4b3731d318
Remove env from main() to be C++11 compatible
2022-11-23 18:50:31 -05:00
Ryszard Rozak
68f8617f79
Support member selects in with clauses ( #3775 )
2022-11-23 13:15:10 -05:00
Yves Mathieu
06fdf7be58
Add support of Events for VCD/FST traces ( #3759 )
2022-11-23 04:07:14 -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
d3c1f4353e
Fix float parameters without parens
2022-11-21 06:48:13 -05:00
Ryszard Rozak
62bdd3ab49
Fix timing control in while-break loops ( #3733 ) ( #3769 )
2022-11-21 06:27: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
278d532368
Tests: Add TEST_DUMPFILE define
2022-11-20 09:40:02 -05:00
Wilson Snyder
6297650fef
Tests: Fix internal error stability
2022-11-20 07:45:51 -05:00
Wilson Snyder
5634e96bb6
Tests: Remove unsupported() in tests, instead check whatever is current behavior
2022-11-19 22:43:10 -05:00
Wilson Snyder
e266b2cb03
Tests: Add $dist tests
2022-11-19 22:01:55 -05:00
Wilson Snyder
0af3efda5c
Tests: Fix top_filename to properly test ( #3767 )
2022-11-19 17:09:43 -05:00
Wilson Snyder
d3e1c40238
Tests: Cleaner macro. No functional change.
2022-11-19 17:06:11 -05:00
Wilson Snyder
aacb38b776
Support assignment expressions.
2022-11-19 15:23:37 -05:00
Mariusz Glebocki
d0e7177d8e
Disable stack size limit ( #3706 ) ( #3751 )
2022-11-19 14:44:54 -05: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
0322e9da7e
Fix randcase inside function.
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
Wilson Snyder
749aab0a56
Support triple-quote blocks.
2022-11-17 20:38:01 -05:00
Wilson Snyder
e8a1e4745c
Support $stacktrace
2022-11-17 19:12:54 -05:00
Wilson Snyder
96306b7630
Tests: Update t_class_class
2022-11-17 18:15:38 -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
Ryszard Rozak
3ddfa214e3
Fix $unit as base package for other packages ( #3755 )
2022-11-16 18:58:57 -05:00
Wilson Snyder
a58cd66358
Fix printtimescale
2022-11-16 18:17:24 -05:00
Wilson Snyder
c6ecd60993
Support pre_randomize and post_randomize.
2022-11-13 11:59:40 -05:00
Wilson Snyder
d25834e57b
Add ENUMVALUE warning when value misused for enum ( #726 ).
2022-11-12 20:11:05 -05:00
Geza Lore
eaf09ba0e7
Dfg: resolve multi-driven signal ranges
...
In order to avoid unexpected breakage on multi-driven variables, we
resolve in DFG construction by using only the first driver encountered.
Also issues the MULTIDRIVEN error for these signals.
2022-11-12 20:34:51 +00:00
Wilson Snyder
0a045a7bf6
Change ENDLABEL from warning into an error.
2022-11-12 12:09:48 -05:00
Geza Lore
dbcaad99c5
Dfg: Fix crash on additional driver from non-DFG logic
...
Ensure variables written by non-DFG code are kept
Fixes #3740
2022-11-12 11:55:49 +00:00
Wilson Snyder
a427860825
Support randcase.
2022-11-11 21:53:05 -05:00
Wilson Snyder
227e61f891
Fix comparing ranged slices of unpacked arrays.
2022-11-11 18:01:30 -05:00
Wilson Snyder
b2e61425d6
Fix const initial assignments.
2022-11-11 17:45:34 -05:00
Wilson Snyder
9d7c4d9af3
Fix wait 0.
2022-11-11 17:18:59 -05:00
Wilson Snyder
528a73a492
Fix instability after disable iff error.
2022-11-10 22:09:24 -05:00
Wilson Snyder
fbf2e59c85
Fix loss of V3Simulate on expression statements.
2022-11-10 20:49:11 -05:00
Wilson Snyder
16586d1d37
Fix tracing parameters overridden with -G ( #3723 ).
2022-11-10 20:30:10 -05:00
Ryszard Rozak
441b5da5ce
Fix 'with' clause handling in functions ( #3739 )
2022-11-10 18:08:15 -05:00
Wilson Snyder
e64295e92b
Fix missing UNUSED warnings with --coverage ( #3736 ).
2022-11-09 21:45:14 -05:00
Ryszard Rozak
cbf9cc8e5f
Fix return in constructors ( #3734 )
2022-11-09 06:32:22 -05:00
Ryszard Rozak
a29d9469da
Fix jump handling in do while loops ( #3731 )
2022-11-08 20:01:08 -05:00
Geza Lore
fb9ec03c3f
DfgPeephole: Use a work list driven algorithm for speed
...
Replace the 'run to fixed point' algorithm with a work list driven
approach. Instead of marking the graph as changed, we explicitly add
vertices to the work list, to be visited, when a vertex is changed. This
improves both memory locality (as the work list is processed in last in
first out order), and removed unnecessary visitations when only a few
nodes changes.
2022-11-05 20:31:09 +00:00
Wilson Snyder
21926eeb6b
Tests: Improve some coverage
2022-11-05 11:40:34 -04:00
Geza Lore
6ae6b16223
V3Const: Fix folding of LogAnd with non-bool operands
...
Folding an AstLogAnd with a non-zero constant operand used to coerce the
type of the other operand, yielding an ill-typed node that DFG was then
unhappy about. Add a RedOr instead if the width of the replacement
operand is greater than zero.
Fixes #3726
2022-11-05 13:36:21 +00:00
Kamil Rakoczy
d6126c4b32
Remove --no-threads; require --threads 1 for single threaded ( #3703 ).
2022-11-05 08:47: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
Geza Lore
0675510eb9
DFG: Fix attempted evaluation of constants wider than 32 bits
...
Fixes #3718
2022-10-28 17:14:19 +01:00
Wilson Snyder
ee26378394
Tests: Fix instability ( #3717 )
2022-10-28 10:32:52 -04:00
Geza Lore
54c4351c39
V3Const: Do not introduce redundant AstExtend
...
Fixes #3716
2022-10-28 14:54:00 +01:00
Geza Lore
e504e9aced
Optimize clocked processes to comb when referencing const variables
...
In V3Active, we try hard to turn `always @(a or b or c)` into an
`always_comb` if the only variables read in the block are also in the
sensitivity list. In addition, also allow this optimization when reading
variables that are not in the sensitivity list, but are known to be
constant/never changing after initialization. In particular lookup
tables introduced by V3Table are covered by this. This can have a
significant impact on designs that use the `always @(a or b or c)` style
for combinational logic.
2022-10-28 14:37:30 +01:00
Wilson Snyder
5c658f8cd5
Fix width mismatch on inside operator ( #3714 ).
2022-10-28 06:38:49 -04:00
Kamil Rakoczy
ed93a111c2
Fix deadlock in ``timeprecision`` when using systemC ( #3707 )
2022-10-26 04:50:28 -07:00
Wilson Snyder
3487701b04
Tests: Cover some previously uncovered warnings
2022-10-22 16:03:42 -04:00
Wilson Snyder
d33a3d09f7
Tests: Fix bison-dependent .out
2022-10-22 14:35:36 -04:00
Wilson Snyder
0716a28816
Tests: Check for v3warn/v3error without a test
2022-10-22 13:46:49 -04:00
Wilson Snyder
8e1901da10
Tests: Cover some previously uncovered warnings
2022-10-22 13:45:48 -04:00
Wilson Snyder
ecfa385f13
Test/cleanup endtable without table
2022-10-22 12:30:44 -04:00
Wilson Snyder
495d52d30f
Test and fix extra end_keywords
2022-10-22 12:17:56 -04:00
Wilson Snyder
2df886b2b0
Tests: Check std:: package for mailbox/process/semaphore
2022-10-22 10:58:10 -04:00
Krzysztof Bieganski
fcf0d03cd4
Dynamic triggers for non-static contexts ( #3599 )
...
In non-static contexts like class objects or stack frames, the use of
global trigger evaluation is not feasible. The concept of dynamic
triggers allows for trigger evaluation in such cases. These triggers are
simply local variables, and coroutines are themselves responsible for
evaluating them. They await the global dynamic trigger scheduler object,
which is responsible for resuming them during the trigger evaluation
step in the 'act' eval region. Once the trigger is set, they await the
dynamic trigger scheduler once again, and then get resumed during the
resumption step in the 'act' eval region.
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-10-22 14:05:39 +00:00
Wilson Snyder
a57a3579c0
Fix false LATCH warning on 'unique if' ( #3088 ).
2022-10-21 19:10:06 -04:00
Wilson Snyder
347e9b4ec8
Fix cell assigning integer array parameters ( #3299 ).
2022-10-21 18:26:39 -04:00
Krzysztof Bieganski
785c51dd0b
Fix emitting timing debug info with `--protect-ids` ( #3689 ) ( #3701 )
2022-10-21 16:56:44 -04:00
Arkadiusz Kozdra
627a144b83
Support access to constructs inside type parameters ( #3702 )
...
This changeset brings support for accesses like:
class Cls#(type TYPE1);
TYPE1::some_method();
endclass
It is done by delaying dot resolution on type parameters until they get
resolved by V3Param, and doing a more thorough reference skip.
2022-10-21 09:00:40 -04:00
Krzysztof Bieganski
5688d1a935
Internals: Add `V3UniqueNames` consistency assertion ( #3692 )
2022-10-21 07:05:38 -04:00
Wilson Snyder
79682e6072
Support empty generate_regions ( #3695 ). [mpb27]
2022-10-20 22:04:50 -04:00
Wilson Snyder
7e1b92fa75
Add --get-supported to determine what features are in Verilator ( #3688 ).
2022-10-20 21:42:30 -04:00
Arkadiusz Kozdra
0e4da3b0bf
Support virtual interfaces ( #3654 )
2022-10-20 06:31:00 -04:00
Krzysztof Bieganski
e6add5e0b8
Fix trace activity with --timing ( #3576 ) ( #3678 ) ( #3696 )
2022-10-20 06:28:55 -04:00
Krzysztof Bieganski
22243d1e49
Support class type params without defaults ( #3693 )
2022-10-19 21:59:26 -04:00
Wilson Snyder
e7068369fe
Fix $display of fixed-width numbers ( #3565 ).
2022-10-18 21:10:35 -04:00
Wilson Snyder
b930d0731a
Fix foreach and pre/post increment in functions ( #3613 ).
2022-10-18 20:04:09 -04:00
Wilson Snyder
2723223884
Fix LSB error on --hierarchical submodules ( #3539 ).
2022-10-18 17:29:51 -04:00
Topa Topino
46c5764383
Split UNUSED warning into genvar, param, and signal warnings ( #3607 )
2022-10-17 19:51:13 -04:00
Wilson Snyder
22ce36012e
Add VERILATOR_TIMING define ( #3684 )
2022-10-17 18:18:56 -04:00
Geza Lore
5c65e0cfa1
Dfg: Fix incorrect folding of associative expressions with shared terms
...
Fixes #3679
2022-10-17 15:03:30 +01:00
Geza Lore
840e26b69a
Fix incorrect return in DFG decomposition
...
Fixes #3676
2022-10-17 14:41:20 +01:00
Krzysztof Bieganski
5e79652922
Test tracing with `--timing` and `--main` ( #3656 )
...
Add a test for tracing with `--main` and `--timing`.
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-10-17 12:36:37 +02:00
Wilson Snyder
f3292a3651
Tests: Prove fixed ( #2410 )
2022-10-16 10:36:18 -04:00
Wilson Snyder
76ccd332a6
Internals: Remove DETECTARRAY, dead code.
2022-10-16 09:41:51 -04:00
Wilson Snyder
379a947379
Tests: Fix some internal code coverage holes
2022-10-15 13:59:07 -04:00
Wilson Snyder
916a3d9066
Fix --main --trace missing initial timestep ( #3678 ).
2022-10-15 13:24:38 -04:00
Wilson Snyder
e32ff0e1a6
Tests: Better mailbox and semaphore tests.
2022-10-15 10:37:24 -04:00
Wilson Snyder
5957156dee
Tests: Fix bad result check.
2022-10-15 06:57:12 -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
8a347248f5
Use `AstDelay` nodes for intra-assignment delays ( #3672 )
...
Also fix messy implementation of net delays.
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-10-14 09:35:26 +02:00
Krzysztof Bieganski
caed086516
Move Postponed logic after the eval loop ( #3673 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-10-13 21:04:43 +02: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
Krzysztof Bieganski
ba052beccd
Make reference to increment temporary an rvalue ( #3659 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-10-10 13:58:05 +02:00
Wilson Snyder
6f9c585452
Spelling ( #3664 )
2022-10-09 14:18:14 -04:00
Wilson Snyder
18c26b90af
Fix --trace with --main/--binary ( #3664 )
2022-10-09 14:16:44 -04:00
Krzysztof Bieganski
97add4d57a
Fix null access on optimized-out fork statements ( #3658 )
...
`V3SchedTiming` currently assumes that if a fork still exists, it must
have statements within it (otherwise it would have been deleted by
`V3Timing`). However, in a case like this:
```
module t;
reg a;
initial fork a = 1; join
endmodule
```
the assignment in the fork is optimized out by `V3Dead` after
`V3Timing`. This leads to `V3SchedTiming` accessing fork's `stmtsp`
pointer, which at this point is null. This patch addresses that issue.
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-10-06 15:38:59 +02:00
Geza Lore
a83043d735
DfgPeephole: Rework folding of associative operations
...
Allow constant folding through adjacent nodes of all associative
operations, for example '((a & 2) & 3)' or '(3 & (2 & a))' can now be
folded into '(a & 2)' and '(2 & a)' respectively. Also improve speed of
making associative expression trees right leaning by using rotation of
the existing vertices whenever instead of allocation of new nodes.
2022-10-06 09:10:26 +01:00
Geza Lore
22fcd616aa
DfgPeephole: Further restrict PUSH_REDUCTION_THROUGH_CONCAT
...
Only apply when there is guaranteed to be a subsequent constant folding
and elimination of some of the expression, otherwise this sometimes
interferes with the simplification of concatenations and harms overall
performance.
2022-10-06 09:10:26 +01:00
Geza Lore
f87fe4c3b4
DfgPeephole: add constant folding for all integer types
...
Also added a testing only -fno-const-before-dfg option, as otherwise
V3Const eats up a lot of the simple inputs. A lot of the things V3Const
swallows in the simple cases can make it to DFG in complex cases, or DFG
itself can create them during optimization. In any case to save
complexity of testing DFG constant folding, we use this option to turn
off V3Const prior to the DFG passes in the relevant test.
2022-10-05 12:05:40 +01:00
Geza Lore
f23f3ca907
Try to ensure DFG peephole patterns don't grow the graph
...
Some optimizations are only a net win if they help us remove a graph
node (or at least ensure they don't grow the graph), or yields otherwise
special logic, so try to apply them only in these cases.
2022-10-04 18:54:46 +01:00
Geza Lore
2a12b052f2
DFG: handle simple always blocks
2022-10-01 16:46:58 +01:00
Geza Lore
84b9502af4
DFG: Add more peephole patterns
2022-10-01 16:46:58 +01:00
Geza Lore
694bdbc130
DFG: Improve .dot dumps slightly
2022-10-01 16:46:58 +01:00
Wilson Snyder
880cac2fdd
Merge branch 'master' into develop-v5
2022-10-01 11:24:55 -04:00
Marcel Chang
526e6b9fc7
Add --dump-tree-dot to enable dumping Ast Tree .dot files ( #3636 )
2022-10-01 11:05:33 -04:00
Kanad Kanhere
159cf0429c
Support linting for top module interfaces ( #3635 )
2022-10-01 10:48:37 -04:00
Ryszard Rozak
46b8dca360
Add handling of tristate select/extend ( #3604 )
2022-10-01 10:34:30 -04:00
Geza Lore
c9d6344f2f
DFG: Extract cyclic components separately
...
A lot of optimizations in DFG assume a DAG, but the more things are
representable, the more likely it is that a small cyclic sub-graph is
present in an otherwise very large graph that is mostly acyclic. In
order to avoid loosing optimization opportunities, we explicitly extract
the cyclic sub-graphs (which are the strongly connected components +
anything feeing them, up to variable boundaries) and treat them
separately. This enables optimization of the remaining input.
2022-09-30 09:51:10 +01:00
Wilson Snyder
cd2a5771b8
Add --timing to --binary ( #3625 ).
2022-09-28 19:02:23 -04:00