Wilson Snyder
cbe1b8e266
Fix segfault exporting non-existant package ( #3535 ).
2022-08-08 17:53:50 -04:00
Mostafa Gamal
7b431b37c7
Fix struct pattern assignment ( #2328 ) ( #3517 ).
2022-07-25 17:46:22 -04:00
Arkadiusz Kozdra
542e324869
Wildcard index type support for associative arrays ( #3501 ).
...
Associative arrays that specify a wildcard index type may be indexed by
integral expressions of any size, with leading zeros removed
automatically. A natural representation for such expressions is a
string, especially that the standard explicitly specifies automatic
casts from string indices to bit vectors of equivalent size.
The automatic cast part is done implicitly by the existing type system.
A simpler way to just make this work would be to convert wildcard index
type to a string type directly in the parser code, but several new AST
classes are needed to make sure illegal method calls are detected.
The verilated data structure implementation is reused, because there is
no need for differentiating the behavior on C++ side.
2022-07-20 15:01:36 +02:00
Arkadiusz Kozdra
8377514127
Add support for $test$plusargs(expr) ( #3489 )
2022-07-11 06:21:35 -04:00
github action
a372e010bd
Apply 'make format'
2022-05-25 04:51:51 +00:00
Wilson Snyder
530817191e
Support non-ANSI interface port declarations ( #3439 ).
2022-05-25 00:50:50 -04:00
Krzysztof Bieganski
9edccfdffa
Initial support for intra-assignment timing controls, net delays ( #3427 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-05-17 19:19:44 +01:00
Krzysztof Bieganski
ecaa07a72a
Rename AstTimingControl to AstEventControl ( #3425 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-05-16 20:44:41 +01:00
Wilson Snyder
71dedccbbe
Support compile time trace signal selection with tracing_on/off ( #3323 ).
2022-05-12 22:28:08 -04:00
Wilson Snyder
bdfdc737a0
Internals: Cleanup V3Config. No functional change intended.
2022-05-11 00:47:52 -04:00
Wilson Snyder
3d045c3aee
Internals: Cleanup some verilog.y formatting. No functional change.
2022-05-09 00:37:51 -04:00
Wilson Snyder
5b2755d28d
Untabify verilog.y ( #3412 ). No functional change.
2022-05-08 20:46:18 -04:00
Geza Lore
b22e368b25
Add default parameters to some Ast nodes for convenience
...
Also update usage to utilize. No functional change.
2022-04-23 14:47:16 +01:00
Wilson Snyder
33105f017c
Commentary
2022-03-30 20:17:59 -04:00
Wilson Snyder
21e05c43dd
Removed the deprecated lint_off flag -msg; use -rule instead.
2022-01-17 16:04:06 -05:00
Geza Lore
f8c0169e82
Implement 'forceable' attribute
...
Using the 'forceable' directive in a configuration file, or the /*
verilator forceable */ metacomment on a variable declaration will
generate additional public signals that allow the specified signals to
be forced/released from the C++ code.
2022-01-16 15:31:37 +00:00
Geza Lore
539c9d4c63
Merge alternate 'force'/'release' implementation
...
- Add more tests, including for tracing.
- Apply some cleaner, more generic abstractions in the implementation.
- Use clearer AstRelease which is not an assignment.
2022-01-16 15:31:37 +00:00
Geza Lore
9a8c878f2d
Avoid repeated traversal for SC text sections in emit when not needed
...
Repeatedly traversing whole modules in emit (due to file splitting)
looking for `systemc_* sections can add up to a lot of time on large
designs that have been flattened and need to be split into many files.
Assuming `systemc_* is a rarely used feature, just don't bother if we
don't need to. This gain 9% verilation speed improvement on a large
benchmark.
2022-01-07 12:05:50 +00: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
80859a609a
Fix $fclose not accepting expressions ( #3237 ).
2022-01-01 16:48:15 -05:00
Wilson Snyder
f96d336b97
Internals: Pre-elaboration progress towards class parameters.
2022-01-01 12:50:43 -05:00
Wilson Snyder
0c3ffa1841
Support force/release ( #2491 ) ( #2593 ).
2022-01-01 12:24:19 -05:00
Wilson Snyder
ca42be982c
Copyright year update.
2022-01-01 08:26:40 -05:00
Wilson Snyder
6b0601fd54
Support lower dimension looping in foreach loops ( #3172 ).
2021-12-11 20:39:58 -05:00
Wilson Snyder
984ee624ed
Fix break under foreach loop ( #3230 ).
...
Internals: Move Foreach handling into V3Width.
2021-12-11 15:06:33 -05:00
Wilson Snyder
04e0c7e4f1
Support tracing through --hierarchical/--lib-create libraries ( #3200 ).
2021-11-27 17:07:27 -05:00
Wilson Snyder
d2a8fa7440
Fix display of empty string constant ( #3207 ).
2021-11-17 17:46:08 -05:00
Teng Huang
fdbf465eda
Fix array method names with parens ( #3181 ) ( #3183 )
2021-10-26 12:20:45 -04:00
Geza Lore
7cb6dc664e
Generate YYSTYPE members with astgen
...
In preparation for strengthening Ast type system. No functional change.
2021-10-22 19:27:32 +01:00
Wilson Snyder
7d57c3ca78
Internals: Remove dead code.
2021-10-05 22:02:23 -04:00
Wilson Snyder
9029da5ab8
Add profile-guided optmization of mtasks ( #3150 ).
2021-09-26 22:51:11 -04:00
Wilson Snyder
f67637144f
Internals: Some verilog.y format cleanups. No functional change.
2021-09-08 08:34:53 -04:00
Wilson Snyder
6d97fea2f5
Internals: Cleanup some const, etc. No functional change.
2021-09-01 22:15:38 -04:00
Wilson Snyder
43aa3229fb
Support empty queue assignment to delete queue
2021-08-28 17:23:35 -04:00
Wilson Snyder
0f4daa12e4
Ignore sv-test's `pragma protect end
2021-07-29 09:00:10 -04:00
Wilson Snyder
6bad0e14ce
Support timeunit/timeprecision in $unit.
2021-07-29 08:40:41 -04:00
Wilson Snyder
275885a797
Internals: Fix some long UNSUP lines. No functional change.
2021-07-24 12:21:04 -04:00
Wilson Snyder
68aa731ce9
Fix missing null on blackbox parse.
2021-07-24 12:13:19 -04:00
Udi Finkelstein
23c243bb82
Add support for null ports ( #2875 )
2021-04-09 10:39:46 -04:00
Wilson Snyder
c95e606c0a
Fix range inheritance on port without data type ( #2753 ).
2021-02-24 18:21:13 -05:00
Wilson Snyder
2b2fe13e79
Tests: Add unsupported test for interface typedef ( #2783 )
2021-02-16 22:31:30 -05:00
Wilson Snyder
bd602d0e2d
Copyright year update
2021-01-01 10:29:54 -05:00
Wilson Snyder
b7a533109d
Fix cppcheck warnings. No functional change intended.
2020-12-23 15:22:02 -05:00
James Hanlon
c18cbca813
Add support for package imports preceeding parameters in interfaces ( #2714 )
...
Co-authored-by: James Hanlon <mail@jameswhanlon.com>
2020-12-17 11:26:53 -05:00
Wilson Snyder
6adda241c9
Fix $urandom_range with no second argument
2020-12-16 18:34:49 -05:00
Wilson Snyder
d7af6436a2
Fix genblk naming to match IEEE ( #2686 ).
2020-12-12 12:57:11 -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
74ef35d3b3
Support $cast and new CASTCONST warning.
2020-12-05 22:58:36 -05:00
Wilson Snyder
9c2785b49b
Internals: Swap lhs/rhs $cast args.
2020-12-05 17:11:00 -05:00
Wilson Snyder
9bd5cd4ef3
Internals: Track null separately from '0
2020-12-05 16:49:10 -05:00