Commit Graph

1108 Commits

Author SHA1 Message Date
Geza Lore 5ab2bf1ec4
Optimize input combinational logic by change detection (#7784)
When a lot of combinational logic is driven from top level inputs,
work can be wasted evaluating that logic if the top level inputs don't
change.

This change adds an optimization by performing a change detect on the
top level inputs, and evaluate 'ico' logic only if the top level input
actually changed. This especially helps with --hierarchical/--lib-create
which runs the 'ico' of each sub-model in the eval settle loop.

This was observed to yield 40%+ run-time speedup on some partitioned
designs.

The added change detection is cheap, so it is emitted even if the 'ico'
region is small, and is on by default.

The optimization is only sound if the model itself does not write to the
top level inputs (otherwise the 'previous value' variables would be out
of sync, which are not updated by internal writes.). If we can detect a
top level input is written within the design, then for that input, we
fall back on always running the relevant logic. With --vpi we cannot
prove safety statically, so --vpi will disable this optimisation unless
explicitly enabled. (In which case it's the user's responsibility to not
write to top level inputs via the VPI.)
2026-06-15 05:42:00 +01:00
Nick Brereton 87d2610674
Support unpacked struct stream (#7767) 2026-06-12 17:32:01 -04:00
pawelktk 75993ca9ea
Support assoc array methods with wide value types (#7680) 2026-06-10 09:39:43 -04:00
Artur Bieniek a3827182c0
Support `s_until` and `s_until_with` (IEEE1800-2023 16.12.12) (#7722)
Signed-off-by: Artur Bieniek <abieniek@antmicro.com>
2026-06-08 14:08:04 -04:00
Marco Bartoli 2db34818b3
Fix parameter values in coverage bins widths (#7732) (#7734)
Fixes #7732.
2026-06-07 20:47:43 -04:00
Matthew Ballance 2886291eba
Support covergroups, coverpoints, and bins (#784) (#7117)
Fixes #784.
2026-06-05 09:35:01 -04:00
Todd Strader 7bd41bfbb9
Fix MULTIDRIVEN in generates (#7709) 2026-06-03 19:50:56 -04:00
Nick Brereton bbd8d927ee
Support printing enum names for %p and %s (#5523) (#7338 repair) (#7521) (#7527) 2026-06-03 14:55:00 -04:00
Krzysztof Bieganski 7664bbb3ef
Support generic interface arrays (#7604) 2026-06-02 22:28:50 -04:00
Igor Zaworski fe4adfe273
Support process::self().srand() (#7695) 2026-06-02 12:00:27 -04:00
Yilou Wang 39b9901032
Support weak `until` / `until_with` property operators (#7290) (#7548) (#7685)
Fixes #7290. Fixes #7685.
2026-06-01 14:50:13 -04:00
Artur Bieniek 45fae00064
Fix width of unsized literal in property expression (#7668) 2026-05-28 15:10:25 -04:00
Benjamin Collier 69b3c5f6d1
Support streaming on queues (#7597) 2026-05-20 19:14:02 -04:00
Greg Davill 57ce373e99
Fix array pattern concatenation (#7401) (#7402) 2026-05-17 09:49:32 -04:00
Yilou Wang f9427c6d5f
Support property abort operators (accept_on, reject_on) (#7578) 2026-05-15 08:38:38 -04:00
Krzysztof Bieganski 3381d656c7
Support calling interface functions without parens (#7584)
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2026-05-13 08:15:32 -04:00
Jakub Michalski 05f6db7970
Optimize emitting to_string() for compiler speedup (#7468)
Signed-off-by: Jakub Michalski <jmichalski@antmicro.com>
2026-05-12 09:49:21 -04:00
Yilou Wang b0d58bbcef
Support SVA goto repetition with range `[->M:N]` (#7569) 2026-05-11 07:07:51 -04:00
Artur Bieniek c69c11b2db
Support procedural continuous assign/deassign (#7493) 2026-05-08 19:01:11 -04:00
Yilou Wang 8eca6b8fe7
Fix regression rejecting boolean `!x` inside sequence expressions (#7549) (#7551)
Fixes #7549.
2026-05-08 18:34:28 -04:00
Bartłomiej Chmiel 4e349971d3
Support `s_eventually` (#7291) (#7508) 2026-05-04 09:57:03 -04:00
Igor Zaworski 25d4827bd5
Internals: Four state pre-pull (types) (#7520) 2026-04-30 16:56:15 -04:00
Wilson Snyder dd75c4cd1b Revert: 21020ea2: Support printing enum names for %p and %s (#5523 revert) (#7338 revert) (#7521 test) 2026-04-30 10:29:47 -04:00
Nick Brereton 21020ea2d1
Support printing enum names for %p and %s (#5523) (#7338) 2026-04-30 07:15:38 -04:00
Yilou Wang 76c1b26e3b
Support `obj.randomize(null)` (#7487) (#7509) 2026-04-28 15:31:08 -04:00
Yilou Wang c8893b64de
Support `always` / `always[m:n]` / `s_always[m:n]` property operators (#7482) 2026-04-27 08:20:34 -04:00
em2machine b1d3d63e9f
Fix for unction argument expects a class refetence (#7483) (#7489)
Fixes #7483.
2026-04-24 10:31:57 +02:00
Yilou Wang 51eb5346c8
Support sequence within operator (#7461) 2026-04-23 05:47:24 +02:00
Kamil Danecki 3587ac48a4
Fix modification of members of object with const handle (#7433)
Signed-off-by: Kamil Danecki <kdanecki@internships.antmicro.com>
2026-04-16 09:43:12 -04:00
Wilson Snyder 7e3400b37d Fix virtual interface implied comparison with null (#7421).
Fixes #7421.
2026-04-14 07:25:02 -04:00
Wilson Snyder fac07970e6 Improve too-small cast warning to show size 2026-04-12 18:12:41 -04:00
Ryszard Rozak 4da31b0418
Support 'until' property (partial #7290) (#7399) 2026-04-10 08:17:54 -04:00
Yilou Wang 854e80c3c2
Support nonconsecutive repetition [=N] in sequence expressions (#7397) 2026-04-09 18:28:28 -04:00
Yilou Wang e63c4f563e
Support consecutive repetition [*N:M], [+], and [*] in sequence expressions (#7379) 2026-04-08 10:26:03 -04:00
Yilou Wang 141fe8bdad
Support sequence intersect operator (#7374) 2026-04-08 09:31:54 +02:00
Artur Bieniek 8c11d0d0bd
Support rise/fall delays (#7368)
Signed-off-by: Artur Bieniek <abieniek@antmicro.com>
2026-04-07 06:44:52 -04:00
Yilou Wang dfb7b034a5
Support sequence 'throughout' operator (#7378) 2026-04-06 17:12:22 -04:00
Wilson Snyder 2796294396 Fix string `inside` queue (#7373).
Fixes #7373.
2026-04-04 14:43:06 -04:00
Yilou Wang 3b454a6f60 Internals: Add isNonPackedArray(). No functional change. (#7334 prep) 2026-04-04 14:31:09 -04:00
Yilou Wang efd60df2be
Fix virtual interface select from sub-interface instance (#7203) (#7370)
Fixes #7203.
2026-04-03 19:04:10 -04:00
Yilou Wang 56ed47ee7c
Fix false ASSIGNIN on interface input port connections (#7365)
* add oneline fix

* Apply 'make format'

* merge test and update 2 space indents

---------

Co-authored-by: github action <action@example.com>
2026-04-02 20:44:48 +02:00
Yilou Wang 894f6c4c58
Fix virtual interface member trigger convergence (#5116) (#7323) 2026-04-01 21:42:42 +01:00
Yilou Wang bf453361f6
Support consecutive repetition [*N] in SVA properties (#7311) 2026-03-30 07:01:33 -04:00
Wilson Snyder 600eb7ec86 Internals: Favor std::swap. No functional change. 2026-03-29 20:33:06 -04:00
Wei-Lun Chiu 092d3d4de0
Support map() method for associative and wildcard arrays (#7344) 2026-03-29 04:00:52 -04:00
Wilson Snyder 31757df229
Internals: clangtidy cleanups. No functional change intended (#7343) 2026-03-27 23:14:18 -04:00
Yilou Wang 55e5f01758
Support SVA goto repetition [->N] in concurrent assertions (#7310) 2026-03-27 10:31:15 -04:00
github action 37a316f0f8 Apply 'make format' 2026-03-26 17:28:43 +00:00
Eunseo Song f369a629c7
Improve E_UNSUPPORTED warning messages (#7329) 2026-03-26 13:25:30 -04:00
Yilou Wang e0963bd587
Fix false ASSIGNIN on interface input ports driven from outside (#7322) 2026-03-26 12:30:16 -04:00