Jump to content
  • 0

Cmod A7-15T PCIe


32768hertz

Question

Before I buy it, I need to ask... on Cmod A7-15T, PCI Express can be implemented? I know I cant stick it in a computer as it is, but just to learn how to do it, even if I need to wire Cmod A7-15T to the computer mainboard manually.

And by PCIe I mean: 7 Series Integrated Block for PCI Express IP, from Xilinx Vivado.

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

6 hours ago, 32768hertz said:

Before I buy it, I need to ask... on Cmod A7-15T, PCI Express can be implemented?

Yes, do ask before you buy.

The short answer is No.

PCIe uses transceivers. You aren't going to run transceivers off of a USB VBUS power supply. I seriously doubt that the lightweight PCB used by the CMODs can dissipate the heat produced by the MGT block, which, btw isn't powered on. You don't have a way to supply a clock to the transceivers. Need I go on? ( yes, by the way I'm just getting started )

So, let's say that you implement it by creating a bitstream. How are you going to test it? Even if you had a PCIe connector available how would you intend to use it on a host? ( you don't need a Linux kernel driver if you do it correctly as you can write a device mode application ).

If all you want to do is a Vivado project to see if you can do a design and get through bitgen you can just pretend that you have a board that can actually work in a PC, such as the KC705. But your question indicates that you want to buy hardware.

If you really want to do PCIe I can suggest based on experience, the Terasic OpenVino Starter Kit. It's not too expensive. It's supported with good hardware demos that work with any recent version of Quartus. It has Linux driver source code that will work with Centos 7. It has Windows source driver code that works on Win7 or WIn10 ( with some effort ). Yes, it costs more than a CMOD but you can actually do something useful with the platform. Terasic and Intel have some experience with PCIe.

As I've mentioned more than once if you have a specific project goal then find a board with support to make that goal reasonably doable. Also, as I've mentioned before if Xiinx or one of its development board partners offered anything anything even remotely similar ( including support ) I'd have tried it and would be happy to refer you to it.

If you don't want to destroy expensive hardware trying to do PCIe on your own but have a PC compatible FPGA board do head over to xillybus.com for some useful hints and freely available PCIe cores for many boards.

Link to comment
Share on other sites

1 hour ago, zygot said:

If all you want to do is a Vivado project to see if you can do a design and get through bitgen

In a way this is all I want at the moment. The short story is that I use to make some ISA computer boards for fun prepare for disappointment I even got to make my own designs. Now I'm trying my luck with PCIe, or I wish to.

I got zero experience with FPGA, so my thinking was to find the cheapest development board that I can find, that contains an FPGA who support a PCIe endpoint, even if a board itself is not made for that. Learn on it, from "blinky LED" to a level when I can understand how to implement an PCIe. I'm not at the level to even look at Starter Platform for OpenVINO™ Toolkit, at least not yet.

Link to comment
Share on other sites

14 hours ago, 32768hertz said:

Learn on it, from "blinky LED" to a level when I can understand how to implement an PCIe.

There's a world separating "blinky LED" to implementing PCIe. I'm not talking about just the technical aspects of implementing PCIe in an FPGA. You will need to become proficient with an HDL like Verilog or VHDL. If you are starting from scratch I'd suggest Verilog. You will also need to become proficient at verification using a logic simulator, writing testbenches and perhaps using other formal tools. You will need to develop an understanding about how the programmable device vendors tools work and what kind of support they provide.

You goal is PCIe. That's great. The 2 biggest players in the FPGA field are concentrating on PC application accelerator boards with their tools and latest devices. These use PCIe. But these are high end, expensive hardware and the vendors aren't going to want to dilute their income potential by giving away or even supporting a basic IP like PCIe o low end parts. This makes the OpenVino starter boards a very rare and amazing occurrence in the FPGA development board low end space. Really, it's a seismic shift in the field and I'm shocked that it exists. I've been using Intel (Altera) Xilinx tools for 30 years and that's my view.

The really cheap boards like the CMODs are fine for developing the basic skills.  Normally, if I had the sense that there was a good chance of the person I'm giving advice to was going to lose interest after seeing how much work is involved in becoming proficient in FPGA development I'd suggest such a board. But, you would seem to be an anomaly given your past experience, so I suggest keeping your eye on the goal.

First, see which of the FPGA vendors have partners providing the hardware and support that is likely to get you to where you want to go. At the moment this is Intel. There are other vendors with relatively cheap ( on the order of the OpenVino Start Kit boards ) single-lane PCIe development boards but doing anything other than implementing a demo is harder than it should be. Having to be on speaking terms with multiple FPGA vendors tools is challenging, even though the basic concepts are the same, so I'd suggest picking a vendor first would be a good idea. For help in getting answers to questions you won't find a comparable forum like this one unfortunately. Even after you've successfully implemented a PCIe demo there's more challenge in adding functionality that useful and having the design meet timing and working.

It's still might be a good idea to start off with a cheap investment in hardware. I like the Terasic DE0 Nano Cyclone IV board. It's priced similar to the CMODs but much more capable in terms of what these types of platforms are good at... which is embedding an FPGA board into a hardware design. But even this boards isn't a good jumping off point to doing PCIe. You need a platform that is capable of complicated external interfaces such as DDR and 1 GbE Ethernet to learn how to do the hard parts, which are timing closure and figuring out why a design that you think should work on hardware isn't.  If you've stuck with the learning curve for a few years you might be ready to move on to a platform that offers more challenging development possibilities. Who knows, by then PCIe might not even be on your immediate radar by then.

I hope that my replies have been at least useful in your grasp of things to consider in your quest. Best wishes and good luck. You'll need both a bit of luck and a lot of hard work to get to the level where you want to be.

 

Link to comment
Share on other sites

To anyone wanting to do a PCIe endpoint on an FPGA board. Be aware that there are a number of boards out there with PCIe 'finger' style edge connectors. That doesn't mean that the board is something that you want to insert into your PC. Very few of these generic FPGA development boards have the PCIe slot PCB capture extrusion; meaning that the mechanical stability is a factor to consider. One possibility, at some expense is to use a PCIe adapter extender cable. I've done this successfully for multi-lane Gen 2 boards, but this too has its downsides.

Another thing to consider is that the PC detects PCIe boards in the BIOS before booting, so FPGA configuration is something to be worked out.

Lastly there is the issue of the FPGA board power supplies. I've had some bad experiences with the KC705 in this regard. There are so many revisions to that board that I don' think that Xilinx or even the 3rd party who designed and supports the board can keep track of the various iterations out in the wild.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...