LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Note: I get a .bit file but I have no 7i43 hardware to test it on. If you can verify that this gives a working bitfile, please remove this caveat -- jepler, 2008/07/02

Start Xilinx ise according to the instructions (I used Release Version: 9.2.04.i Application Version: J. 40)

Select Project > Source Control > Import

For "Project file to import", browse to


For "Directory to import to", select a new empty directory (you can create an empty one using the "folder with sparkle" icon)

Click OK

After a few moments the import process will complete.

To rebuild the FPGA firmware, choose Process > Implement Top Module. This will print many warnings and may take a long time, particularly on slow PCs -- several minutes on my 2.2GHz Core 2 Duo machine.

To build the BIT file, find the Processes tab. Double click "Generate Programming File".

Copy the i43hostmot2.bit file from the project directory to the location and name expected by the emc build process (src/hal/drivers/mesa7i43-firmware/???.bit); I am not sure what the naming convention is for these files.

To generate the firmware for the other size of FPGA chip, right click xc3s400 near the top of "sources" and choose "XC3S200" for Device. (If you're building for yourself, you need only build the one you want; If you're building for others, you must build all combinations)

The above description of this process was written by Jeff Epler in 2008. It's now 2013 and, after becoming interested in FPGAs, I thought I would try to perform this procedure myself. Below is a record of my experiences...

1. First, and even before I decided to build the hostmot2 firmware, I installed the latest free version of the Xilinx software for 32 bit linux. To install this, you go to: http://www.xilinx.com/support/download/index.htm and download "Full Installer for Linux" The file I got was Xilinx_ISE_DS_Lin_14.4_P.49d.3.0.tar. They'll make you register for an account before you can do anything, so be prepared to tell them your life story :) This file is about 6-1/2 Gigabytes, so it'll take a while. Once you have the file, untar it and run 'xsetup'.

2. sudo apt-get install ghdl

(Added in 2017 by KimK)

Matt didn't finish his story in 2013, and now I'm looking at the same thing in 2017.

I'm not sure if it's still necessary to install ghdl, but ghdl is no longer available in the standard repos.

The version that was in the standard repos (from Sourceforge?) hasn't been updated since 2014.

The homepage of ghdl (there called GHDL) is here: http://ghdl.free.fr/

It links to a version on [GitHub] that is much more recent (2017) and seems to be frequently updated. There are several tagged releases there, the currently featured one is [v0.33], although there's a new just-released [v0.34]

Here's a [list] of all the tagged releases and their release dates (summary follows):

 v0.34  2017-Aug-15
 v0.33  2015-Oct-23
 v0.31  2014-Jan-08

There are .debs available in v0.33, install them according to the appropriate readme using something like:

 sudo dpkg --install ghdl_0.33-1ubuntu1_amd64.deb

If you don't like the debs, Here's an article on building ghdl from source: [Installing ghdl from source on Ubuntu 16.04]

To be continued...

OK, I was able to install ghdl (on Mint 18.2) using the above deb, but I had to first install dependencies gnat-4.8(>=4.8.2) and libgnat-4.8(>=4.8.2). I used the amd64 versions (on my main desktop, not running realtime LinuxCNC), but here they all are:


Install your two as above using:

 sudo dpkg --install gnat-4.8_4.8.2-8ubuntu3_amd64.deb
 sudo dpkg --install libgnat-4.8_4.8.2-8ubuntu3_amd64.deb


 sudo dpkg --install gnat-4.8-base_4.8.2-8ubuntu3_i386.deb
 sudo dpkg --install libgnat-4.8_4.8.2-8ubuntu3_i386.deb

Funny thing, I already had gnat-4.9 and libgnat-4.9 installed from the repos (no 4.8 there), so it resulted in a downgrade. If someone knows a way to get gnat-4.9 to work, please write something here. The standard repos also offer gnat-5, but maybe that's a major upgrade with too many changes?

To be continued...

(Maybe I'll post more updates on my progress later, or maybe I'll disappear too.)

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions
Last edited October 26, 2017 1:11 pm by KimK (diff)
Published under a Creative Commons License