Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20693 Discussions

Dev board communication over PCI

Altera_Forum
Honored Contributor II
1,064 Views

Can someone explain to me if it's possible for an FPGA development board to actually communicate with the host PC via PCI bus (as opposed to, e.g., USB or ethernet)?

0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
345 Views

Sure, but you have to find an evaluation board that has a PCI connector and interface. Most of the newer boards intended for development within a PC use PCI Express (PCIe). 

 

Look at the boards on the Terasic web site for examples; 

 

http://www.terasic.com/ 

 

They used to have a Cyclone III PCI board, but I don't see it there anymore. PCI is probably old enough now that its not worth them stocking old hardware. 

 

Did you really want PCI, or did you mean PCIe? 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
345 Views

Oh, I meant PCIe, of course.

0 Kudos
Altera_Forum
Honored Contributor II
345 Views

 

--- Quote Start ---  

Oh, I meant PCIe, of course. 

--- Quote End ---  

 

Then there are plenty of boards with PCIe. Look at the Terasic site again; they have development kits that they develop, as well as the other Altera development kits. You can also look at Arrow and Digikey web sites for Altera development boards, and of course, the Altera site. 

 

You now have to figure out how much logic you need in your project, and whether you plan on implementing the hardware using an HDL or OpenCL (which is only supported on very specific boards). Note that most boards are PCIe peripheral boards, not root-complex boards. If you want to implement a root-complex, post a new message to the forum asking for a recommendation, eg., "PCIe root-complex development kit?" (I haven't used any for root-complex development). 

 

Before you buy a board, create a basic design that implements what you want targeting the development kit you think you want. 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
345 Views

Hi, first of all, please forgive the noobishness, but what exactly is root-complex, and what is the difference between root-complex and peripheral boards? Just to put things in context, my experience of PCIe extends only to Tesla and Phi cards, both of which you can plug into a generic server board and they 'just work'. 

 

Also, being primarily a C++ programmer, I'm curious as to whether it is possible to use C or C++ (or maybe something like mbeddr (http://mbeddr.com/)) to develop for FPGAs. Is it even feasible, do the FPGA IDEs support this notion? I understand that OpenCL is something in that ballpark, but being heavily involved with CUDA I've learned to hate OpenCL with a passion (it is really far too verbose). Also, I'm a heavy MATLAB user - do you know whether MATLAB is a feasible platform/substitute for HDL development? 

 

And, on the subject, are FPGAs feasible for math? I mean, does a general-purpose PCIe development board have some chip on it to perform math calculations, or should it be part of the FPGA chip itself? Also, are there FPGA development boards that you can add (or pick and mix) components to?
0 Kudos
Reply