Any experienced Icarus users out there?

J

Jonathan Bromley

Guest
hi folks,

I've encountered what I believe is a bug in Icarus Verilog
(I'm using the 0.9.2 Windows binary). The Sourceforge
bug tracker claims that a similar bug was present in
version 0.8 and fixed in version 0.9, but I can't find
any other bug report that looks like it.

Before I slug through the usual process of distilling a
testcase, trawling the bug tracker thoroughly and filing
a bug report... has anyone else met this?

I'm trying to force an 8-bit vector net. If
I execute the force statement at time zero, it works.
If I execute it in the place I want it, after about
1ms of simulation time, it appears to have no effect.

Thanks for any comments
--
Jonathan Bromley
 
A simple-minded test seems to work fine for me. I tried the current
0.9.head and git master, but given only your description, I surely
made am overly simplistic test.

You can ask on the iverilog-devel mailing list because there have
been bugs encountered and fixed related to force/release and there
is some institutional memory in the list. If we can't figure it
out there, we'll have to resort to a bug report. Reports of quietly
getting incorrect results are treated with high priority.

Jonathan Bromley wrote:
hi folks,

I've encountered what I believe is a bug in Icarus Verilog
(I'm using the 0.9.2 Windows binary). The Sourceforge
bug tracker claims that a similar bug was present in
version 0.8 and fixed in version 0.9, but I can't find
any other bug report that looks like it.

Before I slug through the usual process of distilling a
testcase, trawling the bug tracker thoroughly and filing
a bug report... has anyone else met this?

I'm trying to force an 8-bit vector net. If
I execute the force statement at time zero, it works.
If I execute it in the place I want it, after about
1ms of simulation time, it appears to have no effect.
--
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."
 
On Mon, 22 Feb 2010 16:49:43 -0800, Stephen Williams wrote:

A simple-minded test seems to work fine for me. I tried the current
0.9.head and git master, but given only your description, I surely
made am overly simplistic test.
The code that exhibits the problem is non-trivial, but not huge
(3000-line codebase, runs for about 20000 clock cycles of sim).
The problematic "force" crosses a hierarchy boundary, but I
shuffled a few things around and convinced myself that was not
the problem.

I'll pick away at it until I have a digestible test case.
I've worked around it for my own purposes already (after
all, "force" is ALWAYS only a hack to avoid doing it
properly!!!) but clearly it would be good to fix it.

Thanks for the response.
--
Jonathan Bromley
 
Jonathan Bromley wrote:

The code that exhibits the problem is non-trivial, but not huge
(3000-line codebase, runs for about 20000 clock cycles of sim).
The problematic "force" crosses a hierarchy boundary, but I
shuffled a few things around and convinced myself that was not
the problem.

I'll pick away at it until I have a digestible test case.
I've worked around it for my own purposes already (after
all, "force" is ALWAYS only a hack to avoid doing it
properly!!!) but clearly it would be good to fix it.

Thanks for the response.
In response to your subject, Yes! I have a force in one of my circuit
tests that goes down in the hierarchy and it works just fine. Icarus has
a few bugs related to forcing with an expression, but they can be worked
around by using a continuous assignment to create a net that is used by
the force. Is this crossing a hierarchical boundary as in toplevel
module A is forcing something in toplevel module B? Knowing the basic
hierarchical structure my be the key in figuring out what is going on.
Another suggestion would be to try the latest development release from
the git archives. Don't be afraid of using the development version. It's
very stable at the moment.

Cary
 
On Thu, 25 Feb 2010 10:17:51 -0800, "Cary R." wrote:

Is this crossing a hierarchical boundary as in toplevel
module A is forcing something in toplevel module B?
No; a force in the top level testcase is driving a net
in a child module. What's more, the RHS of the force
is a constant - I know about the "implied sensitivity"
bug, and I dislike relying on that behaviour anyhow.

The hierarchy isn't relevant, I'm sure. I moved the
force operation into the child module, in the same
scope as the net it's forcing; the problem didn't
go away.

Another suggestion would be to try the latest development release from
the git archives. Don't be afraid of using the development version. It's
very stable at the moment.
Maybe. I really do intend to tease out a testcase,
but I'm scary busy at the moment so it may have to wait.

BTW this bug isn't imaginary - the same code runs
exactly as expected on commercial simulators.

I hate reporting bugs as vaguely as that, but it was
just in the hope that someone might know something...
--
Jonathan Bromley
 
Jonathan Bromley wrote:
On Thu, 25 Feb 2010 10:17:51 -0800, "Cary R." wrote:

Is this crossing a hierarchical boundary as in toplevel
module A is forcing something in toplevel module B?

No; a force in the top level testcase is driving a net
in a child module. What's more, the RHS of the force
is a constant - I know about the "implied sensitivity"
bug, and I dislike relying on that behaviour anyhow.
FYI this is exactly what I'm doing and it is working for me, so expect
this to be a subtle bug. My code works with both V0.9.2 and the
development version I mentioned previously.

Another suggestion would be to try the latest development release from
the git archives. Don't be afraid of using the development version. It's
very stable at the moment.

Maybe. I really do intend to tease out a testcase,
but I'm scary busy at the moment so it may have to wait.
I'm experiencing some of that right now as well.

BTW this bug isn't imaginary - the same code runs
exactly as expected on commercial simulators.

I hate reporting bugs as vaguely as that, but it was
just in the hope that someone might know something...
I understand and agree. Good bug reports are appreciated by any developer!

Cary
 

Welcome to EDABoard.com

Sponsor

Back
Top