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
5f333be947
Internals: Dump TraceDecl codes.
2022-04-10 19:40:27 -04:00
Geza Lore
fbd568dc47
Prep for multiple AstExecGraph. No functional change.
2022-04-10 12:00:17 +01:00
Wilson Snyder
e02f97854c
Deprecate 'vluint64_t' and similar types ( #3255 ).
2022-03-27 15:27:40 -04:00
Wilson Snyder
c3dd6f5344
Fix public function arguments that are arrayed ( #3316 ).
2022-03-05 16:19:53 -05:00
Wilson Snyder
b989ac6db5
Internals: Support linking recursive function calls (but not later stages)
2022-01-03 18:50:41 -05:00
Wilson Snyder
f1bb0544be
Internals: Cleanups towards static class members. No functional change intended.
2022-01-02 15:03:57 -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
ca42be982c
Copyright year update.
2022-01-01 08:26:40 -05:00
Wilson Snyder
fd45be3def
Internals: Fix class dump
2021-12-22 20:06:14 -05:00
Wilson Snyder
d753f36ebc
Internals: Add missing broken assertions & cloneTrees
2021-12-12 18:10:52 -05:00
Wilson Snyder
740fee660e
Fix associative array foreach loop ( #3229 ).
2021-12-11 18:38:23 -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
9a722ccf62
Internals: Cleanup of InitArray stuff. No functional change intended.
2021-12-11 11:22:04 -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
37e3c6da70
Internals: Add more const. No functional change intended.
2021-11-13 13:50:44 -05:00
Geza Lore
987ce927eb
Remove unused code. No functional change.
2021-11-09 19:46:19 +00:00
Geza Lore
381c87a1eb
Remove VN_CAST_CONST and VN_AS_CONST.
...
The _CONST suffix on these macros is only lexical notation, pointer
constness can be preserved by overloading the underlying
implementations appropriately. Given that the compiler will catch
invalid const usage (trying to assign a non-const pointer to a const
pointer variable, etc.), and that the declarations of symbols should
make their constness obvious, I see no reason to keep the _CONST
flavours.
2021-10-24 11:43:48 +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
d384a69877
Fix display has no time units on class function ( #3116 ).
2021-09-08 19:31:46 -04:00
Wilson Snyder
43aa3229fb
Support empty queue assignment to delete queue
2021-08-28 17:23:35 -04:00
Geza Lore
536bdf506e
Fix re-evaluation of logic dependent on state set in DPI exports ( #3091 ).
...
Verilator should now correctly re-evaluate any logic that depends on
state set in a DPI exported function, including if the DPI export is
called outside eval, or if the DPI export is called from a DPI import.
Whenever the design contains a DPI exported function that sets a
non-local variable, we create a global __Vdpi_export_trigger flag, that
is set in the body of the DPI export, and make all variables set in any
DPI exported functions dependent on this flag (this ensures correct
ordering and change detection on state set in DPI exports when needed).
The DPI export trigger flag is cleared at the end of eval, which ensured
calls to DPI exports outside of eval are detected. Additionally the
ordering is modifies to assume that any call to a 'context' DPI import
might call DPI exports by adding an edge to the ordering graph from the
logic vertex containing the call to the DPI import to the DPI export
trigger variable vertex (note the standard does not allow calls to DPI
exports from DPI imports that were not imported with 'context', so we
do not enforce ordering on those).
2021-08-12 21:43:32 +01:00
Geza Lore
5adc856950
Tests: ignore all hashes in files_identical
...
Also add 'h' prefix to all printed hashes, to reduce ambiguity. No
functional change.
2021-08-11 16:55:11 +01:00
Geza Lore
4ab4c0c8ba
Emit parameter values as 'static constexpr' instead of enum
...
All parameters that are required in the output are now emitted as
'static constexpr, except for string or array of strings parameters,
which are still emitted as 'static const' (required as std::string is
not a literal type, so cannot be constexpr). This simplifies handling
of parameters and supports 'real' parameters.
2021-07-23 17:20:26 +01:00
Geza Lore
ddef61d62e
Internals: Move AstNodeCCall::m_selfPointer to AstCCall
...
Other sub-classes of AstNodeCCall do not need the self pointer. Moving
it into the specific sub-class that needs it clarifies V3Descope and
Emit. No functional change intended.
2021-07-13 17:47:42 +01:00
Geza Lore
a4f5d95648
Fix -G to treat simple integer literals as signed ( #3060 )
...
The -G option now correctly parses simple integer literals as signed
numbers, which is in line with the standard and is significant when
overriding parameters without a type specifier.
Fixes #3060
2021-07-08 13:42:25 +01:00
Wilson Snyder
3aa6332f25
Fix Codacy warnings. No functional change.
2021-07-07 19:42:49 -04:00
Geza Lore
708abe0dd1
Introduce model interface class, make $root part or Syms ( #3036 )
...
This patch implements #3032 . Verilator creates a module representing the
SystemVerilog $root scope (V3LinkLevel::wrapTop). Until now, this was
called the "TOP" module, which also acted as the user instantiated model
class. Syms used to hold a pointer to this root module, but hold
instances of any submodule. This patch renames this root scope module
from "TOP" to "$root", and introduces a separate model class which is
now an interface class. As the root module is no longer the user
interface class, it can now be made an instance of Syms, just like any
other submodule. This allows absolute references into the root module to
avoid an additional pointer indirection resulting in a potential speedup
(about 1.5% on OpenTitan). The model class now also contains all non
design specific generated code (e.g.: eval loops, trace config, etc),
which additionally simplifies Verilator internals.
Please see the updated documentation for the model interface changes.
2021-06-30 16:35:40 +01:00
Wilson Snyder
512fe0a2d1
Internals: Add const. No functional change.
2021-06-20 18:33:13 -04:00
Geza Lore
fcb8bc22bd
Internals: Remove m_classPrefix from AstNodeVarRef/AstNodeCCall
...
This is now redundant and can be reconstituted in V3EmitC without being
explicitly stored.
2021-06-19 20:42:38 +01:00
Geza Lore
729bd268de
Internals: make AstCFunc::m_isStatic a bool.
...
All functions are now known to be static or not static when they are
created, so turn the isStatic flag into a bool (from VBoolOrUnknown).
2021-06-16 14:24:28 +01:00
Geza Lore
6c332a2f8e
Emit: Remove emitVarCmtChg
...
emitVarCmtChg used to emit MTask affinity of variables in comments in
the generated header. This causes unnecessary changes in the output when
scheduling changes slightly between compilation, hindering ccache reuse.
If needing this info for debugging Verilator, add a separate dump file
instead of emitting it in the generated code.
2021-06-16 14:24:25 +01:00
Geza Lore
a8f83d5758
Construct AstExecGraph implementation outside of V3EmitC. ( #3022 )
...
The goal of this patch is to move functionality related to constructing
the thread entry points and then invoking them out of V3EmitC (and into
V3Partition). The long term goal being enabling V3EmitC to emit
functions partitioned based on header dependencies. V3EmitC having to
deal with only AstCFunc instances and no other magic will facilitate
this.
In this patch:
- We construct AstCFuncs for each thread entry point in
V3Partition::finalize and move AstMTaskBody nodes under these functions.
- Add the invocation of the threads as text statements within the
AstExecGraph, so they are still invoked where the exec graph is located.
(the entry point functions are still referenced via AstCCall or
AstAddOrCFunc, so lazy declarations of referenced functions are created
automatically).
- Explicitly handle MTask state variables (VlMTaskVertex in
verilated_threads.h) within Verilator, so no need to text bash a lot of
these any more (some text refs still remain but they are all created
next to each other within V3Partition.cpp).
The effect of all this on the emitted code should be nothing but some
identifier/ordering changes. No functional change intended.
2021-06-16 12:18:56 +01:00
Geza Lore
7280307a39
Implement DPI import/export as loose functions
2021-06-13 15:06:28 +01:00
Geza Lore
c207e98306
Implement a distinct constant pool ( #3013 )
...
What previously used to be per module static constants created in
V3Table and V3Prelim are now merged globally within the whole model and
emitted as part of a separate constant pool. Members of the constant
pool are global variables which are declared lazily when used (similar to
loose methods).
2021-06-13 15:05:55 +01:00
Geza Lore
60d5f0e86b
Emit model implementation as loose methods. ( #3006 )
...
This patch introduces the concept of 'loose' methods, which semantically
are methods, but are declared as global functions, and are passed an
explicit 'self' pointer. This enables these methods to be declared
outside the class, only when they are needed, therefore removing the
header dependency. The bulk of the emitted model implementation now uses
loose methods.
2021-06-13 14:33:11 +01:00
Geza Lore
61c9866a1e
Internals: Generate ASTGEN_SUPER_* macros instead of expanding. ( #2975 )
...
astgen now generates ASTGEN_SUPER_* macros, instead of expanding the
ASTGEN_SUPER itself. This means that V3AstNodes.h itself can be included
in V3Ast.h, which helps IDEs (namely CLion) find definitions in
V3AstNodes.h a lot better. Albeit this is a little bit more boilerplate,
writing constructors of Ast nodes should be a lot rarer than trying to
find their definitions, so hopefully this is an improvement overall.
astgen will error if the developer calls the wrong superclass
constructor.
2021-05-22 11:13:02 +01:00
Wilson Snyder
2ca21c01d2
Internal coverage improvements
2021-03-28 20:03:08 -04:00
Wilson Snyder
e3788e871e
Fix unpacked-in-class array reference assignments
2021-03-13 13:04:13 -05:00
Wilson Snyder
1b4a82acde
Verilated signals now use VlUnpacked in place of C arrays. ( #2774 ) partial.
2021-03-13 12:37:19 -05:00
Wilson Snyder
689d5b5090
Internals: Add std:: to make_pair. No functional change.
2021-03-12 18:17:49 -05:00
Wilson Snyder
9650aefa42
Internals: Cleanup unneeded {}. No functional change
2021-02-21 21:25:21 -05:00
Julien Margetts
a11700271f
Add LATCH and NOLATCH warnings ( #1609 ) ( #2740 ).
2021-01-05 14:26:01 -05:00
Wilson Snyder
bd602d0e2d
Copyright year update
2021-01-01 10:29:54 -05:00
Wilson Snyder
9f8b17230a
Cleanup extra space on 'VlWide<...>>'
2020-12-23 18:09:12 -05:00
Wilson Snyder
b7a533109d
Fix cppcheck warnings. No functional change intended.
2020-12-23 15:22:02 -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
13e88106da
Internals:Cleanup dpiTypesToStringConverter. No functional change is intended. ( #2698 )
2020-12-13 16:05:06 +09:00
Wilson Snyder
517fdb7587
Support queue of arrays
2020-12-12 19:19:32 -05:00
Wilson Snyder
251812638d
Internals: Rename accessor. No functional change.
2020-12-07 18:50:31 -05:00
Wilson Snyder
f858dd44ac
Fix :: references to forward classes
2020-12-05 16:23:20 -05:00
Wilson Snyder
d21b4e3fc7
Internal cast preparatory cleanups.
2020-11-29 18:26:06 -05:00
Wilson Snyder
aa360052a8
Internals: Code movement, no functional change.
2020-11-28 22:01:11 -05:00
Wilson Snyder
e09f039a36
Internals: Remove dead code. No functional change.
2020-11-28 21:43:37 -05:00
Wilson Snyder
a37866ee92
Support 'super'.
2020-11-26 11:06:59 -05:00
Wilson Snyder
bf24fa9478
Fix access to non-overridden base class variable ( #2654 ).
2020-11-24 22:46:02 -05:00
Wilson Snyder
e1c45440fc
Internals: Rename packagep(). No functional change.
2020-11-24 21:56:03 -05:00
Wilson Snyder
fd21a41acd
Internals: Minor cleanups before class fix ( #2654 ). No functional change intended.
2020-11-24 21:28:26 -05:00
Wilson Snyder
c371a63d41
Internals: Fix missing final. No functional change.
2020-11-19 08:23:15 -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
b84c9bb4c0
Internals: Show scope debug information.
2020-11-11 19:00:10 -05:00
Wilson Snyder
79d33bf1ee
Use C++11 for loops, from clang-migrate. No functional change intended
2020-11-10 22:10:38 -05:00
Wilson Snyder
44eb362a18
clang-tidy cleanups. No functional change intended.
2020-11-10 21:40:14 -05:00
Wilson Snyder
ff5465308b
Internals: Tree dump DEFAULT pattern. No functional change.
2020-11-07 11:56:24 -05:00
Wilson Snyder
80284c437e
Internals: Refactor some VAssign printing. No functional change.
2020-11-01 16:59:23 -05:00
Wilson Snyder
2aedc91151
Support queue and associative array 'with' statements. ( #2616 )
2020-11-01 10:56:07 -05:00
Wilson Snyder
a56e0a6e89
Internals: Prep for type method. No functional change intended.
2020-10-17 16:48:11 -04:00
Wilson Snyder
451e961e03
Internals: Prep for type method. No functional change intended.
2020-10-17 16:04:29 -04:00
Wilson Snyder
4ba2637360
Fix class wide member display ( #2567 ).
2020-09-25 07:37:38 -04:00
Piotr Binkowski
57a53c014d
Internals: Add proper delegation to dump methods ( #2555 )
2020-09-16 21:52:24 -04:00
Wilson Snyder
1899a875a4
Internals: Create VAccess class. No functional change intended.
2020-09-07 17:09:25 -04:00
Wilson Snyder
3d073c9534
Fix class extends to use virtual destruction
2020-08-23 20:00:39 -04:00
Wilson Snyder
9702d11657
Support class extern.
2020-08-22 19:46:21 -04:00
Wilson Snyder
6013b54f7b
clang-tidy cleanups. No functional change intended.
2020-08-16 14:55:46 -04:00
Wilson Snyder
ac04e85a1c
C++11: More range for. No functional change intended.
2020-08-16 12:54:32 -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
72d2cff0a1
C++11: Use member declaration initalizations. 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
Wilson Snyder
7c54a451a9
C++11: Remove pre-c11 VL_OVERRIDE etc. 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
Wilson Snyder
fdb4d3a145
Fix coredump with UVM parse, caused by recent commit.
2020-07-11 20:32:27 -04:00
Wilson Snyder
bb8899f307
Internals: Rename AstPackageRef as may point to class.
2020-07-11 10:29:15 -04:00
Geza Lore
1632160fb1
Internals: Remove redunand SenItem nodes ( #2457 )
2020-07-05 13:13:03 -04:00
Yutetsu TAKATSUKASA
271fa5fe3c
Internals: move parseParamLiteral() to AstConst . No functional change intended. ( #2452 )
2020-07-02 07:29:52 -04:00
Wilson Snyder
6de78d58fa
Add new UNSUPPORTED error code to replace most previous Unsupported: messages.
2020-06-09 19:20:16 -04:00
Wilson Snyder
ae448e5ef9
Fix older GCC compiler error.
2020-06-01 09:08:50 -04:00
Wilson Snyder
a57826b125
Line Coverage now tracks all statement lines, not just branch lines.
2020-05-31 15:52:17 -04:00
Geza Lore
656c460605
Add --dump-tree-addrids developer option
2020-05-31 20:21:55 +01:00
Geza Lore
95534fa5c5
Remove unused headers ( #2389 )
2020-05-31 20:21:07 +01:00
Wilson Snyder
35fc8b7259
Debug: Show column numbers in .tree files
2020-05-30 10:08:30 -04:00
Wilson Snyder
f7249ad23a
Internals: AstRefDType points to AstTypedef instead of sub-dtype, in prep for future commits.
2020-05-24 14:22:06 -04:00
Wilson Snyder
71651718d4
Internals: Track :: in AstDot parsing. No parsing change intended.
2020-05-23 12:44:15 -04:00
Geza Lore
ac09ad3ffd
Minor improvements to DPI open array handling ( #2316 )
...
- Allow arbitrary number of open array dimensions, not just 3. Note
right now this only works with the array querying functions specified
in IEEE 1800-2017 H.12.2
- Issue error when passing dynamic array or queue as DPI open array
(currently unsupported)
- Also tweaked AstVar::vlArgTypeRecurse, which should now error or fail
for unsupported types.
2020-05-08 18:22:44 +01:00
Wilson Snyder
546ccd56c4
Internals: Enable future JumpGo to non-end. No functional change intended.
2020-05-06 21:33:05 -04:00
Wilson Snyder
70549e1a64
Internals: Parse lifetime directives; still unsupported.
2020-04-26 12:45:06 -04:00
Wilson Snyder
7176aee852
Internals: Parse fork and delays, but then still report unsupported.
2020-04-22 21:31:40 -04:00
Wilson Snyder
def40fab9b
Internals: Rename VSigning
2020-04-19 21:19:09 -04:00
Wilson Snyder
e6f345e45d
Internal: clang-tidy fixes. No functional change.
2020-04-15 21:47:37 -04:00
Wilson Snyder
d4f7f5297a
Support IEEE time units and time precisions, #234 . ( #2253 )
...
Includes `timescale, $printtimescale, $timeformat.
VL_TIME_MULTIPLIER, VL_TIME_PRECISION, VL_TIME_UNIT have been removed
and the time precision must now match the SystemC time precision.
To get closer behavior to older versions, use e.g. --timescale-override
"1ps/1ps".
2020-04-15 19:39:03 -04:00
Wilson Snyder
f3308d236b
clang-format remaining sources. No functional change.
2020-04-15 07:58:34 -04:00
Wilson Snyder
1a6c2fc55d
Fix class members getting misoptimized away.
2020-04-10 21:10:21 -04:00
Geza Lore
0cfa828572
Fix DPI import/export to be standard compliant, #2236 .
2020-04-07 19:07:47 -04:00
Wilson Snyder
6eadb8e771
Add simplistic class support with many restrictions, see manual, #377 .
2020-04-05 09:30:23 -04:00
Wilson Snyder
bf17bb4648
Fix codacity warnings
2020-04-04 20:08:58 -04:00
Wilson Snyder
0cf44a9c4f
Internals: Refactor InsideRange common code. No functional change intended.
2020-03-30 18:12:50 -04:00
Wilson Snyder
1ce360ed5b
Add SPDX license identifiers. No functional change.
2020-03-21 11:24:24 -04:00
Wilson Snyder
808c958d42
Internals: Add AstNodeCCall and other items towards classes.
2020-03-07 12:52:11 -05:00
Wilson Snyder
e70cba77e6
Add support for dynamic arrays, #379 .
2020-03-07 10:24:27 -05:00
Wilson Snyder
68b6a0b667
Fix genblk naming with directly nested generate blocks, #2176 .
2020-02-25 22:21:16 -05:00
Wilson Snyder
609a5dc26d
Fix cppcheck warnings. No functional change intended.
2020-02-03 23:21:56 -05:00
Wilson Snyder
2ca9f73b31
Internals: Cleanup Emit towards constructor/destructor output.
2020-02-02 21:15:07 -05:00
Wilson Snyder
119162912a
Internals: Determine emit forward declaraions in new pass, towards classes.
2020-02-01 16:51:05 -05:00
Wilson Snyder
80d94891e1
Internals: Allow const & non-member CFuncs for class branch. No functional change.
2020-02-01 10:57:55 -05:00
Wilson Snyder
68fa82fb14
Support $typename, and use to cleanup error messages.
2020-01-26 13:21:25 -05:00
Geza Lore
ef5250f0ca
Internals: Further performance improvement of AstNode type tests, #2138 . No functional change intended.
...
Replace the virtual type() method on AstNode with a non-virtual, inlined
accessor to a const member variable m_type. This means that in order to be
able to use this for type testing, it needs to be initialized based on the
final type of the node. This is achieved by passing the relevant AstType
value back through the constructor call chain. Most of the boilerplate
involved is auto generated by first feeding V3AstNodes.h through astgen to
get V3AstNodes__gen.h, which is then included in V3Ast.h. No client code
needs to be aware and there is no functional change intended.
Eliminating the virtual function call to fetch the node type identifier
results in measured compilation speed improvement of 5-10% as it
eliminates up to 20% of all mispredicted branches from the execution.
2020-01-25 15:29:44 -05:00
Wilson Snyder
623c4ec103
Internals: Create VL_DO_DANGLING. No functional change intended.
2020-01-16 20:17:11 -05:00
Wilson Snyder
023526ad4b
Internals: Minor refactoring from class branch.
2020-01-15 20:18:12 -05:00
Wilson Snyder
f23fe8fd84
Update copyright year.
2020-01-06 18:05:53 -05:00
Stefan Wallentowitz
9a54b2144b
Fix queue issues, bug1643.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2019-12-18 18:17:18 -05:00
Wilson Snyder
53c6b7df63
Internals: Rename NodeClassDType. No functional change.
2019-12-16 22:46:09 -05:00
Wilson Snyder
83a1bd0675
Support immediate cover statements & refactor coverage internals.
2019-12-16 21:44:20 -05:00
Wilson Snyder
2408de16a0
Support bounded queues.
2019-12-14 21:39:47 -05:00
Wilson Snyder
700f2072c0
Framework for WDatas being vectors of 64-bit EDatas, but not supporting this at this time.
2019-12-08 21:36:38 -05:00
Wilson Snyder
809a6de9cd
Fix template brackets to avoid C++11, bug1617.
2019-12-02 06:19:33 -05:00
Wilson Snyder
e28175108f
Support queues (excluding {} notation and pattern assignments), bug545.
2019-12-01 12:35:49 -05:00
Wilson Snyder
b81295230a
Support associative arrays.
2019-12-01 11:52:48 -05:00
Wilson Snyder
38e586fabe
Internals: Misc refectoring for assoc/queues.
2019-12-01 06:09:58 -05:00
Wilson Snyder
21a380def0
Rework variable emit to prep for other data types.
2019-11-12 21:52:25 -05:00
Wilson Snyder
4767083a72
Internals: Rework AstInitArray to have O(1) access. No functional change intended.
2019-11-09 17:12:26 -05:00
Wilson Snyder
5811ec07e6
Update URLs to https://verilator.org
2019-11-07 22:33:59 -05:00
Wilson Snyder
352adbed74
Codacy/Cppcheck cleanups.
2019-10-24 22:40:15 -04:00
Wilson Snyder
94f7133c6f
Internals: make dump const. No functional change intended.
2019-10-20 11:49:41 -04:00
Wilson Snyder
91f1acd85f
Add --protect-ids to obscure information in objects, bug1521.
2019-10-06 13:24:21 -04:00
Wilson Snyder
307549e8a6
Internals: Fix some cppcheck warnings.
2019-10-06 08:20:02 -04:00
Wilson Snyder
f1c04b5d25
Fix extra space in mtask comment. No functional change.
2019-10-04 22:54:57 -04:00
Wilson Snyder
771a301f66
Commentary: Remove newlines, upsets some patches. No functional change.
2019-10-04 20:17:11 -04:00
Wilson Snyder
a9954a71c3
Fix case statements with strings, bug1536.
2019-10-04 19:13:39 -04:00
Todd Strader
28b9db1903
Add AstVFile and AstTextBlock, towards bug1490.
2019-09-27 04:24:38 -04:00
Wilson Snyder
3a720204c2
Internals: Remove m_logicMap as m_detailedMap covers it. No functional change intended.
2019-08-04 08:16:24 -04:00
Wilson Snyder
97561bf064
When showing an error, show source code.
2019-07-14 21:42:03 -04:00
Wilson Snyder
0f857ce423
In errors, single quote signals and other from-user data.
2019-07-11 22:09:30 -04:00
Wilson Snyder
9af84c71f5
Internals: More UASSERT_OBJ conversions. No functional change intended.
2019-07-07 09:01:36 -04:00
Wilson Snyder
8548ecfdac
Internals: Add UASSERT_OBJ macro to replace hand-done ifs. No functional change intended.
...
This makes it easier to filter out correctly zero code-coverage lines.
2019-07-06 12:57:50 -04:00
Wilson Snyder
01ef7122e9
Internals: Add lcov code coverage markers.
2019-06-30 22:37:03 -04:00
Wilson Snyder
b83b606267
Internals: Detab and fix spacing style issues. No functional change.
...
When diff, recommend using "git diff --ignore-all-space"
When merging, recommend using "git merge -Xignore-all-space"
2019-05-19 16:13:13 -04:00
Kanad Kanhere
3411279294
Internals: Relocate quoteNameControls, part of bug1444.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2019-05-16 21:44:01 -04:00
Todd Strader
eac3458647
Internals: V3Number tracks node information, part of bug1305.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2019-05-09 20:03:19 -04:00
Wilson Snyder
0094cd7a81
Internals: Spacing fixes. No functional change.
2019-03-13 19:47:47 -04:00
Wilson Snyder
60f2f176a2
Fix DPI export void compiler error, bug1391.
2019-01-16 00:38:42 -05:00
Wilson Snyder
a2a09253a2
Internals: Show static funcs.
2019-01-12 09:43:24 -05:00
Wilson Snyder
ef884143d1
Add circular typedef error, bug1388.
2019-01-12 09:33:57 -05:00
Wilson Snyder
3505486ec8
Internals: Spacing; fix assertion
2019-01-05 05:46:37 -05:00
Wilson Snyder
8a4aeddbb0
Copyright year update.
2019-01-03 19:17:22 -05:00
Wilson Snyder
ede7236945
For --xml, add additional var information, bug1372.
2018-12-06 07:12:39 -05:00
Wilson Snyder
ad2929dff0
Support "ref" and "const ref" pins and functions, bug1360.
2018-10-30 20:50:09 -04:00
Wilson Snyder
b8098098d8
Internals: Refactor input/output to new class in prep for ref support.
2018-10-27 17:29:00 -04:00
Wilson Snyder
304a24d03a
Internals: Fix many clang-tidy issues. No functional change intended.
2018-10-14 18:39:33 -04:00
Wilson Snyder
5ae1ce90ad
Internals: Refactor into cvtToHex function. No functional change.
2018-10-14 16:25:36 -04:00
Wilson Snyder
d87b9d25ca
Internals: Cleanup and standardize include order. No functional change intended.
2018-10-14 13:59:40 -04:00
Wilson Snyder
595419b370
Internals: Sort includes for clang-tidy. No functional change intended.
2018-10-14 07:04:18 -04:00
Wilson Snyder
e8b8b33ff6
Internals: Cleanup find with chars for clang-tidy. No functional change.
2018-10-13 22:28:59 -04:00
Wilson Snyder
d11592cadd
Support signal types in FST dumps, bug1358.
2018-10-04 20:24:41 -04:00
Wilson Snyder
8ef9ac7dba
Support in/out directions in FST dumps, bug1358.
2018-10-03 19:51:05 -04:00
Wilson Snyder
ec8dbbffed
MAJOR: Add multithreaded model generation.
2018-07-22 20:54:28 -04:00
Wilson Snyder
05a8a9ee28
Remove NULL checks of this, as upsets some compilers.
2018-05-26 08:28:19 -04:00
Wilson Snyder
02f18fc21b
Merge from master
2018-03-15 23:31:59 -04:00
Wilson Snyder
7922a1de28
Internals: Misc cleanups related to V3LinkDot. No functional change intended.
2018-03-15 19:46:05 -04:00
Wilson Snyder
2c30aecc5b
Merge from master
2018-03-10 16:51:34 -05:00
Wilson Snyder
770045676f
Internals: Split some extremely long lines. No functional change.
2018-03-10 16:32:04 -05:00
Wilson Snyder
597d28b505
Fix internals to make null-pointer-check clean. Also add more const's. No functional change intended, but likely something will break.
2018-02-01 21:32:58 -05:00
Wilson Snyder
94e8cf1de9
Internals: Use explicit std:: instead of using namespace std. No functional change intended.
2018-02-01 21:24:41 -05:00
Wilson Snyder
8e65d93d6d
Copyright year update. No functional change.
2018-01-02 18:05:06 -05:00
Wilson Snyder
49fe4d081c
Support DPI open arrays, bug909, bug1245.
2017-12-17 16:28:58 -05:00
Wilson Snyder
bf3f111ca4
Internals: Move VLVF flags to common function. No functional change.
2017-12-16 10:07:15 -05:00
Wilson Snyder
d1b8f53711
Support DPI time and svLogicVal.
...
Note older version incorrectly assumed svBitVal even for logicals.
2017-12-09 20:17:37 -05:00
Wilson Snyder
ae9179f412
Fix partial slicing with pattern assignments, bug991.
2017-11-23 14:55:32 -05:00
Wilson Snyder
a579e9273b
Support self-recursive modules, bug659.
2017-11-18 17:42:35 -05:00
John Coiner
f63e946f04
Internals: Add consts. No functional change.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2017-11-02 18:02:11 -04:00
Wilson Snyder
cc0b780412
Internals: More use of unordered_map/set. No functional change intended.
2017-10-18 18:22:58 -04:00
Wilson Snyder
75aab4e9d2
Fix conditional slices and add related optimizations.
2017-10-04 21:27:34 -04:00
Wilson Snyder
c2e8062f84
Verilated headers no longer "use namespace std;"
2017-09-23 07:32:37 -04:00
Wilson Snyder
89c8449ec0
Support package export, bug1217.
2017-09-20 21:04:59 -04:00
Wilson Snyder
ce879122bb
Fix --assert with complex case statements, bug1164.
2017-05-17 20:15:40 -04:00
Wilson Snyder
be6a3d0f10
Fix wreal not handling continuous assign, bug1150.
2017-03-30 18:32:37 -04:00
Wilson Snyder
e6d7e7e329
Version bump
2017-01-15 12:13:13 -05:00
Wilson Snyder
183cabc77d
Internals: Have cloning return node's type to avoid casts. No functional change.
2016-11-08 21:16:22 -05:00
Wilson Snyder
04977ef721
Internals: Show clocker in debug dumps. Part of bug1009.
2016-05-05 22:40:19 -04:00
Wilson Snyder
a509b6a21c
Internals: Fix compares to null, ongoing part of bug1030. No functional change intended.
2016-02-08 22:15:44 -05:00
Wilson Snyder
b738d1960a
Copyright year update
2016-01-06 20:36:41 -05:00
Wilson Snyder
00759f777e
Fix dpi imports inside generates.
2015-06-16 19:27:18 -04:00
Wilson Snyder
6ac672b4a3
Fix SystemC arrayed bit vectors, bug886.
2015-02-25 21:09:55 -05:00
Wilson Snyder
8323092a0c
Fix cppcheck warnings. No functional change.
2015-02-09 21:05:27 -05:00
Wilson Snyder
a6743588b6
Fix UNOPTFLAT change detect on multidim arrays, bug872.
2015-01-21 20:43:21 -05:00
Wilson Snyder
4c91ade61d
Copyright year update
2015-01-07 18:25:53 -05:00
Wilson Snyder
43be4cf2b5
Add 'string' printing and comparisons, bug746, bug747, etc.
2014-11-28 15:01:50 -05:00
Wilson Snyder
8b457b9b66
Internal: Rename string functions. No functional change.
2014-11-28 13:50:37 -05:00
Wilson Snyder
3f82fd2f37
Add public enums, bug833.
2014-11-07 07:50:11 -05:00
Wilson Snyder
fe5bf01b25
Fix dpiGetContext in dotted scopes, bug740.
2014-07-21 20:55:52 -04:00
Wilson Snyder
2e10555f03
Fix tracing of packed arrays without --trace-structs, bug742.
2014-04-15 20:20:45 -04:00
Wilson Snyder
0dbdbffba7
Fix double I/O port warnings.
2014-04-15 18:50:04 -04:00
Wilson Snyder
2d61e0270e
Support case inside, bug708.
2014-01-20 21:59:53 -05:00
Wilson Snyder
4422de0c6c
Copyright year update.
2014-01-06 19:28:57 -05:00
Wilson Snyder
bcefc17631
Support modport import, bug696.
2013-12-21 06:51:15 -05:00
Wilson Snyder
23bb045a72
Support interfaces and modports, bug102.
2013-05-27 21:39:19 -04:00
Wilson Snyder
8e2617ab8d
Internals: V3Inline support for future hard-no-inline. No functional change.
2013-05-26 11:17:42 -04:00
Wilson Snyder
24fcae4f49
Internals: When broken link fatal, say which rule violated
2013-05-25 17:05:22 -04:00
Wilson Snyder
6a69813326
Internals: Renames for interfaces. No functional change.
2013-05-18 19:45:52 -04:00
Wilson Snyder
d581582339
Add ALWCOMBORDER warning.
2013-04-30 22:55:28 -04:00
Wilson Snyder
345a5d5646
Add --pins-sc-uint and --pins-sc-biguint, bug638.
2013-04-26 21:02:32 -04:00
Wilson Snyder
772a3a97eb
Internals: Functions in order. No functional change.
2013-02-18 12:15:50 -05:00
Wilson Snyder
929aeebf12
Support , and related functions, bug448.
2013-01-20 12:19:22 -05:00
Wilson Snyder
de4016dcff
Internals: Ast classes create declRange().
2013-01-17 20:41:45 -05:00
Jeremy Bennett
8b47c4e307
Fix loosing logic/bit difference and -x-initial-edge fallout, bug604.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2013-01-17 07:16:19 -05:00
Wilson Snyder
6d1b42bedb
Fix implicit one bit parameter selection, bug603.
2013-01-16 20:58:48 -05:00
Wilson Snyder
f0a4bd28b6
Comment about -x-initial-edge and logic/bit.
2013-01-16 20:47:22 -05:00
Wilson Snyder
8127a79cb1
Fix nested packed arrays and structs, bug600.
...
IMPORTANT: Packed arrays are now represented as a single linear vector in
Verilated models this may affect packed arrays that are public or accessed via the VPI.
2013-01-14 21:49:22 -05:00
Wilson Snyder
7f5220a6ca
Internals: Fix marking of packed vs unpacked wires.
2013-01-13 22:18:57 -05:00
Wilson Snyder
7a8184d206
Internals: Remove dimension and use only dtypes for V3Width.
2013-01-13 15:21:38 -05:00
Wilson Snyder
dfc11da2ce
Internals: Dump array bounds in tree file.
2013-01-13 14:30:56 -05:00
Wilson Snyder
0985b82760
Commentary
2013-01-13 09:48:12 -05:00
Wilson Snyder
5c7a6e278f
Internals: Split into packed and unpacked array types
2013-01-12 16:19:25 -05:00
Wilson Snyder
a8bbf7231b
Copyright year update.
2013-01-01 09:42:59 -05:00
Wilson Snyder
229d854607
Fix package resolution of parameters, bug586.
2012-12-31 17:05:13 -05:00
Wilson Snyder
cc47ba2404
Support "unsigned int" DPI import functions, msg966.
2012-12-03 20:43:13 -05:00
Wilson Snyder
6339159b04
MAJOR: Support packed structures and unions, bug181.
2012-07-29 10:16:20 -04:00
Wilson Snyder
aec019991c
Tests: Misc fixes from struct branch.
2012-07-28 14:05:30 -04:00
Wilson Snyder
b52d94273c
Internals: Move variable referencing into LinkDot in support of structs.
2012-07-24 06:26:35 -04:00
Wilson Snyder
09ebc0c163
Internals: Fix 0x tree debug suffix. Misc merges from struct. No functional change.
2012-07-22 22:48:39 -04:00
Wilson Snyder
8b9b7178a2
Internals: MAJOR CHANGE. Combine V3Link and V3LinkDot stages for structures.
...
Functionality should be similar, but may introduce instability in resolving variables/cells.
Final merge from dot.
2012-07-21 17:12:42 -04:00
Wilson Snyder
b7d1c34aa6
Internals: Add more sym table debug, renames. Merge from dot. No functional change
2012-07-19 21:18:39 -04:00
Wilson Snyder
c6e7d87960
Commentary - Remove author lines as amany contributors now
2012-05-24 19:19:48 -04:00
Wilson Snyder
b31a7cdcbf
Internals: Fix uninitialized m_alhs
2012-05-08 20:05:43 -04:00
Wilson Snyder
ff69bdbc6f
Debug: Add @ to end of dtype to avoid miscutting
2012-05-07 19:01:45 -04:00
Wilson Snyder
33c9591a4b
Internals: Move widthPow2. No functional change.
2012-04-29 11:34:25 -04:00
Wilson Snyder
87e8736823
IMPORTANT: Major internal changes for supporting complex data types.
...
Adds dtype() to every node, keep global table of dtypes and remove duplicates.
Final merge from dtype branch.
2012-04-29 10:14:13 -04:00
Wilson Snyder
641024c235
Fix generated inouts with duplicated modules, bug498.
2012-04-27 19:41:13 -04:00
Wilson Snyder
d9598db117
Internals: In debug dumps, show user pointers
2012-04-27 19:01:08 -04:00
Wilson Snyder
68046244dd
Fix 'output tri0' 2001 declaration; Var characteristics must be attributes
2012-04-24 07:45:02 -04:00
Wilson Snyder
0048b04540
Merge from Tristate branch, part 1 of 2. No functional change intended
2012-04-21 19:30:08 -04:00
Wilson Snyder
4d0b964e36
Internals: Merge from dtype. Create subDTypep. No functional change intended.
2012-04-14 12:43:03 -04:00
Wilson Snyder
50edef4ab2
Add Emacs indentation line. No functional change
2012-04-12 21:08:20 -04:00
Wilson Snyder
de696b7092
Debug: Print dtype big endian correctly
2012-03-30 21:50:37 -04:00
Wilson Snyder
37839e2709
Cleanup trailing whitespace. No functional change
2012-03-20 16:01:53 -04:00
Wilson Snyder
8687dcbce1
Internals: Add isRanged, more debug. No functional change.
2012-03-04 16:18:41 -05:00
Wilson Snyder
764399256c
Internals: Rename gdb dump utilities, add fileline dump
2012-03-03 11:29:09 -05:00
Wilson Snyder
e6244ca204
Internals: Move dimension accessors from AstVar to AstNodeDType.
2012-02-28 21:33:17 -05:00
Wilson Snyder
d699247269
Internals: In AstBasicDType avoid use of Range for constants. No functional change.
2012-02-20 11:48:31 -05:00