Hacker News new | past | comments | ask | show | jobs | submit login
Aller Artix-7 FPGA Board with M.2 Interface (numato.com)
35 points by numatolab on Dec 17, 2018 | hide | past | web | favorite | 22 comments



Shameless Plug, check out the Arduino Vidor 4000 , similar form factor and interfacing https://store.arduino.cc/arduino-vidor-4000


Is it actually capable of talking PCIe over that edge connector?


The things I've read say it's not PCIe it just repurposes the connector. So far, I don't think it's even possible to use the FPGA properly.


PCI-E is a good form factor for embedding an FPGA in a laptop, (especially as the spare but is still very difficult to debug issues with if you need high performance, you would not expect to actually get the full 2.5GT/S without some very hard work in the rest of your design.

See the fun issues the XTRX project had getting good IO performance with an FPGA based SDR in the same form factor (PDF): https://xtrxsdr.files.wordpress.com/2017/01/xtrx-chasing-pci...

A larger problem with this board, it doesn't have any onboard JTAG programmer, so if you put it into your laptop you will have to take it out every time to reprogram it! This is a shame, as Mini PCI-E mandates a USB 2.0 interface as well which would be useful for a programmer, while M.2 apparently only has USB optionally, see https://en.wikipedia.org/wiki/M.2#Form_factors_and_keying


Without expensive Xilinx IP to drive tandem configuration over PCIe, how is this useful for development when installed in a laptop (or any enclosed device without direct access to JTAG TAP)? LitePCIe[1] was briefly mentioned, but I don't see how this addresses the issue.

Also, the mandatory heatsink for "heavy designs" (without any notion of what that means) is a bit...limiting.

[1] https://github.com/enjoy-digital/litepcie


Vivado and Artix-7 include a hard IP block [1] for PCIe Gen2, with Linux and Windows drivers.

A similar device, https://picoevb.com, has a virtual JTAG cable.

[1] http://xilinx.eetrend.com/files-eetrend-xilinx/download/2013...


That IP block is only used to talk to the PHY, in this case the high-speed transceiver hardware built into the 7-series FPGAs. You still have to license some (very) non-free IP from a vendor like Northwest Logic or Xillybus if you don't want to take on a major R&D project to get PCIe up and running.

Then there's the question of driver licensing on the OS side, if you want Windows support. Not sure if there are any prepackaged free-as-in-beer solutions for that. There were none when I looked into it a few years ago.


UCSD's RIFFA [1][2] open-source PCIe framework includes Windows 7 & Linux drivers and their 2015 paper [3] claims support for Xilinx 7-series FPGAs.

[1] https://forums.xilinx.com/t5/Xcell-Daily-Blog-Archived/Need-...

[2] https://github.com/KastnerRG/riffa

> RIFFA (Reusable Integration Framework for FPGA Accelerators) is a simple framework for communicating data from a host CPU to a FPGA via a PCI Express bus. The framework requires a PCIe enabled workstation and a FPGA on a board with a PCIe connector. RIFFA supports Windows and Linux, Altera and Xilinx, with bindings for C/C++, Python, MATLAB and Java .. Users can communicate with FPGA IP cores by writing only a few lines of code ... No knowledge of bus addresses, buffer sizes, or PCIe packet formats is required. Simply send data on a FIFO interface and receive data on a FIFO interface. RIFFA does not rely on a PCIe Bridge and therefore is not subject to the limitations of a bridge implementation. Instead, RIFFA works directly with the PCIe Endpoint and can run fast enough to saturate the PCIe link.

[3] https://87c7e184-a-d06fb7e1-s-sites.googlegroups.com/a/eng.u...


Hmm, that looks really cool, thanks. It definitely wasn't around when I needed it, and I'm surprised not to have heard of it in the meantime. Seems like a legitimate end-to-end solution.


Something I've been wondering lately, watching FPGAs become more accessible: How hard would it be to implement new codecs (ex. AV1) on a FPGA, and thereby get support for new codecs in "hardware" by buying such a card once, plugging it in, and then reflashing it when new (FOSS) codecs come out? Especially since some of these cards at least claim to support being left inside a laptop. I assume there's some work to implement the codec in verilog (or whatever they use these days), and some effort to pass the audio/video streams to the card and then back to the system for output, but I have no idea how terrible that is; somewhere between "it would take a team of engineers years" and "download these 2 existing FOSS components and run `make install`" I assume:)


This is awesome! Mobile FPGA development with a PCIe interface is a big deal. Now if only the vendors would give us access to usable tools...


Is the Vivado software any good? I assume a license comes with the board.


Sorry, didn't see this until today. For low end devices they vendors usually have a free version, in this case Vivado Webpack so you probably don't need to worry about licences. It's better than it's predecessor but the tooling as a whole is way worse than even the most frustrating IDEs for CPU languages.


Open source (PCB design) alternatives:

1. PicoEVB (M.2 2230 with XC7A50T): https://picoevb.com

2. NiteFury (M.2 2280 with XC7A200T and 8Gb DDR3): https://www.crowdsupply.com/rhs-research/nitefury


If my memory serves me this also uses an Artix-7 100T and is half the price: http://squirrelsresearch.com/acorn-cle-101/

You can thank miners for the cheap FPGAs.



Do you plan to update this device with TPM 2.0?


I had never heard of this M.2 form factor: https://en.wikipedia.org/wiki/M.2

How many computers (desktops or laptops) support this? I think it's safe to assume my MacBook pro doesn't have space for one of these inside.


It's the replacement for mini-PCI-express and it's used in almost every laptop these days.


Good to know. What I meant to say is that it doesn't appear that there is any space for users to add boards like this. in a MacBook pro (which is what I have). I was just confused since this talked about being something that would fit in a laptop, but I can't imagine a laptop shipping with an FPGA board inside it, unless it was a really specialized laptop meant for hardware development.


Some MBPs can use M.2 interfaces although it requires an adapter to work with Apple's proprietary PCI-e connector. That said most people won't use these in laptops, and FPGA development on a Mac tends to be pretty frustrating anyways (at least in my experience).


Yes I've been getting into it lately and on my macOS machine it appears my only option for my Artix-7 board is to run Xilinx tools inside VirtualBox. :(




Applications are open for YC Summer 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: