Attached Verilog source compiles cleanly, however target code contains a syntax error.
$ iverilog -Wall -o test test.v
$ ./test
./test:90: syntax error
I am building iverilog on Linux and Cygwin/Windows from the git master branch.
$ cd iverilog
$ git status .
On branch master
Your branch is up-to-date with 'origin/master'.
$ date
Wed Aug 24 11:54:37 PDT 2016
I'll take a look.
On 08/30/2016 03:23 PM, Martin Whitaker wrote:
--
Steve Williams "The woods are lovely, dark and deep.
steve at icarus.com But I have promises to keep,
http://www.icarus.com and lines to code before I sleep,
http://www.picturel.com And lines to code before I sleep."
Related
Bugs:
#1008I think the right answer is that the vvp target should generate
the .alias instead of .alias/s record. The question I'm trying to
answer is why that assertion failed. It looks like some details
for the "b" array are not being filled in properly, so the cross-
check when binding the alias to the array word is failing.
On 08/30/2016 03:54 PM, Stephen Williams wrote:
--
Steve Williams "The woods are lovely, dark and deep.
steve at icarus.com But I have promises to keep,
http://www.icarus.com and lines to code before I sleep,
http://www.picturel.com And lines to code before I sleep."
Related
Bugs:
#1008On 31/08/16 17:36, Stephen Williams wrote:
Then I think the fix is to replace the
.aliaswith a.net. I've just found this:commit 8247d3ef458fcdc33c5738fc3d613fc2c696ef4e
Author: Stephen Williams steve@icarus.com
Date: Wed Oct 14 21:40:15 2009 -0700
My only concern is that collapsing the nets will cause trouble in other targets (e.g. the vlog95
target).
Good find! Gosh, that's 6 years ago. We should probably look for
all the places where the net form of the .alias are generate in
the tgt-vvp. I also will have to re-learn now a net would be
bound up to a word. It might be that we re-use the .alias syntax
in this case to find the target node in the netlist.
On 08/31/2016 10:44 AM, Martin Whitaker wrote:
--
Steve Williams "The woods are lovely, dark and deep.
steve at icarus.com But I have promises to keep,
http://www.icarus.com and lines to code before I sleep,
http://www.picturel.com And lines to code before I sleep."
Related
Bugs:
#1008I've looked at this some, and I think the right answer is to
generate a .net/s record here instead of the .alias/s record.
This is consistent with how the other words of the net array
are handled.
Now to figure out how to make that happen...
On 08/31/2016 10:51 AM, Stephen Williams wrote:
--
Steve Williams "The woods are lovely, dark and deep.
steve at icarus.com But I have promises to keep,
http://www.icarus.com and lines to code before I sleep,
http://www.picturel.com And lines to code before I sleep."
Related
Bugs:
#1008I've pushed a possible fix. It seems to at least fix this case,
and the test suite seems to run OK. I've also pushed a test into
the ivtest suite.
On 08/31/2016 01:11 PM, Stephen Williams wrote:
--
Steve Williams "The woods are lovely, dark and deep.
steve at icarus.com But I have promises to keep,
http://www.icarus.com and lines to code before I sleep,
http://www.picturel.com And lines to code before I sleep."
Related
Bugs:
#1008I've spent some time investigating this, but need some input from Steve to know how to proceed. The bug can be reproduced by this simple test case:
This fails because the tgt-vvp code generator outputs
.alias/sstatements, which vvp doesn't recognise. However, fixing this (either by changing tgt-vvp to output.aliasstatements or by changing vvp to recognise.alias/sstatements) doesn't get us much further, resulting in a vvp assertion failure:The same assertion failure can be seen by changing the test case to:
Removing the assert statement in
__vpiArray::alias_wordallows the test case to run, but if we then add the statement:to the test case, we get another vvp error:
The bug does not occur if the continuous assignment is changed to:
because then the compiler inserts a BUFZ between
aandb[0].So my questions for Steve are:
1) Is it valid for the compiler to connect
aandb[0]to a single nexus, and hence cause tgt-vvp to output.aliasstatements?2) If so, why is it inserting a BUFZ for the
b[0] = acase?3) If not, what circumstances should cause
.aliasstatements to be generated? They appear to be broken, but none of the tests in the test suite exercise this.I believe this one was fixed a while ago, but the ticket didn't get closed.