Efinix FPGA Development Notes
Fireant T8 Development Kit
Project Description
This is the story of getting started with Efinix FPGA devices and
development environment running under Arch linux. This is the process I
used at the end of 2022 so please view this only as a resource that may help
one getting set up in your particular development environment. In the
tech world, hardware, software, web addresses and operating systems tend
to change rapidly. I like to document my progress on new adventures as
it is quite likely I may have to repeat the process on new hardware or assist
someone setting up a development system.
Efinix provides a free development environment for its FPGA line that has
versions for windows or linux. To get access to the development software,
you must buy a qualified development board containing one of the
Efinix FPGAs. The least expensive board I found is called the Fireant
($30USD,50$Cdn). This is a T8 fpga, USB programmer, 2 user switches, 4 user
LEDs and a bunch of 3.3V I/O on 40 Pin board suitable for plugging into a
prototype board. It requires, no external components to get started and
can be powered via the USB programming cable. If you need a grander introduction
board, Efinix has quite a variety of Trion development boards with Trion T8,
T20 and T120 fpgas. See https://www.efinixinc.com/products-devkits.html
Step by Step
If you have a valid login and account setup for the Efinix site and you have the serial number
for your development kit, downloading the IDE, installing, compiling your first demo program and
programing the FPGA should take much less than an hour. However, it may take a few days of
waiting for emails to collect the required information. The process I followed is documented below.
- Order an approved development board such as a Fireant or Xyloni or something bigger.
You will need to provide a micro USB data cable to connect the fireant to the PC.
- Get the serial number for your kit. When buying Fireants from Digikey or Mouser,
they probably come without a serial number. You need to send an email to
fireant@jungle-elec.com with a proof of purchase
(I used a scanned copy of my packing list that arrived with my fireant from Mouser)
requesting a serial number for your kit.
- Register your development kit at: https://www.efinixinc.com/support/index.php (click on register a kit button).
This can end up being a little convoluted. I created an account with my contact information, received
"click here to confirm your account email" which didnt work and had to send an email to
support@efinixinc.com. Erica kindly confimed my account and provided directions on
changing my password. Now you can continue on to register your kit. It was recommended
by the S100Computers group to use S100Computers.com as the company name as my primary
use for the Efinix development environment was to support Jeffs T35 fpga card project listed below.
- Now you have a registered account, you can download the current release of the Efinix IDE environment.
https://www.efinixinc.com/support/efinity.php
I run Arch linux on my normal desktop PC. I downloaded the Efinity IDE for Ubuntu.
I also downloaded the Efinity patch file for Ubuntu from the same page. Both packages
contain a readme file with simple instructions on how to install the software.
I installed the software in my home directory (unpacking the bzip file in my home
directory created an efinity folder in my home directory). The IDE is QT based and seems
pretty self contained with all its needed libraries and executables. Python is used
internally for scripting in the IDE and a local copy of python 3.8 is included in the package.
Thankyou Efinix for nicely packaging the IDE and keeping it self contained in a user folder (1.7Gb).
- cd ~ #change to home directory
- tar -xjvf efinity-.tar.bz2 #unpack IDE
- cd efinity #change to IDE main directory
- sudo ./bin/install_usb_driver.sh # install udev rules for USB programmer
- ./bin/install_desktop.sh #install an icon on your desktop for easy access to IDE
- If you downloaded a patch file, follow the readme directions to apply the updates.
- Using links at the bottom of this page, you can download demo projects as well as find a
quick start guide which will guide you through compiling a project and programming the FPGA.
Now it is up to you to invent new uses for this very cool board.
After the IDE Installation Notes
Projects are stored in the /home/yourusername/efinity/2022.1/project folder...
ie. /home/yourusername/efinity/2022.1/project/FA-blinky
Hex images for programming are found in the outflow directory of a project...
ie. /home/yourusername/efinity/2022.1/project/FA-blinky/outflow/blinky.hex.
Be patient... it can take from a minute to "a long time" to build a project depending on its complexity.
I am using a 4 core intel I7 from 2013 with 16Gb of memory which is pretty much the minimum recommended
development box.
Development can be done in VHDL or Verilog or as a mixture within a project.
I am still trying to wrap my mind around which environment seems to work best for me.
When starting a new project for the Fireant, you will need to know the FPGA part family (Trion), the device (T8F81)
and the timing Model (C2).
To check a project for properly defined I/O:
- In Efinity Software GUI, start Interface Designer. (top menubar icon with paintbrush)
- Click Check Design (top menubar with checkmark on a page)
- Click Generate Efinity Constraint Files (top menubar with chain links on a page)
- Click Export Design Issues (only needed if above steps found errors)
Resources
Main Efinix web page: https://www.efinixinc.com
Fireant FPGA Board: https://www.mouser.ca/ProductDetail/392-CS-FIREANT-01
Efinix Development Boards: https://www.efinixinc.com/products-devkits.html
Jeffs T35 fpga board project: https://github.com/s100projects/T35_FPGA_MODULE
Efinix IDE downloads: https://www.efinixinc.com/support/efinity.php
Info and verilog examples for the fireant https://github.com/jungle-elec/FireAnt
Quick start guide for fireant: https://github.com/jungle-elec/FireAnt/wiki/FireAnt-Quick-Start-Guide