Skip to content
noaz edited this page Apr 16, 2015 · 15 revisions

NetFPGA-SUME Frequently Asked Questions

Part 1 - Operating Systems and Xilinx Tools

Q: Are there any particular OS and Xilinx packages I should have installed before I get started?

A: Yes. We have adopted Ubuntu 14.04 (x86_64) and Xilinx Vivado 2014.4. Also, see the Getting Started Guide for a list of other packages that should be installed.

Q: What about Xilinx licenses?

A: In short, you'll need to have a Xilinx Vivado license. The Virtex-7 FPGA device is not one of the supported parts in the freely available Xilinx webpack. For more details see the Licensing page.

Q: Are there any other things I should do before I begin?

A: A good first step is to familiarize yourself with the board by going through the Reference Manual. When you're ready to begin checkout the Getting Started Guide.

Part 2 - NetFPGA-1G-CML Codebase

Q: Have all previous NetFPGA-1G projects been ported to the NetFPGA-1G-CML Project?

A: The following NetFPGA-10G projects have been ported to NetFPGA-1G-CML: loopback_test, reference_nic, reference_switch_lite, reference_switch, and reference_router.

Q: Does the 7-series FPGA support the CAM generator used on the Virtex-5?

A: Yes, it does now. The CAM generator, as provided by Xilinx, doesn't support the Kintex7 device on the NetFPGA-1G-CML. However, we have provided patches for it that will allow it to work with the Kintex7. Please see the README file in the reference_switch_nf1_cml and reference_router_nf1_cml projects.

Q: How can I port projects from the NetFPGA-10G to the NetFPGA-1G-CML?

A: This isn't an easy question to answer. Most of the NetFPGA IP is generic IP that will work on any FPGA, however, some of the IP contains code that is specific for an FPGA family. For example, the NetFPGA-10G DMA core contains a specific version of the built-in Virtex5 PCIe block. The Kintex7 on the NetFPGA-1G-CML contains a different built-in PCIe block and so the DMA core had to be ported to the new FPGA family. Another example was the CAM generator. Xilinx only officially supports it up to 5 Series of FPGAs. We have successfully patched it to work with 7 series parts. With that being said, a lot of the IP didn't require changes and could be used as is.

After you identify the IP that has FPGA family dependent code and have finished porting them, you can then create projects for the NetFPGA-1G-CML. I find the easiest and least problematic way of porting projects is to start with a new design in XPS. Starting new means you don't have to deal with using old versions of Xilinx IP that my have problems or compatibility issues. Add in each required core using the old project as a reference. It may be slow work to get the initial design in place, but you can use the new design as a reference for any other designs that follow the same general project layout. For example, after we ported the reference nic to the NetFPGA-1G-CML, we used it as a starting point for porting over each of the other reference designs.

The trickiest part is making sure that all of the pcore parameters are correctly set for each of the IP when you add them to the project. A good way of checking is to compare the system.mhs files from the original project and the ported project.

Part 3 - NetFPGA-1G-CML Hardware

Q: Does the NetFPGA-1G-CML have to be installed into a host's PCIe socket for development?

A: No. The NetFPGA-1G-CML can be used in either a stand-alone mode or installed into a host PCIe slot. The stand-alone mode requires power from an ATA power connector and cables for the JTAG connection and UART connection via the PMOD connector. See photos below.

NetFPGA 1G CML PCIe Slot Mode
Figure 1 - NetFPGA 1G CML Standalone Mode

NetFPGA 1G CML Standalone Mode
Figure 2 - NetFPGA 1G CML PCIe Mode

Q: Does the PCIe mode require a specific PCIe driver?

A: Yes. The specific Linux driver to access the card while in PCIe mode is located at NetFPGA-1G-CML/projects/reference_nic_nf1_cml/sw/host/driver. Run the Makefile while in that directory make. The Makefile will create the nf10.ko file. The nf10.ko can be installed by running the following command sudo insmod nf10.ko.

Note: The NetFPGA card must be loaded with correct bit stream to operate in PCIe mode. The computer will need to be restarted after loading the bitstream. After restarting the computer, run the command lspci and the Xilinx card should be visible with VendorID 0x10ee and ProductID 0x4244.

Clone this wiki locally