There are a bunch of FPGA development boards to choose from, but how many will fit inside your laptop? The PicoEVB is a tiny board that connects to a M.2 slot and provides an evaluation platform for the Xilinx Artix-7 FPGA family.
This minimalist board sports a few LEDs, a PCIe interface, an integrated debugger, on-board EEPROM, and some external connectors for hooking up other bits and pieces. The M.2 connector provides the board with power, USB for debugging, and PCIe for user applications.
A major selling point of this board is the PCIe interface. Most FPGA boards with PCIe will cost over a grand, and will only fit in a large desktop computer. The lower priced options use older FPGAs. The PicoEVB is tiny and retails for $219. Not a bad deal when the FPGA on-board costs nearly $100.
The PicoEVB is also open source. Design files and sample projects can be found on Github.
[Thanks to Adam Hunt for the tip!]
Brilliant thanks Eric Evenchick,
This is just what an associate needs as he is I think still in the early stages of designing a commercial plan for a range of products to handle diverse graphics with multiple HDMI in/out with inherent scaling/OCR in the streams. I advised that the easiest and quickest approach for the first 2 levels of his design cycle progress is FPGA at the development alpha test cycle at the least. This seems to fall straight into that, though he might have seen it by now.
Great to see this here and looking forward to discussions, cheers.
I have been an advocate for quite some time for FPGA dies to be fitted in to computers or integrated in to the chipsets, some real flexible low power logic even just purely for math would be very beneficial for software development not just for industry but also for the consumer
and now that intel owns altera, i hope they do something with that
Good idea onebiozz, +1
Reminds me of my experience in jungles of Sabah 20years back 1998. When I noticed laptops/notebook sizes from then dropping in size a few years ago. I often mused on a type of slightly larger thicker laptop which had space for multiple IC/software design oriented options. Eg lift out/up sections for single chip micro/fpga programmers, data loggers, independent tablet type DSOs etc.
These days even easier with small PCIe and high speed USB, could be a few opportunities down that path but, with software simulation moving ahead apace the romantic ideal of the one man/person self-sustained designer becoming only a nostalgic memory.
Maybe the FLGA product listed above could offer a path back to those ideals to a degree,
I can see utility for 2 in one laptop with some space for extra HDMI connector but, which laptop has that :-(
Thanks
“I have been an advocate for quite some time for FPGA dies to be fitted in to computers or integrated in to the chipsets” – why? so they can be reprogrammed at will by hackers and malware? what makes you think the PC industry would do a good job at making an on-board FPGA secure? they couldn’t even build a CPU or UEFI without introducing major security flaws. making an FPGA available for use would spell DISASTER. just as it is, having a pci-e connector, i can envisage all kinds of mischief to be had with this.. none of it being good! :)
Common sense says a development laptop with an FPGA on board would be air-gapped to avoid just such an issue.
Except that common sense ain’t that common… :P
I’ll vouch for that…
I’m not too good with common sense either.
Last summer I decided to find out what all that summer craze was all about and walked to the beach across the garlic field. Big regrets, I’m still recovering.
How can you humans handle such torture??!!??
@Dracula, did your path take you across some church land as well?
How is this any different from the processor being reprogrammable? What novel risks does it carry?
Yeah, I’m not sure that there’s any really different attack vectors – just a different mix of them. I’m feeling firey today, so I’ll expand on that point.
-> The CPU is the original piece of hardware that hackers try to reprogram and use against you. These days, it’s a veritable onion of layers to exploit and/or reprogram.
-> Drammer basically (but in a limited way) does that to your RAM.
-> Thunderbolt / Firewire devices can be used to mess with your memory via DMA functionality.
-> Anything with a ROM that a driver can upgrade can (theoretically) have a malicious ROM uploaded (c.f. that time where researchers flashed a malicious ROM to Daimler-Chrysler’s vehicles’ media center after exploiting the media center itself, then used it to attack the CAN bus and completely control the vehicle).
-> USB devices can be created to fake the presence of nonexistent hardware and con the host into giving them network traffic.
There’s an exploit for pretty much every peripheral attached to your computer, with varying levels of difficulty. While an FPGA would make an exceptionally-potent piece of hardware to use in some ways, in other ways not so much. It could certainly react quickly enough, and (I don’t know too much about the PCI wire standards) possibly (temporarily) brick the machine by messing with the PCI bus, but I’m not sure it would be all that useful. There’s no data exfiltration capability without involving other components (and so other exploits) or relying on external connections the user has made to the board. Anybody having this would likely be using it with some regularity – it would be being regularly wiped and reprogrammed, and even if a bit of malware could disable reprogramming, the user would see that and remove the chip & toss it. It’s not really integrated to the motherboard at all – so all this said all you can do is use it as a (probably very short-term) beachead & coordination center for your malware or cause a DoS and hope the user isn’t smart enough to detach it from the motherboard.
The old joke is that the only secure computer is the one that’s locked in a safe, air-gapped from all networks, and never used. Security is always balanced against usability, and the running joke is that it’s on the user to pay attention to that. Don’t hate hardware because it might possibly be exploited – hate hardware which is shoddily designed, especially cheap IoT products that make horrible security decisions (Telnet? Seriously?). I’ve got a spare M.2 slot, and if I had the disposable income and time to learn FPGA programming I’d give this a shot for sure – it’s a programmable peripheral! It’s what computers are meant to be – devices to rapidly automate and compute. I’d probably keep a few different programs available for it and swap them out as needed (e.g., depending on its capabilities – FFT on streaming data, some kind of radio transmitter and/or receiver, serial port that’s easily replaceable if I fry it, simple logic analyzer…)
Just thought the same…
You can say the same about any other hardware component, processors are not 100% secure, Graphics cards have been made to run malicious monitoring code, chipsets have been hacked, everyone knows how insecure UEFI/BIOS can be, How many microcontrollers are hidden around a standard motherboard in misc components?
100% security is simply not going to happen, exploits will be found and patched and the same would happen in dedicated configurable hardware
Actually, if unauthorized mining is the goal, the GPU is probably the big target.
Speeding up common activities. Moving the RAID/file system operations into a FPGA.
What you can do in FPGA you can do in actual hardware with 100x the efficiency. If you’re just going to be using it for bog-standard filesystem stuff why not add specialized hardware to the machine?
I’ve actually been working on a project where the computer itself is 95% FPGAs. The remaining 5 percent would be things like ADC and DACs, a battery charge circuit, RAM, etc. Maybe add a management SoC that loads the VHDL onto the FPGAs at boot and then locks programming while the system is live. The CPU, GPU, peripherals, pretty much everything would be programmable.
I’ve been tinkering with the idea of using a Xilinx Zync for the management system that is air-gapped from the rest of the system except for the SPI interfaces to program the rest of the system. The system would boot by the Zync chip loading the VHDL to the FPGAs, then pre-loading RAM with the pointer to the OS kernel and launching directly into the OS, skipping all the hardware discovery and configuration crap you currently have to sit through.
I’m calling it a software-defined-system since nearly every bit of the computer exists in software. No more hardware versus firmware, it is all essentially firmware. Done right, you could build a fully open-source system. Processor bugs could be addressed by just changing the hardware itself. New instructions and new functionality is just a reboot away.
I also figure that ports could be handled with something resembling a Compact flash that is thick enough to support various ports. So like you would have a card with a pair of VGA ports on it and some DACs for signal conversion, but then you’d reprogram the video block on the FPGAs to send VGA-compatible signals to that set of pins. Or you could swap it out for a couple USB ports and the pins would be connected to a USB controller block in the FPGA.
I think this image says it all:
https://cdn.shopify.com/s/files/1/0005/3470/8275/files/pico-in-laptop-1_png_project-body-2_720x.jpg?v=1520300297
from the product homepage: https://picoevb.com/
Now this would be awesome for RISC V development etc. the only question is how to handle I/O when the board is inside the computer, not sure how you can expose/communicate with your designs through USB / PCIe.
By the time there was a crowdfunding regarding PicoEVB, I tried to draw the attention here at least twice but the editor/moderator/whatever never did and so there was never an article about it. So the tip is quite outdated. I bought one. I think I regret it. There is one just sample. Nothing has really changed since the last time the crowdfunding ended. I wonder whether some developers were able to do something interesting. If so, probably not in open source mind. If you want to know how to make such or such thing except for the DMA, good luck because Xilinx documentations really suck.
Ah interesting point of view Hlide Fremen, thanks
I will definitely follow that up whilst indoctrinating new staff ;-) Its certainly an area I’m looking to get more commercial understanding, though I will investigate the engineering side, these days there are more focused people and its becoming more specialised from my early days in gate arrays mid 1990’s
The link at moment on your ID/name resolves to a restricted area, whilst a brief search on your name comes up on facebook with this page which I guess is you :-)
https://www.facebook.com/hlide.fremen/about?lst=1190108918%3A1482548676%3A1527834966
Maybe the page you intended to offer as public has changed its status, I’m curious, just sayin :-)
Yes this comment was published through FB account but I might have an HACKADAY.IO account that I forgot the password.
https://hackaday.io/pages/116795
Otherwise, what do you mean by “Maybe the page you intended to offer as public has changed its status, I’m curious, just sayin :-)”?
Well, unless there was a typo in the link which first placed on your name then it most likely was intended to direct to a page with content which the reader could presumably review. When I first clicked it, the first line stated words to the general effect of “..this content my be restricted or you do not have subscription priveleges..”. I just checked again now it states “Content not found”, no problem just letting you know.
Quite understand as I’m on heaps of forums with many behind paywalls or credential/commercial checks etc. Also some have sub links on various threads which are dynamic yet not stated as such. Quora used to be that way though last few months has improved a lot.
Updated my name link here to my Quora profile page, depending on which device I use (only a few) it recalls the previous link for the nickname, I was guessing it’s that or the f/b link credentials changed, just feedback, nm. Cheers
Erm, I’ll take the marketing at ‘sales value’, or you plug it into the port and Vivado recognizes it as an external board. And yes it is over M.2 not USB, but without drivers…. Nor do I ‘not’ think this is immensely cool, or Intel having purchased Altera ought to allow the ‘main stream’ to play around with this soon (enough– They’ve done it with overclocking, eh’ ?).
Don’t get me wrong, I think this is a super cool design example, but perhaps a product without a market.
It’s a good product with a market, just not a significant -hobbyist- market. Big difference. Hopefully they’ll market it to the right people.
I’d love one, if it wasn’t completely wrong for my main products. I use Artix7s and other Xilinx FPGAs in embedded designs right now. While I might use PCIe in a future design, it’ll be embedded ARM.
Make a way for hobbyists to use them to profitably mine cryptocurrency and watch them go out of stock in an instant. I actually have an Artix 7 mining crypto to help my best friend but it’s not very profitable – about $7/month from a $100 board. (I have other uses planned for that board.)
The real gain was when I opened the code in Vivado and managed to get a nice picture from the schematic view to show my friends what I like to do with technology. Still, the intent of the FPGA miner was to help an artist in need (Naomi Wu), not to make art out of the code! https://i.imgur.com/MkCu31o.png
You kids and yer fancy M.2 slots. In my day, if we wanted to interface with a computer, we used a serial port. And we liked it!
P.S.: Anybody got info on how to program an FPGA over a serial port? Asking for a friend…
Xilinx FPGAs support a variant of SPI for programming using a microcontroller.
Programming FPGA over LPT used to be a thing. Serial, I don’t know, never heard of that.
WTF!
USB->JTAG using FT230x where JTAG input TMS is connected to UART input CTS.
Is it not a problem when you reprogram the fpga that the pcie interface goes offline? Do laptops typically support pcie hotplug?
partial reconfiguration
This is a really cool and useful idea, but the price point isn’t that great for the power of the FPGA. It’s $220 for 52K logic elements and 3kbits of memory, and the DE10-Nano is $130 with 110K logic elements, 1GB of DDR3, and an ARM processor on board. It would be very useful to have a version of this with more I/Os to allow the FPGA to act as an interface between the PCIe bus and some peripheral (such as a camera or display). I guess you can only do so much with the M.2 form factor, though.
Exactly, the last one I took is a DE10-Nao to make a MiSTer and it makes everything easier. Previously I bought that M.2 card and I have no clue how to use it because there are almost zero samples and the author is not the right guy to provide any samples how to use his product.
I may look into it after there’s an open toolchain for it, but Vivado is right out.
is possible to create amiga or zxspectrum?
But can it run a 68080 Amiga 4000 with modern graphics and sound with something like morph OS and do wifi?
I was thinking if you could put an FPGA in your laptop does that also mean you could turn it into an Amiga 4000 and run Apollo OS?