Are you struggling to develop a PCI express (PCIe) solution on the Altera Cyclone IV GX? Do you want a simple PCIe slave device?The MEV Altera Cyclone IV PCIe Reference Design Kit includes Quartus reference designs for Altera Cyclone IV PCIe designs. It has been developed as a starting point for customers own designs and includes
- A working "MEV Altera Cyclone IV PCIe debug device" that can be deployed on a development kit for quick proof of concept OR to use with your own design to check hardware is OK
- FPGA source code as a starting point for a users own design.
- Simple PCIe slave device
- SOPC based so it can easily be reconfigured to suit your design.
- A Windows debug driver for this device. The Windows Debug driver and API library allows arbitrary registers to read and written on the debug device whether it is deployed on the above kits or an equivalent design deployed on user hardware.
Speaking as someone that has bought and tried this kit, I can happily recommend it. Whilst the Altera videos are good in their way there are many details they cannot cover and having a few simple but fully complete designs to download and play with is very useful. Perhaps best of all are the comments in the source files that advise on matters of a subtle nature that without knowing of them would become show stoppers.If you need to get into PCIe quickly with Cyclone IV and take advantage of SOPC builder to give you a processor bus (Avalon) interface to your peripherals, this low cost kit could help a lot.
My work was done with the Quartus Web edition and this design kit. This is because it concerns only hard IP in the Cyclone IV family. The situation may be different if you have notions of using the Soft IP method, though I can't think of many good reasons for doing so when the hardware comes in the price of the device. The instructions given do remind you to make sure that you selected the Hard IP version in the wizard.
I will use the DB4CGX15 development kit, so I will have the hard IP of the Cyclone IV.Can you tell me more about the windows driver? Is it a good starting point for writing my own driver? My goal is to communicate via the pci bus with a microcontroller using spi. Windows Application <-> PCIe <-> Cyclone <-> SPI <-> microcontroller Do think this viable within a few days?
As for writing windows drivers I'm unable to help you there since my application is embedded ARM based and others have the responsibility of writing the drivers for our OS (proprietary).If the microcontroller is an SPI slave, this should be almost trivial since you can do it all in SOPC builder and use the Altera provided building blocks. This environment should allow you to create the whole system in a matter of hours. If the microcontroller is an SPI master only, this might mean you're better off allowing the PCIe to talk to DPRAM and have the SPI slave controller in the FPGA talk to the other port of the DPRAM. If response times are important consider adding some GPIO pins to the PCIe side so the windows side can generate interrupts to the microcontroller. All this can be done quite easily in SOPC builder, but it isn't as simple as the other case. If you have the pins available, don't forget to bring some of the GPIOs out so you can debug the progress of your windows driver code.
Fortunately the microcontroller is running as slave, all I have to do is retrieve some measured values every 100 µs and transfer them to the system memory.Thank you for your help :)
MEVs simple slave reference deisgnhttp://www.mev.co.uk/pages/products/alterapcie.html (http://www.mev.co.uk/pages/products/alterapcie.html) comes with a simple generic windows driver and api for debugging. Although it is not supplied as source you can use it to read and write registers to your own design if you base that design on the reference design supplied