Skip to content
Zheeeng edited this page Nov 30, 2015 · 4 revisions

Table of Contents

Installing an Operating System on the Host PC

We support use of the popular Linux distribution Fedora as the operating system for the Host PC. In the past, we have supported CentOS (a free variation of RedHat); however, we have discontinued support for CentOS.

To install Fedora 14 please refer to the their installation guide.

Instructions to install CentOS (for NetFPGA package versions before 3.0.0) can be found here.

Other tested but unsupported operating systems

Use of other operating systems is possible, but we do not support them.

Software Installation

For archival purposes the install instructions for older packages are linked below. Use the instructions on this page to install newest version NetFPGA package.


NetFPGA Package 1.0 Install_Software_1.0
NetFPGA Package 1.2 Install_Software_1.2

Install using YUM

To ease the installation burden we have created an RPM package and YUM repository. By using YUM all dependencies will be installed as part of the NetFPGA installation.

Log in as root

  • Log in as root or 'su -' to root

Install RPMforge Yum repository

  • Install the RPMforge repository.
CentOS 5 wiki documentation on installing RPMforge

Install NetFPGA Base Package

  • Install NetFPGA yum repository and GPG Key
    rpm -Uhv http://netfpga.org/yum/el5/RPMS/noarch/netfpga-repo-1-1_CentOS5.noarch.rpm
  • Next run the following command to install the NetFPGA base package
    yum install netfpga-base
  • Note that there may be some dependencies. Select 'y' to install these dependent packages.
  • From release 2.0.0 and beyond the Java GUI has been split into its own package. To install this package follow the Java GUI Install

Create netfpga directory in your user account

Run the following script to copy the entire netfpga directory into your account (typically: /root/netfpga). WARNING: Running this command WILL overwrite any existing netfpga directory or files in your user account! If you have files that you want to preserve, 'mv' your netfpga directory to another location, such as netfpga_backup.

To copy the NetFPGA directory and set the environment variables run the following command

/usr/local/netfpga/lib/scripts/user_account_setup/user_account_setup.pl

It also adds the following environment variables to your .bashrc file.

  • NF_ROOT
  • NF_DESIGN_DIR
  • NF_WORK_DIR
  • PYTHONPATH
  • PERL5LIB

Reboot your machine

Reboot your machine in order to finalize the installation.

Quick Start without YUM

This quick start is tested for the 2.1.1 release on CentOS 5 and RHEL4 (Add your OS if it works for you).

Minimal Install without YUM

How to perform a minimal install (without yum) of the netfpga card on a new machine:

  • Install NetFPGA software (because you at least need to install and build nf_download and the kernel driver for this machine)
    Either: tgz package:
  • Or: git repository:
    • install git from the latest bzip (./configure; make; sudo make install)
    • in your home directory: git clone git://netfpga.org/netfpga.git # also see gitweb
    • you'll need at least the cpci*.bit bitfiles from the tgz release above; just copy all bitfiles from their bitfile directory into your ~/netfpga/bitfiles.
  • plug in NetFPGA card boot up. If boot crashes first time, reboot and it should work.
  • add uppermem and vmalloc to /boot/grub/grub.conf and reboot (check forum for exact syntax)
  • I'm afraid that to start up the device with the cpci_reprogram.pl tool, you're going to have to put the necessary NF environment variables from netfpga/bashrc_addon into your ~/.bashrc then re-login
  • link /usr/local to your own user copy so that you don't have to keep two copies:
    • sudo ln -s ~/netfpga /usr/local/netfpga
    • sudo ln -s ~/netfpga/lib/scripts/cpci_config_reg_access/loadregs.sh /usr/local/sbin/loadregs.sh
    • sudo ln -s ~/netfpga/lib/scripts/cpci_config_reg_access/dumpregs.sh /usr/local/sbin/dumpregs.sh
    • # WARNING: don't forget last step or cpci_reprogram.pl won't work but will tell it has.
  • If you only care about installing the driver and .bit files but don't care about building absolutely everything:
    • cd ~/netfpga/lib/C
    • make
    • sudo make install # this also does kernel dir "make install" to install kernel module nf2.c
    • /sbin/modprobe nf2
  • see if init things work:
    • ~/netfpga/lib/scripts/cpci_config_reg_access/dumpregs.sh -f ~/defaultregs # for problem recovery later
    • ~/netfpga/lib/scripts/cpci_config_reg_access/loadregs.sh -f ~/defaultregs # do if cpci_reprogram fails half way (usually permissions or path problems)
    • sudo ~/netfpga/lib/scripts/cpci_reprogram/cpci_reprogram.pl
    • sudo /usr/local/bin/nf_download /usr/local/netfpga/bitfiles/reference_nic.bit
  • add the same stuff and more to /etc/rc.local as follows:
    • /usr/local/netfpga/lib/scripts/cpci_reprogram/cpci_reprogram.pl
    • /usr/local/bin/nf_download /usr/local/netfpga/bitfiles/reference_nic.bit
    • ifconfig nf2c[0-3] 10.0.1[0-3].1/24 for the 4 ports
  • NOTE: if you forget to run cpci_reprogram with root permissions, it will hang your card and you'll need to reboot or run the loaadregs.sh command mentioned above.
  • so far this should get you to the point of downloading and running other people's hardware (.bit) files.

Quick Development Install

If you want a full development install (that builds the reference bitfiles and runs their tests), first do the Minimal Install, then:

  • check that everything builds:
    • cd ~/netfpga run:
    • make
    • make install
    • # If you get perl error "Can't locate XML/Simple.pm" then you have a version of perl before 5.8.8, so get a later version of perl or copy these files from a new version of perl: /usr/lib/perl5/vendor_perl/5.8.*/XML/Simple, /usr/lib/perl5/5.8.*/Digest/file.pm
    • # RHEL4 needs libnet which is best got from http://dag.wieers.com/rpm/packages/libnet/
  • To simulate, you'll need to install the memory models

Install CAD Tools

We provide the Verilog source code the modules so that users can compile, simulate, and synthesize gateware for the NetFPGA. We have tested simulation and synthesis using a specific version of the Xilinx tools (as described below). Use of other versions of the tools (older or newer) is not supported. If you do not plan to rebuild the hardware circuits, you can skip installation of CAD tools.

Install Xilinx ISE

  • Xilinx: ISE Foundation, Version: 10.1 SP3
    • Install Service Pack 3
    • Install IP Update 3
    • Use of other versions of the tools (older or newer) is not supported.
    • Obtain a license for the V2Pro TEMAC core from Xilinx.
      • Part Number: DO-DI-TEMAC, Ver 3.3
      • For a free evaluation copy
        • Request "Full System hardware Evaluation"
        • Allows use of the TEMAC for 30 days, 8 hour run-time
      • Academic users can request a donation of the core and CAD tools
        • Mention use of the NetFPGA when you submit the request
      • Commercial users can purchase the core through their local sales representative.

Install ModelSim

  • To simulate Verilog, install:
    • Mentor Graphics: ModelSim
      • Version SE 6.2G (Also tested with ModelSim DE v6.6). But ModelSim PE and the student version are windows-only so not so good for the NetFPGA Unix environment.
      • Allows simulation of circuits and viewing of simulated waveforms.
      • Testbench software assumes use of this version of ModelSim.

Debug with ChipScope

  • To debug signals on the FPGA using an on-chip logic analyzer, install:
    • Xilinx: ChipScope Pro
      • Version 9.1.02i or 10.1 SP3 (ChipScope 10.1 license comes with Xilinx 10.1 these days)
      • Allows visibility of verilog signals in synthesized verilog on the NetFPGA
      • Requires use of a Xilinx USB Platform Cable or this compatible cable

Install Memory Modules for Simulation

We have provided a script to automatically install the memory modules. This script is located in netfpga/lib/scripts/fetch_mem_models Run the script called "fech_mem_models.pl". You can also manually download and install the memory modules as show below.

Micron DDR2 SDRAM

Cypress SRAM

What to do from here

Clone this wiki locally