- The
Efinix Xyloni is going to be my third board in latest attempt to
learn FPGA
- See below for implementation of the Parallax
Propeller (P1V).
- See below for working Blinking LED project
files
- In contrast to TinyFPGA and ULX3S, this seems
to be a relatively new board
- This one was well stocked (>500 available)
when I ordered from
Digikey (It's hard to find there unless you actually search for
"Xyloni")
- Low cost at $35, although, like
TinyFPGA, it's pretty bare
bones
- Efinix
seems to be a relatively new player in the FPGA market
- The most interesting thing about Efinix is that
you get full use of their
Efinity IDE
with purchase of any dev board, including this $35 one
- This gives access to MIPI and DDR3 interfaces
without having to spend a fortune for the software
- There doesn't seem to be a SERDES though for
direct HDMI output. However, they have an
example board with LVDS to HDMI converter chip.
- Of course, the
ULX3S shows how to generate HDMI
signals from LVDS just using series capacitors
- Would this trick work on that code?
Don't think so. I think LVDS for displays is in some 7:1
format, but not 100% sure.
- But, probably the ULX3S way would work.
- Xyloni is based on the
Trion-T8 FPGA
- As you can guess, it has almost 8k of Logic
Elements (not quite though, only 7,384)
- 123 kb of embedded RAM
- 6 LVDS TX and RX channels
- No DDR3 or MIPI on T8, but T20 can have both
- Unfortunately, DDR3 and MIPI are only
both in the 0.65 mm pitch BGA, probably outside of my skill set to
manufacture
- The also relatively new
FireAnt board
is another option, also based on Trion-T8
- Note: Be sure to save the box as that has the
serial number on it that you need to get the Efinity software
- Creating a LED Blinking starting project
- Here is my first working Xyloni project (download
files here)
- Here are the steps I took to get it going:
- Install Efinity (save box!)
- Use Zadig software to replace USB Driver
as per instructions.
- Creating an LED Toggling design
- Download examples from here:
https://github.com/Efinix-Inc/xyloni
- Copy Xyloni.v from HelloWorld/RTL folder
to use as starting point.
- Create a new folder for the project
(LedToggle1) and copy Xyloni.v there and rename LedToggle1.v
- Open xyloni.xml with Efinity in the
HellowWorld/Effinity folder
- Open the "Interface Designer" (using icon
in toolbar)
- Click on "Export Design" from the toolbar
and save as .isf file
- Create a New Project in Efinity (named
LedToggle1.xml).
- Add the Verilog template (LedToggle1.v)
to "Design"
- Open Interface Designer and import that
.isf file created earlier
- Then, click on Genereate Efinity
Constraints File and save LedToggle1.sdc in LedToggle1 folder
- Add this file to project "Constraint".
- Add some LED toggling code
- Comment out unused outputs
- Be sure to save LedToggle1.v after
editing, seems Efinity doesn't automatically save edited files
- Start automated synthesis (click left
button in "dashboard" area).
- Open programming tool (If get Error:
Cannot find USB backend, follow instructions to replace USB drivers
https://github.com/Efinix-Inc/xyloni/blob/master/docs/xyloni-github-drivers.md)
- Select LedToggle1.bit as bitstream file
- Click play button to program over JTAG
- Parallax Propeller P1V runs on Xyloni!
- This is a minimal version of P1 though with 2
cogs, 1 kB RAM, 1 kB ROM, no video generator, and no counters. There's
no room for more memory, but there is room for more logic.
- Download the design
files here.
- It currenly needs a Prop Plug for
programming, click photo for how, VSS on J1-pin#3.
-