Ask HN: Has anyone here ever built their own PCI device?
I thought it'd be a kinda cool project to do so, even if it's just something super simple like an echo device, but from my understanding many microcontrollers aren't fast enough to support a PCI bus and the general advice I've found is to use an FPGA (unfortunately, which I have zero understanding of at the time). FPGA dev boards seem to be relatively expensive, except cheaper chinese ones which seem to run a little over $100.
Has anyone done this before. Did you write about it? What sort of hardware did you use?
10 comments
[ 2.8 ms ] story [ 35.4 ms ] threadThere's a lot here: - VHDL for the FPGA - DSP algorithm - A driver for the OS you are building for - Scopes and measurement devices for the hardware bits
If you tried to do it yourself you'd spend more money and have a bad time. I'd recommend getting an FPGA dev board and start there.
Learning digital design was extremely rewarding for me and I absolutely recommend it.
The main reason for FPGA is that you use A LOT of parallel communication so even though the clock speed of the FPGA might be 200MHz, multiply that for 16, 32 or more lines and you get GBit speeds.
You can get affordable FPGA boards for learning with Lattice iCE40 family. When you jump into Altera or Xilinx things change a little, but you can still get a VERY decent development board from Terasic for a little over $100.
For learning I personally recommend the book "Digital Design and Computer Architecture" by Harris & Harris
Even if you don't become a full FPGA pro, knowing your computer down to a logic gate level brings huge advantages to how you see it, interact with it and write software for it!
Edit: the iCE40 is a popular choice at CERN, and you should be able to find materials geared towards young physics grad students and other fpga non-experts.
Surely, if you look around enough you can find some kind of a development board at a reasonable cost.
https://en.wikipedia.org/wiki/EFF_DES_cracker
It’s cheaper and tiny, not sure if powerful enough for what you’re looking at.