|
From: Cary R. <cy...@ya...> - 2015-03-16 22:03:27
|
I don't have time to look at this right now, but it looks like the problem could be related to the instr_op net being driven from a function in an assignment statement. I'm guessing that Icarus is treating that function as an automatic function since it is in an assignment statement and is then having a problem finding the actual driver for the individual pieces of the net from the VPI interface. Given the current implementation I'm guessing the $monitor will also fire for any change in instr_op not just when the specified parts change value. I'm not certain if that is correct behavior or not.
The compiler code looks okay given how Steve implemented this (the two references to instr_op in the $monitor are part selects of the base instr_op vector at the correct offset and width).
Cary
On Monday, March 16, 2015 2:11 PM, Niels Möller <ni...@ly...> wrote:
Martin Whitaker <mai...@ma...> writes:
> I have reproduced the first failure, but not the second. Could you provide a
> simple test case that demonstrates it?
It seems a bit tricky to reproduce, I also don't see the problem with my
current code. Maybe it's not really related to structs, I don't know.
I've digged up the version of the code I used when experiencing the
problem. I'm attaching the preprocessed source code (close to 300 lines,
so not too huge, I hope. I don't have the time to reduce it further
tonight).
To reproduce,
$ iverilog -g2005-sv main-preprocessed.vl
$ ./a.out
vpi error: bad global property: 50
vvp: vpi_priv.cc:281: int vpip_get_global(int): Assertion `0' failed.
Aborted
iverilog -v says
Icarus Verilog version 0.10.0 (devel) (s20141205-283-g437dc10)
Best regards,
/Niels
--
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Iverilog-devel mailing list
Ive...@li...
https://lists.sourceforge.net/lists/listinfo/iverilog-devel
|