Simple PCI proto-board, with little need to know an HDL? - Page 1
Forum section: electronics / projects

author: rwgast_lowlevellogicdesin
author_rank: Frequent Contributor
timestamp: December 31, 2015, 03:08:58 am
content: So I want to pump lots of data FAST in to a PC from an ADC, maybe 60MSPS or more. This is way to much for USB2, leaving 4 options PCI, PCI-E, 100MB Ethernet, USB3. I would guess USB3 would be the least troublesome route, except I have read some chip sets kind of suck and lack features others have. PCI-E, well it is overkill and more complicated. 100MB ethernet, I actually want to use this as an interface to pump the same data to the network.So PCI seems a good choice. Lots of documentation, tons of geek credit and fast enough. The end app would be SDR. The test a simple Data Acquisition system. My problem, I know little about PCI and nothing about HDL. I do know even an Altera/Xilinx CPLD has enough power to handle PCI communications though. What I would like would be to use a Zynq chip, this way the logic could drive the PCI and have some left for DSP. Then you would have an arm chip running linux you could maybe log in to through the PCI port?So basically you would be staring at a PCI card with on board Zynq chip routed out to PCI connectors and the rest would be pref board or smt proto board. Im curious how well you would have to actually know PCI and HDL to pull this off, or could you just download some PCI card and load it in to the Zynqs FPGA, plug in and then your ready to go?Does this idea sound rediculous? If your looking to build you own board an not spend a ton would it make more sense to use something like a an Altera MAX/Xilinx CoolRunner and then study up on PCI and HDL quite a bit? After the PCB was made and working what would it take to write a windows driver for a PCI device? I mean basically all the PCI there for is a high speed bridge to send IQ data to/from PC I would think that shouldnt be the most complicated device in terms of PCI bus use?

author: John_ITIC
author_rank: Frequent Contributor
timestamp: December 31, 2015, 08:06:02 am
content: PCI or PCIe depends on your computer, really. If you have a PCI-based PC then you can develop a PCI endpoint device using a CPLD or FPGA. You must have a good knowledge about PCI as well as a PCI bus analyzer (the latter to track down the obligatory bugs in your endpoint device implementation). Don't forget you also need to develop a device driver for the operating system you intend to use.If you have PCI Express slots in your PC, you'll need to base your device on an FPGA with built-in PCIe endpoint device. Driver also needed. Complex.USB 3.0 based on Cypress FX3 would likely be your easiest path. You can then either develop your own drivers in user-mode (WinUSB/UMDF) or kernel-mode (WDM/KMDF), assuming Windows target.

author: awallin
author_rank: Frequent Contributor
timestamp: December 31, 2015, 09:04:25 am
content: What do you *really* want to work on? High-speed digital design, Low-level PCI-bus things, ADC interfacing, noise-issues etc., drivers for your favorite OS, or at the higher level of e.g. GNU-radio graphs? How large is your team working on this? How many months/years is the timetable?Here are some reference designs, for inspiration. Need to stand on the shoulders of giants if you want to move fast to working on high-level stuff.PCI-e card with Spartan 6 LX45:http://www.ohwr.org/projects/spec/wikiFMC card with 4ch 14bit 100 MSPS ADChttp://www.ohwr.org/projects/fmc-adc-100m14b4cha/wikiAlso take a look at the FPGA/Zynq boards available. Schematics and board for the Papilio Pro and Pipistrello are available IIRC.SDR or 'direct sampling' signal analyzers are quite interesting - for many applications - keep us posted about your design goals and progress!

author: Jeroen3
author_rank: Super Contributor
timestamp: December 31, 2015, 10:10:08 am
content: I've used Ethernet cameras that pump (broadcast) UDP frames to a dedicated NIC to achieve high throughput. This could be an alternative if you do not have people capable of writing drivers.Receiving UDP frames is fairly easy to do on any operating system. It is also more plug&play.

author: kony
author_rank: Regular Contributor
timestamp: December 31, 2015, 03:51:19 pm
content: http://www.ftdichip.com/Products/ICs/FT600.html

author: kony
author_rank: Regular Contributor
timestamp: January 01, 2016, 03:47:48 pm
content: Quote from: blueskull on January 01, 2016, 03:37:18 pmExactly! That's why I linked it, even troigh Cypress got mentioned. Unfrotunatelly I still had not free time to tinker with it, so any relevant user expirience is appreciated.