Need a Suggestion for a Simple Sample PCIe Device

This thing has 3 LEDs, 4 GPIO lines…

Oh, Mr. Roberts… that is extremely intriguing. Yes, I have to order one of those. I mean, just to fool with.

Thank you very much for that.

Xilinx has grown smarter about their drivers

In some ways. We have had multiple occasions to work with the Xilinx XDMA library and sample driver. It has many very serious architectural issues. Just sayin’…

Thank you again for the pointer that that little Pico thingy. That and an Express to M.2 adapter and I might be good to go.

Fascinating board. And I already have Vivado installed on my system at home…

ETA: I ordered one, and a pile of m.2 to PCIe adapters. BTW, they sell the Pico thingy on Amazon (though in my excitement I ordered it from the link Mr. Roberts posted).

BUt… friends… keep the device suggestions coming. Please.

Peter

1 Like

And I already have Vivado installed on my system at home…

Anyone who has complained about Visual Studio and the WDK tools will generally stop doing so after a little exposure to Vivado and the other Xilinx tools.

1 Like

LOL… too true.

The biggest problem I’m having solid ideas about the PicoEVB is that there are no good examples… even the GitHub sample uses the infamous Xilinx XDMA library. I know that driver very well. Ugh. And there’s absolutely nothing tutorial in terms of Vivado projects.

They provide the constraints file. But… I don’t know what if I have the Verilog chops to create my own “memory mapped DIO, with MSI on Change of State” application entirely from scratch, which appears to be what will be required. I guess I shall see.

The other thing that made me laugh (literally) about the picoEVB is that it apparently takes 30 minutes to program the bitstream into it.

I’m still waiting for the other, industrial, DIO and ADC card I linked above to arrive. That, sadly, doesn’t interrupt on COS on the DIOs. Sigh.

Peter

Sigh!

PicoEVB: The example is in VHDL, and is super-complicated relative to my abilities.

Peter

PicoEVB: The example is in VHDL, and is super-complicated relative to my abilities.

What about the following one

https://numato.com/product/galatea-pci-express-spartan-6-fpga-development-board

Although it is Spartan 6 -based (which means you would need XILINX ISE, which is much less user-friendly, compared to Vivado, ifyou decide to try this option)
here is a brief tutorial available. Judging from its screenshot, a sample design in Verilog is available. To be honest, just cannot be asked to experimentally establish it, although I’ve got ISE 14.7 installed, but I trust their words.

https://numato.com/kb/getting-started-with-pcie-on-galatea/

OTOH, it does not sound too Windows-friendly

Anton Bassov

What about the following one

Oh, that’s a good thought. But, you noted the issue: You have to use ISE.

Well, after days of searching (and a whole day spent in Vivado trying to create my own design targeted at the PicoEVB), I think I may have found a board: National Instruments, to the rescue!

The board is the PCIe-6509. It meets all the criteria: DIO, simple interface, MSI on line change of state.

The only downside is that it support 96 DIO lines, which is… you know… about 94 more than I need for this example. But I can hide some of that complexity for the purposes of the class, I think.

The register map is public, and their docs look to be sufficient to actually be able to use the device.

I was excited to see that they have a (now long deprecated) WDM driver that’s public for the device… until I realized that what their WDM driver does is map the device’s register space into user-space (via \device\PhysicalMemory, no less). Now I know why the WDM driver has been deprecated. But, no matter, there are user-mode examples that show how to program the registers to make the device do things.

We have NI folks who occasionally visit this Community. I’m kinda surprised nobody suggested their board.

So, it looks like I can skip the FPGA programming (leaving my skills at the “flip THIS switch, light THAT light!” level)… and concentrate on what I sort of know how to do.

Peter

I started on this.

https://www.intel.com/content/www/us/en/programmable/products/boards_and_kits/dev-kits/altera/kit-cyclone-iv-starter.html

That said I have a strong hardware background so I can open up the platform designer/QSys/Sopc builder tools from the relevant Intel FPGA (formally Altera) and figure out the BAR offsets for myself.

If you want something specific you can get it design. Avid Tech in Cleveland were taken over by Avnet.

https://www.avid-tech.com/services/turnkey-design-and-manufacturing/hardware-design/

They are brilliant went it comes to PCIe hardware design.

Thanks.

I’ve gone ahead with the NI PCIe-6509. Lovely device, actually. Very flexible. I’d love to write a real driver for it some day (one for actual production use that fully exploits all its features, as opposed to one that designed for noobs to learn from).

Peter