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.
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.
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.
> 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.
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:)
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.
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. :(