mcode is the JIT version built for Windows.  It also builds and runs on Linux.

Brian Davis has been debugging the Windows build and found by increasing the
minimum stack frame size by 8 bytes he can build a ghdl-0.29.1 mcode version
that doesn't generate a segmentation violation while running.  I'm of the
opinion it's the same 'bug' affecting the Mac OS X version, and could
probably be fixed by increasing the minimum stack frame size by 16 bytes (I
can name that tune in ...).  I've been marching up the ghdl revisions as a
method of localizing the 'bug'.  The idea being to understand and fix it
correctly.  Directly generated machine code includes stack operation
instructions.  There's likely something with a misconception about the
required stack space (hopefully).

This mcode build:

Built with MacAda 4.3
/usr/local/ada-4.3/bin in Path before any other gcc (darwin10 is x86_64
only, this gnat makes i386 (32 bit) objects).  Should be able to set
environmental variable instead, CC  /usr/local/ada-4.3/bin/gcc .


svn -r127 co svn://svn.gna.org/svn/ghdl/trunk ghdl
(revision 127 is ghdl0.28)

cd ghdl/translate/ghdldrv

either edit Makefile to include a darwin target:

target=i686-darwin

or pass the target declaration on all Make commands here.

make (target=i686-darwin)

(paren enclosed target not needed if you edited Makefile)

This builds ghdl_mcode

ln -s ghdl_mcode ghdl

(so you can find it easier)

Make sure you can execute it from where ever your VHDL model is.  Either
search path, or an alias.

make (target=i686-darwin)  install.mcode

generates VHDL libraries, sets up various links.

If subsequently you get a segmentation violation simulating a VHDL model
under ghdl check translate/ghdldrv ortho_code-x86-flags.ads

with Ortho_Code.X86.Flags_Macosx;
package Ortho_Code.X86.Flags renames Ortho_Code.X86.Flags_Macosx;

The Flags_Macosx sets up Frame boundaries for Mac OS X.

I simulated a small DES encryption chip that probably generates more than 2
million events across 30,000 clocks.  It does assertion based verification
via a testbench and I also checked the results with gtkwave.

I'll continue marching upward to the current release (revision 143,
ghdl-0.29+).  The intent is to eventually build a gcc front end version of
ghdl on the Mac.  I also want to verify a fix for Wesley Landaker's rol/ror
bug and submit it.




_______________________________________________
Ghdl-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/ghdl-discuss

Reply via email to