Commit Graph

1983 Commits

Author SHA1 Message Date
Wilson Snyder
2f718b9ea0 Show IEEE reference in array port message, plus internal cleanups. 2020-11-17 21:10:50 -05:00
Marlon James
899e7bacb2
Fix VPI callback list iteration (#2644)
The end iterator always points to an element past the end of the list.
When new elements are added to the back of the list, they are inserted
before the end iterator.
Instead, track the last element in the list at the start of processing
and stop after it's been processed.
2020-11-17 17:19:51 -05:00
Tomasz Gorochowik
5b3717b369
Tests: Memory clean up in tests (#2645)
This patch normalizes what the tests do before exiting. After this
change each test should call final on the top module and explicitly
free the top module object before exiting.
2020-11-17 06:37:55 -05:00
Marlon James
0e1e380a55
Fix test for callCbs() so it can fail (#2613) 2020-11-16 21:00:09 -05:00
Wilson Snyder
70b3a599ce Fix trace signal names getting hashed (#2643). 2020-11-16 18:11:27 -05:00
Wilson Snyder
c64cc989f0 verilator_gantt: Show CPU physical info. 2020-11-14 12:22:15 -05:00
Yutetsu TAKATSUKASA
e8c03650ae
Fix internal error if always block without begin-end has concat (#2640) (#2641) 2020-11-13 09:50:09 -05:00
Wilson Snyder
7eac788306 Add error on using :: with module 2020-11-12 19:45:26 -05:00
Wilson Snyder
b49be06a5a Tests: Standard wording. 2020-11-12 18:50:05 -05:00
Wilson Snyder
5634a18f78 Tests: Smaller t_vpi_var test 2020-11-11 20:57:24 -05:00
Wilson Snyder
b84c9bb4c0 Internals: Show scope debug information. 2020-11-11 19:00:10 -05:00
Wilson Snyder
6dfce882a1 Support $exit as alias of $finish 2020-11-10 22:49:48 -05:00
Wilson Snyder
6965e138aa Add clearer unsupported message for inside on array (#2566) 2020-11-08 23:26:58 -05:00
Wilson Snyder
fc52fb9093 Fix arrays of modport interfaces (#2614). 2020-11-08 22:43:32 -05:00
Wilson Snyder
d78941885b Fix cast width propagation (#2597). 2020-11-08 19:07:33 -05:00
Wilson Snyder
9655e287ab Tests: Travis regression fix 2020-11-08 17:06:03 -05:00
Wilson Snyder
917ca2bad7 Tests: Add t_const_opt_red (#2632) (#2633) 2020-11-08 16:39:28 -05:00
Wilson Snyder
c3f5dd7414 Tests: Try to stabilize cron test. 2020-11-08 11:17:42 -05:00
Wilson Snyder
04c7fd1696 Tests: Add wire-or mux test for future optimization. 2020-11-07 21:57:31 -05:00
Wilson Snyder
152689776d Report error on typedef referencing self (#2539). 2020-11-07 15:41:37 -05:00
Wilson Snyder
778f133118 Fix dynamic new with init argument (#2325). 2020-11-07 14:28:05 -05:00
Wilson Snyder
2a24bb4759 Fix queue poping wrong value when otherwise unused (#2512). 2020-11-07 10:37:55 -05:00
Krzysztof Bieganski
7c4259bc0a
Support static methods and typedefs in classes (#2615) 2020-11-06 19:51:21 -05:00
Wilson Snyder
2aedc91151 Support queue and associative array 'with' statements. (#2616) 2020-11-01 10:56:07 -05:00
Wilson Snyder
c1e8337fc1 Support pattern assignment to dynamic arrays. 2020-11-01 10:18:32 -05:00
Wilson Snyder
1858cc8ff1 Fix test stability due to #2618. 2020-11-01 09:26:55 -05:00
Wilson Snyder
5e6aca59ab Fix test stability due to #2618. 2020-11-01 09:14:45 -05:00
Wilson Snyder
726e78fdda Add 'with' syntax checks. 2020-10-31 10:33:36 -04:00
Wilson Snyder
085e8454b8 Support 'with' into elaboration (only). 2020-10-31 10:00:55 -04:00
Wilson Snyder
0c328b6eaf clang-format of test_regress. No functional change. 2020-10-28 18:42:36 -04:00
Wilson Snyder
f670eccf8c Tests: $countbits 2020-10-28 07:39:13 -04:00
Wilson Snyder
d44426b3f3 clang-format. No functional change. 2020-10-27 20:33:45 -04:00
Yutetsu TAKATSUKASA
05ff96bea3
Fix SEGV when $fgets, $sscanf, or $fscanf is used with string (#2604)
* Add a test to use string for $fgets

* Use dedicated function for $fgets to std::string

* share the implementation of $fgets

* Pass -1 for bitwidth of std::string to distinguish from POD

* add checks for scanf with string

* apply clang-format
2020-10-28 08:37:12 +09:00
Marlon James
34b8ed4cf0
Return bool from callValueCbs() (#2589) (#2605)
* Return bool from callValueCbs()

Returns true if any registered callback was called, else false.

* Add test for callCbs() and callValueCbs()
2020-10-26 21:55:27 -04:00
Wilson Snyder
95d1272269 Support associative array pattern assignments and defaults. 2020-10-25 21:05:22 -04:00
Wilson Snyder
046c0a7aa1 Fix queue assignment with different limits, negative indicies 2020-10-24 22:08:11 -04:00
Wilson Snyder
835905bdae Convert cast tasks to assertions 2020-10-24 20:30:52 -04:00
Wilson Snyder
51d1235cda Shorter stringify of empty queues, and better queue tests 2020-10-24 18:00:40 -04:00
Wilson Snyder
2f21b3385a Tests: Casting. 2020-10-24 17:46:09 -04:00
Wilson Snyder
4cec3ff2a0 Fix WIDTH warnings on comparisons with nullptr (#2602). 2020-10-22 17:27:23 -04:00
Wilson Snyder
25593c0ee2 Fix capitalization 2020-10-22 17:13:42 -04:00
Wilson Snyder
5d3dd52f13 Support queue slicing (#2326). 2020-10-18 13:23:39 -04:00
Wilson Snyder
3d2503f9aa Tests: Run execute on non-Verilator when unsupported test. 2020-10-17 21:31:58 -04:00
Wilson Snyder
4576644591 Prep for future queue slicing. 2020-10-17 21:09:10 -04:00
Wilson Snyder
964dcd5b7c Tests: Add additional array method tests and error 2020-10-17 19:23:27 -04:00
Wilson Snyder
829db3eefa Fix tick style on %p formats. 2020-10-16 19:26:04 -04:00
Wilson Snyder
4849c0530b Fix class extends with typedef. 2020-10-16 18:25:32 -04:00
Wilson Snyder
48597bebaf Tests: Better static tests 2020-10-15 20:44:51 -04:00
Wilson Snyder
3b9c8b64f7 Tests: Add unsupported queue method/slice testing. 2020-10-14 21:57:53 -04:00
Wilson Snyder
7e5f562500 Tests: Use internal sed as external croaks on binary. 2020-10-14 09:30:15 -04:00
Wilson Snyder
d4d3ae4dfc Fix compile error. 2020-10-14 07:31:22 -04:00
Wilson Snyder
e3cf5c07e4 Internal coverage improvements. No functional change. 2020-10-13 21:13:52 -04:00
Wilson Snyder
8750352495 Internal coverage: Cleanup some savable errors and coverage. 2020-10-13 19:26:16 -04:00
Wilson Snyder
e25a6334cf Support repeated forward typedefs. 2020-10-10 11:29:10 -04:00
Wilson Snyder
215d3614c0 Fix preprocessor stringify of undefined macro. 2020-10-09 18:53:09 -04:00
Rafal Kapuscik
7be343fd7c Support 'this' (#2585). 2020-10-08 07:54:01 -04:00
Wilson Snyder
efbcb094ca Fix flushCall for backward compatibility (#2580). 2020-10-04 07:47:25 -04:00
Victor Besyakov
222ca4b009 Tests: Add t_stream_integer_type (#2547) (#2548) (#2573) 2020-09-27 19:25:53 -04:00
James Pallister
e3a1954e20
Fix hierarchical references used inside a function (#2267) (#2572) 2020-09-27 10:10:44 -04:00
Wilson Snyder
4ba2637360 Fix class wide member display (#2567). 2020-09-25 07:37:38 -04:00
Wilson Snyder
6430743b6f Fix method calls to package class functions (#2565). [Peter Monsson] 2020-09-22 09:09:10 -04:00
Wilson Snyder
0c49cca527 Fix $urandom_range passed variable (#2563). 2020-09-22 08:44:51 -04:00
Wilson Snyder
7a9e79ea79 Fix -G dropping public indication (#2561). 2020-09-21 08:29:57 -04:00
Yutetsu TAKATSUKASA
157948c552
Fix cmake build with --hierarchical option (#2560)
* hier_block with cmake test doesn't assume prefix now.

* Add space between files

* don't set -Mdir on cmake build as it will be set by DIRECTORY option

* Use top target name instead of prefix
2020-09-20 07:48:05 +09:00
Wilson Snyder
1a127a479c Internal coverage improvements 2020-09-19 10:30:31 -04:00
Wilson Snyder
87e4a86fbb Internal coverage improvements 2020-09-18 21:27:36 -04:00
Yutetsu TAKATSUKASA
1c1b95161b
Load source file of the hier_block explicitly (#2559)
* Add a test to make sure that lib modules (loaded via -y option) can be a hier_block.

* Add HDL file of the hier_block to the source list if the module is loaded via -y option.

(Each hier_block is treated as a top module when processing the hier_block.)

* Use "\n" for delimiter as the other files
2020-09-19 08:13:49 +09:00
Wilson Snyder
66d1754d19 Fix constant x propagation of xor. 2020-09-18 17:47:22 -04:00
Yutetsu TAKATSUKASA
e48a859b86
Add timescale directive for hier_block if the original design has it (#2554)
* add timescale directive to a test to reproduce #2544

* add timescale directive to hierarchy blocks
2020-09-17 06:09:29 +09:00
Wilson Snyder
430238a6b4 Support # as a comment in -f files (#2497). 2020-09-15 20:12:08 -04:00
Peter Monsson
d0819f156f
Add support for |=> inside properties (#1292). 2020-09-10 06:49:04 -04:00
Wilson Snyder
30f3774134 Support const object new() assignments. 2020-09-07 17:26:53 -04:00
Wilson Snyder
993115d30a Cleanup and test EmitV for internal coverage 2020-09-07 12:58:30 -04:00
Peter Monsson
627d83e807
Add support for assume property (#2531) 2020-09-03 12:38:48 -04:00
Peter Monsson
80f5738544
Tests: Move t_rose t_fell and t_stable to a single test (#2530) 2020-09-03 08:09:47 -04:00
Wilson Snyder
600641b4a1 Tests: Add process test #2527 2020-08-31 19:02:58 -04:00
Yutetsu TAKATSUKASA
70eb99b050
Fix double-free on shared protect-lib (#2526)
* Add a test to use shared object of protect-lib
* Add a guard to call ctor/dtor just once even when a protec-lib is shared object.
* Pass .a to linker in leaf-last order for older ld.
* Add -flat_namespace for mac
2020-08-31 08:22:31 -04:00
Wilson Snyder
ba5779c69e Fix queues as class members (#2525). 2020-08-29 12:56:43 -04:00
Wilson Snyder
069eb97eca SystemC 2.3.0 or newer (SYSTEMC_VERSION >= 20111121) is now required. 2020-08-29 10:45:47 -04:00
Wilson Snyder
45eccaecaf Fix Travis/GCC warnings. 2020-08-27 18:48:26 -04:00
Yutetsu TAKATSUKASA
ef04ada12b
Fix test failure on FreeBSD (#2521)
* Don't use thin-archive to merge multiple archives because it is gnu-ar specific.

* remove -time option that may caues -Wunused-command-line-argument warning
2020-08-27 07:52:48 +09:00
Wilson Snyder
4265f9499d Support dotted references in foreach in early parsing (for UVM) 2020-08-24 19:33:26 -04:00
Yutetsu TAKATSUKASA
6acd5847e7
Fix range check in V3SplitVar to be consistent with #2507 (#2511)
* test:Add more tests for checking split_var for unpacked array.

* Fix range calculation of SliceSel and change to UASSERT_OBJ because the range check is done in V3Width beforehand.
2020-08-24 19:11:20 -04:00
Wilson Snyder
3ad3944f2c Fix Travis/GCC warnings. For VPI/DPI still avoid C++11. 2020-08-24 18:49:36 -04:00
Wilson Snyder
f7f3d3fd43 Fix splitting eval functions with --output-split-cfuncs (#2368). 2020-08-23 22:21:40 -04:00
Wilson Snyder
4003e01283 Commentary 2020-08-23 20:58:23 -04:00
Wilson Snyder
917d3b0fb3 Support virtual class 2020-08-23 20:27:25 -04:00
Wilson Snyder
20206b1e2e Support simple class extends. 2020-08-23 19:37:56 -04:00
Wilson Snyder
fefe731105 Tests: Better virtual test 2020-08-23 11:50:42 -04:00
Wilson Snyder
1dce6b2500 Support $stable 2020-08-23 11:34:19 -04:00
Wilson Snyder
d2fac4aa2f Internals: Add --debug-exit-uvm 2020-08-23 09:05:18 -04:00
Wilson Snyder
132cc1d068 Parser: Move timing control unsupported message 2020-08-23 08:56:35 -04:00
Wilson Snyder
f4a72946eb Support $urandom, $urandom_range without stability. 2020-08-23 08:42:50 -04:00
Wilson Snyder
4e6d2cfe38 Fix class constructor error on assignments to const. 2020-08-22 22:44:00 -04:00
Wilson Snyder
7f3a73e314 Fix naming of "id : begin" blocks. 2020-08-22 22:21:37 -04:00
Wilson Snyder
8455ee7091 Optimize one-statement fork/join into begin 2020-08-22 20:04:02 -04:00
Wilson Snyder
9702d11657 Support class extern. 2020-08-22 19:46:21 -04:00
Wilson Snyder
2d7d2c5992 Fix false DECLFILENAME on black-boxed modules (#2430). 2020-08-22 16:56:21 -04:00
Wilson Snyder
2abbd5c145 Convert unnamed error to new PKGNODECL error. 2020-08-22 16:37:49 -04:00
Wilson Snyder
583605b218 Parser: Move extern decl unsupported message 2020-08-22 16:24:29 -04:00
Yutetsu TAKATSUKASA
f632ea500c
Fix slice of unpacked array calculation (Issue #2506) (#2507)
Fixes Issue #2506 by shifting index as ArraySel does
2020-08-22 15:23:26 +09:00
Wilson Snyder
698e0fbbd1 configure: Try compiler flags to get to C++11 (#2502) 2020-08-17 07:40:07 -04:00
Wilson Snyder
3c1ed075e5 tests: Disable wide line test as breaks user commits. 2020-08-16 14:57:16 -04:00
Wilson Snyder
ee9d6dd63f C++11: Favor auto, range for. No functional change intended. 2020-08-16 11:44:06 -04:00
Wilson Snyder
c0127599df C++11: Use nullptr. No functional change. 2020-08-16 11:44:05 -04:00
Yutetsu TAKATSUKASA
953a442827
Support hierarchical verilation using protect lib (#2206) 2020-08-15 09:43:53 -04:00
Peter Monsson
4a5e4b04f3
Support $rose and $fell. (#2148) (#2501) 2020-08-14 07:37:10 -04:00
Edgar E. Iglesias
5d98035170
Fix sc names (#2500)
cint.mainInt(nodep) walks the tree and populates m_ctorVarsVec.
Reuse EmitCImp cint for the slow mainImp() emition steps to make sure
we emit constructor calls to setup SystemC sc_module names.
2020-08-13 08:23:02 -04:00
Wilson Snyder
20c906261b Fix casting non-self-determined subexpressions (#2493). 2020-08-09 20:59:06 -04:00
Wilson Snyder
98cd925fda Fix non-32 bit conversion to float (#2495). 2020-08-06 21:56:43 -04:00
Wilson Snyder
2bc813da4a Refactor and test VL_MULS_MAX_WORDS 2020-08-03 22:12:24 -04:00
James Hanlon
555408b5d3
Fix V3Unknown from running with flat XML output (#2494)
* Prevent V3Unknown pass from being run

Co-authored-by: James Hanlon <mail@jameswhanlon.com>
2020-08-03 11:44:47 -04:00
Yutetsu TAKATSUKASA
c85589371a
Fix protect-lib without sequential logic (#2492)
* add a test for protect-lib without sequential logic that cause the follwoing error.

%Error: obj_vlt/t_prot_lib_comb/secret/secret.sv:78:14: syntax error, unexpected ')'
   78 |     always @() begin
      |              ^

* protect-lib wrapper must contain sequential signal related statements
only if the protected design is a sequential logic.

Diff looks big, but actually just add "if (m_hasClk)" condition.

Signed-off-by: Yutetsu TAKATSUKASA <y.takatsukasa@gmail.com>
2020-08-01 07:16:15 -04:00
Peter Monsson
1280070abb
Support $stable (#2488) 2020-07-28 18:26:24 -04:00
Wilson Snyder
a52f975bd7 Fix combining different-width parameters (#2484). 2020-07-26 17:54:23 -04:00
Wilson Snyder
edf6a40f19 Fix VL_CONSTHI truncation (#2473) 2020-07-18 17:35:20 -04:00
Wilson Snyder
1488f9130d Enable simple function localparams (#2461) 2020-07-15 19:31:19 -04:00
Josh Redford
a18d8cbe86 Test for arrayed interfaces (#2469). 2020-07-15 17:58:59 -04:00
Wilson Snyder
ced1af8cb8 Parser: Move extends param class unsupported message 2020-07-11 19:53:41 -04:00
Wilson Snyder
f0a6e4c2b2 Parser: Move scoped id unsupported messages down out of parser 2020-07-11 19:11:58 -04:00
Wilson Snyder
9e5cd463e5 Parser: Move class parameter unsupported messages down out of parser 2020-07-11 18:39:01 -04:00
Wilson Snyder
7e7447812c Fix modulus exception (#2460) 2020-07-11 08:17:16 -04:00
Wilson Snyder
af3ab13012 Tests: Fix 64-bit code coverage, part of last commit 2020-07-10 22:38:08 -04:00
Wilson Snyder
b35b5aacfa Fix division exception (#2460) 2020-07-10 22:28:02 -04:00
Wilson Snyder
9c01665078 Tests: Fix bison stability. 2020-07-10 22:05:51 -04:00
Wilson Snyder
0674267333 Parser: Test and handle semaphore, mailbox and process. 2020-07-09 20:04:22 -04:00
Wilson Snyder
b968f57711 Suppress unsupported constraint, as implied by unsupported randomize. 2020-07-02 21:10:05 -04:00
Wilson Snyder
ee7b399bf5 Parser: Move 'static' unsupported messages down out of parser. 2020-07-02 21:02:49 -04:00
Wilson Snyder
50c28fa9d3 Parser: Move 'pure virtual' and 'extern' unsupported messages down out of parser. 2020-07-02 08:24:50 -04:00
Geza Lore
a17f51eac0 Improve V3MergeCond
- Do try to merge after assignment to condition when possible.
- Do not try to merge reduced form if not the expected statement.
  This used to cause a crash.
2020-07-02 13:13:51 +01:00
Wilson Snyder
9d1a39a5e4 Parser: Move 'with' block unsupported messages down out of parser 2020-07-02 07:36:15 -04:00
Fan Shupei
04c96694e6
Add $writememb support (#2450) 2020-07-01 17:32:15 -04:00
Wilson Snyder
4d5e448664 Parser: Move member qualifier unsupporteds out of parser. 2020-07-01 07:31:53 -04:00
Wilson Snyder
236c2141e3 Parser: Move 'with' block unsupported messages down out of parser 2020-06-30 21:37:11 -04:00
Wilson Snyder
788fe3dc27 Tests: Ignore gtkwave spaces. 2020-06-30 21:36:39 -04:00
Geza Lore
09806d7576 Update fstapi.c to latest (fix undefined thread behaviour) 2020-06-30 19:50:41 +01:00
Wilson Snyder
0b09636c58 Support for-loop increments with commas. 2020-06-29 21:18:41 -04:00
Wilson Snyder
af197f2ceb Parser: Move 'virtual class' block unsupported messages down out of parser 2020-06-29 21:03:14 -04:00
Wilson Snyder
748c818ccb Parser: Move 'wait' block unsupported messages down out of parser 2020-06-29 20:39:39 -04:00
Wilson Snyder
ad55564905 Parser: Move disable fork and wait fork down into elaborate stage 2020-06-29 20:22:39 -04:00
Wilson Snyder
ad2cb45a14 Parser: Move unsupported error detection of 'this'/'super' down into link stage 2020-06-29 20:02:15 -04:00
Wilson Snyder
277fd9197f Tests: Add number case for #2432. 2020-06-29 18:03:16 -04:00
Geza Lore
7342cf278a Travis: Add 32-bit build on focal 2020-06-28 20:11:22 +01:00
Geza Lore
378d947702 Travis: Add FreeBSD build + portability fixes 2020-06-28 15:37:24 +01:00
Geza Lore
5a4cc333fb
Travis: Add OS X build (#2440) 2020-06-22 10:13:54 +01:00
Geza Lore
aa595d40de
Do not fold IF with 'bx condition before V3Unknown (#2438)
Fixes #2425
2020-06-20 04:16:07 +01:00
Yutetsu TAKATSUKASA
19c2906a64
Improve code coverage of V3SplitVar.cpp (#2418) 2020-06-13 04:45:47 -04:00
Ludwig Rogiers
c367b671b6
Support VPI parameter and localparam (#2370) 2020-06-12 18:38:01 -04:00
Geza Lore
fac89c5d62
Close trace on vl_fatal/vl_finish (#2414)
This is required to get the last bit of FST trace and close the FST file
properly on $stop or assertion failure.
2020-06-12 07:15:42 +01:00
Conor McCullough
f40f0464e2 Fix replaceMulShift optimization (#2413) 2020-06-11 07:42:25 -04:00