
Aller Artix-7 FPGA Board with M.2 Interface - numatolab
https://numato.com/product/aller-artix-7-m-2-fpga-module
======
mbanzi
Shameless Plug, check out the Arduino Vidor 4000 , similar form factor and
interfacing [https://store.arduino.cc/arduino-
vidor-4000](https://store.arduino.cc/arduino-vidor-4000)

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

~~~
Fred27
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.

------
snops
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...](https://xtrxsdr.files.wordpress.com/2017/01/xtrx-chasing-pcie-
performance.pdf)

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](https://en.wikipedia.org/wiki/M.2#Form_factors_and_keying)

------
metaphor
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](https://github.com/enjoy-
digital/litepcie)

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

A similar device, [https://picoevb.com](https://picoevb.com), has a virtual
JTAG cable.

[1] [http://xilinx.eetrend.com/files-eetrend-
xilinx/download/2013...](http://xilinx.eetrend.com/files-eetrend-
xilinx/download/201303/3844-7699-yongsailingsi7xiliefpgashejiqianrushipciemokuai.pdf)

~~~
CamperBob2
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.

~~~
walterbell
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-...](https://forums.xilinx.com/t5/Xcell-Daily-Blog-
Archived/Need-fast-efficient-open-source-PCIe-DMA-for-your-FPGA-
RIFFA-2-2/ba-p/642947)

[2] [https://github.com/KastnerRG/riffa](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...](https://87c7e184-a-d06fb7e1-s-sites.googlegroups.com/a/eng.ucsd.edu/matt-
jacobsen/06645504.pdf)

~~~
CamperBob2
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.

------
yjftsjthsd-h
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:)

------
AWildC182
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...

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

~~~
AWildC182
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.

------
michaeljchou
Open source (PCB design) alternatives:

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

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

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

You can thank miners for the cheap FPGAs.

~~~
walterbell
Delivery has been rocky,
[https://bitcointalk.org/index.php?topic=4391318.0](https://bitcointalk.org/index.php?topic=4391318.0)

------
walterbell
Do you plan to update this device with TPM 2.0?

------
haberman
I had never heard of this M.2 form factor:
[https://en.wikipedia.org/wiki/M.2](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.

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

~~~
haberman
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.

