-
Notifications
You must be signed in to change notification settings - Fork 535
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vvp does not support multi-bit modpath delays when different delays need to be applied to individual bits #1184
Comments
Please provide a small code example that allows us to reproduce this failure. |
Hello @martinwhitaker |
Is appears as if you have a multi-bit register and the Rise time is different from the Fall time, the assert will trigger... Refer to the file vpp\delay.cc, starting at line 652:
|
Sorry for the slow reply - I haven't had much free time recently. OK, this assert is flagging unimplemented behaviour. We should at least output a sensible error message. |
The code doesn't currently handle the case of different bits within the vector needing different delays (e.g. when the rise and fall delays are different and some bits are rising as other bits are falling) and aborts with an assertion failure. For now, output a suitable "sorry" message and exit gracefully.
This checks the temporary fix of outputing a suitable "sorry" message.
I've updated vvp in the master branch to output a "sorry" message and exit with an error code of 2 instead of failing an assertion. There are a number of issues with modpath delays (some of which can be found by reading the comments in delay.cc) where vvp silently does the wrong thing. See also https://sourceforge.net/p/iverilog/bugs/954/ I did start working on that last one, but gave up when I realised just how much rework was needed. |
using iverilog v12.0 and Linux RHEL 7
Compiling VVP ...
... VVP file version 12.0 (stable)
Compile cleanup...
... 9733 functors (net_fun pool=786432 bytes)
3442 logic
89 bufif
4 resolv
2133 signals
... 7026 filters (net_fil pool=1048576 bytes)
... 183719 opcodes (4423680 bytes)
... 7403 nets
... 9764 vvp_nets (1048544 bytes)
... 0 arrays (0 words)
... 17 memories
12 logic (111000 words)
5 real (90 words)
... 1096 scopes
... 0.355774 seconds, 82188.0/24008.0/2716.0 KBytes size/rss/shared
Running ...
...execute EndOfCompile callbacks
...propagate initialization events
vvp12: delay.cc:667: virtual void vvp_fun_modpath::recv_vec4(vvp_net_ptr_t, const vvp_vector4_t&, vvp_context_t): Assertion `tmp == use_delay' failed.
Abort (core dumped)
The text was updated successfully, but these errors were encountered: