Geza Lore
976ec63531
Support multi dimensional module instance arrays ( #2675 ) ( #8476 )
...
Arrays of module instances are now expanded into their element cells
during elaboration in V3Param, instead of after V3Width in
V3Inst::dearrayAll. Element cells are named as before
(name__BRA__i__KET__...), are ordered from the left index to the right
index, and hierarchical references to them resolve in linkDotParamed.
Arrays of interface instances are still expanded by V3Inst. They will
move in a follow up patch.
Algorithmically:
- V3Praram replaces an arrayed AstCell, with a scalar Cell for each
element. linkDotParamed can resolve against these as normal.
- V3Width then fixes up the AstPins of each expanded Cell according to
the LRM rules. Either leaving the alone to connect to all instances,
or inserting ArraySel/Sel to connect the relevant part to the relevant
instance.
Partial #2675
2026-09-24 10:59:41 +01:00
Wilson Snyder
3d386f8fa5
Internals: Add VL_DO_DANGLING in some missing places. No functional change intended.
2026-09-23 18:27:40 -04:00
em2machine
f82cdbeaa7
Fix typedef through a parameterized sub-interface ( #7943 repair) ( #8124 ) ( #8128 )
2026-09-23 14:32:23 -04:00
David Harris
525d1fade3
Fix internal error on covergroup in a specialized parameterized class ( #8450 ) ( #8452 )
2026-09-22 19:00:20 -04:00
Wilson Snyder
f883b1c858
Commentary. No functional change
2026-09-22 07:20:46 -04:00
Edmund Lam
529d98918a
Fix deferring parameters for class::localparam access ( #7746 ) ( #7748 )
2026-09-15 21:17:26 -04:00
Dragon-Git
377865e2a0
Fix class-qualified self reference to a typedef in a parameterized class ( #8348 ) ( #8349 )
2026-09-14 10:54:15 -04:00
Kristof Marien
298922d887
Fix parameterized class nested in a parameterized interface ( #8328 ) ( #8329 )
2026-09-12 15:31:10 -04:00
Nick Brereton
b1c06fdb09
Fix use-after-free of captured interface typedef in deleted generate branch ( #8287 )
2026-09-04 14:27:11 -04:00
Geza Lore
cda258cbed
Fix crash on multiple missing type parameters ( #8184 )
2026-08-21 17:15:41 -04:00
Geza Lore
d1067002da
Fix crash on empty '#()' parameter list on class instance ( #8182 )
...
The following used to crash:
```systemverilog
class base #(type T = int); endclass
class derived extends base; endclass
derived #() d; // <- crash due to '#()'
```
2026-08-21 18:16:09 +02:00
Geza Lore
a7ecba4f4e
Fix crash on forward-referencing parameters ( #8175 )
2026-08-21 17:47:10 +02:00
github action
70b5ce802b
Apply 'make format' [ci skip]
2026-08-19 06:46:09 +00:00
Sumanth Kadiyala and Sumanth Kadiyala
88e87b8abb
Fix segmentation fault on parameters ( #8102 ) ( #8149 )
...
Co-authored-by: Sumanth Kadiyala <[email protected] >
2026-08-19 02:45:35 -04:00
em2machine
93401038c0
Fix reading another parameter resolves to 0 in cloned modules ( #8086 ) ( #8069 )
2026-08-15 06:06:25 -04:00
Nick Brereton
1356c15e44
Fix use-after-free in V3LinkDotIfaceCapture ( #7943 )
2026-08-03 15:55:30 +01:00
David Garau
a24dd8b2dc
Fix generic interface param resolution in module/cell parameterization ( #7970 ) ( #7971 )
2026-08-03 05:18:59 -04:00
Geza Lore
566f4e6efc
Internals: Add new VL_RESTORER flavours ( #7866 )
...
Restrict VL_RESTORER to be usable only with trivially copyable types.
Introduce VL_RESTORER_COPY and VL_RESTORER_CLEAR, which are more
efficient versions usable for non trivially copyable types.
VL_RESTORER_COPY semantically behaves the same as VL_RESTORER, but only
does one copy at initialization, and on scope exit restores via a move.
VL_RESTORER_CLEAR swaps the variable with an new one constructed via
the no-args constructor (e.g. empty collection), which does not require
any copying at any point.
Static assertions enforce picking one of the new flavours when copying
might be expensive.
2026-07-04 17:27:07 +01:00
em2machine
a534a1d1bc
Fix parameter pollution when using class parameters ( #7711 ) ( #7763 )
...
Fixes #7711 .
2026-06-16 14:03:28 -04:00
em2machine
680ef8dda9
Fix for HIERPARAM - relax checking ( #7570 ) ( #7690 )
2026-06-06 11:55:47 -04:00
Krzysztof Bieganski
7664bbb3ef
Support generic interface arrays ( #7604 )
2026-06-02 22:28:50 -04:00
Kamil Danecki
802efd579a
Fix t_class_param type invalid array access ( #7615 repair) ( #7653 ) ( #7693 )
2026-06-02 09:01:05 -04:00
Nick Brereton
5d344ab8ff
Fix parameter read through locally-declared interface instance ( #7679 )
2026-05-28 21:20:49 -04:00
em2machine
3d126b77cd
Fix for access to parameters via class::localparam ( #7609 ) ( #7671 )
2026-05-28 17:40:18 -04:00
em2machine
29d2f522bf
Fix internal error when handling typedefs containing parameterized class type members ( #7635 ) ( #7661 )
...
Fixes #7635 .
2026-05-27 12:17:49 -07:00
Michael Rogenmoser
cb3b9c7c43
Fix nested parameterized class typedef chain ( #7538 )
2026-05-19 14:12:24 -04:00
Kamil Danecki
b06ea01afb
Fix type parameters order ( #7615 )
2026-05-19 09:52:09 -04:00
em2machine
d5f9385e9c
Fix class::localparam during elaboration ( #7524 ) ( #7534 )
2026-05-06 11:46:33 -04:00
em2machine
d15b1fba94
Fix $bits on local struct with chained-interface ( #7515 ) ( #7517 )
2026-04-30 07:12:11 -04:00
Yilou Wang
5d1b4fe8a8
Fix generic interface port forwarded to a nested instance ( #7454 ) ( #7457 )
...
Fixes #7454 .
2026-04-27 21:15:25 -04:00
em2machine
121fd3f613
Fix module parameters not re-evaluated upon instantiation ( #7463 ) ( #7477 )
2026-04-23 12:30:42 -04:00
em2machine
59fe8066ff
Support multidimensional arrays of interfaces ( #6230 ) ( #7451 )
...
Fixes #6230
2026-04-22 13:42:10 +02:00
em2machine
23ca23b7b5
Fix for ariane/CVA6 false member call on object error ( #7445 ) ( #7450 )
...
Fixes #7445 .
2026-04-20 18:21:59 +02:00
em2machine
fd7a3f4a16
Fix zero-size parameter ( #7387 repair) ( #7411 ) ( #7418 )
...
Fixes #7411 .
2026-04-13 13:19:11 -04:00
Leela Pakanati
14e2f834e9
Fix parameterized class typedef as interface type parameter ( #7000 ) ( #7006 )
...
Fixes #7000 .
2026-04-12 20:38:27 -04:00
em2machine
dc33e8bb18
Fix for Returning an object of the wrong type from a static function of a parameterized class ( #5479 ) ( #7387 )
2026-04-11 07:49:45 -04:00
em2machine
081ecbd095
Fix for elaboration hang ( #7385 repair) #7398 ( #7406 )
...
Fixes #7398 .
2026-04-10 11:03:14 -04:00
em2machine
2736262b98
Fix resolving default/nondefault type-of-type parameters ( #7380 ) ( #7385 )
2026-04-07 17:58:36 -04:00
Yilou Wang
adb48046c2
Fix parameter default comparison when value contains type cast ( #6281 ) ( #7369 )
...
Fixes #6281 .
2026-04-04 11:02:20 -04:00
em2machine
e7a644a3fc
Fix functions in generate block resulting in "Broken link in node" ( #7236 ) ( #7367 )
...
Fixes #7236
2026-04-03 11:19:17 -04:00
em2machine
32672deb6f
Fix resolving default/nondefault type parameters ( #7171 ) ( #7346 )
...
Fixes #7171
2026-04-02 10:51:11 -04:00
Wilson Snyder
31757df229
Internals: clangtidy cleanups. No functional change intended ( #7343 )
2026-03-27 23:14:18 -04:00
Artur Bieniek
aff85cef19
Support more than one dot in defparam ( #7262 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2026-03-24 09:20:46 -04:00
em2machine
05f640459e
Fix interface data type consistency ( #6965 ) ( #7302 )
2026-03-21 10:34:36 -04:00
em2machine
a2154e9119
Fix interface derived types passed as parameters to generate loop module instantiation ( #7273 )
2026-03-18 09:26:55 -04:00
Alex Zhou
651f223387
Fix false recursive definition error ( #6769 ) ( #7118 )
2026-03-16 07:31:35 -04:00
em2machine
1b2b8afdc1
Fix wrong $bits() for parameterized interface struct typedefs ( #7218 ) ( #7219 )
2026-03-09 22:32:13 -04:00
em2machine
c34cd6ddf1
Fix missing scope when calling package function ( #7128 repair) ( #7188 ) ( #7190 )
2026-03-04 15:37:55 -05:00
em2machine
5821d0697c
Fix interface localparam dependencies and arbitrary nesting ( #6936 ) ( #7128 )
2026-03-03 06:55:59 -05:00
github action
55eaa64386
Apply 'make format'
2026-02-04 21:27:14 +00:00