[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [oc] Any using VHDL procedures with Xilinx Webpack?




----- Original Message -----
From: "Paul McFeeters" <paul.mcfeeters@ntlworld.com>
To: <cores@opencores.org>
Sent: Thursday, December 06, 2001 4:52 PM
Subject: RE: [oc] Any using VHDL procedures with Xilinx Webpack?


> Jim,
>
> if it is a recursion then I can't see it. Each procedure is literally just
> around 5 lines each "pin <= value" format, no special procedure/function
> calls at all. One procedure does have a "if param = value then -- else --
> end if" statement and uses an alias to reference the low byte in a word
but
> nothing more than that, definitely nothing I would even suspect as 'a
little
> dodgy'. All of these statements in their current form were used fine in
the
> expanded code so still clueless as to why Webpack should bomb.

Some times the littlest code segments produce the "can't see the forest for
the trees" effect.

Memory overflows on small code segments are commonly caused by
recursion. An example of this in C/C++ is where a #define macro
somehow rereferences itself or one of it's subordinates.

I am not up on this form of programming (VHDL) however if for example
you have a proceedure (macro?) called "ZooBie" and if the declaration
of macro "ZooBie" contains

    "if param = ZooBie then -- else -- end if"

You can see how this would expand forever.
To help locate this if your VHDL "compiler" has conditional
statement you could enable and disable sections of your code.
*** Note, some compilers expand comments and conditioned
out code. so you may also have to sprinkle in invalid characters
to prevent the recursion from occuring within a comment. e.g.

    #if(TRUE==FALSE)
    "if pa!!!ram = Zoo!!!Bie then -- else -- end if"
    #endif

Hope this leads you to a resolution

Oh, anicdotal information.

Several years ago I used Borland C++ (still do) and the version
of the compiler had a "bug" wherein if a particular token sequence
was split across compiler I/O buffer boundaries that an error would
be introduced into the code. Adding a well place extra space
character in a comment would usualy fix the problem.

Jim Dempsey


--
To unsubscribe from cores mailing list please visit http://www.opencores.org/mailinglists.shtml