You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I noticed that I'm not getting the CASEOVERLAP warnings if the value is wider than 12 bits.
In the example below, the warning will trigger only for the second case, which uses the 12 bits input. The first case with 13 bits is ignored.
Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2019-10-07T11:38:57Z
Currently the algorithm is very stupid, namely build a lookup table and check for duplicates.
I changed this define to something larger, e.g. 16 bits:
#define CASE_OVERLAP_WIDTH 12 // Maximum width we can check for overlaps in
(You can do that in your build if you want also).
Leaving this open as the real correct fix for this is to use a binary decision diagram or other better algorithm to prove the overlaps in a way that isn't so memory-stupid.
If you or someone would be interested, this would be a fun contained project to work on.
Original Redmine Comment
Author Name: Yossi Nivin
Original Date: 2019-10-07T12:04:59Z
Thanks for confirming and providing the workaround.
I was suspecting this kind of lookup table to be the limiting factor.
I will try to have a look to see whether it is something I can implement with my limited knowledge of C/C++.
Author Name: Yossi Nivin
Original Redmine Issue: 1545 from https://www.veripool.org
Hi,
I noticed that I'm not getting the CASEOVERLAP warnings if the value is wider than 12 bits.
In the example below, the warning will trigger only for the second case, which uses the 12 bits input. The first case with 13 bits is ignored.
Steps to reproduce:
verilator -Wall -cc top.sv
The text was updated successfully, but these errors were encountered: