Wilson Snyder
3590f7e206
Remove unused VL_DISABLE_INTRINSICS, use VL_PORTABLE_ONLY instead
2020-12-13 19:14:09 -05:00
Marlon James
457d1a66f2
Fix VPI memory word indexing ( #2695 )
...
* Test that indexing into memory word fails
* VPI: don't index into memory word
Memory and memory words share a VerilatedVar, so check for memory word before attempting to index.
2020-12-12 22:47:47 -05:00
Wilson Snyder
517fdb7587
Support queue of arrays
2020-12-12 19:19:32 -05:00
Wilson Snyder
93304f3b82
Internals: Reorder library code. No functional change.
2020-12-12 08:58:03 -05:00
Marlon James
30546afdab
Fix VPI range iterator null return ( #2691 )
...
* Test that range iterator exhausts after 1 dimension
* Separate range iterator from range object
Range iterators should return NULL after all ranges have been returned
2020-12-12 08:11:08 -05:00
Wilson Snyder
82d8fe0c27
Internal coverage fixes
2020-12-10 22:01:56 -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
ab4ad9965c
Fix DPI open array handling issues, and do internal coverage ( #2350 ).
2020-12-09 22:15:34 -05:00
Wilson Snyder
7d05be802d
Misc internal coverage hole and related bug fixes
2020-12-09 19:18:12 -05:00
Wilson Snyder
74ef35d3b3
Support $cast and new CASTCONST warning.
2020-12-05 22:58:36 -05:00
Wilson Snyder
e3c32adad4
Rename static/thread misnamed variables. No functional change.
2020-12-01 19:32:01 -05:00
Wilson Snyder
b054d937cb
Rename static/thread misnamed variables. No functional change.
2020-12-01 19:01:20 -05:00
Wilson Snyder
212e8fb14b
Internals: Cleanup some inlines, use constexpr. No functional change intended.
2020-12-01 18:49:03 -05:00
Wilson Snyder
014e43f0ef
Reset index counts on clearing verilated_cov (static removal)
2020-12-01 18:30:25 -05:00
Wilson Snyder
9a9931fb9d
Support complex function arguments.
2020-11-28 13:46:14 -05:00
Wilson Snyder
f2d8e45d72
For performance, use unordered_set/map where possible. No functional change intended.
2020-11-25 20:57:30 -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
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
Yutetsu TAKATSUKASA
b500e57991
Add an overload of VL_CVT_PACK_STR_NN for lvalue ( #2651 )
2020-11-19 06:52:03 +09:00
Yutetsu TAKATSUKASA
19e4013ab5
Allow conversion from const void * to QData ( #2650 )
2020-11-18 23:44:45 +09:00
Wilson Snyder
82b2af3b83
Commentary
2020-11-17 22:48:37 -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
Wilson Snyder
1b0a48ea02
Internals: Use C++11 = default where obvious. No functional change intended.
2020-11-16 19:56:16 -05:00
Wilson Snyder
f6f7684ccd
Internal member initialization. No functional change intended.
2020-11-15 15:40:35 -05:00
Wilson Snyder
44eb362a18
clang-tidy cleanups. No functional change intended.
2020-11-10 21:40:14 -05:00
Kaleb Barrett
1c2384cb3d
Fix iteration over mutating list bug in VPI impl ( #2588 )
...
Previously, in any given VPI callback, if the callback body registered
the same callback, that registering would be processed in the currently
executing call to the call*Cbs function. In the worse case, this could
lead to an infinite loop.
2020-11-06 17:56:15 -05:00
Wilson Snyder
0505816d31
Fix C++14 deprecated random_shuffle.
2020-11-03 08:52:47 -05:00
Wilson Snyder
48bcf66ac7
Fix C++14 deprecated random_shuffle.
2020-11-02 20:07:58 -05:00
Wilson Snyder
0145d9d514
Fix C++14 deprecated random_shuffle.
2020-11-02 19:55:01 -05:00
Wilson Snyder
2aedc91151
Support queue and associative array 'with' statements. ( #2616 )
2020-11-01 10:56:07 -05:00
Wilson Snyder
3a53b32a32
Move queue code before assoc, as assoc will eventually use queues. No functional change.
2020-10-30 22:49:55 -04:00
Wilson Snyder
51b0963e61
Internals: Favor const for map keys. No functional change intended.
2020-10-30 18:00:40 -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
51d1235cda
Shorter stringify of empty queues, and better queue tests
2020-10-24 18:00:40 -04:00
Wilson Snyder
5d3dd52f13
Support queue slicing ( #2326 ).
2020-10-18 13:23:39 -04:00
Wilson Snyder
4576644591
Prep for future queue slicing.
2020-10-17 21:09:10 -04:00
Wilson Snyder
8750352495
Internal coverage: Cleanup some savable errors and coverage.
2020-10-13 19:26:16 -04:00
Markus Krause
0a9ae154be
introduce define for FST tracing ( #2592 )
...
This is to allow C++ verilator toplevel to support
multiple modes of waveform tracing
VM_TRACE_FST can be used inside a #if VM_TRACE
section to switch between classic .vcd tracing and the
more compact .fst format supported by GTKWAVE
2020-10-10 21:17:39 -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
Wilson Snyder
5033c906fd
Commentary ( #2577 )
2020-09-30 16:55:26 -04:00
Wilson Snyder
87e4a86fbb
Internal coverage improvements
2020-09-18 21:27:36 -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